summaryrefslogtreecommitdiff
path: root/devel/llvm-cheri/files/wrapper-cheri.sh.in
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devel/llvm-cheri/files/wrapper-cheri.sh.in10
1 files changed, 8 insertions, 2 deletions
diff --git a/devel/llvm-cheri/files/wrapper-cheri.sh.in b/devel/llvm-cheri/files/wrapper-cheri.sh.in
index 113aacf20a5a..dd817858326f 100644
--- a/devel/llvm-cheri/files/wrapper-cheri.sh.in
+++ b/devel/llvm-cheri/files/wrapper-cheri.sh.in
@@ -144,6 +144,8 @@ if [ $CHERIBSD_VERSION -gt 0 ]; then
tls_flags=
vararg_flags=
codeptr_flags=
+ capreloc_cflags=
+ capreloc_ldflags=
if [ "$CHERIBSD_VERSION" -le 20220314 ]; then
tls_flags="-femulated-tls"
elif [ "$CHERIBSD_VERSION" -le 20220828 ]; then
@@ -153,6 +155,10 @@ if [ $CHERIBSD_VERSION -gt 0 ]; then
else
vararg_flags="-Xclang -morello-vararg=new -Xclang -morello-bounded-memargs"
fi
+ if [ "$CHERIBSD_VERSION" -ge 20250127 ]; then
+ capreloc_cflags="-Wl,--local-caprelocs=elf"
+ capreloc_ldflags="--local-caprelocs=elf"
+ fi
if [ "$CHERIBSD_VERSION" -gt 20250127 ]; then
codeptr_flags=-cheri-codeptr-relocs
fi
@@ -160,8 +166,8 @@ if [ $CHERIBSD_VERSION -gt 0 ]; then
# consume -Xclang arguments which can lead to unused
# argument warnings so we supress them with
# --start/end-no-unused-arguments.
- arch_cflags="-march=morello -mabi=purecap --start-no-unused-arguments $tls_flags $vararg_flags $codeptr_flags --end-no-unused-arguments"
- arch_ldflags="$codeptr_flags"
+ arch_cflags="-march=morello -mabi=purecap --start-no-unused-arguments $tls_flags $vararg_flags $capreloc_cflags $codeptr_flags --end-no-unused-arguments"
+ arch_ldflags="$capreloc_ldflags $codeptr_flags"
arch_objdump_flags="--mattr=+morello"
else
vararg_flags=