[profile] Mark lprofCurFilename as COMPILER_RT_WEAK
This makes __llvm_profile_set_filename() work across dylib boundaries on Darwin. This functionality was originally meant to work on all platforms, but was moved to a Linux-only directory with r272404. The root cause of the test failure on Darwin was that lprofCurFilename was not marked weak. Each dylib maintained its own copy of the variable due to the two-level namespace. Tested with check-profile (on Darwin). I don't expect this to regress other platforms. Differential Revision: https://reviews.llvm.org/D25707 llvm-svn: 284440
This commit is contained in:
parent
981da8d37b
commit
6ff82bd0ec
@ -82,7 +82,8 @@ typedef struct lprofFilename {
|
|||||||
ProfileNameSpecifier PNS;
|
ProfileNameSpecifier PNS;
|
||||||
} lprofFilename;
|
} lprofFilename;
|
||||||
|
|
||||||
lprofFilename lprofCurFilename = {0, 0, 0, {0}, {0}, 0, 0, 0, PNS_unknown};
|
COMPILER_RT_WEAK lprofFilename lprofCurFilename = {0, 0, 0, {0}, {0},
|
||||||
|
0, 0, 0, PNS_unknown};
|
||||||
|
|
||||||
int getpid(void);
|
int getpid(void);
|
||||||
static int getCurFilenameLength();
|
static int getCurFilenameLength();
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Test that __llvm_profile_set_filename is honored by shared libary too.
|
# Test that __llvm_profile_set_filename is honored by shared libary too.
|
||||||
RUN: mkdir -p %t.d
|
RUN: mkdir -p %t.d
|
||||||
RUN: %clang_profgen=%t.shared.profraw -fPIC -shared -o %t.d/t.shared %S/../Inputs/instrprof-dlopen-func.c
|
RUN: %clang_profgen=%t.shared.profraw -fPIC -shared -o %t.d/t.shared %S/Inputs/instrprof-dlopen-func.c
|
||||||
RUN: %clang_profgen -DCALL_SHARED -o %t.m -O3 -rpath %t.d %t.d/t.shared %S/../instrprof-set-filename.c
|
RUN: %clang_profgen -DCALL_SHARED -o %t.m -O3 -rpath %t.d %t.d/t.shared %S/instrprof-set-filename.c
|
||||||
RUN: %run %t.m %t.main.profraw
|
RUN: %run %t.m %t.main.profraw
|
||||||
RUN: llvm-profdata show %t.main.profraw | FileCheck --check-prefix=SHARED %s
|
RUN: llvm-profdata show %t.main.profraw | FileCheck --check-prefix=SHARED %s
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user