summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compiler-rt/lib/asan/asan_interceptors.h12
-rw-r--r--compiler-rt/lib/asan/mach_override/README.txt2
-rw-r--r--compiler-rt/lib/asan/mach_override/mach_override.c16
-rw-r--r--compiler-rt/lib/asan/mach_override/mach_override.h4
4 files changed, 19 insertions, 15 deletions
diff --git a/compiler-rt/lib/asan/asan_interceptors.h b/compiler-rt/lib/asan/asan_interceptors.h
index 39b66fec72a..20a2688f561 100644
--- a/compiler-rt/lib/asan/asan_interceptors.h
+++ b/compiler-rt/lib/asan/asan_interceptors.h
@@ -39,15 +39,15 @@
#define WRAPPER_NAME(x) "wrap_"#x
#define OVERRIDE_FUNCTION(oldfunc, newfunc) \
- CHECK(0 == mach_override_ptr((void*)(oldfunc), \
- (void*)(newfunc), \
- (void**)&real_##oldfunc)); \
+ CHECK(0 == __asan_mach_override_ptr((void*)(oldfunc), \
+ (void*)(newfunc), \
+ (void**)&real_##oldfunc)); \
CHECK(real_##oldfunc != NULL);
#define OVERRIDE_FUNCTION_IF_EXISTS(oldfunc, newfunc) \
- do { mach_override_ptr((void*)(oldfunc), \
- (void*)(newfunc), \
- (void**)&real_##oldfunc); } while (0)
+ do { __asan_mach_override_ptr((void*)(oldfunc), \
+ (void*)(newfunc), \
+ (void**)&real_##oldfunc); } while (0)
#define INTERCEPT_FUNCTION(func) \
OVERRIDE_FUNCTION(func, WRAP(func))
diff --git a/compiler-rt/lib/asan/mach_override/README.txt b/compiler-rt/lib/asan/mach_override/README.txt
index 2fb605a375e..5f62ad7b994 100644
--- a/compiler-rt/lib/asan/mach_override/README.txt
+++ b/compiler-rt/lib/asan/mach_override/README.txt
@@ -4,4 +4,6 @@
-- The files are guarded with #ifdef __APPLE__
-- some opcodes are added in order to parse the library functions on Lion
-- fixupInstructions() is extended to relocate relative calls, not only jumps
+-- mach_override_ptr is renamed to __asan_mach_override_ptr and
+ other functions are marked as hidden.
diff --git a/compiler-rt/lib/asan/mach_override/mach_override.c b/compiler-rt/lib/asan/mach_override/mach_override.c
index 25ee9d29bb8..7c259000891 100644
--- a/compiler-rt/lib/asan/mach_override/mach_override.c
+++ b/compiler-rt/lib/asan/mach_override/mach_override.c
@@ -108,18 +108,18 @@ typedef struct {
allocateBranchIsland(
BranchIsland **island,
int allocateHigh,
- void *originalFunctionAddress);
+ void *originalFunctionAddress) __attribute__((visibility("hidden")));
mach_error_t
freeBranchIsland(
- BranchIsland *island );
+ BranchIsland *island ) __attribute__((visibility("hidden")));
#if defined(__ppc__) || defined(__POWERPC__)
mach_error_t
setBranchIslandTarget(
BranchIsland *island,
const void *branchTo,
- long instruction );
+ long instruction ) __attribute__((visibility("hidden")));
#endif
#if defined(__i386__) || defined(__x86_64__)
@@ -127,11 +127,11 @@ mach_error_t
setBranchIslandTarget_i386(
BranchIsland *island,
const void *branchTo,
- char* instructions );
+ char* instructions ) __attribute__((visibility("hidden")));
void
atomic_mov64(
uint64_t *targetAddress,
- uint64_t value );
+ uint64_t value ) __attribute__((visibility("hidden")));
static Boolean
eatKnownInstructions(
@@ -140,7 +140,7 @@ eatKnownInstructions(
int *howManyEaten,
char *originalInstructions,
int *originalInstructionCount,
- uint8_t *originalInstructionSizes );
+ uint8_t *originalInstructionSizes ) __attribute__((visibility("hidden")));
static void
fixupInstructions(
@@ -148,7 +148,7 @@ fixupInstructions(
void *escapeIsland,
void *instructionsToFix,
int instructionCount,
- uint8_t *instructionSizes );
+ uint8_t *instructionSizes ) __attribute__((visibility("hidden")));
#endif
/*******************************************************************************
@@ -176,7 +176,7 @@ mach_error_t makeIslandExecutable(void *address) {
#endif
mach_error_t
-mach_override_ptr(
+__asan_mach_override_ptr(
void *originalFunctionAddress,
const void *overrideFunctionAddress,
void **originalFunctionReentryIsland )
diff --git a/compiler-rt/lib/asan/mach_override/mach_override.h b/compiler-rt/lib/asan/mach_override/mach_override.h
index f1aa617418e..dcccbcd8732 100644
--- a/compiler-rt/lib/asan/mach_override/mach_override.h
+++ b/compiler-rt/lib/asan/mach_override/mach_override.h
@@ -77,8 +77,10 @@
************************************************************************************/
+// We're prefixing mach_override_ptr() with "__asan_" to avoid name conflicts with other
+// mach_override_ptr() implementations that may appear in the client program.
mach_error_t
-mach_override_ptr(
+__asan_mach_override_ptr(
void *originalFunctionAddress,
const void *overrideFunctionAddress,
void **originalFunctionReentryIsland );
OpenPOWER on IntegriCloud