This is the mail archive of the
cygwin-xfree@cygwin.com
mailing list for the Cygwin XFree86 project.
Re: Esound 0.2.8 is dead - Esound 0.2.23 compiles fine
Robert Collins wrote:
> Chuck: A suggestion for ld if it's feasible: Detect auto-exported
> variables that can't be auto-imported and warn about them. This will
> save guesswork or laborious source code auditing for new ports.
>
> I haven't looked at the auto-import stuff since the work we did months
> ago - does this sound feasible to you?
I don't think so. The way we recognize the problematic imports not
proactive, it's reactive. When gcc compiles an object with an import
reference to a "bad" variable type, it creates an offset addend. We SEE
that nonzero addend, and flag it as an error -- but you only see that when
trying to link the *calling* object; you don't see that funky addend stuff
when linking the *providing* object (the DLL itself).
AFAIK, there's nothing special about the export itself (except that it
requires multiple words for storage) that we can recognize proactively when
building the DLL itself. (Anything based on subtracting the base addresses
of "consecutive" exports is bound to be flaky).
I don't really think this is doable -- but then again, I didn't believe
Paul could pull of the auto-import thing in the first place. :-)
--Chuck