
Sorry for writing in italian... Thank you for the super-fast reply. I was trying to install PPL 0.9. I don't understand from the linker's error message to which library belong the symbols he's looking for... whether they belong to the gmp library (which it may be the case I compiled with the wrong options) or to the SICStus' library or to PPL.
I'm pretty sure the linker has some problems with the gmp library but I cannot "interpret" the linker's output
Thank you again for any help Valerio
Roberto Bagnara wrote:
Valerio Senni wrote:
Spero di non essere off-topic con il seguente messaggio. In questo caso mi scuso anticipatamente. Dopo aver compilato gmp library, nella compilazione della PPL mi dà il seguente errore riguardo il modulo per l'interfaccia con SICStus
A cosa è dovuto questo errore? Grazie per qualunque suggerimento mi possiate dare.
Dear Valerio,
your message is perfectly adequate for the list. However, the list language is English, hence my reply is in English.
...
Making all in SICStus /bin/sh ../../../libtool --mode=link --tag=CXX \ spld --main=prolog \ --cflag=`echo ' -W -Wall -g -O2 -Wno-long-double' | tr " " ","` \ --resources=ppl_sicstus.s.o -o ppl_sicstus \ ../../../src/libppl.la \ ../../../Watchdog/src/libpwl.la \ -lm -L/usr/local/lib -lgmpxx -L/usr/local/lib -lgmp -R/usr/local/lib -R/usr/local/lib spld --main=prolog --cflag=,-W,-Wall,,-g,-O2,-Wno-long-double --resources=ppl_sicstus.s.o -o .libs/ppl_sicstus -Wl,-bind_at_load ../../../src/.libs/libppl.dylib ../../../Watchdog/src/.libs/libpwl.dylib -lm -L/usr/local/lib /usr/local/lib/libgmpxx.dylib /usr/local/lib/libgmp.dylib SICStus 3.11.2 (powerpc-darwin-7.4.0): Wed Jun 2 11:48:07 CEST 2004 Licensed to uniroma2.it /usr/bin/ld: Undefined symbols: __gnu_cxx::__exchange_and_add(int volatile*, int) std::logic_error::what() const std::basic_string<char, std::char_traits<char>, std::allocator<char>
::_Rep::_M_destroy(std::allocator<char> const&)
std::basic_string<char, std::char_traits<char>, std::allocator<char>
::_Rep::_S_terminal
std::basic_string<char, std::char_traits<char>, std::allocator<char>
::_Rep::_S_empty_rep_storage
std::basic_string<char, std::char_traits<char>, std::allocator<char>
::_Rep::_S_create(unsigned long, unsigned long,
std::allocator<char> const&) std::basic_string<char, std::char_traits<char>, std::allocator<char>
::basic_string(char const*, std::allocator<char> const&)
std::basic_string<char, std::char_traits<char>, std::allocator<char>
::basic_string(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&) std::basic_string<char, std::char_traits<char>, std::allocator<char>
::~basic_string()
std::logic_error::~logic_error() std::domain_error::domain_error(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) std::length_error::length_error(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) std::invalid_argument::invalid_argument(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(std::_Ios_Openmode) std::locale::~locale() std::ios_base::Init::Init() std::ios_base::Init::~Init() std::ios_base::~ios_base() std::__throw_bad_alloc() std::_Rb_tree_decrement(std::_Rb_tree_node_base const*) std::_Rb_tree_decrement(std::_Rb_tree_node_base*) std::__throw_logic_error(char const*) std::__throw_length_error(char const*) std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&) std::terminate() typeinfo for std::logic_error typeinfo for std::runtime_error typeinfo for std::bad_alloc typeinfo for std::exception VTT for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> > vtable for __cxxabiv1::__class_type_info vtable for __cxxabiv1::__si_class_type_info vtable for __cxxabiv1::__vmi_class_type_info vtable for std::basic_streambuf<char, std::char_traits<char> > vtable for std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> > vtable for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> > vtable for std::basic_ios<char, std::char_traits<char> > operator delete(void*) operator new(unsigned long) ___cxa_allocate_exception ___cxa_begin_catch ___cxa_end_catch ___cxa_free_exception ___cxa_guard_abort ___cxa_guard_acquire ___cxa_guard_release ___cxa_pure_virtual ___cxa_rethrow ___cxa_throw ___gxx_personality_v0 collect2: ld returned 1 exit status ! compiler command failed: 256 at /usr/local/bin/spld line 700, <CONF> line 126. make[4]: *** [ppl_sicstus] Error 1 make[3]: *** [all-recursive] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
This seems to indicate that, for some reason, the version of spld you have in your system fails to link with the C++ standard library. For comparison, here is what happens under Linux:
/bin/sh ../../../libtool --mode=link --tag=CXX \ spld --main=prolog \ --cflag=`echo ' -W -Wall -g -O2' | tr " " ","` \ --resources=ppl_sicstus.s.o -o ppl_sicstus \ ../../../src/libppl.la \ ../../../Watchdog/src/libpwl.la \ -lm -L/usr/local/lib -lgmpxx -L/usr/local/distrib/objdir/i686-pc-linux-gnu/libstdc++-v3/src -L/usr/local/distrib/objdir/i686-pc-linux-gnu/libstdc++-v3/src/.libs -L/usr/local/distrib/objdir/./gcc -L/usr/local/lib/gcc/i686-pc-linux-gnu/../.. -L/usr/local/lib -lgmp -R/usr/local/lib -R/usr/local/lib spld --main=prolog --cflag=,-W,-Wall,,-g,-O2 --resources=ppl_sicstus.s.o -o .libs/ppl_sicstus ../../../src/.libs/libppl.so -L/usr/local/distrib/objdir/i686-pc-linux-gnu/libstdc++-v3/src -L/usr/local/distrib/objdir/i686-pc-linux-gnu/libstdc++-v3/src/.libs -L/usr/local/distrib/objdir/./gcc -L/usr/local/lib/gcc/i686-pc-linux-gnu/../.. ../../../Watchdog/src/.libs/libpwl.so -lm -L/usr/local/lib /usr/local/lib/libgmpxx.so /usr/local/lib/libstdc++.so /usr/local/lib/libgmp.so -Wl,--rpath -Wl,/usr/local/lib Created ".libs/ppl_sicstus" creating ppl_sicstus
I have just tried with the MacIntel of a colleague and there were no problems there. I don't really know how to help you without the ability to reproduce the problem. You are trying to install PPL 0.9, right? All the best,
Roberto