https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105531
Bug ID: 105531 Summary: [13 regression] Recent libsanitizer imports breaks Solaris 11.3 build Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: ro 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: --- Target: i386-pc-solaris2.11, sparc-sun-solaris2.11 The recent libsanitizer import broke the build on Solaris 11.3, both SPARC and x86: /vol/gcc/src/hg/master/local/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp: In function 'int __sanitizer::CollectStaticTlsBlocks(dl_phdr_info*, std::size_t, void*)': /vol/gcc/src/hg/master/local/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp:380:28: error: 'struct dl_phdr_info' has no member named 'dlpi_tls_data' 380 | uptr begin = (uptr)info->dlpi_tls_data; | ^~~~~~~~~~~~~ This happens because Solaris doesn't support dlpi_tls_data (and dlpi_tls_modid) before Solaris 11.4 SRU 10.3. It's not an issue for LLVM upstream which only support Solaris 11.4, but GCC continues to support Solaris 11.3 as well. I have an (abandoned) patch to fix this: https://reviews.llvm.org/D120059. I'll see if I can get it approved upstream (it needs slight modifications for changes to compiler-rt since it was submitted); otherwise it will have to be kept gcc-local.