diff options
| author | Rainer Orth <ro@gcc.gnu.org> | 2019-04-05 08:42:21 +0000 |
|---|---|---|
| committer | Rainer Orth <ro@gcc.gnu.org> | 2019-04-05 08:42:21 +0000 |
| commit | 92db30fc004b941cbabec52c0c8f5e3dcb953902 (patch) | |
| tree | 54880ac92edbf25248e056f0cd2858c4bf86191b | |
| parent | e011e4f89cce9963505cd18543a99531a908d952 (diff) | |
| download | bcm5719-llvm-92db30fc004b941cbabec52c0c8f5e3dcb953902.tar.gz bcm5719-llvm-92db30fc004b941cbabec52c0c8f5e3dcb953902.zip | |
[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
| -rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc b/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc index db89d08b3b6..12d03fab8d3 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc +++ b/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc @@ -125,6 +125,10 @@ uptr internal_filesize(fd_t fd) { return (uptr)st.st_size; } +DECLARE__REAL_AND_INTERNAL(uptr, dup, int oldfd) { + return _REAL(dup)(oldfd); +} + DECLARE__REAL_AND_INTERNAL(uptr, dup2, int oldfd, int newfd) { return _REAL(dup2)(oldfd, newfd); } |

