summaryrefslogtreecommitdiffstats
path: root/gnu
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2011-03-22 17:19:35 +0000
committermarcel <marcel@FreeBSD.org>2011-03-22 17:19:35 +0000
commit740a8e4e1df03fb0c905406ade3ef033885d0467 (patch)
tree13b1d2f8ec17a8b18ae223695835a52bfa6bc9d8 /gnu
parentd43623eb141956b19ec3c5172eea78b9e17ef3ef (diff)
downloadFreeBSD-src-740a8e4e1df03fb0c905406ade3ef033885d0467.zip
FreeBSD-src-740a8e4e1df03fb0c905406ade3ef033885d0467.tar.gz
Change the load address from offset 0 in region 1 to offset 4G in region 0.
This (almost) gives us the address space back (at the bottom) that we lost at the top. Region 0 has traditionally been reserved for IA-32 emulation, which has not been of great interest. By starting 64-bit processes at the 4G boundary we at least preserve some of the advantages: 1. Any invalid pointer cast (from int to pointer and back) will still always fail and not only when more than 4GB of memory is in use. 2. Memory sharing between 64-bit and 32-bit processes is still possibly by using addresses < 4G.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/usr.bin/binutils/ld/Makefile.ia645
-rw-r--r--gnu/usr.bin/binutils/ld/elf64_ia64_fbsd.sh3
2 files changed, 5 insertions, 3 deletions
diff --git a/gnu/usr.bin/binutils/ld/Makefile.ia64 b/gnu/usr.bin/binutils/ld/Makefile.ia64
index 20b0a2b..50a7bb6 100644
--- a/gnu/usr.bin/binutils/ld/Makefile.ia64
+++ b/gnu/usr.bin/binutils/ld/Makefile.ia64
@@ -4,12 +4,13 @@ NATIVE_EMULATION= elf64_ia64_fbsd
SRCS+= e${NATIVE_EMULATION}.c
CLEANFILES+= e${NATIVE_EMULATION}.c
-e${NATIVE_EMULATION}.c: emulparams/${NATIVE_EMULATION}.sh emultempl/elf32.em \
+e${NATIVE_EMULATION}.c: ${.CURDIR}/${NATIVE_EMULATION}.sh emultempl/elf32.em \
scripttempl/elf.sc genscripts.sh stringify.sed
sh ${.CURDIR}/genscripts.sh ${SRCDIR}/ld ${LIBSEARCHPATH} \
${TOOLS_PREFIX}/usr \
${HOST} ${TARGET_TUPLE} ${TARGET_TUPLE} \
- ${NATIVE_EMULATION} "" no ${NATIVE_EMULATION} ${TARGET_TUPLE}
+ ${NATIVE_EMULATION} "" no ${NATIVE_EMULATION} ${TARGET_TUPLE} \
+ ${.CURDIR}/${NATIVE_EMULATION}.sh
#XXX EMS+= eelf64_ia64
diff --git a/gnu/usr.bin/binutils/ld/elf64_ia64_fbsd.sh b/gnu/usr.bin/binutils/ld/elf64_ia64_fbsd.sh
index a7e2675..213b494 100644
--- a/gnu/usr.bin/binutils/ld/elf64_ia64_fbsd.sh
+++ b/gnu/usr.bin/binutils/ld/elf64_ia64_fbsd.sh
@@ -1,5 +1,6 @@
+# $FreeBSD$
. ${srcdir}/emulparams/elf64_ia64.sh
-TEXT_START_ADDR="0x2000000000000000"
+TEXT_START_ADDR="0x0000000100000000"
unset DATA_ADDR
unset SMALL_DATA_CTOR
unset SMALL_DATA_DTOR
OpenPOWER on IntegriCloud