https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87860
Bug ID: 87860 Summary: [9 Regression] libsanitizer build fails on sparc64-linux-gnu Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- Error message: libtool: compile: /home/marxin/Programming/gcc/gcc-9.0.0+r265711/objdir/./gcc/xgcc -shared-libgcc -B/home/marxin/Programming/gcc/gcc-9.0.0+r265711/objdir/./gcc -nostdinc++ -L/home/marxin/Programming/gcc/gcc-9.0.0+r265711/objdir/sparc64-unknown-linux-gnu/libstdc++-v3/src -L/home/marxin/Programming/gcc/gcc-9.0.0+r265711/objdir/sparc64-unknown-linux-gnu/libstdc++-v3/src/.libs -L/home/marxin/Programming/gcc/gcc-9.0.0+r265711/objdir/sparc64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -B/usr/local/sparc64-unknown-linux-gnu/bin/ -B/usr/local/sparc64-unknown-linux-gnu/lib/ -isystem /usr/local/sparc64-unknown-linux-gnu/include -isystem /usr/local/sparc64-unknown-linux-gnu/sys-include -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DHAVE_RPC_XDR_H=1 -DHAVE_TIRPC_RPC_XDR_H=0 -I. -I../../../../libsanitizer/sanitizer_common -I.. -I ../../../../libsanitizer/include -isystem ../../../../libsanitizer/include/system -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -I../../libstdc++-v3/include -I../../libstdc++-v3/include/sparc64-unknown-linux-gnu -I../../../../libsanitizer/../libstdc++-v3/libsupc++ -std=gnu++11 -DSANITIZER_LIBBACKTRACE -DSANITIZER_CP_DEMANGLE -I ../../../../libsanitizer/../libbacktrace -I ../libbacktrace -I ../../../../libsanitizer/../include -include ../../../../libsanitizer/libbacktrace/backtrace-rename.h -g -O2 -D_GNU_SOURCE -MT sanitizer_linux.lo -MD -MP -MF .deps/sanitizer_linux.Tpo -c ../../../../libsanitizer/sanitizer_common/sanitizer_linux.cc -fPIC -DPIC -o .libs/sanitizer_linux.o ../../../../libsanitizer/sanitizer_common/sanitizer_linux.cc: In function ‘void* __sanitizer::internal_start_thread(void (*)(void*), void*)’: ../../../../libsanitizer/sanitizer_common/sanitizer_linux.cc:1733:58: warning: cast between incompatible function types from ‘void (*)(void*)’ to ‘void* (*)(void*)’ [-Wcast-function-type] 1733 | real_pthread_create(&th, nullptr, (void*(*)(void *arg))func, arg); | ^~~~ ../../../../libsanitizer/sanitizer_common/sanitizer_linux.cc: In function ‘void __sanitizer::GetPcSpBp(void*, __sanitizer::uptr*, __sanitizer::uptr*, __sanitizer::uptr*)’: ../../../../libsanitizer/sanitizer_common/sanitizer_linux.cc:1962:31: error: ‘struct mcontext_t’ has no member named ‘gregs’; did you mean ‘mc_gregs’? 1962 | *pc = ucontext->uc_mcontext.gregs[REG_PC]; | ^~~~~ | mc_gregs ../../../../libsanitizer/sanitizer_common/sanitizer_linux.cc:1963:31: error: ‘struct mcontext_t’ has no member named ‘gregs’; did you mean ‘mc_gregs’? 1963 | *sp = ucontext->uc_mcontext.gregs[REG_O6]; | ^~~~~ | mc_gregs make[4]: *** [Makefile:663: sanitizer_linux.lo] Error 1 It comes from libsanitizer merge. I have a patch for it.