diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 8b607088c6..823d5ac268 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -555,40 +555,38 @@ HOSTTOOLS_NONFATAL += "git-lfs" CCACHE ??= "" +export CC +export CXX +export FC +export CPP +export LD +export CCLD +export AR +export AS +export RANLIB +export STRIP +export OBJCOPY +export OBJDUMP +export STRINGS +export NM +export READELF + +export BUILD_CC +export BUILD_CXX +export BUILD_FC +export BUILD_CPP +export BUILD_LD +export BUILD_CCLD +export BUILD_AR +export BUILD_AS +export BUILD_RANLIB +export BUILD_STRIP +export BUILD_NM + TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}" -export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" -export CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" -export FC = "${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" -export CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}" -export LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}" -export CCLD = "${CC}" -export AR = "${HOST_PREFIX}gcc-ar" -export AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}" -export RANLIB = "${HOST_PREFIX}gcc-ranlib" -export STRIP = "${HOST_PREFIX}strip" -export OBJCOPY = "${HOST_PREFIX}objcopy" -export OBJDUMP = "${HOST_PREFIX}objdump" -export STRINGS = "${HOST_PREFIX}strings" -export NM = "${HOST_PREFIX}gcc-nm" -export READELF = "${HOST_PREFIX}readelf" PYTHON = "${@sys.executable}" -export BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" -export BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}" -export BUILD_FC = "${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}" -export BUILD_CPP = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH} -E" -export BUILD_LD = "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}" -export BUILD_CCLD = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" -export BUILD_AR = "${BUILD_PREFIX}ar" -export BUILD_AS = "${BUILD_PREFIX}as ${BUILD_AS_ARCH}" -export BUILD_RANLIB = "${BUILD_PREFIX}ranlib -D" -export BUILD_STRIP = "${BUILD_PREFIX}strip" -BUILD_OBJCOPY = "${BUILD_PREFIX}objcopy" -BUILD_OBJDUMP = "${BUILD_PREFIX}objdump" -export BUILD_NM = "${BUILD_PREFIX}nm" -BUILD_READELF = "${BUILD_PREFIX}readelf" - export MAKE = "make" EXTRA_OEMAKE = "" EXTRA_OECONF = "" @@ -843,6 +841,9 @@ include conf/licenses.conf require conf/sanity.conf include conf/bblock.conf +require toolchain/gcc.inc +require toolchain/build-gcc.inc + ################################################################## # Weak variables (usually to retain backwards compatibility) ################################################################## diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc index d719b14b26..5509bc59cf 100644 --- a/meta/conf/distro/include/tcmode-default.inc +++ b/meta/conf/distro/include/tcmode-default.inc @@ -3,19 +3,10 @@ # PREFERRED_PROVIDER_virtual/cross-binutils = "${MLPREFIX}binutils-cross-${TARGET_ARCH}" -PREFERRED_PROVIDER_virtual/cross-cc = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" -PREFERRED_PROVIDER_virtual/cross-c++ = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" -PREFERRED_PROVIDER_virtual/compilerlibs = "gcc-runtime" -PREFERRED_PROVIDER_gdb = "gdb" - PREFERRED_PROVIDER_virtual/cross-binutils:class-nativesdk ?= "binutils-crosssdk-${SDK_SYS}" -PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" -PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" - PREFERRED_PROVIDER_virtual/nativesdk-cross-binutils ?= "binutils-crosssdk-${SDK_SYS}" -PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}" -PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}" -PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime" + +PREFERRED_PROVIDER_gdb = "gdb" # Default libc config PREFERRED_PROVIDER_virtual/gettext ??= "gettext" diff --git a/meta/conf/toolchain/build-gcc.inc b/meta/conf/toolchain/build-gcc.inc new file mode 100644 index 0000000000..a708bd0389 --- /dev/null +++ b/meta/conf/toolchain/build-gcc.inc @@ -0,0 +1,15 @@ +BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" +BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}" +BUILD_FC = "${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}" +BUILD_CPP = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH} -E" +BUILD_LD = "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}" +BUILD_CCLD = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" +BUILD_AR = "${BUILD_PREFIX}ar" +BUILD_AS = "${BUILD_PREFIX}as ${BUILD_AS_ARCH}" +BUILD_RANLIB = "${BUILD_PREFIX}ranlib -D" +BUILD_STRIP = "${BUILD_PREFIX}strip" +BUILD_OBJCOPY = "${BUILD_PREFIX}objcopy" +BUILD_OBJDUMP = "${BUILD_PREFIX}objdump" +BUILD_NM = "${BUILD_PREFIX}nm" +BUILD_READELF = "${BUILD_PREFIX}readelf" + diff --git a/meta/conf/toolchain/clang.inc b/meta/conf/toolchain/clang.inc new file mode 100644 index 0000000000..40bfba2fd4 --- /dev/null +++ b/meta/conf/toolchain/clang.inc @@ -0,0 +1,26 @@ +CC = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +CXX = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +FC = "${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +CPP = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -E" +LD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', '${HOST_PREFIX}ld.lld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', '${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', d)}" +CCLD = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +RANLIB = "${HOST_PREFIX}llvm-ranlib" +AR = "${HOST_PREFIX}llvm-ar" +AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}" +RANLIB = "${HOST_PREFIX}gcc-ranlib" +STRIP = "${HOST_PREFIX}llvm-strip" +OBJCOPY = "${HOST_PREFIX}llvm-objcopy" +OBJDUMP = "${HOST_PREFIX}llvm-objdump" +STRINGS = "${HOST_PREFIX}llvm-strings" +NM = "${HOST_PREFIX}llvm-nm" +READELF = "${HOST_PREFIX}llvm-readelf" + +PREFERRED_PROVIDER_virtual/cross-cc = "${MLPREFIX}clang-cross-${TARGET_ARCH}" +PREFERRED_PROVIDER_virtual/cross-c++ = "${MLPREFIX}clang-cross-${TARGET_ARCH}" +PREFERRED_PROVIDER_virtual/compilerlibs = "gcc-runtime" +PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" +PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" + +PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}" +PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}" +PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime" diff --git a/meta/conf/toolchain/gcc.inc b/meta/conf/toolchain/gcc.inc new file mode 100644 index 0000000000..36d33f5d6d --- /dev/null +++ b/meta/conf/toolchain/gcc.inc @@ -0,0 +1,26 @@ +CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +FC = "${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}" +LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}" +CCLD = "${CC}" +AR = "${HOST_PREFIX}gcc-ar" +AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}" +RANLIB = "${HOST_PREFIX}gcc-ranlib" +STRIP = "${HOST_PREFIX}strip" +OBJCOPY = "${HOST_PREFIX}objcopy" +OBJDUMP = "${HOST_PREFIX}objdump" +STRINGS = "${HOST_PREFIX}strings" +NM = "${HOST_PREFIX}gcc-nm" +READELF = "${HOST_PREFIX}readelf" + +PREFERRED_PROVIDER_virtual/cross-cc = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" +PREFERRED_PROVIDER_virtual/cross-c++ = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" +PREFERRED_PROVIDER_virtual/compilerlibs = "gcc-runtime" +PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" +PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" + +PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}" +PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}" +PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime" +