[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