diff options
author | obrien <obrien@FreeBSD.org> | 2004-06-16 07:09:44 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2004-06-16 07:09:44 +0000 |
commit | c15b182a8c9d192b8bd7b065d50f26fdc66e57bb (patch) | |
tree | 1d994d80dc9d835f3cdaf765535ae861867b19c9 /gnu/usr.bin/binutils/ld | |
parent | 77e70076440e09568096be35d7dee1a7d58373bc (diff) | |
download | FreeBSD-src-c15b182a8c9d192b8bd7b065d50f26fdc66e57bb.zip FreeBSD-src-c15b182a8c9d192b8bd7b065d50f26fdc66e57bb.tar.gz |
Updated Bmake framework for Binutils 2.15.
Diffstat (limited to 'gnu/usr.bin/binutils/ld')
-rw-r--r-- | gnu/usr.bin/binutils/ld/Makefile | 5 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/ld/Makefile.alpha | 20 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/ld/Makefile.amd64 | 14 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/ld/Makefile.i386 | 14 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/ld/Makefile.ia64 | 11 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/ld/Makefile.powerpc | 9 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/ld/Makefile.sparc64 | 11 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/ld/config.h | 11 | ||||
-rwxr-xr-x | gnu/usr.bin/binutils/ld/genscripts.sh | 78 |
9 files changed, 113 insertions, 60 deletions
diff --git a/gnu/usr.bin/binutils/ld/Makefile b/gnu/usr.bin/binutils/ld/Makefile index 56f652e..c33c79d 100644 --- a/gnu/usr.bin/binutils/ld/Makefile +++ b/gnu/usr.bin/binutils/ld/Makefile @@ -10,9 +10,12 @@ SRCS+= ldcref.c ldctor.c ldemul.c ldemul-list.h ldexp.c ldfile.c \ ldgram.y ldlang.c ldlex.l ldmain.c ldmisc.c \ ldver.c ldwrite.c lexsup.c mri.c -WARNS?= 1 +WARNS?= 0 # ldemul.h problem (`struct option' declared inside parameter list) CFLAGS+= -DSCRIPTDIR=\"${TOOLS_PREFIX}/usr/libdata\" CFLAGS+= -DBFD_VERSION_STRING=\"${VERSION}\" +CFLAGS+= -DBINDIR=\"${BINDIR}\" -DTARGET_SYSTEM_ROOT=\"${DESTDIR}\" +CFLAGS+= -DTOOLBINDIR=\"${DESTDIR}/${BINDIR}/libexec\" +CFLAGS+= -D_GNU_SOURCE CFLAGS+= -I${SRCDIR}/ld -I${SRCDIR}/bfd NOSHARED?= yes DPADD= ${RELTOP}/libbfd/libbfd.a diff --git a/gnu/usr.bin/binutils/ld/Makefile.alpha b/gnu/usr.bin/binutils/ld/Makefile.alpha index 9e64f92..d10d1a9 100644 --- a/gnu/usr.bin/binutils/ld/Makefile.alpha +++ b/gnu/usr.bin/binutils/ld/Makefile.alpha @@ -1,7 +1,5 @@ # $FreeBSD$ -TARGET_TUPLE?= alpha-unknown-freebsd - .if ${TARGET_ARCH} == "alpha" NATIVE_EMULATION= elf64alpha_fbsd HOST= ${TARGET_TUPLE} @@ -14,24 +12,32 @@ _alpha_path= \"/usr/cross/alpha-freebsd/usr/lib\" EMS+= ${NATIVE_EMULATION} elf64alpha alpha LDSCRIPTS+= ${NATIVE_EMULATION}.x ${NATIVE_EMULATION}.xbn ${NATIVE_EMULATION}.xn ${NATIVE_EMULATION}.xr \ ${NATIVE_EMULATION}.xs ${NATIVE_EMULATION}.xu alpha.x alpha.xbn \ - alpha.xn alpha.xr alpha.xu ${NATIVE_EMULATION}.xc ${NATIVE_EMULATION}.xsc + ${NATIVE_EMULATION}.xc ${NATIVE_EMULATION}.xsc \ + ${NATIVE_EMULATION}.xd ${NATIVE_EMULATION}.xdc \ + elf64alpha.x elf64alpha.xbn elf64alpha.xc elf64alpha.xd \ + elf64alpha.xdc elf64alpha.xn elf64alpha.xr elf64alpha.xs \ + elf64alpha.xsc elf64alpha.xu \ + alpha.xn alpha.xr alpha.xu alpha.x alpha.xbn SRCS+= e${NATIVE_EMULATION}.c eelf64alpha.c ealpha.c CLEANFILES+= e${NATIVE_EMULATION}.c eelf64alpha.c ealpha.c e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \ scripttempl/elf.sc genscripts.sh stringify.sed sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_alpha_path} \ + ${TOOLS_PREFIX}/usr \ ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ - ${NATIVE_EMULATION} "" ${NATIVE_EMULATION} ${TARGET_TUPLE} + ${NATIVE_EMULATION} "" no ${NATIVE_EMULATION} ${TARGET_TUPLE} eelf64alpha.c: emulparams/elf64alpha.sh emultempl/elf32.em \ scripttempl/elf.sc genscripts.sh stringify.sed sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_alpha_path} \ + ${TOOLS_PREFIX}/usr \ ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ - elf64alpha "" elf64alpha ${TARGET_TUPLE} + ${NATIVE_EMULATION} "" no elf64alpha ${TARGET_TUPLE} -ealpha.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em scripttempl/elf.sc \ +ealpha.c: emulparams/alpha.sh emultempl/generic.em scripttempl/alpha.sc \ genscripts.sh stringify.sed sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_alpha_path} \ + ${TOOLS_PREFIX}/usr \ ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ - ${NATIVE_EMULATION} "" alpha ${TARGET_TUPLE} + ${NATIVE_EMULATION} "" no alpha ${TARGET_TUPLE} diff --git a/gnu/usr.bin/binutils/ld/Makefile.amd64 b/gnu/usr.bin/binutils/ld/Makefile.amd64 index cbb2433..8c4afe4 100644 --- a/gnu/usr.bin/binutils/ld/Makefile.amd64 +++ b/gnu/usr.bin/binutils/ld/Makefile.amd64 @@ -1,7 +1,5 @@ # $FreeBSD$ -TARGET_TUPLE?= x86_64-obrien-freebsd - NATIVE_EMULATION= elf_x86_64_fbsd HOST= ${TARGET_TUPLE} CFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\" @@ -9,26 +7,30 @@ CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\" _amd64_path= \"${TOOLS_PREFIX}/lib\":\"${TOOLS_PREFIX}/usr/lib\" EMS+= ${NATIVE_EMULATION} LDSCRIPTS+= ${NATIVE_EMULATION}.x ${NATIVE_EMULATION}.xbn ${NATIVE_EMULATION}.xn ${NATIVE_EMULATION}.xr \ - ${NATIVE_EMULATION}.xs ${NATIVE_EMULATION}.xu ${NATIVE_EMULATION}.xc ${NATIVE_EMULATION}.xsc + ${NATIVE_EMULATION}.xs ${NATIVE_EMULATION}.xu ${NATIVE_EMULATION}.xc ${NATIVE_EMULATION}.xsc \ + ${NATIVE_EMULATION}.xd ${NATIVE_EMULATION}.xdc SRCS+= e${NATIVE_EMULATION}.c CLEANFILES+= e${NATIVE_EMULATION}.c e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em scripttempl/elf.sc \ genscripts.sh stringify.sed sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_amd64_path} \ + ${TOOLS_PREFIX}/usr \ ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ - "${NATIVE_EMULATION}" "" ${NATIVE_EMULATION} "${TARGET_TUPLE}" + "${NATIVE_EMULATION}" "" no ${NATIVE_EMULATION} "${TARGET_TUPLE}" X86_EMULATION= elf_i386_fbsd _i386_path= \"${TOOLS_PREFIX}/usr/lib/i386\" EMS+= ${X86_EMULATION} LDSCRIPTS+= ${X86_EMULATION}.x ${X86_EMULATION}.xbn ${X86_EMULATION}.xn ${X86_EMULATION}.xr \ - ${X86_EMULATION}.xs ${X86_EMULATION}.xu ${X86_EMULATION}.xc ${X86_EMULATION}.xsc + ${X86_EMULATION}.xs ${X86_EMULATION}.xu ${X86_EMULATION}.xc ${X86_EMULATION}.xsc \ + ${X86_EMULATION}.xd ${X86_EMULATION}.xdc SRCS+= e${X86_EMULATION}.c CLEANFILES+= e${X86_EMULATION}.c e${X86_EMULATION}.c: emulparams/${X86_EMULATION}.sh emultempl/elf32.em scripttempl/elf.sc \ genscripts.sh stringify.sed sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_i386_path} \ + ${TOOLS_PREFIX}/usr \ ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ - "${X86_EMULATION}" "" ${X86_EMULATION} "${TARGET_TUPLE}" + "${X86_EMULATION}" "" no ${X86_EMULATION} "${TARGET_TUPLE}" diff --git a/gnu/usr.bin/binutils/ld/Makefile.i386 b/gnu/usr.bin/binutils/ld/Makefile.i386 index d21ee42..51ea188 100644 --- a/gnu/usr.bin/binutils/ld/Makefile.i386 +++ b/gnu/usr.bin/binutils/ld/Makefile.i386 @@ -1,7 +1,5 @@ # $FreeBSD$ -TARGET_TUPLE?= i386-unknown-freebsd - .if ${TARGET_ARCH} == "i386" NATIVE_EMULATION= elf_i386_fbsd HOST= ${TARGET_TUPLE} @@ -13,15 +11,17 @@ _i386_path= \"/usr/cross/i386-freebsd/usr/lib\" .endif EMS+= ${NATIVE_EMULATION} LDSCRIPTS+= ${NATIVE_EMULATION}.x ${NATIVE_EMULATION}.xbn ${NATIVE_EMULATION}.xn ${NATIVE_EMULATION}.xr \ - ${NATIVE_EMULATION}.xs ${NATIVE_EMULATION}.xu ${NATIVE_EMULATION}.xc ${NATIVE_EMULATION}.xsc + ${NATIVE_EMULATION}.xs ${NATIVE_EMULATION}.xu ${NATIVE_EMULATION}.xc ${NATIVE_EMULATION}.xsc \ + ${NATIVE_EMULATION}.xd ${NATIVE_EMULATION}.xdc SRCS+= e${NATIVE_EMULATION}.c CLEANFILES+= e${NATIVE_EMULATION}.c e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em scripttempl/elf.sc \ genscripts.sh stringify.sed sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_i386_path} \ + ${TOOLS_PREFIX}/usr \ ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ - "${NATIVE_EMULATION}" "" ${NATIVE_EMULATION} "${TARGET_TUPLE}" + "${NATIVE_EMULATION}" "" no ${NATIVE_EMULATION} "${TARGET_TUPLE}" .if defined(BINUTILSDISTDIR) && exists(${BINUTILSDISTDIR}) EMS+= i386pe @@ -36,7 +36,7 @@ CLEANFILES+= ei386pe.c ei386pe.c: emulparams/i386pe.sh emultempl/pe.em scripttempl/pe.sc \ genscripts.sh stringify.sed sh ${.CURDIR}/genscripts.sh ${BINUTILSDISTDIR}/ld \ - /usr/cross/winnt/lib ${HOST} ${TARGET_TUPLE}winnt \ - ${TARGET_TUPLE}winnt i386pe "" i386pe \ - ${TARGET_TUPLE}winnt + /usr/cross/winnt/lib ${TOOLS_PREFIX}/usr/cross/winnt ${HOST} ${TARGET_TUPLE}-winnt \ + ${TARGET_TUPLE}-winnt i386pe "" no i386pe \ + ${TARGET_TUPLE}-winnt .endif diff --git a/gnu/usr.bin/binutils/ld/Makefile.ia64 b/gnu/usr.bin/binutils/ld/Makefile.ia64 index d10937d..5a11991 100644 --- a/gnu/usr.bin/binutils/ld/Makefile.ia64 +++ b/gnu/usr.bin/binutils/ld/Makefile.ia64 @@ -1,7 +1,5 @@ # $FreeBSD$ -TARGET_TUPLE?= ia64-unknown-freebsd - .if ${TARGET_ARCH} == "ia64" NATIVE_EMULATION= elf64_ia64_fbsd HOST= ${TARGET_TUPLE} @@ -14,20 +12,23 @@ _ia64_path= \"/usr/cross/ia64-freebsd/usr/lib\" EMS+= ${NATIVE_EMULATION} LDSCRIPTS+= ${NATIVE_EMULATION}.x ${NATIVE_EMULATION}.xbn ${NATIVE_EMULATION}.xn ${NATIVE_EMULATION}.xr \ - ${NATIVE_EMULATION}.xs ${NATIVE_EMULATION}.xu ${NATIVE_EMULATION}.xc ${NATIVE_EMULATION}.xsc + ${NATIVE_EMULATION}.xs ${NATIVE_EMULATION}.xu ${NATIVE_EMULATION}.xc ${NATIVE_EMULATION}.xsc \ + ${NATIVE_EMULATION}.xd ${NATIVE_EMULATION}.xdc SRCS+= e${NATIVE_EMULATION}.c CLEANFILES+= e${NATIVE_EMULATION}.c e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \ scripttempl/elf.sc genscripts.sh stringify.sed sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_ia64_path} \ + ${TOOLS_PREFIX}/usr \ ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ - "${NATIVE_EMULATION}" "" ${NATIVE_EMULATION} "${TARGET_TUPLE}" + "${NATIVE_EMULATION}" "" no ${NATIVE_EMULATION} "${TARGET_TUPLE}" SRCS+= eelf64_ia64.c CLEANFILES+= eelf64_ia64.c eelf64_ia64.c: emulparams/elf64_ia64.sh emultempl/elf32.em \ scripttempl/elf.sc genscripts.sh stringify.sed sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_ia64_path} \ + ${TOOLS_PREFIX}/usr \ ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ - "elf64_ia64" "" elf64_ia64 ${TARGET_TUPLE} + "elf64_ia64" "" no elf64_ia64 ${TARGET_TUPLE} diff --git a/gnu/usr.bin/binutils/ld/Makefile.powerpc b/gnu/usr.bin/binutils/ld/Makefile.powerpc index 12a2bac..82f8380 100644 --- a/gnu/usr.bin/binutils/ld/Makefile.powerpc +++ b/gnu/usr.bin/binutils/ld/Makefile.powerpc @@ -1,7 +1,5 @@ # $FreeBSD$ -TARGET_TUPLE?= powerpc-unknown-freebsd - .if ${TARGET_ARCH} == "powerpc" NATIVE_EMULATION= elf32ppc HOST= ${TARGET_TUPLE} @@ -18,12 +16,15 @@ LDSCRIPTS+= ${NATIVE_EMULATION}.x \ ${NATIVE_EMULATION}.xr \ ${NATIVE_EMULATION}.xs \ ${NATIVE_EMULATION}.xu \ - ${NATIVE_EMULATION}.xsc + ${NATIVE_EMULATION}.xsc \ + ${NATIVE_EMULATION}.xd \ + ${NATIVE_EMULATION}.xdc SRCS+= e${NATIVE_EMULATION}.c CLEANFILES+= e${NATIVE_EMULATION}.c e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \ scripttempl/elf.sc genscripts.sh stringify.sed sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_powerpc_path} \ + ${TOOLS_PREFIX}/usr \ ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ - ${NATIVE_EMULATION} "" ${NATIVE_EMULATION} ${TARGET_TUPLE} + ${NATIVE_EMULATION} "" no ${NATIVE_EMULATION} ${TARGET_TUPLE} diff --git a/gnu/usr.bin/binutils/ld/Makefile.sparc64 b/gnu/usr.bin/binutils/ld/Makefile.sparc64 index ab39e59..53042bf 100644 --- a/gnu/usr.bin/binutils/ld/Makefile.sparc64 +++ b/gnu/usr.bin/binutils/ld/Makefile.sparc64 @@ -1,7 +1,5 @@ # $FreeBSD$ -TARGET_TUPLE?= sparc64-unknown-freebsd - .if ${TARGET_ARCH} == "sparc64" NATIVE_EMULATION= elf64_sparc_fbsd HOST= ${TARGET_TUPLE} @@ -14,15 +12,17 @@ _sparc_path= \"/usr/cross/sparc-freebsd/usr/lib\" EMS+= ${NATIVE_EMULATION} elf64_sparc LDSCRIPTS+= ${NATIVE_EMULATION}.x ${NATIVE_EMULATION}.xbn ${NATIVE_EMULATION}.xn ${NATIVE_EMULATION}.xr \ - ${NATIVE_EMULATION}.xs ${NATIVE_EMULATION}.xu ${NATIVE_EMULATION}.xc ${NATIVE_EMULATION}.xsc + ${NATIVE_EMULATION}.xs ${NATIVE_EMULATION}.xu ${NATIVE_EMULATION}.xc ${NATIVE_EMULATION}.xsc \ + ${NATIVE_EMULATION}.xd ${NATIVE_EMULATION}.xdc SRCS+= e${NATIVE_EMULATION}.c CLEANFILES+= e${NATIVE_EMULATION}.c e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \ scripttempl/elf.sc genscripts.sh stringify.sed sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_sparc_path} \ + ${TOOLS_PREFIX}/usr \ ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ - ${NATIVE_EMULATION} "" ${NATIVE_EMULATION} ${TARGET_TUPLE} + ${NATIVE_EMULATION} "" no ${NATIVE_EMULATION} ${TARGET_TUPLE} .for BITS in 64 32 @@ -37,7 +37,8 @@ CLEANFILES+= eelf${BITS}_sparc.c eelf${BITS}_sparc.c: emulparams/elf${BITS}_sparc.sh emultempl/elf32.em \ scripttempl/elf.sc genscripts.sh stringify.sed sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${_sparc_path} \ + ${TOOLS_PREFIX}/usr \ ${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \ - elf${BITS}_sparc "" elf${BITS}_sparc ${TARGET_TUPLE} + elf${BITS}_sparc "" no elf${BITS}_sparc ${TARGET_TUPLE} .endfor # BITS diff --git a/gnu/usr.bin/binutils/ld/config.h b/gnu/usr.bin/binutils/ld/config.h index d4f30d8..c645f91 100644 --- a/gnu/usr.bin/binutils/ld/config.h +++ b/gnu/usr.bin/binutils/ld/config.h @@ -73,6 +73,9 @@ /* Define if you have the putenv function. */ #define HAVE_PUTENV 1 +/* Define if you have the realpath function. */ +#define HAVE_REALPATH 1 + /* Define if you have the sbrk function. */ #define HAVE_SBRK 1 @@ -130,12 +133,6 @@ /* Define if you have the <sys/param.h> header file. */ #define HAVE_SYS_PARAM_H 1 -/* Define if you have the <sys/stat.h> header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define if you have the <sys/types.h> header file. */ -#define HAVE_SYS_TYPES_H 1 - /* Define if you have the <unistd.h> header file. */ #define HAVE_UNISTD_H 1 @@ -146,7 +143,7 @@ #define PACKAGE "ld" /* Version number of package */ -/* #define VERSION "2.13.2" */ +/* #define VERSION "2.15" */ /* Define if you have the stpcpy function */ #define HAVE_STPCPY 1 diff --git a/gnu/usr.bin/binutils/ld/genscripts.sh b/gnu/usr.bin/binutils/ld/genscripts.sh index 125e18e..181a96c 100755 --- a/gnu/usr.bin/binutils/ld/genscripts.sh +++ b/gnu/usr.bin/binutils/ld/genscripts.sh @@ -15,20 +15,32 @@ # hoops for all possible combinations of paths, just use the libdir # argument in place of LIB_PATH. # -# The host, target and target_alias arguments are not used in this version. +# The exec_prefix, target_alias, use_sysroot, NATIVE_LIB_DIRS, TOOL_LIB, CUSTOMIZER_SCRIPT +# arguments are not used in this version. # srcdir=$1 libdir=$2 -host=$3 -target=$4 -target_alias=$5 -EMULATION_LIBPATH=$6 -NATIVE_LIB_DIRS=$7 -EMULATION_NAME=$8 +exec_prefix=$3 +host=$4 +target=$5 +target_alias=$6 +EMULATION_LIBPATH=$7 +NATIVE_LIB_DIRS=$8 +use_sysroot=$9 +shift 9 +EMULATION_NAME=$1 +TOOL_LIB=$2 +CUSTOMIZER_SCRIPT=$3 + +# Create the 'CUSTOMIZER_SCRIPT' knob to better sync this script with +# FSF BU ver 2.15 which allows for a more generic emulparams processing. +# To reduce the diff, I also include the ${EMULATION_NAME} parameter in uses +# of 'CUSTOMIZER_SCRIPT'. +CUSTOMIZER_SCRIPT="${srcdir}/emulparams/${EMULATION_NAME}.sh" # Include the emulation-specific parameters: -. ${srcdir}/emulparams/${EMULATION_NAME}.sh +. ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} if test -d ldscripts; then true @@ -36,6 +48,10 @@ else mkdir ldscripts fi +# Set some flags for the emultempl scripts. USE_LIBPATH will +# be set for any libpath-using emulation. + USE_LIBPATH=yes + # Set the library search path, for libraries named by -lfoo. # If LIB_PATH is defined (e.g., by Makefile) and non-empty, it is used. # Otherwise, the default is set here. @@ -44,7 +60,7 @@ fi # To force a logically empty LIB_PATH, do LIBPATH=":". LIB_SEARCH_DIRS=`echo ${libdir} | sed -e 's/:/ /g' -e 's/\([^ ][^ ]*\)/SEARCH_DIR(\1);/g'` -#2.13 LIB_SEARCH_DIRS=`echo ${libdir} | sed -e 's/:/ /g' -e 's/\([^ ][^ ]*\)/SEARCH_DIR(\\"\1\\");/g'` +#2.13: LIB_SEARCH_DIRS=`echo ${libdir} | sed -e 's/:/ /g' -e 's/\([^ ][^ ]*\)/SEARCH_DIR(\\"\1\\");/g'` # Generate 5 or 6 script files from a master script template in # ${srcdir}/scripttempl/${SCRIPT_NAME}.sh. Which one of the 5 or 6 @@ -71,7 +87,8 @@ if [ "x$SCRIPT_NAME" = "xelf" ]; then GENERATE_COMBRELOC_SCRIPT=yes fi -SEGMENT_SIZE=${SEGMENT_SIZE-${TARGET_PAGE_SIZE}} +#2.13: SEGMENT_SIZE=${SEGMENT_SIZE-${TARGET_PAGE_SIZE}} +SEGMENT_SIZE=${SEGMENT_SIZE-${MAXPAGESIZE-${TARGET_PAGE_SIZE}}} # Determine DATA_ALIGNMENT for the 5 variants, using # values specified in the emulparams/<emulation>.sh file or default. @@ -86,7 +103,7 @@ LD_FLAG=r DATA_ALIGNMENT=${DATA_ALIGNMENT_r} DEFAULT_DATA_ALIGNMENT="ALIGN(${SEGMENT_SIZE})" ( echo "/* Script for ld -r: link without relocation */" - . ${srcdir}/emulparams/${EMULATION_NAME}.sh + . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xr @@ -94,7 +111,7 @@ LD_FLAG=u DATA_ALIGNMENT=${DATA_ALIGNMENT_u} CONSTRUCTING=" " ( echo "/* Script for ld -Ur: link w/out relocation, do create constructors */" - . ${srcdir}/emulparams/${EMULATION_NAME}.sh + . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xu @@ -102,7 +119,7 @@ LD_FLAG= DATA_ALIGNMENT=${DATA_ALIGNMENT_} RELOCATING=" " ( echo "/* Default linker script, for normal executables */" - . ${srcdir}/emulparams/${EMULATION_NAME}.sh + . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.x @@ -110,14 +127,14 @@ LD_FLAG=n DATA_ALIGNMENT=${DATA_ALIGNMENT_n} TEXT_START_ADDR=${NONPAGED_TEXT_START_ADDR-${TEXT_START_ADDR}} ( echo "/* Script for -n: mix text and data on same page */" - . ${srcdir}/emulparams/${EMULATION_NAME}.sh + . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xn LD_FLAG=N DATA_ALIGNMENT=${DATA_ALIGNMENT_N} ( echo "/* Script for -N: mix text and data on same page; don't align data */" - . ${srcdir}/emulparams/${EMULATION_NAME}.sh + . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xbn @@ -126,7 +143,7 @@ if test -n "$GENERATE_COMBRELOC_SCRIPT"; then LD_FLAG=c COMBRELOC=ldscripts/${EMULATION_NAME}.xc.tmp ( echo "/* Script for -z combreloc: combine and sort reloc sections */" - . ${srcdir}/emulparams/${EMULATION_NAME}.sh + . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xc rm -f ${COMBRELOC} @@ -140,7 +157,7 @@ if test -n "$GENERATE_SHLIB_SCRIPT"; then # Note that TEXT_START_ADDR is set to NONPAGED_TEXT_START_ADDR. ( echo "/* Script for ld --shared: link shared library */" - . ${srcdir}/emulparams/${EMULATION_NAME}.sh + . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xs if test -n "$GENERATE_COMBRELOC_SCRIPT"; then @@ -148,12 +165,37 @@ if test -n "$GENERATE_SHLIB_SCRIPT"; then DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}} COMBRELOC=ldscripts/${EMULATION_NAME}.xc.tmp ( echo "/* Script for --shared -z combreloc: shared library, combine & sort relocs */" - . ${srcdir}/emulparams/${EMULATION_NAME}.sh + . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xsc rm -f ${COMBRELOC} COMBRELOC= fi + unset CREATE_SHLIB +fi + +if test -n "$GENERATE_PIE_SCRIPT"; then + LD_FLAG=pie + DATA_ALIGNMENT=${DATA_ALIGNMENT_s-${DATA_ALIGNMENT_}} + CREATE_PIE=" " + # Note that TEXT_START_ADDR is set to NONPAGED_TEXT_START_ADDR. + ( + echo "/* Script for ld -pie: link position independent executable */" + . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} + . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc + ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xd + if test -n "$GENERATE_COMBRELOC_SCRIPT"; then + LD_FLAG=cpie + DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}} + COMBRELOC=ldscripts/${EMULATION_NAME}.xc.tmp + ( echo "/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */" + . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} + . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc + ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xdc + rm -f ${COMBRELOC} + COMBRELOC= + fi + unset CREATE_PIE fi case " $EMULATION_LIBPATH " in |