[Coin-discuss] compiling Cbc/Clp/Osi with gcc 3

Kish Shen kish.shen at crosscoreop.com
Tue Oct 14 20:46:33 EDT 2008


Hi,
I have been having problems with compiling Clp/Cbc/Osi. With the source from the trunk branch,
I get crashes with even the simplest MIP problem (two constraints with two variables). This
started happening with the source from earlier this year -- certainly with a source downloaded 
in April. I reported the problem at the time, and John Forrest was unable to reproduce the
problem. On discussing with him, it seemed that he was using gcc 4 as his compiler, while I 
was using gcc 3 , and I thought this might be the reason for the difference. 

I have been able to install gcc 4 (I tried gcc 4.1, 4.2 and 4.3) to see if this made a difference. It 
does. With a trunk branch downloaded on 23 Sept, there was no crash when the code was compiled
with the various versions of gcc 4 (on Linux), but it still crashes when compiled with gcc 3.

As we distribute binaries for our system as well as source, I would like the binaries to execute 
on as wide a range of system as possible. Unfortunately, Clp/Cbc compiled with gcc 4 will not
run on a system that has only gcc 3. This is because there are additional symbols in libstdc++.so
in the version that comes with gcc 4, so I get a missing symbol error when I try to load Clp/Cbc
on a system that does not have gcc 4.  In fact, trying to load a Clp/Cbc compiled with gcc 4.2 on
a system with gcc 4.1 also produce the same problem. 

I tried using the static libstdc++.a instead, but this leads to other missing symbols supplied by 
libgcc.  So I was unable to use a Clp/Cbc compiled with gcc 4 on a system that only has gcc 3.

The only other way I can think of using recent versions of Clp/Cbc with platforms that have older OS 
(and thus gcc 3) is to fix the problem with compiling Clp/Cbc with gcc 3. I am using a Clp/Cbc I
downloaded in Nov 2007, because this does not crash, but I would very much like to upgrade this
to the current Clp/Cbc. 

The system I have been using that has gcc 3 only is a Linux system installed about 3 years ago, 
so it is not unreasonable to expect binaries to run on such systems.

Does anyone have any other suggestion on how I could solve this problem? 

Thanks in advance for any help/information!

Cheers,

Kish



More information about the Coin-discuss mailing list