diff options
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/create-spdx-2.2.bbclass | 9 | ||||
-rw-r--r-- | meta/classes/spdx-common.bbclass | 3 | ||||
-rw-r--r-- | meta/classes/toaster.bbclass | 2 | ||||
-rw-r--r-- | meta/classes/toolchain/clang.bbclass | 37 | ||||
-rw-r--r-- | meta/classes/toolchain/gcc-native.bbclass | 15 | ||||
-rw-r--r-- | meta/classes/toolchain/gcc.bbclass | 33 |
6 files changed, 98 insertions, 1 deletions
diff --git a/meta/classes/create-spdx-2.2.bbclass b/meta/classes/create-spdx-2.2.bbclass index 7e8f8b9ff5..6fc60a1d97 100644 --- a/meta/classes/create-spdx-2.2.bbclass +++ b/meta/classes/create-spdx-2.2.bbclass | |||
@@ -137,6 +137,11 @@ def add_package_files(d, doc, spdx_pkg, topdir, get_spdxid, get_types, *, archiv | |||
137 | spdx_files = [] | 137 | spdx_files = [] |
138 | 138 | ||
139 | file_counter = 1 | 139 | file_counter = 1 |
140 | |||
141 | check_compiled_sources = d.getVar("SPDX_INCLUDE_COMPILED_SOURCES") == "1" | ||
142 | if check_compiled_sources: | ||
143 | compiled_sources, types = oe.spdx_common.get_compiled_sources(d) | ||
144 | bb.debug(1, f"Total compiled files: {len(compiled_sources)}") | ||
140 | for subdir, dirs, files in os.walk(topdir): | 145 | for subdir, dirs, files in os.walk(topdir): |
141 | dirs[:] = [d for d in dirs if d not in ignore_dirs] | 146 | dirs[:] = [d for d in dirs if d not in ignore_dirs] |
142 | if subdir == str(topdir): | 147 | if subdir == str(topdir): |
@@ -147,6 +152,10 @@ def add_package_files(d, doc, spdx_pkg, topdir, get_spdxid, get_types, *, archiv | |||
147 | filename = str(filepath.relative_to(topdir)) | 152 | filename = str(filepath.relative_to(topdir)) |
148 | 153 | ||
149 | if not filepath.is_symlink() and filepath.is_file(): | 154 | if not filepath.is_symlink() and filepath.is_file(): |
155 | # Check if file is compiled | ||
156 | if check_compiled_sources: | ||
157 | if not oe.spdx_common.is_compiled_source(filename, compiled_sources, types): | ||
158 | continue | ||
150 | spdx_file = oe.spdx.SPDXFile() | 159 | spdx_file = oe.spdx.SPDXFile() |
151 | spdx_file.SPDXID = get_spdxid(file_counter) | 160 | spdx_file.SPDXID = get_spdxid(file_counter) |
152 | for t in get_types(filepath): | 161 | for t in get_types(filepath): |
diff --git a/meta/classes/spdx-common.bbclass b/meta/classes/spdx-common.bbclass index 713a7fc651..ca0416d1c7 100644 --- a/meta/classes/spdx-common.bbclass +++ b/meta/classes/spdx-common.bbclass | |||
@@ -26,6 +26,7 @@ SPDX_TOOL_VERSION ??= "1.0" | |||
26 | SPDXRUNTIMEDEPLOY = "${SPDXDIR}/runtime-deploy" | 26 | SPDXRUNTIMEDEPLOY = "${SPDXDIR}/runtime-deploy" |
27 | 27 | ||
28 | SPDX_INCLUDE_SOURCES ??= "0" | 28 | SPDX_INCLUDE_SOURCES ??= "0" |
29 | SPDX_INCLUDE_COMPILED_SOURCES ??= "0" | ||
29 | 30 | ||
30 | SPDX_UUID_NAMESPACE ??= "sbom.openembedded.org" | 31 | SPDX_UUID_NAMESPACE ??= "sbom.openembedded.org" |
31 | SPDX_NAMESPACE_PREFIX ??= "http://spdx.org/spdxdocs" | 32 | SPDX_NAMESPACE_PREFIX ??= "http://spdx.org/spdxdocs" |
@@ -40,6 +41,8 @@ SPDX_MULTILIB_SSTATE_ARCHS ??= "${SSTATE_ARCHS}" | |||
40 | python () { | 41 | python () { |
41 | from oe.cve_check import extend_cve_status | 42 | from oe.cve_check import extend_cve_status |
42 | extend_cve_status(d) | 43 | extend_cve_status(d) |
44 | if d.getVar("SPDX_INCLUDE_COMPILED_SOURCES") == "1": | ||
45 | d.setVar("SPDX_INCLUDE_SOURCES", "1") | ||
43 | } | 46 | } |
44 | 47 | ||
45 | def create_spdx_source_deps(d): | 48 | def create_spdx_source_deps(d): |
diff --git a/meta/classes/toaster.bbclass b/meta/classes/toaster.bbclass index 03c4f3a930..af7c457808 100644 --- a/meta/classes/toaster.bbclass +++ b/meta/classes/toaster.bbclass | |||
@@ -84,7 +84,7 @@ python toaster_layerinfo_dumpdata() { | |||
84 | 84 | ||
85 | llayerinfo = {} | 85 | llayerinfo = {} |
86 | 86 | ||
87 | for layer in { l for l in bblayers.strip().split(" ") if len(l) }: | 87 | for layer in { l for l in bblayers.strip().split() if len(l) }: |
88 | llayerinfo[layer] = _get_layer_dict(layer) | 88 | llayerinfo[layer] = _get_layer_dict(layer) |
89 | 89 | ||
90 | 90 | ||
diff --git a/meta/classes/toolchain/clang.bbclass b/meta/classes/toolchain/clang.bbclass new file mode 100644 index 0000000000..d7b8a3657c --- /dev/null +++ b/meta/classes/toolchain/clang.bbclass | |||
@@ -0,0 +1,37 @@ | |||
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 | |||
30 | BASE_DEFAULT_DEPS:append:class-target = " compiler-rt" | ||
31 | |||
32 | TUNE_CCARGS += "${@bb.utils.contains("DISTRO_FEATURES", "usrmerge", " --dyld-prefix=/usr", "", d)}" | ||
33 | |||
34 | LDFLAGS:append:class-nativesdk:x86-64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2" | ||
35 | LDFLAGS:append:class-nativesdk:aarch64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-aarch64.so.1" | ||
36 | |||
37 | 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" | ||