Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Nov 2018 12:52:08 +0000
From:      David Chisnall <theraven@FreeBSD.org>
To:        Ed Maste <emaste@freebsd.org>
Cc:        "freebsd-toolchain@FreeBSD.org" <freebsd-toolchain@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: GNU binutils 2.17.50 retirement planning
Message-ID:  <42FDE8FB-67DF-4609-B5B7-988D93727DDA@FreeBSD.org>
In-Reply-To: <CAPyFy2Dp6eAFmDGe1825BOmXNzpUDzj_iiDCSSR2S9rHv0bz6Q@mail.gmail.com>
References:  <CAPyFy2Dp6eAFmDGe1825BOmXNzpUDzj_iiDCSSR2S9rHv0bz6Q@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 23 Nov 2018, at 16:23, Ed Maste <emaste@freebsd.org> wrote:
>=20
> For some time we have been incrementally working to retire the use of
> obsolete GNU Binutils 2.17.50 tools. At present we still install three
> binutils by default:
>=20
> as
> ld.bfd
> objdump

We probably need to kill ld.bfd before 12.0.  It predates ifunc and so =
interprets anything with an ifunc as requiring a copy relocation.  This =
means that if you use it to link against any shared library (like, say, =
libc.so.7 in FreeBSD 12.0) that uses ifuncs then it will insert a =
relocation so that the ifunc resolver (which contains PC-relative =
addresses of other functions) will be copied into the main binary.  This =
then causes your program to crash the first time anything calls memcpy, =
in a very difficult-to-debug way (it jumps into a random bit of your =
main binary, runs for a bit, and then dies).

David




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?42FDE8FB-67DF-4609-B5B7-988D93727DDA>