git-sbrk-end
authorGNU Libc Maintainers <debian-glibc@lists.debian.org>
Sat, 10 Oct 2020 19:54:24 +0000 (20:54 +0100)
committerAurelien Jarno <aurel32@debian.org>
Sat, 10 Oct 2020 19:54:24 +0000 (20:54 +0100)
commit911f0d917fe96119210a6bf8ee03ed6dc6e96da3
tree29272f507937abefb4b79c5d945a5c65a2a8561e
parentdc39410f5fedbc28948bab335575499e01816263
git-sbrk-end

Committed from glibc 2.33

From: Samuel Thibault <samuel.thibault@ens-lyon.org>

hurd: Rework sbrk

Making the brk start exactly at the end of the main application binary was
requiring to get it through the _end symbol, which does not work any more
with recent toolchains, and actually produces in libc.so a confusing
external _end symbol that produces odd results, see
https://sourceware.org/bugzilla/show_bug.cgi?id=23499

Trying to do so is quite outdated anyway with the tendency for address
randomization.

Using _end was also allowing to include the main binary data within
the RLIMIT_DATA, but this also seems outdated with dynamic library
loading, and nowadays' memory consumption via malloc and mmap rather than
statically-allocated data.

This adds a BRK_START macro in <vm_param.h> that just tells where we
want to start the brk, and thus removes the _end symbol.

* sysdeps/mach/hurd/i386/vm_param.h: New file.
* sysdeps/mach/hurd/brk.c: Use BRK_START as brk start instead of _end.
Also ignore __data_start.
* hurd/Versions: Remove _end symbol.
* sysdeps/mach/hurd/i386/libc.abilist: Remove _end symbol.

Gbp-Pq: Topic hurd-i386
Gbp-Pq: Name git-sbrk-end.diff
hurd/Versions
misc/Makefile
misc/tst-sbrk-pie.c [new file with mode: 0644]
misc/tst-sbrk-static.c [new file with mode: 0644]
misc/tst-sbrk.c [new file with mode: 0644]
sysdeps/mach/hurd/brk.c
sysdeps/mach/hurd/i386/libc.abilist
sysdeps/mach/hurd/i386/vm_param.h [new file with mode: 0644]