Index: share/mk/src.opts.mk =================================================================== --- share/mk/src.opts.mk +++ share/mk/src.opts.mk @@ -241,15 +241,17 @@ # Additional, per-target behavior should be rarely added only after much # gnashing of teeth and grinding of gears. # +# * DO NOT use MACHINE or TARGET for configuration. They are for kernel only. * +# .if defined(TARGET_ARCH) __T=${TARGET_ARCH} .else __T=${MACHINE_ARCH} .endif -.if defined(TARGET) -__TT=${TARGET} +.if defined(TARGET_CPUARCH) +__TCA=${TARGET_CPUARCH} .else -__TT=${MACHINE} +__TCA=${MACHINE_CPUARCH} .endif # All supported backends for LLVM_TARGET_XXX @@ -260,13 +262,13 @@ powerpc \ sparc \ x86 -__LLVM_TARGET_FILT= C/(amd64|i386)/x86/:S/sparc64/sparc/:S/arm64/aarch64/ +__LLVM_TARGET_FILT= C/(amd64|i386)/x86/:S/sparc64/sparc/ .for __llt in ${__LLVM_TARGETS} # Default the given TARGET's LLVM_TARGET support to the value of MK_CLANG. -.if ${__TT:${__LLVM_TARGET_FILT}} == ${__llt} +.if ${__TCA:${__LLVM_TARGET_FILT}} == ${__llt} __DEFAULT_DEPENDENT_OPTIONS+= LLVM_TARGET_${__llt:${__LLVM_TARGET_FILT}:tu}/CLANG # aarch64 needs arm for -m32 support. -.elif ${__TT} == "arm64" && ${__llt} == "arm" +.elif ${__TCA} == "aarch64" && ${__llt} == "arm" __DEFAULT_DEPENDENT_OPTIONS+= LLVM_TARGET_ARM/LLVM_TARGET_AARCH64 # Default the rest of the LLVM_TARGETs to the value of MK_LLVM_TARGET_ALL # which is based on MK_CLANG. @@ -283,11 +285,11 @@ # build Clang without using an external compiler. .if ${COMPILER_FEATURES:Mc++11} && (${__T} == "aarch64" || \ - ${__T} == "amd64" || ${__TT} == "arm" || ${__T} == "i386") + ${__T} == "amd64" || ${__TCA} == "arm" || ${__T} == "i386") # Clang is enabled, and will be installed as the default /usr/bin/cc. __DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_IS_CC LLD __DEFAULT_NO_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX GPL_DTC -.elif ${COMPILER_FEATURES:Mc++11} && ${__T:Mriscv*} == "" && ${__T} != "sparc64" +.elif ${COMPILER_FEATURES:Mc++11} && ${__TCA} != "riscv" && ${__T} != "sparc64" # If an external compiler that supports C++11 is used as ${CC} and Clang # supports the target, then Clang is enabled but GCC is installed as the # default /usr/bin/cc. @@ -299,14 +301,14 @@ __DEFAULT_NO_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_IS_CC LLD .endif # In-tree binutils/gcc are older versions without modern architecture support. -.if ${__T} == "aarch64" || ${__T:Mriscv*} != "" +.if ${__T} == "aarch64" || ${__TCA} == "riscv" BROKEN_OPTIONS+=BINUTILS BINUTILS_BOOTSTRAP GCC GCC_BOOTSTRAP GDB .endif -.if ${__T:Mriscv*} != "" +.if ${__TCA} == "riscv" BROKEN_OPTIONS+=OFED .endif .if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "i386" || \ - ${__T:Mriscv*} != "" || ${__TT} == "mips" + ${__TCA} == "riscv" || ${__TCA} == "mips" __DEFAULT_YES_OPTIONS+=LLVM_LIBUNWIND .else __DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND @@ -339,19 +341,19 @@ .if ${__T} != "armv6" && ${__T} != "armv7" BROKEN_OPTIONS+=LIBSOFT .endif -.if ${__T:Mmips*} +.if ${__TCA} == "mips" BROKEN_OPTIONS+=SSP .endif # EFI doesn't exist on mips, powerpc, sparc or riscv. -.if ${__T:Mmips*} || ${__T:Mpowerpc*} || ${__T:Msparc64} || ${__T:Mriscv*} +.if ${__TCA} == "mips" || ${__TCA} == "powerpc" || ${__TCA} == "sparc64" || ${__TCA} == "riscv" BROKEN_OPTIONS+=EFI .endif # OFW is only for powerpc and sparc64, exclude others -.if ${__T:Mpowerpc*} == "" && ${__T:Msparc64} == "" +.if ${__TCA} != "powerpc" && ${__TCA} != "sparc64" BROKEN_OPTIONS+=LOADER_OFW .endif # UBOOT is only for arm, mips and powerpc, exclude others -.if ${__T:Marm*} == "" && ${__T:Mmips*} == "" && ${__T:Mpowerpc*} == "" +.if ${__TCA} != "arm" && ${__TCA} != "powerpc" && ${__TCA} != "mips" BROKEN_OPTIONS+=LOADER_UBOOT .endif