svn commit: r334626 - in head: lib/libc/amd64 lib/libc/amd64/sys lib/libc/arm lib/libc/arm/sys lib/libc/i386 lib/libc/i386/sys lib/libc/mips lib/libc/mips/sys lib/libc/powerpc lib/libc/powerpc/sys ...
Mark Johnston
markj at freebsd.org
Tue Jun 5 13:07:07 UTC 2018
On Tue, Jun 05, 2018 at 03:50:12PM +0800, Ganbold Tsagaankhuu wrote:
> On Tue, Jun 5, 2018 at 3:35 AM, Mark Johnston <markj at freebsd.org> wrote:
>
> > Author: markj
> > Date: Mon Jun 4 19:35:15 2018
> > New Revision: 334626
> > URL: https://svnweb.freebsd.org/changeset/base/334626
> >
> > Log:
> > Reimplement brk() and sbrk() to avoid the use of _end.
> >
> > Previously, libc.so would initialize its notion of the break address
> > using _end, a special symbol emitted by the static linker following
> > the bss section. Compatibility issues between lld and ld.bfd could
> > cause the wrong definition of _end (libc.so's definition rather than
> > that of the executable) to be used, breaking the brk()/sbrk()
> > interface.
> >
> > Avoid this problem and future interoperability issues by simply not
> > relying on _end. Instead, modify the break() system call to return
> > the kernel's view of the current break address, and have libc
> > initialize its state using an extra syscall upon the first use of the
> > interface. As a side effect, this appears to fix brk()/sbrk() usage
> > in executables run with rtld direct exec, since the kernel and libc.so
> > no longer maintain separate views of the process' break address.
> >
>
>
> Maybe it is not really related, or I'm doing something wrong, but when I
> try to run release.sh script on FreeBSD 11.0-RELEASE-p9 to build pine64
> image, it stops with error:
r334653 should fix that, sorry.
More information about the svn-src-head
mailing list