Compilation issue on Linux/PowerPC

Guillaume Libersat glibersat@linux62.org
Sun Aug 13 22:14:00 GMT 2006


Hello,

I'm trying to build a big software called crystalspace3d
(http://www.crystalspace3d.org) on GNU/Linux PowerPC (Debian).

I'm using gcc/g++/cpp 4.1, which works well to compile lot of programs,
but I'm experiencing something strange with CS3d.

Here's the log :

--------------------------------
./out/linuxppc/debug/plugins/mesh/sprcal3d/object/sprcal3d.o: In
function `csSpriteCal3DMeshObjectFactory':
plugins/mesh/sprcal3d/object/sprcal3d.cpp:169: undefined reference to
`std::allocator<char>::allocator()@@GLIBCXX_3.4'
plugins/mesh/sprcal3d/object/sprcal3d.cpp:169: undefined reference to
`std::basic_string<char, std::char_traits<char>, std::allocator<char>
>::~basic_string()'
plugins/mesh/sprcal3d/object/sprcal3d.cpp:169: undefined reference to
`std::allocator<char>::~allocator()@@GLIBCXX_3.4'
plugins/mesh/sprcal3d/object/sprcal3d.cpp:169: undefined reference to
`std::allocator<char>::allocator()@@GLIBCXX_3.4'
plugins/mesh/sprcal3d/object/sprcal3d.cpp:169: undefined reference to
`std::basic_string<char, std::char_traits<char>, std::allocator<char>
>::~basic_string()'
plugins/mesh/sprcal3d/object/sprcal3d.cpp:169: undefined reference to
`std::allocator<char>::~allocator()@@GLIBCXX_3.4'
./out/linuxppc/debug/plugins/mesh/sprcal3d/object/sprcal3d.o: In
function `CS::Plugin::SprCal3d::ReportCalError(iObjectRegistry*, char
const*, char const*)':
plugins/mesh/sprcal3d/object/sprcal3d.cpp:84: undefined reference to
`std::basic_string<char, std::char_traits<char>, std::allocator<char>
>::data() const'
plugins/mesh/sprcal3d/object/sprcal3d.cpp:84: undefined reference to
`std::basic_string<char, std::char_traits<char>, std::allocator<char>
>::~basic_string()'
plugins/mesh/sprcal3d/object/sprcal3d.cpp:86: undefined reference to
`std::basic_string<char, std::char_traits<char>, std::allocator<char>
>::size() const'
plugins/mesh/sprcal3d/object/sprcal3d.cpp:88: undefined reference to
`std::basic_string<char, std::char_traits<char>, std::allocator<char>
>::data() const'
plugins/mesh/sprcal3d/object/sprcal3d.cpp:92: undefined reference to
`std::basic_string<char, std::char_traits<char>, std::allocator<char>
>::data() const'
./out/linuxppc/debug/plugins/mesh/sprcal3d/object/sprcal3d.o: In
function
`CS::Plugin::SprCal3d::csSpriteCal3DMeshObjectFactory::LoadCoreAnimation(iVFS*,
char const*, char const*, int, float, float, float, int, int, int,
bool)':
plugins/mesh/sprcal3d/object/sprcal3d.cpp:275: undefined reference to
`std::allocator<char>::allocator()@@GLIBCXX_3.4'
plugins/mesh/sprcal3d/object/sprcal3d.cpp:275: undefined reference to
`std::allocator<char>::~allocator()@@GLIBCXX_3.4'
plugins/mesh/sprcal3d/object/sprcal3d.cpp:276: undefined reference to
`std::basic_string<char, std::char_traits<char>, std::allocator<char>
>::~basic_string()'
./out/linuxppc/debug/plugins/mesh/sprcal3d/object/sprcal3d.o: In
function `~Map':
/home/glibersat/src/gib/build/usr/include/cal3d/corematerial.h:32:
undefined reference to `std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::~basic_string()'
./out/linuxppc/debug/plugins/mesh/sprcal3d/object/sprcal3d.o: In
function `Map':
/home/glibersat/src/gib/build/usr/include/cal3d/corematerial.h:32:
undefined reference to `std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::basic_string()'
collect2: ld returned 1 exit status
----------------------------

Command line is :
    g++ -o sprcal3d.so
    ./out/linuxppc/debug/plugins/mesh/sprcal3d/object/sprcal3d.o  -lm
    -ldl -lnsl -Wl,-Bsymbolic -Wl,-z,defs -Wl,--warn-unresolved-symbols
    -L/usr/local/lib -Wl,-E -g3 -shared
    ./out/linuxppc/debug/libs/libcrystalspace.a -lpthread -lz
    -L/home/glibersat/src/gib/build/usr/lib -lcal3d -lm -ldl -lnsl
    -Wl,-Bsymbolic -Wl,-z,defs -Wl,--warn-unresolved-symbols
    -L/usr/local/lib -Wl,-E -g3 \
      -Wl,-soname,sprcal3d.so

The Cald3d library is compiled with the same compiler.
My libstdc++ seems to be the right one (6.0.8), symlinks are ok.

The buildsys seems ok too since it builds fine on x86 and x86-64. This is
probably a powerpc related issue, but I really don't know what to do.

I also have messages like this :

--------------
{standard input}: Assembler messages:
{standard input}:1517424: Error: operand out of range
(0x0000000000008000 is not between 0xffffffffffff8000 and
0x0000000000007fff)
{standard input}:1517432: Error: operand out of range
(0x0000000000008004 is not between 0xffffffffffff8000 and
0x0000000000007fff)
--------------

Thanks for your help !

Guillaume Libersat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc-help/attachments/20060813/7ad4affe/attachment.sig>


More information about the Gcc-help mailing list