diff options
Diffstat (limited to 'meta/classes/toolchain')
| -rw-r--r-- | meta/classes/toolchain/clang-native.bbclass | 18 | ||||
| -rw-r--r-- | meta/classes/toolchain/clang.bbclass | 40 | ||||
| -rw-r--r-- | meta/classes/toolchain/gcc-native.bbclass | 15 | ||||
| -rw-r--r-- | meta/classes/toolchain/gcc.bbclass | 33 |
4 files changed, 106 insertions, 0 deletions
diff --git a/meta/classes/toolchain/clang-native.bbclass b/meta/classes/toolchain/clang-native.bbclass new file mode 100644 index 0000000000..006be9fadd --- /dev/null +++ b/meta/classes/toolchain/clang-native.bbclass | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | BUILD_CC = "${CCACHE}${BUILD_PREFIX}clang ${BUILD_CC_ARCH}" | ||
| 2 | BUILD_CXX = "${CCACHE}${BUILD_PREFIX}clang++ ${BUILD_CC_ARCH}" | ||
| 3 | BUILD_FC = "${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}" | ||
| 4 | BUILD_CPP = "${BUILD_PREFIX}clang ${BUILD_CC_ARCH} -E" | ||
| 5 | BUILD_LD = "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}" | ||
| 6 | BUILD_CCLD = "${BUILD_PREFIX}clang ${BUILD_CC_ARCH}" | ||
| 7 | BUILD_AR = "${BUILD_PREFIX}llvm-ar" | ||
| 8 | BUILD_AS = "${BUILD_PREFIX}as ${BUILD_AS_ARCH}" | ||
| 9 | BUILD_RANLIB = "${BUILD_PREFIX}llvm-ranlib -D" | ||
| 10 | BUILD_STRIP = "${BUILD_PREFIX}llvm-strip" | ||
| 11 | BUILD_OBJCOPY = "${BUILD_PREFIX}llvm-objcopy" | ||
| 12 | BUILD_OBJDUMP = "${BUILD_PREFIX}llvm-objdump" | ||
| 13 | BUILD_NM = "${BUILD_PREFIX}llvm-nm" | ||
| 14 | BUILD_READELF = "${BUILD_PREFIX}llvm-readelf" | ||
| 15 | |||
| 16 | DEPENDS += "clang-native libcxx-native compiler-rt-native" | ||
| 17 | |||
| 18 | BUILD_LDFLAGS += " --rtlib=libgcc --unwindlib=libgcc" | ||
diff --git a/meta/classes/toolchain/clang.bbclass b/meta/classes/toolchain/clang.bbclass new file mode 100644 index 0000000000..9a3cd0e584 --- /dev/null +++ b/meta/classes/toolchain/clang.bbclass | |||
| @@ -0,0 +1,40 @@ | |||
| 1 | CC = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
| 2 | CXX = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
| 3 | FC = "${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
| 4 | CPP = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -E" | ||
| 5 | 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)}" | ||
| 6 | CCLD = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
| 7 | RANLIB = "${HOST_PREFIX}llvm-ranlib" | ||
| 8 | AR = "${HOST_PREFIX}llvm-ar" | ||
| 9 | AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}" | ||
| 10 | STRIP = "${HOST_PREFIX}llvm-strip" | ||
| 11 | OBJCOPY = "${HOST_PREFIX}llvm-objcopy" | ||
| 12 | OBJDUMP = "${HOST_PREFIX}llvm-objdump" | ||
| 13 | STRINGS = "${HOST_PREFIX}llvm-strings" | ||
| 14 | NM = "${HOST_PREFIX}llvm-nm" | ||
| 15 | READELF = "${HOST_PREFIX}llvm-readelf" | ||
| 16 | |||
| 17 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc = "${MLPREFIX}clang-cross-${TARGET_ARCH}" | ||
| 18 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++ = "${MLPREFIX}clang-cross-${TARGET_ARCH}" | ||
| 19 | PREFERRED_PROVIDER_virtual/${MLPREFIX}compilerlibs = "${MLPREFIX}gcc-runtime" | ||
| 20 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc:class-nativesdk = "clang-crosssdk-${SDK_SYS}" | ||
| 21 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++:class-nativesdk = "clang-crosssdk-${SDK_SYS}" | ||
| 22 | |||
| 23 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc:class-crosssdk = "clang-crosssdk-${SDK_SYS}" | ||
| 24 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++:class-crosssdk = "clang-crosssdk-${SDK_SYS}" | ||
| 25 | |||
| 26 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc:class-cross-canadian = "clang-crosssdk-${SDK_SYS}" | ||
| 27 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++:class-cross-canadian = "clang-crosssdk-${SDK_SYS}" | ||
| 28 | |||
| 29 | BASE_DEFAULT_DEPS:append = " compiler-rt libcxx" | ||
| 30 | |||
| 31 | TUNE_CCARGS += "${@bb.utils.contains("DISTRO_FEATURES", "usrmerge", " --dyld-prefix=/usr", "", d)}" | ||
| 32 | |||
| 33 | LDFLAGS:append:class-nativesdk:x86-64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2" | ||
| 34 | LDFLAGS:append:class-nativesdk:aarch64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-aarch64.so.1" | ||
| 35 | LDFLAGS:append:class-cross-canadian = " -Wl,-dynamic-linker,${base_libdir}/placeholder/to/be/rewritten/by/sdk/installer" | ||
| 36 | |||
| 37 | # do_populate_sysroot needs STRIP, do_package_qa needs OBJDUMP | ||
| 38 | POPULATESYSROOTDEPS:append:class-target = " llvm-native:do_populate_sysroot" | ||
| 39 | |||
| 40 | TCOVERRIDE = "toolchain-clang" | ||
diff --git a/meta/classes/toolchain/gcc-native.bbclass b/meta/classes/toolchain/gcc-native.bbclass new file mode 100644 index 0000000000..a708bd0389 --- /dev/null +++ b/meta/classes/toolchain/gcc-native.bbclass | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" | ||
| 2 | BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}" | ||
| 3 | BUILD_FC = "${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}" | ||
| 4 | BUILD_CPP = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH} -E" | ||
| 5 | BUILD_LD = "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}" | ||
| 6 | BUILD_CCLD = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" | ||
| 7 | BUILD_AR = "${BUILD_PREFIX}ar" | ||
| 8 | BUILD_AS = "${BUILD_PREFIX}as ${BUILD_AS_ARCH}" | ||
| 9 | BUILD_RANLIB = "${BUILD_PREFIX}ranlib -D" | ||
| 10 | BUILD_STRIP = "${BUILD_PREFIX}strip" | ||
| 11 | BUILD_OBJCOPY = "${BUILD_PREFIX}objcopy" | ||
| 12 | BUILD_OBJDUMP = "${BUILD_PREFIX}objdump" | ||
| 13 | BUILD_NM = "${BUILD_PREFIX}nm" | ||
| 14 | BUILD_READELF = "${BUILD_PREFIX}readelf" | ||
| 15 | |||
diff --git a/meta/classes/toolchain/gcc.bbclass b/meta/classes/toolchain/gcc.bbclass new file mode 100644 index 0000000000..a5adb5ca37 --- /dev/null +++ b/meta/classes/toolchain/gcc.bbclass | |||
| @@ -0,0 +1,33 @@ | |||
| 1 | CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
| 2 | CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
| 3 | FC = "${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
| 4 | CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}" | ||
| 5 | LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}" | ||
| 6 | CCLD = "${CC}" | ||
| 7 | AR = "${HOST_PREFIX}gcc-ar" | ||
| 8 | AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}" | ||
| 9 | RANLIB = "${HOST_PREFIX}gcc-ranlib" | ||
| 10 | STRIP = "${HOST_PREFIX}strip" | ||
| 11 | OBJCOPY = "${HOST_PREFIX}objcopy" | ||
| 12 | OBJDUMP = "${HOST_PREFIX}objdump" | ||
| 13 | STRINGS = "${HOST_PREFIX}strings" | ||
| 14 | NM = "${HOST_PREFIX}gcc-nm" | ||
| 15 | READELF = "${HOST_PREFIX}readelf" | ||
| 16 | |||
| 17 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" | ||
| 18 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++ = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" | ||
| 19 | PREFERRED_PROVIDER_virtual/${MLPREFIX}compilerlibs = "${MLPREFIX}gcc-runtime" | ||
| 20 | |||
| 21 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" | ||
| 22 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" | ||
| 23 | PREFERRED_PROVIDER_virtual/${MLPREFIX}compilerlibs:class-nativesdk = "nativesdk-gcc-runtime" | ||
| 24 | |||
| 25 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc:class-crosssdk = "gcc-crosssdk-${SDK_SYS}" | ||
| 26 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++:class-crosssdk = "gcc-crosssdk-${SDK_SYS}" | ||
| 27 | PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs:class-crosssdk = "nativesdk-gcc-runtime" | ||
| 28 | |||
| 29 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc:class-cross-canadian = "gcc-crosssdk-${SDK_SYS}" | ||
| 30 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++:class-cross-canadian = "gcc-crosssdk-${SDK_SYS}" | ||
| 31 | PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs:class-cross-canadian = "nativesdk-gcc-runtime" | ||
| 32 | |||
| 33 | TCOVERRIDE = "toolchain-gcc" | ||
