[Sanitizers] Provide __internal_dup on Solaris
authorRainer Orth <ro@gcc.gnu.org>
Fri, 5 Apr 2019 08:42:21 +0000 (08:42 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Fri, 5 Apr 2019 08:42:21 +0000 (08:42 +0000)
commit92db30fc004b941cbabec52c0c8f5e3dcb953902
tree54880ac92edbf25248e056f0cd2858c4bf86191b
parente011e4f89cce9963505cd18543a99531a908d952
[Sanitizers] Provide __internal_dup on Solaris

Both LLVM 8.0.0 and current trunk fail to link libclang_rt.ubsan.standalone-*.so
on Solaris 11/x86 with GCC 8.1.0:

  Undefined first referenced
   symbol       in file
  Scanning dependencies of target clang_rt.asan_cxx-x86_64
  __sanitizer::internal_dup(int)      ../sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_posix.cc.o
  ld: fatal: symbol referencing errors
  collect2: error: ld returned 1 exit status
  make[2]: *** [projects/compiler-rt/lib/ubsan/CMakeFiles/clang_rt.ubsan_standalone-dynamic-i386.dir/build.make:233: lib/clang/9.0.0/lib/sunos/libclang_rt.ubsan_standalone-i386.so] Error 1

Fixed by providing an implementation, which allowed the i386-pc-solaris2.11 build
to finish.

Differential Revision: https://reviews.llvm.org/D60045

llvm-svn: 357753
compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc