Am 12.05.2011 13:51, schrieb Guido Tack:
On 12 May 2011, at 13:44, Martin Mann wrote:
Hi Gecoder,
I tried to compile Gecode 3.5 on an older system with g++ 4.1.2 and it failed
since the configure checks and requires g++ 4.2 or higher.
Is this really a strict requirement or only needed for certain modules or
features?
I am still in the static build scenario. If I statically build the binary on a
system with g++ 4.5 and run it on the old machine it crashes due to kernel
incompatibilites. Somewhat expected..
Do you see a workaround? Is the dependency strict or for efficiency?
This is a strict dependency, g++< 4.2 does not correctly implement the C++
language we use, and even if you make it compile, the generated code is incorrect
(very subtly incorrect, of course).
I can't see how a static binary compiled with g++ 4.5 can rely on a certain
kernel. Are you sure it's completely linked (i.e., ldd doesn't list any
dependencies)? Could you set up a virtual machine with the correct target
kernel but a newer gcc for compiling?
Seems like there are some kernel compatibility dependencies of g++ as
far as I recall the infos from our administrator.
The binary is completely statically linked. Accordingly, the "ldd" says
"not a dynamic executable".
I compiled and linked the binary with g++ 4.5.1 on a "2.6.35" kernel and
everything works fine.
But if I run the binary on a "2.6.18" kernel I get
FATAL: kernel too old
Segmentation fault
If you dont see a different option it seems I cannot avoid installing a
newer g++ on the old kernel machines to build a compatible static binary
for all machines.. :/
If anybody sees another option, please let me know.
So long,
Martin
--
Martin Mann, Dipl. Bioinf.
Bioinformatics - Inst. of Computer Science
Albert-Ludwigs-University Freiburg
Tel: ++49-761-203-8259
Fax: ++49-761-203-7462
http://www.bioinf.uni-freiburg.de/~mmann/
_______________________________________________
Gecode users mailing list
[email protected]
https://www.gecode.org/mailman/listinfo/gecode-users