aboutsummaryrefslogtreecommitdiff
path: root/libgcc/config/riscv
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@wdc.com>2020-09-29 01:20:01 +0100
committerMaciej W. Rozycki <macro@linux-mips.org>2020-09-29 01:20:01 +0100
commit090d3f5ab390e74caa1f93b7d9f5074c62ba9d07 (patch)
tree83e9f5f5ab2dd8e56d1b56e88ff0a43517815a06 /libgcc/config/riscv
parente84761c6f32fa6e9b7dccc4245231a7ff4d7da61 (diff)
downloadgcc-090d3f5ab390e74caa1f93b7d9f5074c62ba9d07.zip
gcc-090d3f5ab390e74caa1f93b7d9f5074c62ba9d07.tar.gz
gcc-090d3f5ab390e74caa1f93b7d9f5074c62ba9d07.tar.bz2
RISC-V/libgcc: Use `-fasynchronous-unwind-tables' for LIB2_DIVMOD_FUNCS
Use `-fasynchronous-unwind-tables' rather than `-fexceptions -fnon-call-exceptions' in LIB2_DIVMOD_FUNCS compilation flags so as to provide unwind tables for the affected functions while not pulling the unwinder proper, which is not required here. Beyond saving program space it fixes a RISC-V glibc build error due to unsatisfied `malloc' and `free' references from the unwinder causing link errors with `ld.so' where libgcc has been built at -O0. libgcc/ * config/riscv/t-elf (LIB2_DIVMOD_EXCEPTION_FLAGS): New variable.
Diffstat (limited to 'libgcc/config/riscv')
-rw-r--r--libgcc/config/riscv/t-elf2
1 files changed, 2 insertions, 0 deletions
diff --git a/libgcc/config/riscv/t-elf b/libgcc/config/riscv/t-elf
index dbc8f85..415e1ff 100644
--- a/libgcc/config/riscv/t-elf
+++ b/libgcc/config/riscv/t-elf
@@ -4,3 +4,5 @@ LIB2ADD += $(srcdir)/config/riscv/save-restore.S \
$(srcdir)/config/riscv/div.S \
$(srcdir)/config/riscv/atomic.c \
+# Avoid the full unwinder being pulled along with the division libcalls.
+LIB2_DIVMOD_EXCEPTION_FLAGS := -fasynchronous-unwind-tables