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>