[PPL-devel] Problema nella compilazione sotto mac os x 10.4.9

Roberto Bagnara bagnara at cs.unipr.it
Mon May 7 16:08:56 CEST 2007


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

-- 
Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:bagnara at cs.unipr.it



More information about the PPL-devel mailing list