[v5,02/16] riscv/cfi: Set up necessary options for --enable-cfi
Checks
| Context |
Check |
Description |
| redhat-pt-bot/TryBot-apply_patch |
success
|
Patch applied to master at the time it was sent
|
Commit Message
Co-authored-by: Hau Hsu <hau.hsu@sifive.com>
Reviewed-by: Deepak Gupta <debug@rivosinc.com>
---
sysdeps/riscv/Makefile | 9 +++++++++
sysdeps/riscv/preconfigure | 2 ++
sysdeps/riscv/preconfigure.ac | 1 +
3 files changed, 12 insertions(+)
@@ -15,3 +15,12 @@ ASFLAGS-.os += -Wa,-mno-relax
ASFLAGS-.o += -Wa,-mno-relax
sysdep-CFLAGS += -mno-relax
endif
+
+# Enable RISC-V CFI
+ifeq (yes,$(riscv-enable-cfi))
+CFLAGS-.o += -fcf-protection=full
+CFLAGS-.os += -fcf-protection=full
+CFLAGS-.op += -fcf-protection=full
+CFLAGS-.oS += -fcf-protection=full
+asm-CPPFLAGS += -fcf-protection=full -include sysdep.h
+endif
@@ -79,6 +79,8 @@ riscv*)
printf "%s\n" "#define RISCV_ABI_FLEN $abi_flen" >>confdefs.h
+ config_vars="$config_vars
+riscv-enable-cfi = $enable_cfi"
;;
esac
@@ -77,5 +77,6 @@ riscv*)
AC_DEFINE_UNQUOTED([RISCV_ABI_XLEN], [$xlen])
AC_DEFINE_UNQUOTED([RISCV_ABI_FLEN], [$abi_flen])
+ LIBC_CONFIG_VAR([riscv-enable-cfi], [$enable_cfi])
;;
esac