Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Oct 2017 09:23:29 +0300
From:      =?UTF-8?Q?Eddy_Petri=C8=99or?= <eddy.petrisor@gmail.com>
To:        freebsd-toolchain@freebsd.org, freebsd-arm@freebsd.org
Subject:   lib/clan/llvm.build.mk: Shouldn't BUILD_TRIPLE definition rely host 'cc -dumpmachine'?
Message-ID:  <CAK0XTWczya8vg_sQZPqz-ZyYZRMq1v6p%2Bjs90S%2BjaDHxo2=1gA@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hello,

I am trying to make the FreeBSD code base build from a Linux host and
found this bit which defines BUILD_TRIPLE in a way which to my
untrained eyes look like overengineering.

 .if ${TARGET_ARCH:Marmv6*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} =3D=
=3D "")
 TARGET_ABI=3D    -gnueabihf
 .elif ${TARGET_ARCH:Marm*}
 TARGET_ABI=3D    -gnueabi
 .else
 TARGET_ABI=3D
 .endif
 VENDOR=3D        unknown
 OS_VERSION=3D    freebsd12.0

 TARGET_TRIPLE?=3D
${TARGET_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${VENDOR}-${OS_VERSION}${TA=
RGET_ABI}
 BUILD_TRIPLE?=3D
${BUILD_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${VENDOR}-${OS_VERSION}


To support a Linux host I made these changes that is using 'cc
-dumpmachine' to get the correct BUILD_TRIPLE, but I am wondering if
it shouldn't be OK for building on a FreeBSD host

 .if ${TARGET_ARCH:Marmv6*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} =3D=
=3D "")
 TARGET_ABI=3D    -gnueabihf
 .elif ${TARGET_ARCH:Marm*}
 TARGET_ABI=3D    -gnueabi
 .else
 TARGET_ABI=3D
 .endif
 VENDOR=3D        unknown
 OS_VERSION=3D    freebsd12.0
+BUILD_OS!=3D    uname -s
+

 TARGET_TRIPLE?=3D
${TARGET_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${VENDOR}-${OS_VERSION}${TA=
RGET_ABI}
+.if ${BUILD_OS} =3D=3D FreeBSD
 BUILD_TRIPLE?=3D
${BUILD_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${VENDOR}-${OS_VERSION}
+.else
+HOST_CC_DUMPMACHINE!=3D    cc -dumpmachine
+BUILD_TRIPLE?=3D    ${HOST_CC_DUMPMACHINE}
+.endif

What do you think, should the code be instead:

 .if ${TARGET_ARCH:Marmv6*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} =3D=
=3D "")
 TARGET_ABI=3D    -gnueabihf
 .elif ${TARGET_ARCH:Marm*}
 TARGET_ABI=3D    -gnueabi
 .else
 TARGET_ABI=3D
 .endif
 VENDOR=3D        unknown
 OS_VERSION=3D    freebsd12.0

 TARGET_TRIPLE?=3D
${TARGET_ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-${VENDOR}-${OS_VERSION}${TA=
RGET_ABI}
+HOST_CC_DUMPMACHINE!=3D    cc -dumpmachine
+BUILD_TRIPLE?=3D    ${HOST_CC_DUMPMACHINE}


--=20
Eddy Petri=C8=99or



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAK0XTWczya8vg_sQZPqz-ZyYZRMq1v6p%2Bjs90S%2BjaDHxo2=1gA>