/[cmucl]/src/lisp/Config.ppc_darwin
ViewVC logotype

Contents of /src/lisp/Config.ppc_darwin

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (hide annotations)
Sun Feb 6 19:43:15 2005 UTC (9 years, 2 months ago) by rtoy
Branch: MAIN
CVS Tags: release-19b-pre1, release-19b-pre2, snapshot-2005-07, snapshot-2005-03, release-19b-base, snapshot-2005-06, snapshot-2005-05, snapshot-2005-04, snapshot-2005-08
Branch point for: release-19b-branch, ppc_gencgc_branch
Changes since 1.4: +7 -2 lines
Initial support for linkage-tables on PPC/Darwin.  This is a
relatively straightforward port of the sparc version of
linkage-tables.  Some refinements are probably still needed, as well
as some testing.

Use boot-2005-02-ppc-linkage.lisp to bootstrap this change from the
2005-02 snapshot.

* code/ppc-vm.lisp
  o Add appropriate FOREIGN-SYMBOL-ADDRESS-AUX and FIND-FOREIGN-SYMBOL
    functions for linkage-table.

* compiler/generic/new-genesis.lisp
  o Basically do the same as the sparc port for linkage-tables.
  o need to extern-alien-name on the cold linkages since they C names
    depend on the backend conventions.

* compiler/ppc/alloc.lisp
  o Load "undefined_tramp" appropriately for linkage-tables.

* compiler/ppc/c-call.lisp
  o Define new vops (FOREIGN-SYMBOL-CODE-ADDRESS,
    FOREIGN-SYMBOL-DATA-ADDRESS) for linkage-tables so we can access
    correctly.

* compiler/ppc/cell.lisp
  o Load "closure_tramp" appropriately for linkage-tables
  o Load "undefined_tramp" appropriately for linkage-tables

* compiler/ppc/parms.lisp
  o Put the foreign linkage space start at the end of the static space
    to make it easier to bootstrap.  (We need already mapped memory.)
    We can move this later.
  o Correct TARGET-FOREIGN-LINKAGE-ENTRY-SIZE.
  o Add new static-symbol *linkage-table-data*
  o While were at it, add SPARE-9 and SPARE-0 static symbols so we
    have 10 spares.

* lisp/Config.ppc_darwin
  o Add -DLINKAGE_TABLE to CFLAGS/ASFLAGS if we have linkage-table
    support.

* lisp/Darwin-os.c
  o Add os_dlsym to support linkage-tables.  (This nees a little
    refactoring because we just copied the #defines for dlopen modes.)

* lisp/os-common.c
  o The checking of the linkage tables that is done for sparc almost
    works for ppc, but not quite.  Implement one for ppc.

* lisp/ppc-arch.c
  o Add PPC version of arch_make_jump_entry, arch_make_linkage_entry,
    arch_linkage_entry.

* lisp/ppc-assem.S
  o Add lazy_resolve_linkage to support linkage-tables.  This needs
    some more work.
  o Add undefined_foreign_symbol_trap.  This probably needs work, and
    definitely needs testing.

* lisp/ppc-validate.h
  o Define the start of the linkage space and size.
1 pmai 1.1 PATH1 = ../../src/lisp
2     vpath %.h $(PATH1)
3     vpath %.c $(PATH1)
4     vpath %.S $(PATH1)
5     CPPFLAGS = -I. -I$(PATH1) -I/usr/X11R6/include
6     CC = gcc3
7     LD = ld
8 rtoy 1.2 NM = $(PATH1)/darwin-nm
9 pmai 1.1 CPP = cpp -no-cpp-precomp
10     DEPEND = $(CC) -MM
11 rtoy 1.5 ifdef FEATURE_LINKAGE_TABLE
12     LINKAGE = -DLINKAGE_TABLE
13     endif
14    
15     CFLAGS = -g -O3 -no-cpp-precomp -DDARWIN -Dppc $(LINKAGE)
16     ASFLAGS = -g -O3 -no-cpp-precomp -DDARWIN -Dppc $(LINKAGE)
17    
18 pmai 1.1 UNDEFSYMPATTERN = -Xlinker -u -Xlinker &
19     ASSEM_SRC = ppc-assem.S linux-stubs.S
20     ARCH_SRC = ppc-arch.c
21     OS_SRC = ppc-darwin-dlshim.c os-common.c Darwin-os.c
22 rtoy 1.3
23     # I (rtoy) am not exactly sure what these values are, but it seems
24     # that the segaddr for CMUCLRO should be the READ_ONLY_SPACE_START.
25     # The seg1addr should be somewhere above our spaces. This is where
26     # the C runtime code goes, I think.
27    
28 rtoy 1.4 OS_LINK_FLAGS = -g -dynamic -Wl,-sectcreate,CMUCLRO,core,/dev/null -Wl,-segaddr,CMUCLRO,0x01000000 -Wl,-seg1addr,0x1a000000
29 pmai 1.1 OS_LIBS = -lSystem -lc -lm
30     GC_SRC = gc.c
31     all: adjustlisp
32     adjustlisp: lisp darwin-lispadjuster
33     ./darwin-lispadjuster lisp
34     darwin-lispadjuster: darwin-lispadjuster.c

  ViewVC Help
Powered by ViewVC 1.1.5