diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-06-06 14:31:57 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-06-16 22:26:38 +0100 |
| commit | d58d212bb5e158146dc2a1159e4ef3e0d1355774 (patch) | |
| tree | 96599e005e6d70240b9d71ce581b67b7d398ad1a /meta/classes | |
| parent | 5317a214c5932aa04609acbc136be9b2f98a228c (diff) | |
| download | poky-d58d212bb5e158146dc2a1159e4ef3e0d1355774.tar.gz | |
toolchain/gcc/clang: Update PREFERRED_PROVIDER to work with multilibs
As currently written, the PREFERRED_PROVIDER entries don't work with multilib
since they are added after the manipulations by multilib_global at ConfigParsed
time. We therefore need to spell out the configs correctly for multilib.
To avoid variable overwritten warnings from the expansion, we then have to
expand out the nativesdk providers usng class overrides.
(From OE-Core rev: 1f69850b62d1e022055d0f3b93ad270c2980462e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
| -rw-r--r-- | meta/classes/toolchain/clang.bbclass | 21 | ||||
| -rw-r--r-- | meta/classes/toolchain/gcc.bbclass | 22 |
2 files changed, 26 insertions, 17 deletions
diff --git a/meta/classes/toolchain/clang.bbclass b/meta/classes/toolchain/clang.bbclass index 8a0a2c315a..d7b8a3657c 100644 --- a/meta/classes/toolchain/clang.bbclass +++ b/meta/classes/toolchain/clang.bbclass | |||
| @@ -14,15 +14,18 @@ STRINGS = "${HOST_PREFIX}llvm-strings" | |||
| 14 | NM = "${HOST_PREFIX}llvm-nm" | 14 | NM = "${HOST_PREFIX}llvm-nm" |
| 15 | READELF = "${HOST_PREFIX}llvm-readelf" | 15 | READELF = "${HOST_PREFIX}llvm-readelf" |
| 16 | 16 | ||
| 17 | PREFERRED_PROVIDER_virtual/cross-cc = "${MLPREFIX}clang-cross-${TARGET_ARCH}" | 17 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc = "${MLPREFIX}clang-cross-${TARGET_ARCH}" |
| 18 | PREFERRED_PROVIDER_virtual/cross-c++ = "${MLPREFIX}clang-cross-${TARGET_ARCH}" | 18 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++ = "${MLPREFIX}clang-cross-${TARGET_ARCH}" |
| 19 | PREFERRED_PROVIDER_virtual/compilerlibs = "gcc-runtime" | 19 | PREFERRED_PROVIDER_virtual/${MLPREFIX}compilerlibs = "${MLPREFIX}gcc-runtime" |
| 20 | PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = "clang-crosssdk-${SDK_SYS}" | 20 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc:class-nativesdk = "clang-crosssdk-${SDK_SYS}" |
| 21 | PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "clang-crosssdk-${SDK_SYS}" | 21 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++:class-nativesdk = "clang-crosssdk-${SDK_SYS}" |
| 22 | 22 | ||
| 23 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "clang-crosssdk-${SDK_SYS}" | 23 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc:class-crosssdk = "clang-crosssdk-${SDK_SYS}" |
| 24 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "clang-crosssdk-${SDK_SYS}" | 24 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++:class-crosssdk = "clang-crosssdk-${SDK_SYS}" |
| 25 | PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime" | 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 | |||
| 26 | 29 | ||
| 27 | BASE_DEFAULT_DEPS:append:class-target = " compiler-rt" | 30 | BASE_DEFAULT_DEPS:append:class-target = " compiler-rt" |
| 28 | 31 | ||
diff --git a/meta/classes/toolchain/gcc.bbclass b/meta/classes/toolchain/gcc.bbclass index 75f9abe999..a5adb5ca37 100644 --- a/meta/classes/toolchain/gcc.bbclass +++ b/meta/classes/toolchain/gcc.bbclass | |||
| @@ -14,14 +14,20 @@ STRINGS = "${HOST_PREFIX}strings" | |||
| 14 | NM = "${HOST_PREFIX}gcc-nm" | 14 | NM = "${HOST_PREFIX}gcc-nm" |
| 15 | READELF = "${HOST_PREFIX}readelf" | 15 | READELF = "${HOST_PREFIX}readelf" |
| 16 | 16 | ||
| 17 | PREFERRED_PROVIDER_virtual/cross-cc = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" | 17 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" |
| 18 | PREFERRED_PROVIDER_virtual/cross-c++ = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" | 18 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++ = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" |
| 19 | PREFERRED_PROVIDER_virtual/compilerlibs = "gcc-runtime" | 19 | PREFERRED_PROVIDER_virtual/${MLPREFIX}compilerlibs = "${MLPREFIX}gcc-runtime" |
| 20 | PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" | ||
| 21 | PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" | ||
| 22 | 20 | ||
| 23 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}" | 21 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" |
| 24 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}" | 22 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" |
| 25 | PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime" | 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" | ||
| 26 | 32 | ||
| 27 | TCOVERRIDE = "toolchain-gcc" | 33 | TCOVERRIDE = "toolchain-gcc" |
