[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