From 9d985cdc65f89e760fd597ab52c0f6f84ebcbbb5 Mon Sep 17 00:00:00 2001 From: Marcel Moolenaar Date: Tue, 22 Mar 2011 17:19:35 +0000 Subject: [PATCH] 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. --- gnu/usr.bin/binutils/ld/Makefile.ia64 | 5 +++-- gnu/usr.bin/binutils/ld/elf64_ia64_fbsd.sh | 3 ++- 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 20b0a2bf4e1..50a7bb63a63 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 a7e2675e920..213b494736f 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