libgcc_s, Linux, and PT_GNU_EH_FRAME, and binutils
Jakub Jelinek
jakub@redhat.com
Sun Aug 4 23:11:00 GMT 2002
On Mon, Aug 05, 2002 at 06:43:17AM +0200, Martin v. Loewis wrote:
> Further analysis shows that the incompatibility was caused due to
> different binutils versions. On the system where the binary was
> compiled, binutils 2.12 was present, which has --eh-frame-hdr.
>
> On the system where the binary was run, binutils 2.11 was present,
> which does not support this option.
>
> So binutils versions that differ by one minor can cause binary
> incompatibilities for C++ :-(
Here I don't understand what you mean. If one gcc was configured against
2.12 binutils (2.12.1+ or plain 2.12 (which shouldn't be used)?), then
it forever requires those binutils, as it passes --eh-frame-hdr from
specs (and relies on PT_GNU_EH_FRAME being present, so
that __register_frame* calls are not necessary in the crtstuff).
Which crtstuff is used is picked at link time and at the same time
you either pass or don't pass --eh-frame-hdr, so you either rely on
PT_GNU_EH_FRAME or don't.
Jakub
More information about the Gcc
mailing list