git: c4e3653e713b - main - devel/llvm15: change clang to allow -m32 on arm64

From: Brooks Davis <brooks_at_FreeBSD.org>
Date: Wed, 12 Jul 2023 19:01:37 UTC
The branch main has been updated by brooks:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c4e3653e713bdeec98237486ff3fc21b70645d0e

commit c4e3653e713bdeec98237486ff3fc21b70645d0e
Author:     Brooks Davis <brooks@FreeBSD.org>
AuthorDate: 2023-07-12 17:34:59 +0000
Commit:     Brooks Davis <brooks@FreeBSD.org>
CommitDate: 2023-07-12 19:00:55 +0000

    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
---
 devel/llvm15/Makefile                        |  2 +-
 devel/llvm15/files/patch-backport-3450272fc2 | 33 ++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 1 deletion(-)

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