Date: Sun, 03 May 2026 02:24:44 +0000 From: Stephen J. Kiernan <stevek@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 01674e15dedb - main - bsd.endian.mk: Optimize the handling of big/little endian determination. Message-ID: <69f6b1ec.181e8.27d0b938@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by stevek: URL: https://cgit.FreeBSD.org/src/commit/?id=01674e15dedb15f8ce498af0680c50bb075c5482 commit 01674e15dedb15f8ce498af0680c50bb075c5482 Author: Stephen J. Kiernan <stevek@FreeBSD.org> AuthorDate: 2024-04-03 23:25:19 +0000 Commit: Stephen J. Kiernan <stevek@FreeBSD.org> CommitDate: 2026-05-03 02:21:56 +0000 bsd.endian.mk: Optimize the handling of big/little endian determination. Add variables to contain lists of MACHINE_ARCH values to use to determine little or big endian. Only error out about not being able to determine endianess if TARGET_ENDIANNESS is empty and not cross-compiling. Reviewed by: sjg Obtained from: Hewlett Packard Enterprise Development LP Differential Revision: https://reviews.freebsd.org/D44629 --- share/mk/bsd.endian.mk | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/share/mk/bsd.endian.mk b/share/mk/bsd.endian.mk index 0c5ebb7aeba2..2a617a1d2794 100644 --- a/share/mk/bsd.endian.mk +++ b/share/mk/bsd.endian.mk @@ -1,20 +1,35 @@ -.if ${MACHINE_CPUARCH} == "aarch64" || \ - ${MACHINE_CPUARCH} == "arm" || \ - ${MACHINE_ARCH} == "amd64" || \ - ${MACHINE_ARCH} == "i386" || \ - ${MACHINE_ARCH} == "powerpc64le" || \ - ${MACHINE_CPUARCH} == "riscv" +MACHINE_ARCH_LIST.little = \ + aarch64 \ + amd64 \ + armv7 \ + i386 \ + powerpc64le \ + riscv* + +MACHINE_ARCH_LIST.big = \ + powerpc \ + powerpc64 + +.for e in big little +N_$e:= ${MACHINE_ARCH_LIST.$e:${M_ListToSkip}} +.endfor + +# For the host, we need to look at the host architecture +.if ${MACHINE:Nhost*} == "" +_ENDIAN_ARCH=${_HOST_ARCH} +.else +_ENDIAN_ARCH=${MACHINE_ARCH} +.endif + +.if ${_ENDIAN_ARCH:${N_little}} == "" TARGET_ENDIANNESS= 1234 CAP_MKDB_ENDIAN= -l LOCALEDEF_ENDIAN= -l -.elif ${MACHINE_ARCH} == "powerpc" || \ - ${MACHINE_ARCH} == "powerpc64" +.elif ${_ENDIAN_ARCH:${N_big}} == "" TARGET_ENDIANNESS= 4321 CAP_MKDB_ENDIAN= -b LOCALEDEF_ENDIAN= -b -.elif ${.MAKE.OS} == "FreeBSD" -.error Don't know the endian of this architecture .else # # During bootstrapping on !FreeBSD OSes, we need to define some value. Short of @@ -33,3 +48,7 @@ TARGET_ENDIANNESS= 1234 CAP_MKDB_ENDIAN= -B # Poisoned value, invalid flags for both cap_mkdb LOCALEDEF_ENDIAN= -B # and localedef. .endif + +.if empty(TARGET_ENDIANNESS) && ${.MAKE.OS} == "FreeBSD" +.error Don't know the endianness of this architecture +.endifhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69f6b1ec.181e8.27d0b938>
