This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: pseudo-relocations for pe targets


Kai Tietz wrote:

> It would be very kind, if somebody could verify this patch on cygwin for
> no side-effects.

I don't see how you can propose changing the size of the data structure
that holds the list of pseudo-relocs without touching the runtime part
of the code in Cygwin that actually does the relocating
(winsup/cygwin/lib/pseudo-reloc.c).  And similarly with the code in the
32 bit MinGW runtime.  This adds a versioning problem in that now the
version of the linker and the version of libcygwin.a have to both agree
otherwise you link an executable that contains a v2 list but whose
runtime support expects to read a v1 list, or vice versa.  There
currently exists no such close coupling, and creating one is going to
break all kinds of things and surprise many people.

It seems to me that the only possible way that you could pull off such a
change in any sane way would be to have the runtime relocator be able to
detect dynamically at runtime whether the linker that was used created a
v1 or a v2 list, and act appropriately.  Then you leave v1 the default
until that version of libcygwin.a had been reasonably widely distributed
(several releases), and then you can make v2 the default.  But I don't
see how you can just switch to v2 like this.

Brian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]