From 2ef841f9e3f96437d101e021b85ec3dfd8766f9f Mon Sep 17 00:00:00 2001 From: rtoy <rtoy> Date: Thu, 29 Jul 2010 04:36:28 +0000 Subject: [PATCH] New linker shell script to build cmucl executables for Linux/x86. Could probably also work for FreeBSD, but changes not done yet. --- tools/linker-x86.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 tools/linker-x86.sh diff --git a/tools/linker-x86.sh b/tools/linker-x86.sh new file mode 100644 index 000000000..4dcb56e10 --- /dev/null +++ b/tools/linker-x86.sh @@ -0,0 +1,31 @@ +#!/bin/sh -x + +# $Id: linker-x86.sh,v 1.1 2010/07/29 04:36:28 rtoy Exp $ + +# This file written by Raymond Toy as part of CMU Common Lisp and is +# placed in the public domain. + +if [ $# -ne 6 ]; then + echo "Usage: `basename $0` <c-compiler> <initial-func-addr> <executable> <ro-addr> <static-addr> <dyn-addr>" + exit 1 +fi + +CCOMPILER=$1 +IFADDR=$2 +EXEC=$3 +RO_ADDR="-Wl,--section-start=CORRO=$4" +STATIC_ADDR="-Wl,--section-start=CORSTA=$5" +DYN_ADDR="-Wl,--section-start=CORDYN=$6" + +OUTDIR=`dirname $EXEC` +OUTNAME=`basename $EXEC` + +CMUCLLIB=`dirname $0` + +OPT_IFADDR="-Wl,--defsym -Wl,initial_function_addr=$IFADDR" +OPT_ARCHIVE="-Wl,--whole-archive -Wl,$CMUCLLIB/lisp.a -Wl,--no-whole-archive" +OPT_CORE="CORRO.o CORSTA.o CORDYN.o" + +(cd $OUTDIR +$CCOMPILER -m32 -o $OUTNAME -rdynamic $OPT_IFADDR $OPT_ARCHIVE $OPT_CORE $RO_ADDR $STATIC_ADDR $DYN_ADDR -ldl -lm) + -- GitLab