This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


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

Re: ld or gcc failing?


"Michael K. Elwood" <mkelwood@qsicorp.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@sourceware.cygnus.com


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