-
Notifications
You must be signed in to change notification settings - Fork 14.5k
Open
Labels
LTOLink time optimization (regular/full LTO or ThinLTO)Link time optimization (regular/full LTO or ThinLTO)compiler-rt:cfiControl Flow IntegrityControl Flow Integrity
Description
cat ../b.c
void f(void) {}
int main(int argc, char **argv) {
argv[0] = (char *)f;
void (*fp)(void) = (void (*)(void))argv[0];
fp();
}
cat ../a.c
__attribute__((weak)) void f(void) {}
extern void ff(void) __attribute__((alias("f")));
clang ../b.c ../a.c -fsanitize=cfi-icall -flto=thin -fvisibility=hidden -fuse-ld=lld -o x -Wl,-save-temps -Wl,--thinlto-jobs=1
ld.lld: error: duplicate symbol: f.cfi
>>> defined at b.c
>>> /tmp/x.lto.b-0cd040.o:(f.cfi)
>>> defined at a.c
>>> /tmp/x.lto.a-1b6f8e.o:(.text.f.cfi+0x0)
Metadata
Metadata
Assignees
Labels
LTOLink time optimization (regular/full LTO or ThinLTO)Link time optimization (regular/full LTO or ThinLTO)compiler-rt:cfiControl Flow IntegrityControl Flow Integrity