[all-commits] [llvm/llvm-project] ef58ae: [RISCV] Fix mcount name
Nathan Chancellor via All-commits
all-commits at lists.llvm.org
Wed Mar 24 18:13:32 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: ef58ae86ba778ed7d01cd3f6bd6d08f943abab44
https://github.com/llvm/llvm-project/commit/ef58ae86ba778ed7d01cd3f6bd6d08f943abab44
Author: Nathan Chancellor <nathan at kernel.org>
Date: 2021-03-24 (Wed, 24 Mar 2021)
Changed paths:
M clang/lib/Basic/Targets/OSTargets.h
M clang/lib/Basic/Targets/RISCV.h
M clang/test/CodeGen/mcount.c
Log Message:
-----------
[RISCV] Fix mcount name
GCC's name for this symbol is _mcount, which the Linux kernel expects in
a few different place:
$ echo 'int main(void) { return 0; }' | riscv32-linux-gcc -c -pg -o tmp.o -x c -
$ llvm-objdump -dr tmp.o | grep mcount
0000000c: R_RISCV_CALL _mcount
$ echo 'int main(void) { return 0; }' | riscv64-linux-gcc -c -pg -o tmp.o -x c -
$ llvm-objdump -dr tmp.o | grep mcount
000000000000000c: R_RISCV_CALL _mcount
$ echo 'int main(void) { return 0; }' | clang -c -pg -o tmp.o --target=riscv32-linux-gnu -x c -
$ llvm-objdump -dr tmp.o | grep mcount
0000000a: R_RISCV_CALL_PLT mcount
$ echo 'int main(void) { return 0; }' | clang -c -pg -o tmp.o --target=riscv64-linux-gnu -x c -
$ llvm-objdump -dr tmp.o | grep mcount
000000000000000a: R_RISCV_CALL_PLT mcount
Set MCountName to "_mcount" in RISCVTargetInfo then prevent it from
getting overridden in certain OSTargetInfo constructors.
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D98881
Signed-off-by: Nathan Chancellor <nathan at kernel.org>
More information about the All-commits
mailing list