The Return of Revenge of Son of the Speclib Strikes Back :)
Dave Korn
dave.korn.cygwin@googlemail.com
Sat Apr 18 13:43:00 GMT 2009
[ Let's try again in the right place, shall we? ]
The new speclibs libraries work great, but there's one piece of
unanticipated fallout: the libtool func_win32_libid() tests can no longer
identify them as import libraries. Which is fair enough, since they aren't,
they are now indirect references to import libraries; but we want it to treat
them the same anyway.
Here's one possible approach: I add a dummy member to the archives just in
order to trip libtool's "nm | grep ' I '" test. I repurposed the
as-far-as-I-can-tell currently unused "--static" option to speclib to mean
"bodily shove this object into the generated library".
As usual, I don't speak perl good, which is why I add $static to the
%extract hash before invoking ar and remove it again afterward. If I just
unconditionally tagged ", $static" on the end of the invocation, it would fail
if no --static option was supplied, giving ar an empty string as an argv
member, and I didn't know how to conditionally add it as an argument only when
defined, so it was either this or cut-and-paste two versions of the
invocation, one mentioning $static and the other not, with an if defined
$static to choose between them; I would welcome being shown a better way to do
this if there is one.
I'm currently putting the attached through a full build / install/ rebuild
DLL, binutils and gcc cycle, but it already fixed the failure to build libjava
as a DLL that I've been getting on GCC HEAD with the new speclib libraries.
What do you think? Reasonable approach? Reasonable implementation?
Problems with either? Ok for head?
winsup/cygwin/ChangeLog
* magicimportsym.s: New file.
* Makefile.in (speclib): Add --static option to invocation
naming magicimportsym.o
(${CURDIR}/libc.a): Add magicimportsym.o to dependencies.
(${CURDIR}/libm.a): Likewise.
(libpthread.a): Likewise.
(libutil.a): Likewise.
(libdl.a): Likewise.
(libresolv.a): Likewise.
* speclib: Repurpose --static option to add an archive member
unconditionally.
cheers,
DaveK
-------------- next part --------------
A non-text attachment was scrubbed...
Name: magic-import-symbol-patch.diff
Type: text/x-c
Size: 3533 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20090418/ba2f78c4/attachment.bin>
More information about the Cygwin-patches
mailing list