This is the mail archive of the 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]
Other format: [Raw text]

Re: ld -r errors with C++ objects

From: "Brian R. Gaeke" <gaeke at uiuc dot edu> 

> > > When I link two particular .o files together into a new relocatable
> > > (using ld -r) I get errors from ld, instead of a new .o file. This
> > > happens in many of our C++ projects, but only on Cygwin. I have
> > > reduced the test cases significantly.
> > 
> > ld doesn't speak C++. Use g++ to link C++ modules.
> Thanks for the advice.  I tried using g++ for the link step. Ordinarily
> that results in ld complaining that it can't find WinMain, which makes
> sense because I am trying to link two .o files which do not constitute
> an entire program.
> I tried passing the -r option to ld using g++'s -Wl,-r option, so that
> it would not expect to see WinMain; that resulted in an error very similar
> to the one that I got before when I simply used ld -r.

The problem is with the .stabs debugging symbols in C++ - and it has been
around for awhile as you have already noted. Debugging symbols don't seem to cause
problem in C. 

This should work (strip the debug info) but may not be what you want.

ld  -r  -S -o 3,o 1.o 2.o

You may wish to report to binutils list as a bug.


> -- 
> - Yahoo! Personals
-  New people, new possibilities! Try Yahoo! Personals, FREE for a limited period!

Unsubscribe info:
Problem reports:

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