[oi-dev] gcc 5.3 testing

Alexander Pyhalov alp at rsu.ru
Wed May 11 19:22:09 UTC 2016


Hi.
I'm trying to build several components in oi-userland with gcc 5.3 to 
find out which ones need fixing.

So far I found one interesting issue.  If we specify -L/usr/lib during 
linking, gcc tries to link with gcc 4 runtime and I get errors like :

ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1753 
(illumos)
Undefined                       first referenced
  symbol                             in file
std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::swap(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >&) script/api/script_admin.o
std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::compare(char const*) const game/game_text.o
std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::_M_create(unsigned int&, unsigned int) fileio.o
std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::_M_replace_aux(unsigned int, unsigned int, 
unsigned int, char) fileio.o
std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::compare(unsigned int, unsigned int, char const*) 
const game/game_text.o
std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::_M_replace(unsigned int, unsigned int, char 
const*, unsigned int) gfx_layout.o
std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::_M_append(char const*, unsigned int) 
script/api/script_admin.o
ld: fatal: symbol referencing errors. No output written to openttd



When I run something like
/usr/gcc/5.3/bin/g++ -m32 -rdynamic -lnsl -lsocket  ..<a lot of object 
files>...   -lstdc++ -lpthread -lc -L/usr/lib -lSDL -lpthread -lposix4 
-lz -llzma   -llzo2 -lpng16   -lfontconfig -lfreetype   -lfreetype  -o 
openttd

it runs

/usr/gcc/5.3/lib/gcc/i386-pc-solaris2.11/5.3.0/collect2 -M 
/usr/gcc/5.3/lib/gcc/i386-pc-solaris2.11/5.3.0/../../../libgcc-unwind.map -Y 
"P,/usr/gcc/5.3/lib:/lib:/usr/lib" -R /usr/gcc/5.3/lib -Qy -o openttd 
/usr/lib/crt1.o /usr/lib/crti.o /usr/lib/values-Xa.o 
/usr/gcc/5.3/lib/gcc/i386-pc-solaris2.11/5.3.0/crtbegin.o -L/usr/lib 
-L/usr/gcc/5.3/lib/gcc/i386-pc-solaris2.11/5.3.0 
-L/usr/gcc/5.3/lib/gcc/i386-pc-solaris2.11/5.3.0/../../.. -lnsl -lsocket 
  ..<a lot of object files>...   "-lstdc++" -lpthread -lSDL -lpthread 
-lposix4 -lz -llzma -llzo2 -lpng16 -lfontconfig -lfreetype -lfreetype 
"-lstdc++" -lm -lrt -lc -lgcc_s -lgcc -lc -lgcc_s -lgcc 
/usr/gcc/5.3/lib/gcc/i386-pc-solaris2.11/5.3.0/crtend.o /usr/lib/crtn.o

and tries to link with libstdc++  from /usr/lib...

Does someone have any cure for this (so that 
-L/usr/gcc/5.3/lib/gcc/i386-pc-solaris2.11/5.3.0 
-L/usr/gcc/5.3/lib/gcc/i386-pc-solaris2.11/5.3.0/../../.. would be 
prepended to link path specification, but not appended?

-- 
Best regards,
Alexander Pyhalov,
system administrator of Southern Federal University IT department




More information about the oi-dev mailing list