There are two errors when compiling systemtap with gcc-4.3 snapshot: staptree.cxx: In static member function 'static bool print_format::parse_print(const std::string&, bool&, bool&, bool&, bool& )': staptree.cxx:356: error: 'strncmp' was not declared in this scope In file included from main.cxx:12: staptree.h:871: error: explicit template specialization cannot have a storage class First one is just missing #include <cstring>. Second one is harder to fix, it is related to this change in gcc: http://gcc.gnu.org/ml/gcc-patches/2007-06/msg01075.html . It can be fixed by removing second "static" in this code: template <typename T> static void require (deep_copy_visitor* v, T* dst, T src) ... template <> static void require <indexable *> (deep_copy_visitor* v, indexable** dst, indexable* src) Unfortunately current gcc has bug that makes require<indexable *>() extern, so compilation fails.
Created attachment 1996 [details] patch for missing #include
patch committed
Applied patch does not fix build failure with gcc 4.3 related to templates. It is "static" in definition for require<indexable *>() that should be removed, not require<T>().
Created attachment 2147 [details] workaround for gcc 4.3 build failure This is workaround that works for both gcc 4.2 and gcc 4.3. Suggested here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=455663#24
*** Bug 5631 has been marked as a duplicate of this bug. ***
I've committed these patches.