git: e338aab61374 - stable/15 - share/mk: Fix a heuristic in bsd.cpu.mk
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 30 Sep 2025 15:23:38 UTC
The branch stable/15 has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=e338aab61374958acb67838d35b95d792f7c79e3
commit e338aab61374958acb67838d35b95d792f7c79e3
Author: Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2025-09-07 16:07:32 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2025-09-30 09:43:08 +0000
share/mk: Fix a heuristic in bsd.cpu.mk
When cross-building from MacOS we have MACHINE=arm64 MACHINE_ARCH=arm,
so bsd.cpu.mk infers that sizeof(long) == 4, but of course it isn't.
This breaks the bootstrap build of openssl, which tests
MACHINE_ABI:Mlong64 to decide whether to build ecp_nistp224.c. It
doesn't, and crypto/openssl/freebsd/include/openssl/configuration.h
undefines OPENSSL_NO_EC_NISTP_64_GCC_128, so we end up with a link
error.
Reviewed by: ngie, emaste
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D52340
(cherry picked from commit 4341f92251ae00c3f82904623bfd561bb8ea49fb)
---
share/mk/bsd.cpu.mk | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/share/mk/bsd.cpu.mk b/share/mk/bsd.cpu.mk
index f6599a0ad802..1225d690e908 100644
--- a/share/mk/bsd.cpu.mk
+++ b/share/mk/bsd.cpu.mk
@@ -391,8 +391,11 @@ MACHINE_ABI+= soft-float
.else
MACHINE_ABI+= hard-float
.endif
-# Currently all 64-bit architectures include 64 in their name (see arch(7)).
-.if ${MACHINE_ARCH:M*64*}
+# Currently all 64-bit FreeBSD architectures include 64 in their name
+# (see arch(7)). We need a special case for cross-building from macOS
+# (which uses arm64/arm).
+.if ${MACHINE_ARCH:M*64*} || \
+ (defined(BOOTSTRAPPING) && ${.MAKE.OS} == "Darwin" && ${MACHINE} == "arm64")
MACHINE_ABI+= long64
.else
MACHINE_ABI+= long32