A /usr/src/Makefile.inc1 question for its MK_SYSTEM_COMPILER=no MK_SYSTEM_LINKER=no usage
Mark Millard
marklmi at yahoo.com
Wed Oct 10 06:05:56 UTC 2018
Is the following as intended?
In /usr/src/Makefile.inc1 there is:
# If all targets are disabled for system llvm then don't expect it to work
# for cross-builds.
.if !defined(TOOLS_PREFIX) && ${MK_LLVM_TARGET_ALL} == "no" && \
${MACHINE} != ${TARGET} && ${MACHINE_ARCH} != ${TARGET_ARCH} && \
!make(showconfig)
MK_SYSTEM_COMPILER= no
MK_SYSTEM_LINKER= no
.endif
Take an example context of:
MACHINE=arm64 TARGET=arm
MACHINE_ARCH=aarch64 TARGET_ARCH=armv7
This would potentially allow the MK_SYSTEM_COMPILER
and MK_SYSTEM_LINKER assignments to "no".
(As an example use: MK_SYSTEM_COMPILER=="yes" is
required to set to disable the bootstrap compiler
via MK_CLANG_BOOTSTRAP and MK_GCC_BOOTSTRAP being
set to "no".)
Note: Any time ${MACHINE} != ${TARGET} then
${MACHINE_ARCH} != ${TARGET_ARCH} for the
existing/supported combinations (if I understand
right). This is probably a requirement on any
future combinations as well in order to avoid
_ARCH's being ambiguous.
But both the contrasting example contexts of:
MACHINE=arm TARGET=arm
MACHINE_ARCH=armv6 TARGET_ARCH=armv7
and:
MACHINE=arm TARGET=arm
MACHINE_ARCH=armv7 TARGET_ARCH=armv7
would prevent the MK_SYSTEM_COMPILER and
MK_SYSTEM_LINKER assignments to "no" based
on (at least) ${MACHINE} == ${TARGET}.
Note: Any time ${MACHINE_ARCH} == ${TARGET_ARCH}
then ${MACHINE} == ${TARGET} for the
existing/supported combinations (if I understand
right). This is probably a requirement on any
future combinations as well in order to avoid
_ARCH's being ambiguous.
So overall it seems the code is effectively (for
valid combinations):
.if !defined(TOOLS_PREFIX) && ${MK_LLVM_TARGET_ALL} == "no" && \
${MACHINE} != ${TARGET} && \
!make(showconfig)
MK_SYSTEM_COMPILER= no
MK_SYSTEM_LINKER= no
.endif
Is that the intent?
(I avoided powerpc combinations because of the
current problematical status of clang/llvm materials
when powerpc family members are involved for
FreeBSD. Hopefully some year this will have proved
temporary.)
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
More information about the freebsd-toolchain
mailing list