Fix PR 110066: crash with -pg -static on riscv
The problem -fasynchronous-unwind-tables is on by default for riscv linux We need turn it off for crt*.o because it would make __EH_FRAME_BEGIN__ point to .eh_frame data from crtbeginT.o instead of the user-defined object during static linking. This turns it off. OK? libgcc/ChangeLog: * config.host (riscv*-*-linux*): Add t-crtstuff to tmake_file. (riscv*-*-freebsd*): Likewise. * config/riscv/t-crtstuff: New file.
This commit is contained in:
parent
f33fdf9e7c
commit
bbc1a10273
2 changed files with 7 additions and 2 deletions
|
@ -1304,12 +1304,12 @@ pru-*-*)
|
|||
tm_file="$tm_file pru/pru-abi.h"
|
||||
;;
|
||||
riscv*-*-linux*)
|
||||
tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address} t-slibgcc-libgcc"
|
||||
tmake_file="${tmake_file} riscv/t-crtstuff riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address} t-slibgcc-libgcc"
|
||||
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
|
||||
md_unwind_header=riscv/linux-unwind.h
|
||||
;;
|
||||
riscv*-*-freebsd*)
|
||||
tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address} t-slibgcc-libgcc"
|
||||
tmake_file="${tmake_file} riscv/t-crtstuff riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address} t-slibgcc-libgcc"
|
||||
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
|
||||
;;
|
||||
riscv*-*-*)
|
||||
|
|
5
libgcc/config/riscv/t-crtstuff
Normal file
5
libgcc/config/riscv/t-crtstuff
Normal file
|
@ -0,0 +1,5 @@
|
|||
# -fasynchronous-unwind-tables -funwind-tables is on by default for riscv linux
|
||||
# We turn it off for crt*.o because it would make __EH_FRAME_BEGIN__ point
|
||||
# to .eh_frame data from crtbeginT.o instead of the user-defined object
|
||||
# during static linking.
|
||||
CRTSTUFF_T_CFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables
|
Loading…
Add table
Reference in a new issue