On Sat, 2 Mar 2019 at 08:20, Oppe, Thomas C ERDC-RDE-ITL-MS Contractor via gcc-help <gcc-help@xxxxxxxxxxx> wrote: > > Dear Sir: > > My build of GCC 8.3.0 fails on certain Cray systems having an older > "/usr/include/sys/sdt.h" file. The error messages are: > > In file included from > /p/tds/work/oppe/gcc-8.3.0/libstdc++-v3/libsupc++/unwind-cxx.h:41, > from > /p/tds/work/oppe/gcc-8.3.0/libstdc++-v3/libsupc++/eh_catch.cc:26: > /p/tds/work/oppe/gcc-8.3.0/libstdc++-v3/libsupc++/eh_catch.cc: In function > 'void* __cxxabiv1::__cxa_begin_catch(void*)': > /p/tds/work/oppe/gcc-8.3.0/libstdc++-v3/libsupc++/unwind-cxx.h:45:34: error: > unable to find string literal operator 'operator""_SDT_S' with 'const char > [37]', 'long unsigned int' arguments > #define PROBE2(name, arg1, arg2) STAP_PROBE2 (libstdcxx, name, arg1, arg2) > ^~~~~~~~~~~ > /p/tds/work/oppe/gcc-8.3.0/libstdc++-v3/libsupc++/eh_catch.cc:84:3: note: in > expansion of macro 'PROBE2' > PROBE2 (catch, objectp, header->exceptionType); > ^~~~~~ That should have been fixed in 2013 by https://gcc.gnu.org/r197649 so I don't know why you're seeing it with GCC 8.3.0 > /p/tds/work/oppe/gcc-8.3.0/libstdc++-v3/libsupc++/unwind-cxx.h:45:34: error: > unable to find string literal operator 'operator""_SDT_S' with 'const char > [51]', 'long unsigned int' arguments > #define PROBE2(name, arg1, arg2) STAP_PROBE2 (libstdcxx, name, arg1, arg2) > ^~~~~~~~~~~ > /p/tds/work/oppe/gcc-8.3.0/libstdc++-v3/libsupc++/eh_catch.cc:84:3: note: in > expansion of macro 'PROBE2' > PROBE2 (catch, objectp, header->exceptionType); > ^~~~~~ > make[5]: *** [eh_catch.lo] Error 1 > make[5]: Leaving directory > `/p/tds/work/oppe/gcc_workdir/x86_64-pc-linux-gnu/libstdc++-v3/libsupc++' > make[4]: *** [all-recursive] Error 1 > make[4]: Leaving directory > `/p/tds/work/oppe/gcc_workdir/x86_64-pc-linux-gnu/libstdc++-v3' > make[3]: *** [all] Error 2 > make[3]: Leaving directory > `/p/tds/work/oppe/gcc_workdir/x86_64-pc-linux-gnu/libstdc++-v3' > make[2]: *** [all-stage1-target-libstdc++-v3] Error 2 > make[2]: Leaving directory `/p/tds/work/oppe/gcc_workdir' > make[1]: *** [stage1-bubble] Error 2 > make[1]: Leaving directory `/p/tds/work/oppe/gcc_workdir' > make: *** [all] Error 2 > > I found a web page dealing with this problem: > > http://www.memoryhole.net/kyle/2013/04/building_gcc_48_on_rhel58.html > > Maybe one solution is to modify a line in the file > > gcc-8.3.0/libstdc++-v3/config.h.in > > to edit the lines 436-7 > > /* Define to 1 if you have a suitable <sys/sdt.h> header file */ > #undef HAVE_SYS_SDT_H > > and comment line 437 > > /*#undef HAVE_SYS_SDT_H*/ > > Is there a better solution than changing the GCC 8.3.0 tar file? Temporarily uninstall the systemtap headers?