[cmucl-commit] [git] CMU Common Lisp branch master updated. snapshot-2012-02-6-g701bc7e

Raymond Toy rtoy at common-lisp.net
Sun Feb 5 16:26:30 UTC 2012


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMU Common Lisp".

The branch, master has been updated
       via  701bc7eb5d81314343210d72a0b120ec3dfa0b86 (commit)
       via  a33856c25fb84f6890e72d5b4971ae5185074a38 (commit)
       via  32990e5e886fa740b41f8bc8b31d7e8321e8e44b (commit)
       via  0491bf46649fb1d58fb1a0c499748e2440bcd318 (commit)
       via  0f6c455c0e2697e1bdfc62f7def2f3c934b8841b (commit)
      from  537cc9bbd13399017524bd68935e0eb3a383a0f2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 701bc7eb5d81314343210d72a0b120ec3dfa0b86
Author: Raymond Toy <toy.raymond at gmail.com>
Date:   Sat Feb 4 23:31:49 2012 -0800

    Preliminary support for ppc and correct some comments.

diff --git a/src/tools/linker.sh b/src/tools/linker.sh
index 458b118..f97dcf4 100755
--- a/src/tools/linker.sh
+++ b/src/tools/linker.sh
@@ -8,8 +8,8 @@
 # This script takes parameters specified by the running lisp to create
 # an executable image.
 #
-# Despite the name, it is used for Linux/x86, Darwin/x86, and
-# Solaris/sparc, as specified in src/lisp/elf.h.
+# This is used for Linux/x86, Darwin/x86, and Solaris/sparc, as
+# specified in src/lisp/elf.h.
 
 OPSYS=`uname`
 
@@ -87,11 +87,20 @@ case $uname_s in
       # Specify how to link the entire lisp.a library
       OPT_ARCHIVE="-all_load $CMUCLLIB/lisp.a"
 
-      # Extra stuff.  For some reason one __LINKEDIT segment is mapped
-      # just past the dynamic space.  This messes things up, so we move it
-      # to another address.  This seems to be free, at least on 10.5.
+      case `uname -p` in
+	i386)
+	    # Extra stuff.  For some reason one __LINKEDIT segment is
+	    # mapped just past the dynamic space.  This messes things
+	    # up, so we move it to another address.  This seems to be
+	    # free, at least on 10.5.
+
+	    OPT_EXTRA="-segaddr __LINKEDIT 0x99000000 -rdynamic"
+	    ;;
+	powerpc)
+	    # Nothing needed for ppc?
+	    ;;
+      esac
 
-      OPT_EXTRA="-segaddr __LINKEDIT 0x99000000 -rdynamic"
       # See Config.x86_darwin
       OS_LIBS=
       ;;

commit a33856c25fb84f6890e72d5b4971ae5185074a38
Author: Raymond Toy <toy.raymond at gmail.com>
Date:   Sat Feb 4 23:29:54 2012 -0800

    Cleanup comments

diff --git a/src/lisp/exec-final.c b/src/lisp/exec-final.c
index 31fb65b..a446964 100644
--- a/src/lisp/exec-final.c
+++ b/src/lisp/exec-final.c
@@ -7,9 +7,9 @@
 
 /*
  * See lisp.c for documentation, but basically this is linked in for
- * Solaris executables to indicate that the image is builtin.  We must
- * not define initial_function_addr here because the linker script
- * will set the value appropriately.
+ * executables to indicate that the image is builtin.  We must not
+ * define initial_function_addr here because the linker script will
+ * set the value appropriately.
  */
 int builtin_image_flag = 1;
 

commit 32990e5e886fa740b41f8bc8b31d7e8321e8e44b
Author: Raymond Toy <toy.raymond at gmail.com>
Date:   Sat Feb 4 23:16:47 2012 -0800

    Clean up comments about exec-final.

diff --git a/src/lisp/GNUmakefile b/src/lisp/GNUmakefile
index a2cc761..a3289eb 100644
--- a/src/lisp/GNUmakefile
+++ b/src/lisp/GNUmakefile
@@ -33,10 +33,10 @@ lisp: ${OBJS} version.o
 	mv -f ,lisp lisp
 
 # Create a library out of all the object files so we can build an
-# executable.  However, for Solaris, we need to remove exec-init.o
-# because the linker will define symbols with the correct addresses.
-# Also, we need to add EXEC_FINAL on Solaris to define
-# builtin_image_flag with the correct value.
+# executable.  However, we need to remove exec-init.o from the library
+# and replace it with exec-final.o because exec-final.o sets the
+# builtin_image_flag to 1 so that the runtime knows the runtime
+# contains the core sections.
 lisp.a:	version.o ${OBJS} ${EXEC_FINAL_OBJ}
 	ar crs lisp.a ${OBJS} version.o
 ifneq (${EXEC_FINAL_OBJ},)

commit 0491bf46649fb1d58fb1a0c499748e2440bcd318
Author: Raymond Toy <toy.raymond at gmail.com>
Date:   Sat Feb 4 22:53:33 2012 -0800

    Build with mach-o.c and exec-final.c if FEATURE_EXECUTABLE is
    defined.

diff --git a/src/lisp/Config.ppc_darwin b/src/lisp/Config.ppc_darwin
index da9737a..8ce16f4 100644
--- a/src/lisp/Config.ppc_darwin
+++ b/src/lisp/Config.ppc_darwin
@@ -42,6 +42,12 @@ ASSEM_SRC = ppc-assem.S linux-stubs.S
 ARCH_SRC = ppc-arch.c
 OS_SRC = ppc-darwin-dlshim.c os-common.c Darwin-os.c e_rem_pio2.c k_rem_pio2.c
 
+
+ifdef FEATURE_EXECUTABLE
+OS_SRC += mach-o.c
+EXEC_FINAL_OBJ = exec-final.o
+endif
+
 # I (rtoy) am not exactly sure what these values are, but it seems
 # that the segaddr for CMUCLRO should be the READ_ONLY_SPACE_START.
 # The seg1addr should be somewhere above our spaces.  This is where

commit 0f6c455c0e2697e1bdfc62f7def2f3c934b8841b
Author: Raymond Toy <toy.raymond at gmail.com>
Date:   Sat Feb 4 22:52:27 2012 -0800

    Support the creation of mach-o object files for ppc.

diff --git a/src/lisp/mach-o.c b/src/lisp/mach-o.c
index 66ea55e..441358e 100644
--- a/src/lisp/mach-o.c
+++ b/src/lisp/mach-o.c
@@ -130,7 +130,10 @@ write_mach_o_header(int fd)
 
     /* Ident array. */
     eh.magic = MH_MAGIC;
-    /* Currently only support x86's */
+#if defined(__ppc__)
+    eh.cputype = CPU_TYPE_POWERPC;
+    eh.cpusubtype = CPU_SUBTYPE_POWERPC_ALL;
+#else
     eh.cputype = CPU_TYPE_I386;
     /*
      * Support any kind x86.  Should we be more specific?  We need at
@@ -139,6 +142,7 @@ write_mach_o_header(int fd)
      * Pentium 4?
      */
     eh.cpusubtype = CPU_SUBTYPE_I386_ALL;
+#endif
 
     eh.filetype = MH_OBJECT;
 

-----------------------------------------------------------------------

Summary of changes:
 src/lisp/Config.ppc_darwin |    6 ++++++
 src/lisp/GNUmakefile       |    8 ++++----
 src/lisp/exec-final.c      |    6 +++---
 src/lisp/mach-o.c          |    6 +++++-
 src/tools/linker.sh        |   21 +++++++++++++++------
 5 files changed, 33 insertions(+), 14 deletions(-)


hooks/post-receive
-- 
CMU Common Lisp


More information about the cmucl-commit mailing list