Hello Christiaan,
Christiaan Putter wrote:
> I forgot to mention my gcc version:
>
> [pc1536: opensg/build] {163} % gcc -v
> Using built-in specs.
> Target: i586-suse-linux
> Configured with: ../configure --prefix=/usr --infodir=/usr/share/info
> --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib
> --enable-languages=c,c++,objc,fortran,obj-c++,java,ada
> --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.3
> --enable-ssp --disable-libssp --with-bugurl=http://bugs.opensuse.org/
> --with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap
> --with-slibdir=/lib --with-system-zlib --enable-__cxa_atexit
> --enable-libstdcxx-allocator=new --disable-libstdcxx-pch
> --enable-version-specific-runtime-libs --program-suffix=-4.3
> --enable-linux-futex --without-system-libunwind --with-cpu=generic
> --build=i586-suse-linux
> Thread model: posix
> gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)
>
> 2009/4/3 Christiaan Putter <[email protected]>:
>> Hi guys,
>>
>> I've been having some trouble compiling osg 2.0 recently. I'm using
>> suse 11.1 and got it to compile several weeks back, though after a
>> recent svn update I'm getting linking errors for all executables.
>>
>> Linking CXX executable ../bin/testCSM
>> cd /local_disk/cputter/osg2.0/opensg/build/Test && /usr/bin/cmake -E
>> cmake_link_script CMakeFiles/testCSM.dir/link.txt --verbose=1
>> /usr/bin/c++ -msse2 -mfpmath=sse -O3 -DNDEBUG -fPIC
>> CMakeFiles/testCSM.dir/testCSM.cpp.o -o ../bin/testCSM -rdynamic
>> ../bin/libOSGEffectGroups.so.2.0.0 ../bin/libOSGImageFileIO.so.2.0.0
>> ../bin/libOSGContribCSM.so.2.0.0 -ltiff -lpng -ljpeg
>> ../bin/libOSGCluster.so.2.0.0 ../bin/libOSGFileIO.so.2.0.0
>> ../bin/libOSGUtil.so.2.0.0 ../bin/libOSGGroup.so.2.0.0
>> ../bin/libOSGText.so.2.0.0 ../bin/libOSGDrawable.so.2.0.0
>> ../bin/libOSGState.so.2.0.0 -lfreetype -lfontconfig
>> ../bin/libOSGWindowGLUT.so.2.0.0 -lXmu -lXi
>> ../bin/libOSGWindowX.so.2.0.0 ../bin/libOSGWindow.so.2.0.0
>> ../bin/libOSGSystem.so.2.0.0 ../bin/libOSGBase.so.2.0.0 -ldl -lpthread
>> -lz -lGL -lGLU -lX11 -lglut
>> -Wl,-rpath,/local_disk/cputter/osg2.0/opensg/build/bin
>> ../bin/libOSGBase.so.2.0.0: undefined reference to `__sync_fetch_and_or_4'
>> collect2: ld returned 1 exit status
>> make[2]: *** [bin/testCSM] Error 1
>> make[2]: Leaving directory `/local_disk/cputter/osg2.0/opensg/build'
>> make[1]: *** [Test/CMakeFiles/testCSM.dir/all] Error 2
>> make[1]: Leaving directory `/local_disk/cputter/osg2.0/opensg/build'
>> make: *** [all] Error 2
>>
>> After googling for while it seems that this linking error comes up
>> when gcc isn't getting the right CXXFLAGS, specifically -march. I
>> added -march=i586 manually using cmake to the flags though that hasn't
>> solved the problem.
hm, yes, if I read the gcc -v output correctly your compiler is already
configured to target i586.
What I don't really understand is why the atomic builtins are not
available, or more precisely the "OR" seems to be problematic as it does
not complain about __sync_fetch_and_and AFAICS.
What processor do you have? Can you try a "higher" value for -march
(e.g. pentium4 or prescott)? And finally (I suppose you checked, but
just to make sure) does the -march value show up on the compiler command
line when you add it by hand?
Cheers,
Carsten
------------------------------------------------------------------------------
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users