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.

Reply via email to