aboutsummaryrefslogtreecommitdiff
path: root/compiler-rt/lib/sanitizer_common/symbolizer
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2022-07-03 14:10:23 +0000
committerDimitry Andric <dim@FreeBSD.org>2022-07-03 14:10:23 +0000
commit145449b1e420787bb99721a429341fa6be3adfb6 (patch)
tree1d56ae694a6de602e348dd80165cf881a36600ed /compiler-rt/lib/sanitizer_common/symbolizer
parentecbca9f5fb7d7613d2b94982c4825eb0d33d6842 (diff)
downloadsrc-145449b1e420787bb99721a429341fa6be3adfb6.tar.gz
src-145449b1e420787bb99721a429341fa6be3adfb6.zip
Diffstat (limited to 'compiler-rt/lib/sanitizer_common/symbolizer')
-rw-r--r--compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cpp3
-rw-r--r--compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cpp11
-rwxr-xr-xcompiler-rt/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh39
-rwxr-xr-xcompiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh40
-rw-r--r--compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt4
5 files changed, 33 insertions, 64 deletions
diff --git a/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cpp b/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cpp
index 80cab36426c5..bca12d42f90a 100644
--- a/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cpp
+++ b/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cpp
@@ -10,6 +10,7 @@
//
//===----------------------------------------------------------------------===//
+#include <inttypes.h>
#include <stdio.h>
#include <string>
@@ -41,7 +42,7 @@ static llvm::symbolize::PrinterConfig getDefaultPrinterConfig() {
}
namespace __sanitizer {
-int internal_snprintf(char *buffer, unsigned long length, const char *format,
+int internal_snprintf(char *buffer, uintptr_t length, const char *format,
...);
} // namespace __sanitizer
diff --git a/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cpp b/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cpp
index d3c59e357d46..cdac2333706d 100644
--- a/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cpp
+++ b/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cpp
@@ -13,6 +13,7 @@
#include <dlfcn.h>
#include <errno.h>
#include <fcntl.h>
+#include <inttypes.h>
#include <stdarg.h>
#include <stdio.h>
#include <unistd.h>
@@ -27,11 +28,11 @@ unsigned long internal_stat(const char *path, void *buf);
unsigned long internal_lstat(const char *path, void *buf);
unsigned long internal_fstat(int fd, void *buf);
size_t internal_strlen(const char *s);
-unsigned long internal_mmap(void *addr, unsigned long length, int prot,
- int flags, int fd, unsigned long long offset);
+unsigned long internal_mmap(void *addr, uintptr_t length, int prot, int flags,
+ int fd, unsigned long long offset);
void *internal_memcpy(void *dest, const void *src, unsigned long n);
// Used to propagate errno.
-bool internal_iserror(unsigned long retval, int *rverrno = 0);
+bool internal_iserror(uintptr_t retval, int *rverrno = 0);
} // namespace __sanitizer
namespace {
@@ -154,8 +155,8 @@ size_t strlen(const char *s) { return __sanitizer::internal_strlen(s); }
void *mmap(void *addr, size_t length, int prot, int flags, int fd,
off_t offset) {
- unsigned long res = __sanitizer::internal_mmap(
- addr, (unsigned long)length, prot, flags, fd, (unsigned long long)offset);
+ unsigned long res =
+ __sanitizer::internal_mmap(addr, length, prot, flags, fd, offset);
RETURN_OR_SET_ERRNO(void *, res);
}
diff --git a/compiler-rt/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh b/compiler-rt/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh
deleted file mode 100755
index fa05d61a7c6d..000000000000
--- a/compiler-rt/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env bash
-
-function usage() {
- echo "Usage: $0 INPUT... OUTPUT"
- exit 1
-}
-
-if [ "$#" -le 1 ]; then
- usage
-fi
-
-[[ $AR == /* ]] || AR=$PWD/$AR
-[[ $LINK == /* ]] || LINK=$PWD/$LINK
-
-INPUTS=
-OUTPUT=
-for ARG in $@; do
- INPUTS="$INPUTS $OUTPUT"
- OUTPUT=$(readlink -f $ARG)
-done
-
-echo Inputs: $INPUTS
-echo Output: $OUTPUT
-
-SCRATCH_DIR=$(mktemp -d)
-ln -s $INPUTS $SCRATCH_DIR/
-
-pushd $SCRATCH_DIR
-
-for INPUT in *; do
- for OBJ in $($AR t $INPUT); do
- $AR x $INPUT $OBJ
- mv -f $OBJ $(basename $INPUT).$OBJ
- done
-done
-
-$LINK *.o -o $OUTPUT
-
-rm -rf $SCRATCH_DIR
diff --git a/compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh b/compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
index 599f063b45c9..b6f731566c19 100755
--- a/compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
+++ b/compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
@@ -69,8 +69,8 @@ CC=$CLANG_DIR/clang
CXX=$CLANG_DIR/clang++
TBLGEN=$CLANG_DIR/llvm-tblgen
OPT=$CLANG_DIR/opt
-export AR=$CLANG_DIR/llvm-ar
-export LINK=$CLANG_DIR/llvm-link
+AR=$CLANG_DIR/llvm-ar
+LINK=$CLANG_DIR/llvm-link
TARGET_TRIPLE=$($CC -print-target-triple)
for F in $CC $CXX $TBLGEN $LINK $OPT $AR; do
@@ -118,6 +118,7 @@ if [[ ! -d ${LIBCXX_BUILD} ]]; then
-DLIBCXX_ENABLE_EXCEPTIONS=OFF \
-DLIBCXX_ENABLE_RTTI=OFF \
-DLIBCXX_ENABLE_SHARED=OFF \
+ -DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET_TRIPLE}" \
$LLVM_SRC
fi
cd ${LIBCXX_BUILD}
@@ -137,6 +138,7 @@ if [[ ! -d ${LLVM_BUILD} ]]; then
-DCMAKE_C_FLAGS_RELEASE="${LLVM_FLAGS}" \
-DCMAKE_CXX_FLAGS_RELEASE="${LLVM_FLAGS}" \
-DLLVM_TABLEGEN=$TBLGEN \
+ -DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET_TRIPLE}" \
-DLLVM_ENABLE_ZLIB=ON \
-DLLVM_ENABLE_TERMINFO=OFF \
-DLLVM_ENABLE_THREADS=OFF \
@@ -165,23 +167,23 @@ SYMBOLIZER_API_LIST+=,__sanitizer_symbolize_set_inline_frames
LIBCXX_ARCHIVE_DIR=$(dirname $(find $LIBCXX_BUILD -name libc++.a | head -n1))
# Merge all the object files together and copy the resulting library back.
-$SCRIPT_DIR/ar_to_bc.sh $LIBCXX_ARCHIVE_DIR/libc++.a \
- $LIBCXX_ARCHIVE_DIR/libc++abi.a \
- $LLVM_BUILD/lib/libLLVMSymbolize.a \
- $LLVM_BUILD/lib/libLLVMObject.a \
- $LLVM_BUILD/lib/libLLVMBinaryFormat.a \
- $LLVM_BUILD/lib/libLLVMDebugInfoDWARF.a \
- $LLVM_BUILD/lib/libLLVMSupport.a \
- $LLVM_BUILD/lib/libLLVMDebugInfoPDB.a \
- $LLVM_BUILD/lib/libLLVMDebugInfoMSF.a \
- $LLVM_BUILD/lib/libLLVMDebugInfoCodeView.a \
- $LLVM_BUILD/lib/libLLVMDebuginfod.a \
- $LLVM_BUILD/lib/libLLVMDemangle.a \
- $LLVM_BUILD/lib/libLLVMMC.a \
- $LLVM_BUILD/lib/libLLVMTextAPI.a \
- $ZLIB_BUILD/libz.a \
- symbolizer.a \
- all.bc
+$LINK $LIBCXX_ARCHIVE_DIR/libc++.a \
+ $LIBCXX_ARCHIVE_DIR/libc++abi.a \
+ $LLVM_BUILD/lib/libLLVMSymbolize.a \
+ $LLVM_BUILD/lib/libLLVMObject.a \
+ $LLVM_BUILD/lib/libLLVMBinaryFormat.a \
+ $LLVM_BUILD/lib/libLLVMDebugInfoDWARF.a \
+ $LLVM_BUILD/lib/libLLVMSupport.a \
+ $LLVM_BUILD/lib/libLLVMDebugInfoPDB.a \
+ $LLVM_BUILD/lib/libLLVMDebugInfoMSF.a \
+ $LLVM_BUILD/lib/libLLVMDebugInfoCodeView.a \
+ $LLVM_BUILD/lib/libLLVMDebuginfod.a \
+ $LLVM_BUILD/lib/libLLVMDemangle.a \
+ $LLVM_BUILD/lib/libLLVMMC.a \
+ $LLVM_BUILD/lib/libLLVMTextAPI.a \
+ $ZLIB_BUILD/libz.a \
+ symbolizer.a \
+ -ignore-non-bitcode -o all.bc
echo "Optimizing..."
$OPT -internalize -internalize-public-api-list=${SYMBOLIZER_API_LIST} all.bc -o opt.bc
diff --git a/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt b/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt
index 071dbbb279c6..8e8013853f7e 100644
--- a/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt
+++ b/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt
@@ -1,4 +1,5 @@
_GLOBAL_OFFSET_TABLE_ U
+_ZN11__sanitizer13internal_mmapEPvjiiiy U
_ZN11__sanitizer13internal_mmapEPvmiiiy U
_ZN11__sanitizer13internal_openEPKcij U
_ZN11__sanitizer13internal_statEPKcPv U
@@ -6,7 +7,9 @@ _ZN11__sanitizer14internal_closeEi U
_ZN11__sanitizer14internal_fstatEiPv U
_ZN11__sanitizer14internal_lstatEPKcPv U
_ZN11__sanitizer15internal_strlenEPKc U
+_ZN11__sanitizer16internal_iserrorEjPi U
_ZN11__sanitizer16internal_iserrorEmPi U
+_ZN11__sanitizer17internal_snprintfEPcjPKcz U
_ZN11__sanitizer17internal_snprintfEPcmPKcz U
__ctype_b_loc U
__ctype_get_mb_cur_max U
@@ -110,6 +113,7 @@ mkdir U
munmap U
newlocale U
perror U
+posix_madvise U
posix_spawn U
posix_spawn_file_actions_adddup2 U
posix_spawn_file_actions_addopen U