Mail Archives: cygwin/1999/09/24/17:32:42
"Michael K. Elwood" <mkelwood AT qsicorp DOT com> writes:
> > I have the following problem:
> >
> > I compiled many C modules, and I'm using `ld' to build a '.a' library file
> > and it fails with the following error:
> > <<
> > rm -f Dobj3.a
> > ld -r -o Dobj3.a do243d.o re247d.o in245d.o bo251d.o ch249d.o po253d.o
> etc. etc.
>
> ar is the correct tool for creating libraries (archives). ld won't do what
> you want here. Don't forget to run ranlib on your library when you are done
> creating it (if you want it to be indexed.) Hope this helps.
>
You missed the '-r' in Emmanuel's bug report. He's trying to build a
relocatable output, which is quite different from an archive that ar
builds.
The problem here, and Emmanuel has already filed a bug report on this,
is that GNU as/ld on x86-win32 can only handle 16-bit relocations, and
some machine-generated code can fail at link time thanks to that. MSVC
gets around it with some magic (I haven't looked at how the newer versions
of MSVC handle this, but presumably it's cleaner than it used to be).
If I remember correctly, MSVC notices what needs to be relocated and
what does not, and that's why it can handle larger number of relocs in
a single object file.
Unless someone fixes it, it'll remain a bug.
Regards,
Mumit
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
- Raw text -