[Bug 237068] /usr/local/bin/ld: BFD (GNU Binutils) 2.30 assertion fail elflink.c:2824

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon May 20 21:10:28 UTC 2019


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=237068

--- Comment #20 from Dimitry Andric <dim at FreeBSD.org> ---
Ok, bisection shows that your test case is fixed by this commit, which is
unfortunately quite huge due to all the changed test coverage:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=fd161d860f1df7140153eab4726705cc3e2727b0

> Define various symbols conditionally in shared libraries
> 
> The values of symbols in shared libraries like _end, _edata, and
> __bss_start are generally not that useful outside of the shared
> library.  This patch defines them conditionally with PROVIDE, since a
> shared library might need the local value.  An example is glibc ld.so
> local access to "_begin", "_etext" and "_end".  (ld.so gains access to
> the local values by making the references using hidden visibility.
> That makes the definitions hidden too.)
> 
> We can't use PROVIDE_HIDDEN in the linker scripts because the shared
> library might need the value of the symbol in the executable.  An
> example is freebsd libc dynamic access to "_end".

See also https://sourceware.org/bugzilla/show_bug.cgi?id=23161

However, it seems that this fix is is already in binutils 2.32, which is the
version of the current port.  So I don't really understand why the port also
asserts.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-toolchain mailing list