GNOME Bugzilla – Bug 152327
compile fails in gcc 3.4.2 on test_lambda.cc
Last modified: 2004-12-22 21:47:04 UTC
using gcc 3.4.2 ./configure make here's the .configure & make output: checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking for gm4... no checking for m4... m4 checking for perl... /usr/local/bin/perl checking whether to enable maintainer-specific portions of Makefiles... no checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for some Win32 platform... no checking for a sed that does not truncate output... /usr/bin/sed checking for egrep... grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... g77 checking whether we are using the GNU Fortran 77 compiler... yes checking whether g77 accepts -g... yes checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc static flag works... yes checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes appending configuration tag "F77" to libtool checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for g77 option to produce PIC... -fPIC checking if g77 PIC flag -fPIC works... yes checking if g77 supports -c -o file.o... yes checking whether the g77 linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking whether we are using the GNU C++ compiler... (cached) yes checking whether g++ accepts -g... (cached) yes checking dependency style of g++... (cached) gcc3 checking if C++ compiler supports the use of a particular specialization when calling operator() template methods.... yes checking if C++ compiler supports the use of a particular specialization when calling operator() template methods omitting the template keyword.... yes configure: creating ./config.status config.status: creating Makefile config.status: creating sigc++-2.0.pc config.status: creating sigc++/Makefile config.status: creating scripts/Makefile config.status: creating tests/Makefile config.status: creating examples/Makefile config.status: creating MSVC_Net2003/Makefile config.status: creating libsigc++-2.0.spec config.status: creating docs/Makefile config.status: creating docs/images/Makefile config.status: creating docs/reference/Makefile config.status: creating docs/reference/Doxyfile config.status: creating sigc++config.h config.status: executing depfiles commands #:/usr/local/src/libsigc++/libsigc++-2.0.5 # make make all-recursive make[1]: Entering directory `/usr/local/src/libsigc++/libsigc++-2.0.5' Making all in sigc++ make[2]: Entering directory `/usr/local/src/libsigc++/libsigc++-2.0.5/sigc++' make all-am make[3]: Entering directory `/usr/local/src/libsigc++/libsigc++-2.0.5/sigc++' if /bin/sh ../libtool --mode=compile g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT signal.lo -MD -MP -MF ".deps/signal.Tpo" -c -o signal.lo signal.cc; \ then mv -f ".deps/signal.Tpo" ".deps/signal.Plo"; else rm -f ".deps/signal.Tpo"; exit 1; fi mkdir .libs g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT signal.lo -MD -MP -MF .deps/signal.Tpo -c signal.cc -fPIC -DPIC -o .libs/signal.o g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT signal.lo -MD -MP -MF .deps/signal.Tpo -c signal.cc -o signal.o >/dev/null 2>&1 if /bin/sh ../libtool --mode=compile g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT signal_base.lo -MD -MP -MF ".deps/signal_base.Tpo" -c -o signal_base.lo signal_base.cc; \ then mv -f ".deps/signal_base.Tpo" ".deps/signal_base.Plo"; else rm -f ".deps/signal_base.Tpo"; exit 1; fi g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT signal_base.lo -MD -MP -MF .deps/signal_base.Tpo -c signal_base.cc -fPIC -DPIC -o .libs/signal_base.o g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT signal_base.lo -MD -MP -MF .deps/signal_base.Tpo -c signal_base.cc -o signal_base.o >/dev/null 2>&1 if /bin/sh ../libtool --mode=compile g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT trackable.lo -MD -MP -MF ".deps/trackable.Tpo" -c -o trackable.lo trackable.cc; \ then mv -f ".deps/trackable.Tpo" ".deps/trackable.Plo"; else rm -f ".deps/trackable.Tpo"; exit 1; fi g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT trackable.lo -MD -MP -MF .deps/trackable.Tpo -c trackable.cc -fPIC -DPIC -o .libs/trackable.o g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT trackable.lo -MD -MP -MF .deps/trackable.Tpo -c trackable.cc -o trackable.o >/dev/null 2>&1 if /bin/sh ../libtool --mode=compile g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT connection.lo -MD -MP -MF ".deps/connection.Tpo" -c -o connection.lo connection.cc; \ then mv -f ".deps/connection.Tpo" ".deps/connection.Plo"; else rm -f ".deps/connection.Tpo"; exit 1; fi g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT connection.lo -MD -MP -MF .deps/connection.Tpo -c connection.cc -fPIC -DPIC -o .libs/connection.o g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT connection.lo -MD -MP -MF .deps/connection.Tpo -c connection.cc -o connection.o >/dev/null 2>&1 if /bin/sh ../libtool --mode=compile g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT slot.lo -MD -MP -MF ".deps/slot.Tpo" -c -o slot.lo `test -f 'functors/slot.cc' || echo './'`functors/slot.cc; \ then mv -f ".deps/slot.Tpo" ".deps/slot.Plo"; else rm -f ".deps/slot.Tpo"; exit 1; fi g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT slot.lo -MD -MP -MF .deps/slot.Tpo -c functors/slot.cc -fPIC -DPIC -o .libs/slot.o g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT slot.lo -MD -MP -MF .deps/slot.Tpo -c functors/slot.cc -o slot.o >/dev/null 2>&1 if /bin/sh ../libtool --mode=compile g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT slot_base.lo -MD -MP -MF ".deps/slot_base.Tpo" -c -o slot_base.lo `test -f 'functors/slot_base.cc' || echo './'`functors/slot_base.cc; \ then mv -f ".deps/slot_base.Tpo" ".deps/slot_base.Plo"; else rm -f ".deps/slot_base.Tpo"; exit 1; fi g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT slot_base.lo -MD -MP -MF .deps/slot_base.Tpo -c functors/slot_base.cc -fPIC -DPIC -o .libs/slot_base.o g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT slot_base.lo -MD -MP -MF .deps/slot_base.Tpo -c functors/slot_base.cc -o slot_base.o >/dev/null 2>&1 if /bin/sh ../libtool --mode=compile g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT lambda.lo -MD -MP -MF ".deps/lambda.Tpo" -c -o lambda.lo `test -f 'adaptors/lambda/lambda.cc' || echo './'`adaptors/lambda/lambda.cc; \ then mv -f ".deps/lambda.Tpo" ".deps/lambda.Plo"; else rm -f ".deps/lambda.Tpo"; exit 1; fi g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT lambda.lo -MD -MP -MF .deps/lambda.Tpo -c adaptors/lambda/lambda.cc -fPIC -DPIC -o .libs/lambda.o g++ -DHAVE_CONFIG_H -I.. -I.. -g -O2 -MT lambda.lo -MD -MP -MF .deps/lambda.Tpo -c adaptors/lambda/lambda.cc -o lambda.o >/dev/null 2>&1 /bin/sh ../libtool --mode=link g++ -g -O2 -o libsigc-2.0.la -rpath /usr/local/lib signal.lo signal_base.lo trackable.lo connection.lo slot.lo slot_base.lo lambda.lo g++ -shared -nostdlib /usr/lib/crti.o /usr/local/lib/gcc/i686-pc-linux-gnu/3.4.2/crtbeginS.o .libs/signal.o .libs/signal_base.o .libs/trackable.o .libs/connection.o .libs/slot.o .libs/slot_base.o .libs/lambda.o -L/usr/local/lib/gcc/i686-pc-linux-gnu/3.4.2 -L/usr/local/lib/gcc/i686-pc-linux-gnu/3.4.2/../../.. /usr/local/lib/libstdc++.so -lm -lc -lgcc_s /usr/local/lib/gcc/i686-pc-linux-gnu/3.4.2/crtendS.o /usr/lib/crtn.o -Wl,-soname -Wl,libsigc-2.0.so.0 -o .libs/libsigc-2.0.so.0.0.0 (cd .libs && rm -f libsigc-2.0.so.0 && ln -s libsigc-2.0.so.0.0.0 libsigc-2.0.so.0) (cd .libs && rm -f libsigc-2.0.so && ln -s libsigc-2.0.so.0.0.0 libsigc-2.0.so) ar cru .libs/libsigc-2.0.a signal.o signal_base.o trackable.o connection.o slot.o slot_base.o lambda.o ranlib .libs/libsigc-2.0.a creating libsigc-2.0.la (cd .libs && rm -f libsigc-2.0.la && ln -s ../libsigc-2.0.la libsigc-2.0.la) make[3]: Leaving directory `/usr/local/src/libsigc++/libsigc++-2.0.5/sigc++' make[2]: Leaving directory `/usr/local/src/libsigc++/libsigc++-2.0.5/sigc++' Making all in tests make[2]: Entering directory `/usr/local/src/libsigc++/libsigc++-2.0.5/tests' if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_trackable.o -MD -MP -MF ".deps/test_trackable.Tpo" -c -o test_trackable.o test_trackable.cc; \ then mv -f ".deps/test_trackable.Tpo" ".deps/test_trackable.Po"; else rm -f ".deps/test_trackable.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_trackable test_trackable.o ../sigc++/libsigc-2.0.la mkdir .libs g++ -g -O2 -o .libs/test_trackable test_trackable.o ../sigc++/.libs/libsigc-2.0.so creating test_trackable if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_deduce_result_type.o -MD -MP -MF ".deps/test_deduce_result_type.Tpo" -c -o test_deduce_result_type.o test_deduce_result_type.cc; \ then mv -f ".deps/test_deduce_result_type.Tpo" ".deps/test_deduce_result_type.Po"; else rm -f ".deps/test_deduce_result_type.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_deduce_result_type test_deduce_result_type.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_deduce_result_type test_deduce_result_type.o ../sigc++/.libs/libsigc-2.0.so creating test_deduce_result_type if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_functor_trait.o -MD -MP -MF ".deps/test_functor_trait.Tpo" -c -o test_functor_trait.o test_functor_trait.cc; \ then mv -f ".deps/test_functor_trait.Tpo" ".deps/test_functor_trait.Po"; else rm -f ".deps/test_functor_trait.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_functor_trait test_functor_trait.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_functor_trait test_functor_trait.o ../sigc++/.libs/libsigc-2.0.so creating test_functor_trait if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_mem_fun.o -MD -MP -MF ".deps/test_mem_fun.Tpo" -c -o test_mem_fun.o test_mem_fun.cc; \ then mv -f ".deps/test_mem_fun.Tpo" ".deps/test_mem_fun.Po"; else rm -f ".deps/test_mem_fun.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_mem_fun test_mem_fun.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_mem_fun test_mem_fun.o ../sigc++/.libs/libsigc-2.0.so creating test_mem_fun if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_ptr_fun.o -MD -MP -MF ".deps/test_ptr_fun.Tpo" -c -o test_ptr_fun.o test_ptr_fun.cc; \ then mv -f ".deps/test_ptr_fun.Tpo" ".deps/test_ptr_fun.Po"; else rm -f ".deps/test_ptr_fun.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_ptr_fun test_ptr_fun.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_ptr_fun test_ptr_fun.o ../sigc++/.libs/libsigc-2.0.so creating test_ptr_fun if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_slot.o -MD -MP -MF ".deps/test_slot.Tpo" -c -o test_slot.o test_slot.cc; \ then mv -f ".deps/test_slot.Tpo" ".deps/test_slot.Po"; else rm -f ".deps/test_slot.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_slot test_slot.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_slot test_slot.o ../sigc++/.libs/libsigc-2.0.so creating test_slot if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_signal.o -MD -MP -MF ".deps/test_signal.Tpo" -c -o test_signal.o test_signal.cc; \ then mv -f ".deps/test_signal.Tpo" ".deps/test_signal.Po"; else rm -f ".deps/test_signal.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_signal test_signal.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_signal test_signal.o ../sigc++/.libs/libsigc-2.0.so creating test_signal if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_accumulated.o -MD -MP -MF ".deps/test_accumulated.Tpo" -c -o test_accumulated.o test_accumulated.cc; \ then mv -f ".deps/test_accumulated.Tpo" ".deps/test_accumulated.Po"; else rm -f ".deps/test_accumulated.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_accumulated test_accumulated.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_accumulated test_accumulated.o ../sigc++/.libs/libsigc-2.0.so creating test_accumulated if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_disconnect.o -MD -MP -MF ".deps/test_disconnect.Tpo" -c -o test_disconnect.o test_disconnect.cc; \ then mv -f ".deps/test_disconnect.Tpo" ".deps/test_disconnect.Po"; else rm -f ".deps/test_disconnect.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_disconnect test_disconnect.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_disconnect test_disconnect.o ../sigc++/.libs/libsigc-2.0.so creating test_disconnect if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_disconnect_during_emit.o -MD -MP -MF ".deps/test_disconnect_during_emit.Tpo" -c -o test_disconnect_during_emit.o test_disconnect_during_emit.cc; \ then mv -f ".deps/test_disconnect_during_emit.Tpo" ".deps/test_disconnect_during_emit.Po"; else rm -f ".deps/test_disconnect_during_emit.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_disconnect_during_emit test_disconnect_during_emit.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_disconnect_during_emit test_disconnect_during_emit.o ../sigc++/.libs/libsigc-2.0.so creating test_disconnect_during_emit if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_bind.o -MD -MP -MF ".deps/test_bind.Tpo" -c -o test_bind.o test_bind.cc; \ then mv -f ".deps/test_bind.Tpo" ".deps/test_bind.Po"; else rm -f ".deps/test_bind.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_bind test_bind.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_bind test_bind.o ../sigc++/.libs/libsigc-2.0.so creating test_bind if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_bind_return.o -MD -MP -MF ".deps/test_bind_return.Tpo" -c -o test_bind_return.o test_bind_return.cc; \ then mv -f ".deps/test_bind_return.Tpo" ".deps/test_bind_return.Po"; else rm -f ".deps/test_bind_return.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_bind_return test_bind_return.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_bind_return test_bind_return.o ../sigc++/.libs/libsigc-2.0.so creating test_bind_return if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_retype_return.o -MD -MP -MF ".deps/test_retype_return.Tpo" -c -o test_retype_return.o test_retype_return.cc; \ then mv -f ".deps/test_retype_return.Tpo" ".deps/test_retype_return.Po"; else rm -f ".deps/test_retype_return.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_retype_return test_retype_return.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_retype_return test_retype_return.o ../sigc++/.libs/libsigc-2.0.so creating test_retype_return if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_hide.o -MD -MP -MF ".deps/test_hide.Tpo" -c -o test_hide.o test_hide.cc; \ then mv -f ".deps/test_hide.Tpo" ".deps/test_hide.Po"; else rm -f ".deps/test_hide.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_hide test_hide.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_hide test_hide.o ../sigc++/.libs/libsigc-2.0.so creating test_hide if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_retype.o -MD -MP -MF ".deps/test_retype.Tpo" -c -o test_retype.o test_retype.cc; \ then mv -f ".deps/test_retype.Tpo" ".deps/test_retype.Po"; else rm -f ".deps/test_retype.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_retype test_retype.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_retype test_retype.o ../sigc++/.libs/libsigc-2.0.so creating test_retype if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_compose.o -MD -MP -MF ".deps/test_compose.Tpo" -c -o test_compose.o test_compose.cc; \ then mv -f ".deps/test_compose.Tpo" ".deps/test_compose.Po"; else rm -f ".deps/test_compose.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_compose test_compose.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_compose test_compose.o ../sigc++/.libs/libsigc-2.0.so creating test_compose if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_exception_catch.o -MD -MP -MF ".deps/test_exception_catch.Tpo" -c -o test_exception_catch.o test_exception_catch.cc; \ then mv -f ".deps/test_exception_catch.Tpo" ".deps/test_exception_catch.Po"; else rm -f ".deps/test_exception_catch.Tpo"; exit 1; fi /bin/sh ../libtool --mode=link g++ -g -O2 -o test_exception_catch test_exception_catch.o ../sigc++/libsigc-2.0.la g++ -g -O2 -o .libs/test_exception_catch test_exception_catch.o ../sigc++/.libs/libsigc-2.0.so creating test_exception_catch if g++ -I. -I. -I.. -I.. -I.. -g -O2 -MT test_lambda.o -MD -MP -MF ".deps/test_lambda.Tpo" -c -o test_lambda.o test_lambda.cc; \ then mv -f ".deps/test_lambda.Tpo" ".deps/test_lambda.Po"; else rm -f ".deps/test_lambda.Tpo"; exit 1; fi In file included from ../sigc++/adaptors/lambda/lambda.h:26, from test_lambda.cc:9: ../sigc++/adaptors/lambda/group.h:79: error: non-template `deduce_result_type' used as template ../sigc++/adaptors/lambda/group.h:79: note: use `typename sigc::adaptor_trait<T_functor, sigc::is_base_and_derived<sigc::adaptor_base,T_functor>::value>::adaptor_type::template deduce_result_type' to indicate that it is a template ../sigc++/adaptors/lambda/group.h:82: error: declaration does not declare anything ../sigc++/adaptors/lambda/group.h:245: error: non-template `deduce_result_type' used as template ../sigc++/adaptors/lambda/group.h:245: note: use `typename sigc::adaptor_trait<T_functor, sigc::is_base_and_derived<sigc::adaptor_base,T_functor>::value>::adaptor_type::template deduce_result_type' to indicate that it is a template ../sigc++/adaptors/lambda/group.h:250: error: declaration does not declare anything ../sigc++/adaptors/lambda/group.h:458: error: non-template `deduce_result_type' used as template ../sigc++/adaptors/lambda/group.h:458: note: use `typename sigc::adaptor_trait<T_functor, sigc::is_base_and_derived<sigc::adaptor_base,T_functor>::value>::adaptor_type::template deduce_result_type' to indicate that it is a template ../sigc++/adaptors/lambda/group.h:465: error: declaration does not declare anything ../sigc++/adaptors/lambda/base.h: In instantiation of `sigc::internal::lambda_core<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2> >, true>::deduce_result_type<int, int, void, void, void, void, void>': test_lambda.cc:104: instantiated from here ../sigc++/adaptors/lambda/base.h:58: error: no type named `type' in `struct sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2> >::deduce_result_type<int&, int&, void, void, void, void, void>' test_lambda.cc: In function `int main()': test_lambda.cc:104: error: no match for call to `(sigc::lambda<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2> > >) (int, int)' ../sigc++/adaptors/lambda/base.h:188: note: candidates are: typename sigc::internal::lambda_core<T_type, true>::result_type sigc::internal::lambda_core<T_type, true>::operator()() const [with T_type = sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2> >] ../sigc++/adaptors/lambda/base.h: At global scope: ../sigc++/adaptors/lambda/base.h: In instantiation of `sigc::internal::lambda_core<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select2>, sigc::lambda<sigc::internal::lambda_select1> >, true>::deduce_result_type<int, int, void, void, void, void, void>': test_lambda.cc:105: instantiated from here ../sigc++/adaptors/lambda/base.h:58: error: no type named `type' in `struct sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select2>, sigc::lambda<sigc::internal::lambda_select1> >::deduce_result_type<int&, int&, void, void, void, void, void>' test_lambda.cc: In function `int main()': test_lambda.cc:105: error: no match for call to `(sigc::lambda<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select2>, sigc::lambda<sigc::internal::lambda_select1> > >) (int, int)' ../sigc++/adaptors/lambda/base.h:188: note: candidates are: typename sigc::internal::lambda_core<T_type, true>::result_type sigc::internal::lambda_core<T_type, true>::operator()() const [with T_type = sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select2>, sigc::lambda<sigc::internal::lambda_select1> >] ../sigc++/adaptors/lambda/base.h: At global scope: ../sigc++/adaptors/lambda/base.h: In instantiation of `sigc::internal::lambda_core<sigc::lambda_group3<sigc::mem_functor2<int, bar, int, int>, sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2>, sigc::lambda<sigc::internal::lambda_select3> >, true>::deduce_result_type<sigc::reference_wrapper<bar>, int, int, void, void, void, void>': test_lambda.cc:106: instantiated from here ../sigc++/adaptors/lambda/base.h:58: error: no type named `type' in `struct sigc::lambda_group3<sigc::mem_functor2<int, bar, int, int>, sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2>, sigc::lambda<sigc::internal::lambda_select3> >::deduce_result_type<bar&, int&, int&, void, void, void, void>' test_lambda.cc: In function `int main()': test_lambda.cc:106: error: no match for call to `(sigc::lambda<sigc::lambda_group3<sigc::mem_functor2<int, bar, int, int>, sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2>, sigc::lambda<sigc::internal::lambda_select3> > >) (sigc::reference_wrapper<bar>, int, int)' ../sigc++/adaptors/lambda/base.h:188: note: candidates are: typename sigc::internal::lambda_core<T_type, true>::result_type sigc::internal::lambda_core<T_type, true>::operator()() const [with T_type = sigc::lambda_group3<sigc::mem_functor2<int, bar, int, int>, sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2>, sigc::lambda<sigc::internal::lambda_select3> >] ../sigc++/adaptors/lambda/base.h: At global scope: ../sigc++/adaptors/lambda/base.h: In instantiation of `sigc::internal::lambda_core<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, int>, true>::deduce_result_type<int, void, void, void, void, void, void>': test_lambda.cc:109: instantiated from here ../sigc++/adaptors/lambda/base.h:58: error: no type named `type' in `struct sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, int>::deduce_result_type<int&, void, void, void, void, void, void>' test_lambda.cc: In function `int main()': test_lambda.cc:109: error: no match for call to `(sigc::lambda<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, int> >) (int)' ../sigc++/adaptors/lambda/base.h:188: note: candidates are: typename sigc::internal::lambda_core<T_type, true>::result_type sigc::internal::lambda_core<T_type, true>::operator()() const [with T_type = sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, int>] ../sigc++/adaptors/lambda/base.h: At global scope: ../sigc++/adaptors/lambda/base.h: In instantiation of `sigc::internal::lambda_core<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2> >, true>::deduce_result_type<int, int, int, void, void, void, void>': test_lambda.cc:124: instantiated from here ../sigc++/adaptors/lambda/base.h:58: error: no type named `type' in `struct sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2> >::deduce_result_type<int&, int&, int&, void, void, void, void>' test_lambda.cc: In function `int main()': test_lambda.cc:124: error: no match for call to `(sigc::lambda<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2> > >) (int, int, int)' ../sigc++/adaptors/lambda/base.h:188: note: candidates are: typename sigc::internal::lambda_core<T_type, true>::result_type sigc::internal::lambda_core<T_type, true>::operator()() const [with T_type = sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2> >] ../sigc++/adaptors/lambda/base.h: At global scope: ../sigc++/adaptors/lambda/base.h: In instantiation of `sigc::internal::lambda_core<sigc::lambda_group1<sigc::pointer_functor1<int, void>, sigc::lambda<sigc::internal::lambda_select2> >, true>::deduce_result_type<int, int, void, void, void, void, void>': test_lambda.cc:125: instantiated from here ../sigc++/adaptors/lambda/base.h:58: error: no type named `type' in `struct sigc::lambda_group1<sigc::pointer_functor1<int, void>, sigc::lambda<sigc::internal::lambda_select2> >::deduce_result_type<int&, int&, void, void, void, void, void>' test_lambda.cc: In function `int main()': test_lambda.cc:125: error: no match for call to `(sigc::lambda<sigc::lambda_group1<sigc::pointer_functor1<int, void>, sigc::lambda<sigc::internal::lambda_select2> > >) (int, int)' ../sigc++/adaptors/lambda/base.h:188: note: candidates are: typename sigc::internal::lambda_core<T_type, true>::result_type sigc::internal::lambda_core<T_type, true>::operator()() const [with T_type = sigc::lambda_group1<sigc::pointer_functor1<int, void>, sigc::lambda<sigc::internal::lambda_select2> >] ../sigc++/adaptors/lambda/base.h: At global scope: ../sigc++/adaptors/lambda/base.h: In instantiation of `sigc::internal::lambda_core<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2> > >, sigc::lambda<sigc::internal::lambda_select3> >, true>::deduce_result_type<int, int, int, void, void, void, void>': test_lambda.cc:128: instantiated from here ../sigc++/adaptors/lambda/base.h:58: error: no type named `type' in `struct sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::lambda_group2<int (*) (int, int), sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2> > >, sigc::lambda<sigc::internal::lambda_select3> >::deduce_result_type<int&, int&, int&, void, void, void, void>' test_lambda.cc: In function `int main()': test_lambda.cc:128: error: no match for call to `(sigc::lambda<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2> > >, sigc::lambda<sigc::internal::lambda_select3> > >) (int, int, int)' ../sigc++/adaptors/lambda/base.h:188: note: candidates are: typename sigc::internal::lambda_core<T_type, true>::result_type sigc::internal::lambda_core<T_type, true>::operator()() const [with T_type = sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::lambda_group2<int (*) (int, int), sigc::lambda<sigc::internal::lambda_select1>, sigc::lambda<sigc::internal::lambda_select2> > >, sigc::lambda<sigc::internal::lambda_select3> >] ../sigc++/adaptors/lambda/base.h: At global scope: ../sigc++/adaptors/lambda/base.h: In instantiation of `sigc::internal::lambda_core<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::lambda_operator_convert<sigc::cast_<sigc::static_>, int, sigc::internal::lambda_select1> >, int>, true>::deduce_result_type<double, void, void, void, void, void, void>': test_lambda.cc:131: instantiated from here ../sigc++/adaptors/lambda/base.h:58: error: no type named `type' in `struct sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::lambda_operator_convert<sigc::cast_<sigc::static_>, int, sigc::internal::lambda_select1> >, int>::deduce_result_type<double&, void, void, void, void, void, void>' test_lambda.cc: In function `int main()': test_lambda.cc:131: error: no match for call to `(sigc::lambda<sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::lambda_operator_convert<sigc::cast_<sigc::static_>, int, sigc::internal::lambda_select1> >, int> >) (double)' ../sigc++/adaptors/lambda/base.h:188: note: candidates are: typename sigc::internal::lambda_core<T_type, true>::result_type sigc::internal::lambda_core<T_type, true>::operator()() const [with T_type = sigc::lambda_group2<int (*)(int, int), sigc::lambda<sigc::lambda_operator_convert<sigc::cast_<sigc::static_>, int, sigc::internal::lambda_select1> >, int>] make[2]: *** [test_lambda.o] Error 1 make[2]: Leaving directory `/usr/local/src/libsigc++/libsigc++-2.0.5/tests' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/libsigc++/libsigc++-2.0.5' make: *** [all] Error 2 #:/usr/local/src/libsigc++/libsigc++-2.0.5 # gcc -v Reading specs from /usr/local/lib/gcc/i686-pc-linux-gnu/3.4.2/specs Configured with: ./configure : (reconfigured) ./configure --enable-threads=posix --enable-languages=c,c++ Thread model: posix gcc version 3.4.2 #:/usr/local/src/libsigc++/libsigc++-2.0.5 #
it's an error on a testing component, but it does block compilation...
*** Bug 152425 has been marked as a duplicate of this bug. ***
*** Bug 152150 has been marked as a duplicate of this bug. ***
I had to remove the "examples" and "tests" targets from the top-level makefile in order to be able to build and install libsigc++-2.0.5. Anyway, it's not an error on testing components only. This is a general problem, libsigc++ 2.0 headers are not compatible with gcc 3.4. I've tried with gcc 3.4.2 on Solaris 8: $ g++ -v Reading specs from /usr/local/gcc-3.4.2/lib/gcc/sparc-sun-solaris2.8/3.4.2/specs Configured with: /tmp/gcc-3.4.2/configure --prefix=/usr/local/gcc-3.4.2 --with-as=/usr/local/binutils/bin/as --with-ld=/usr/local/binutils/bin/ld Thread model: posix gcc version 3.4.2 $ $ cat > foo.cc #include <sigc++/sigc++.h> $ $ g++ -c `pkg-config sigc++-2.0 --cflags` foo.cc In file included from /usr/local/libsigc++-2.0.5-gcc-3.4.2/include/sigc++-2.0/sigc++/adaptors/lambda/lambda.h:26, from /usr/local/libsigc++-2.0.5-gcc-3.4.2/include/sigc++-2.0/sigc++/adaptors/adaptors.h:30, from /usr/local/libsigc++-2.0.5-gcc-3.4.2/include/sigc++-2.0/sigc++/sigc++.h:26, from foo.cc:1: /usr/local/libsigc++-2.0.5-gcc-3.4.2/include/sigc++-2.0/sigc++/adaptors/lambda/group.h:79: error: non-template `deduce_result_type' used as template [...] $ A complete error log is attached.
Created attachment 31578 [details] test case
Created attachment 31579 [details] compile-time errors in sigc++ headers
This Web page: http://libsigc.sourceforge.net/stable.shtml states: All version of gcc >= 3.2 are currently known to compile libsigc++-2.0. Maybe this could be changed to: gcc 3.2 and gcc 3.3 are currently known to compile libsigc++-2.0. until the bug is fixed. Or is this a libsigc++ 2.0.5 issue only?
OK, I've tried the following versions: 2.0.0 OK 2.0.3 OK 2.0.4 FAILS 2.0.5 FAILS The bug was introduced with version 2.0.4. Everyone revert to 2.0.3 to use libsigc++ with gcc 3.4 until this bug is fixed...
Discussion on the ml lead to conclusion that the definition of deduce_result_type<> must be corrected. In current CVS a probably missing template keyword is added. Please check whether this is already the solution!
*** Bug 153143 has been marked as a duplicate of this bug. ***
I don't have CVS access, but I've tried libsigc++ 2.0.5 with this patch applied: http://cvs.gnome.org/viewcvs/libsigc%2B%2B2/sigc%2B%2B/adaptors/lambda/macros/group.h.m4?r1=1.7&r2=1.8 It worked for me.
=> Fixed in cvs. Thanks everyone for their help.