diff options
Diffstat (limited to 'compiler-rt/lib/asan/mach_override')
-rw-r--r-- | compiler-rt/lib/asan/mach_override/README.txt | 2 | ||||
-rw-r--r-- | compiler-rt/lib/asan/mach_override/mach_override.c | 16 | ||||
-rw-r--r-- | compiler-rt/lib/asan/mach_override/mach_override.h | 4 |
3 files changed, 13 insertions, 9 deletions
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 ); |