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.
This commit is contained in:
Marcel Moolenaar 2011-03-22 17:19:35 +00:00
parent 1961f30034
commit 9d985cdc65
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=219876
2 changed files with 5 additions and 3 deletions

View File

@ -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

View File

@ -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