aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrooks Davis <brooks@FreeBSD.org>2023-07-12 17:34:59 +0000
committerBrooks Davis <brooks@FreeBSD.org>2023-07-12 19:00:55 +0000
commitc4e3653e713bdeec98237486ff3fc21b70645d0e (patch)
tree28094631a822770cd5e3445a88195ae2b64270e3
parentd79c9390b3c7fc1295adc1c4c3fd80ec6374474e (diff)
downloadports-c4e3653e713bdeec98237486ff3fc21b70645d0e.tar.gz
ports-c4e3653e713bdeec98237486ff3fc21b70645d0e.zip
devel/llvm15: change clang to allow -m32 on arm64
This is a backport from upstream and will be merged to FreeBSD head soon. See D40943 for more info. Sponsored by: DARPA
-rw-r--r--devel/llvm15/Makefile2
-rw-r--r--devel/llvm15/files/patch-backport-3450272fc233
2 files changed, 34 insertions, 1 deletions
diff --git a/devel/llvm15/Makefile b/devel/llvm15/Makefile
index 91bdd77f3941..055eda28506c 100644
--- a/devel/llvm15/Makefile
+++ b/devel/llvm15/Makefile
@@ -1,6 +1,6 @@
PORTNAME= llvm
DISTVERSION= 15.0.7
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= devel lang
MASTER_SITES= https://github.com/llvm/llvm-project/releases/download/llvmorg-${DISTVERSION:S/rc/-rc/}/ \
https://${PRE_}releases.llvm.org/${LLVM_RELEASE}${RCDIR}/
diff --git a/devel/llvm15/files/patch-backport-3450272fc2 b/devel/llvm15/files/patch-backport-3450272fc2
new file mode 100644
index 000000000000..1af8bf9700a0
--- /dev/null
+++ b/devel/llvm15/files/patch-backport-3450272fc2
@@ -0,0 +1,33 @@
+commit 3450272fc281979388bb845a9fffb59b42cc2e7e
+Author: Jessica Clarke <jrtc27@jrtc27.com>
+Date: Mon Jul 10 01:40:58 2023 +0100
+
+ [Driver][FreeBSD] Generalise lib32 handling to support arm
+
+ The current code maintains its own list of 32-bit architectures for
+ which there is a 64-bit FreeBSD architecture that supports it for lib32.
+ This is unnecessary (if it's not supported, the directory just won't
+ exist), and means that, when FreeBSD gains lib32 support for a new
+ architecture, you need an updated toolchain that knows about it.
+ Instead we can check for any 32-bit architecture and have forwards
+ compatibility.
+
+ This is motivated by FreeBSD adding support for building arm lib32
+ libraries on aarch64.
+
+ Co-authored-by: Mike Karels <karels@FreeBSD.org>
+
+diff --git clang/lib/Driver/ToolChains/FreeBSD.cpp clang/lib/Driver/ToolChains/FreeBSD.cpp
+index ac336598a78c..84e257741702 100644
+--- clang/lib/Driver/ToolChains/FreeBSD.cpp
++++ clang/lib/Driver/ToolChains/FreeBSD.cpp
+@@ -376,8 +376,7 @@ FreeBSD::FreeBSD(const Driver &D, const llvm::Triple &Triple,
+
+ // When targeting 32-bit platforms, look for '/usr/lib32/crt1.o' and fall
+ // back to '/usr/lib' if it doesn't exist.
+- if ((Triple.getArch() == llvm::Triple::x86 || Triple.isMIPS32() ||
+- Triple.isPPC32()) &&
++ if (Triple.isArch32Bit() &&
+ D.getVFS().exists(concat(getDriver().SysRoot, "/usr/lib32/crt1.o")))
+ getFilePaths().push_back(concat(getDriver().SysRoot, "/usr/lib32"));
+ else