Author: sthibault Date: 2013-02-24 16:36:50 +0000 (Sun, 24 Feb 2013) New Revision: 5495
Added: glibc-package/branches/eglibc-2.17/debian/patches/hurd-i386/tg-pie-sbrk.diff Modified: glibc-package/branches/eglibc-2.17/debian/changelog glibc-package/branches/eglibc-2.17/debian/patches/series Log: forward-port 5489 and 5490 from trunk Modified: glibc-package/branches/eglibc-2.17/debian/changelog =================================================================== --- glibc-package/branches/eglibc-2.17/debian/changelog 2013-02-24 14:41:18 UTC (rev 5494) +++ glibc-package/branches/eglibc-2.17/debian/changelog 2013-02-24 16:36:50 UTC (rev 5495) @@ -611,6 +611,8 @@ * patches/hurd-i386/unsubmitted-select-EINTR.diff: Fix select vs signals. * patches/hurd-i386/cvs-libpthread_lock.diff: Fix file lock primitives version to fix stdio thread-safety. + * patches/hurd-i386/tg-pie-sbrk.diff: Fix sbrk() use in PIE binaries (e.g. + libgc, perl). [ Adam Conrad ] * debian/testsuite-checking/compare.sh: Disable failing the build on test Copied: glibc-package/branches/eglibc-2.17/debian/patches/hurd-i386/tg-pie-sbrk.diff (from rev 5489, glibc-package/trunk/debian/patches/hurd-i386/tg-pie-sbrk.diff) =================================================================== --- glibc-package/branches/eglibc-2.17/debian/patches/hurd-i386/tg-pie-sbrk.diff (rev 0) +++ glibc-package/branches/eglibc-2.17/debian/patches/hurd-i386/tg-pie-sbrk.diff 2013-02-24 16:36:50 UTC (rev 5495) @@ -0,0 +1,34 @@ +From: Samuel Thibault <samuel.thiba...@ens-lyon.org> +Subject: Fix sbrk in PIE binaries + +In PIE mode, the program gets loaded at very low address, and thus _end is very +low, just before libraries, and thus initializing the brk to it does not make +sense, since there is no room left there. Hardcode the brk to 0x8000000 for now +as a workaround. + +Signed-off-by: Samuel Thibault <samuel.thiba...@ens-lyon.org> + +--- + sysdeps/mach/hurd/brk.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/sysdeps/mach/hurd/brk.c b/sysdeps/mach/hurd/brk.c +index 1900277..fb74e83 100644 +--- a/sysdeps/mach/hurd/brk.c ++++ b/sysdeps/mach/hurd/brk.c +@@ -143,8 +143,12 @@ init_brk (void) + /* If _hurd_brk is already set, don't change it. The assumption is that + it was set in a previous run before something like Emacs's unexec was + called and dumped all the data up to the break at that point. */ +- if (_hurd_brk == 0) ++ if (_hurd_brk == 0) { + _hurd_brk = (vm_address_t) &_end; ++ if (_hurd_brk < 0x8000000) ++ /* XXX: PIE case, get out of library area */ ++ _hurd_brk = 0x8000000; ++ } + + pagend = round_page (_hurd_brk); + +-- +tg: (4a7fa7e..) t/pie-sbrk (depends on: baseline) Modified: glibc-package/branches/eglibc-2.17/debian/patches/series =================================================================== --- glibc-package/branches/eglibc-2.17/debian/patches/series 2013-02-24 14:41:18 UTC (rev 5494) +++ glibc-package/branches/eglibc-2.17/debian/patches/series 2013-02-24 16:36:50 UTC (rev 5495) @@ -112,6 +112,7 @@ hurd-i386/tg-setitimer.diff hurd-i386/tg-select-EINTR.diff hurd-i386/cvs-libpthread_lock.diff +hurd-i386/tg-pie-sbrk.diff hurd-i386/tg-ifaddrs_v6.diff i386/local-biarch.diff -- To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1u9ezg-0000ox...@vasks.debian.org