[Coin-discuss] Building shared libraries with gcc 3

Ted Ralphs tkralphs at lehigh.edu
Thu Feb 16 20:02:53 EST 2006


We are currently in the process of building a set of precompiled COIN 
libraries that will be made available for download. I am working on 
compiling the Linux binaries on a system on which gcc 4.0 and gcc 3.4 
are both installed. Unfortunately, I can't seem to compile shared 
libraries with gcc 3.4 anymore, even though I'm sure it used to work 
before I upgraded to gcc 4.0. Actually, to be precise, the compilation 
isn't the problem, it's the linking. At link time, I get lots of errors like

`.L355' referenced in section `.rodata' of Linux-g/CoinPresolveSubst.o:
defined in discarded section `.gnu.linkonce.t._Z9CoinZeroNIcEvPT_i' of
Linux-g/CoinPresolveSubst.o

These errors go away if I remove the -fPIC argument, but this makes the 
resulting libraries fairly useless. Googling

"referenced in section `.rodata' defined in discarded section"

gives lots of hits with lots of theories about the source of the error. 
The most likely suspect seems to be that if you want to use an old 
version of gcc, you also have to have a matching version of binutils. 
Before I go to the trouble of trying to install an older version of 
binutils, can someone who is using gcc 3 on Linux verify that the main 
COIN libraries can be built from the code currently in CVS? Any ideas 
about what this problem would also be welcome. Thanks for your help!

Cheers,

Ted
-- 
Dr. Ted Ralphs
Assistant Professor
Industrial and Systems Engineering
Lehigh University
(610)758-4784
tkralphs at lehigh.edu
www.lehigh.edu/~tkr2



More information about the Coin-discuss mailing list