Problema nella compilazione sotto mac os x 10.4.9

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. Valerio
...
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

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

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

Valerio Senni wrote:
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.
[...]
Quoting from the previous answer from Roberto:
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.
So, apparently, it is the C++ standard library that is not found by spld.
Ciao, Enea.

Valerio Senni wrote:
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.
Dear Valerio,
I had he occasion to put my hands on a machine like yours, so I could investigate the problem more deeply. I have got the impression this might be a problem of the `spld' and `splfr' utilities that shows up on Mac OS X. I have alreay informed the SICStus team, but I also have a workaround, in case you don't want to wait for a better fix.
I assume that you are compiling the PPL in some directory and that you are using the latest version of SICStus Prolog. Then:
1) cd into that directory 2) make (it will fail, as you know) 3) cd interfaces/Prolog/SICStus 4) cp /usr/local/bin/spconfig-3.12.8 myspconfig 5) edit myspconfig to change the line "CC=gcc" to "CC=g++", so that the command
diff -c /usr/local/bin/spconfig-3.12.8 myspconfig
gives you something like
*** /usr/local/bin/spconfig-3.12.8 Thu May 10 16:34:55 2007 --- myspconfig Tue May 15 13:29:57 2007 *************** *** 13,19 **** # Keep this list sorted. BDBLIB=-L/sw/lib -ldb-4.1 BDB_PATH=/sw ! CC=gcc CC_NOLIBPATH= CFLAGS=-no-cpp-precomp -g -O2 -pipe -fno-common CHARMAINOBJ=charmain.o intrpt.o --- 13,19 ---- # Keep this list sorted. BDBLIB=-L/sw/lib -ldb-4.1 BDB_PATH=/sw ! CC=g++ CC_NOLIBPATH= CFLAGS=-no-cpp-precomp -g -O2 -pipe -fno-common CHARMAINOBJ=charmain.o intrpt.o
6) edit Makefile to change the invocations of `spld' and `splfr' so that they use the `--config=myspconfig' option, that is, the change should be such that the command
diff Makefile~ Makefile
give you
690c690 < spld --main=prolog \ ---
spld --config=myspconfig --main=prolog \
698c698 < splfr --static $(srcdir)/ppl_sicstus.pl ppl_sicstus_sd.o ---
splfr --config=myspconfig --static $(srcdir)/ppl_sicstus.pl ppl_sicstus_sd.o
7) make 8) make check
Please let me know if this works for you. All the best,
Roberto

Roberto Bagnara wrote:
Valerio Senni wrote:
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.
Dear Valerio,
I had he occasion to put my hands on a machine like yours, so I could investigate the problem more deeply. I have got the impression this might be a problem of the `spld' and `splfr' utilities that shows up on Mac OS X. I have alreay informed the SICStus team, but I also have a workaround, in case you don't want to wait for a better fix.
I assume that you are compiling the PPL in some directory and that you are using the latest version of SICStus Prolog. Then:
cd into that directory
make (it will fail, as you know)
cd interfaces/Prolog/SICStus
cp /usr/local/bin/spconfig-3.12.8 myspconfig
edit myspconfig to change the line "CC=gcc" to "CC=g++", so that the command
diff -c /usr/local/bin/spconfig-3.12.8 myspconfig
gives you something like
*** /usr/local/bin/spconfig-3.12.8 Thu May 10 16:34:55 2007 --- myspconfig Tue May 15 13:29:57 2007
*** 13,19 **** # Keep this list sorted. BDBLIB=-L/sw/lib -ldb-4.1 BDB_PATH=/sw ! CC=gcc CC_NOLIBPATH= CFLAGS=-no-cpp-precomp -g -O2 -pipe -fno-common CHARMAINOBJ=charmain.o intrpt.o --- 13,19 ---- # Keep this list sorted. BDBLIB=-L/sw/lib -ldb-4.1 BDB_PATH=/sw ! CC=g++ CC_NOLIBPATH= CFLAGS=-no-cpp-precomp -g -O2 -pipe -fno-common CHARMAINOBJ=charmain.o intrpt.o
edit Makefile to change the invocations of `spld' and `splfr' so that they use the `--config=myspconfig' option, that is, the change should be such that the command
diff Makefile~ Makefile
give you
690c690
< spld --main=prolog \
spld --config=myspconfig --main=prolog \
698c698
< splfr --static $(srcdir)/ppl_sicstus.pl ppl_sicstus_sd.o
splfr --config=myspconfig --static $(srcdir)/ppl_sicstus.pl ppl_sicstus_sd.o
- make
- make check
Meanwhile Per Mildner (of the SICStus team) confirmed that the workaround I suggested is basically the only thing that can be done. However, when I wrote the message above, I tried `make' and `make check'. When I tried `make install' I figured out I had forgotten one instance of `splfr' and one instance of the `--static' option.
Here is the correct diff:
679c679 < splfr $(srcdir)/ppl_sicstus.pl .libs/ppl_sicstus_sd.o -o $@ \ ---
splfr --config=myspconfig --static $(srcdir)/ppl_sicstus.pl .libs/ppl_sicstus_sd.o -o $@ \
690c690 < spld --main=prolog \ ---
spld --config=myspconfig --main=prolog \
695c695 < -lm -L/usr/local/lib -lgmpxx -L/usr/local/lib -lgmp -R/usr/local/lib -R/usr/local/lib ---
-lm -L/usr/local/lib -lgmpxx -L/usr/local/lib -lgmp -R/usr/local/lib -R/usr/local/lib
698c698 < splfr --static $(srcdir)/ppl_sicstus.pl ppl_sicstus_sd.o ---
splfr --config=myspconfig --static $(srcdir)/ppl_sicstus.pl ppl_sicstus_sd.o
participants (3)
-
Enea Zaffanella
-
Roberto Bagnara
-
Valerio Senni