These are only needed if cross-compiling clang, and if someone is
cross-compiling clang in a SDK they should build their own binaries as
these ones might not match the version of clang they're building.
(From OE-Core rev: c79837a11ccf0f3e5a8ccab4ffb379cdefe482e8)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If we pass CROSS_TOOLCHAIN_FLAGS_NATIVE to all the builds, instead of
just nativesdk, then clang can correctly build its own native tools as
needed.
This means we can stop manually installing clang-tidy-confusable-chars-gen
as clang-tidy will build it. We (currently) still build the tblgen
binaries once as they're used in several recipes so there's likely value
in building those once.
Also consolidate the LLVM_TABLEGEN variables as they're not specific to
a particular class.
(From OE-Core rev: 36b42975b975b4a5e3904e555e5ee00aba9c2f2b)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Backport a patch from upstream to install lldb-tblgen, and change the
llvm-tblgen-native recipe to use `cmake --install` instead of copying
the binaries.
This ensures that CMake does any post-install steps that are needed, and
we don't install binaries that have eg RPATHs pointing at the build tree.
(From OE-Core rev: 93051e8730263cfc23e1230015a4789dac4914de)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
clang-pseudo and clang-rename have both been removed from upstream, so
don't try to install them anymore:
llvm 40c45b6b4318 ("Remove clang-rename (#108988)")
llvm ed8f78827895 ("Remove clang-pseudo (#109154)")
(From OE-Core rev: ac2a625c9a28a692b87a073aca95197e9d08842b)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Quoting from the README:
llvm-exegesis is a benchmarking tool that accepts or generates
snippets and can measure characteristics of those snippets by
executing it while keeping track of performance counters.
Potentially useful but not essential. This reduces the size of llvm-bin
by ~30MB and llvm-dbg by ~1100MB.
(From OE-Core rev: ed688027468237f4dd258089d4c3ee5f8a9159bb)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We don't install the tests, or run them in the build tree, so tell cmake
not to generate the targets at all. This removes internal dependencies
which means we can turn off more components that we don't want.
(From OE-Core rev: ba358a03c97cb904248b743c483a7b3f4b9159a9)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead of patching the python module detection, we can use the hidden
option LLVM_TOOL_OPT_VIEWER_BUILD.
(From OE-Core rev: ddbbd49c15bad1b2a550188581ffebd752b9b20e)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Splitting llvm, tblgen into their own recipes means we
have to ensure nativesdk clang build can find these tools
in native sysroot, which is would previously build and use
on its own.
(From OE-Core rev: d5fa7bc2dfa7f618a742c76d20fba4437f2cdecf)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Clang gates enabling of several backends (AMDGPU, NVPTX and SPIR-V) by
the GPU-related distro features (opengl, vulkan). Now as we got a
separate feature for OpenCL, enable those backends for the OpenCL-only
configurations.
(From OE-Core rev: f230b16eac089d2d06574a0593076478afc7455e)
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Brings following bugfixes on top of 21.1.0
* 5a86dc996c26 [Xtensa] Fix lowering FP compare operations.
* bb383adfafca [SCEVExp] Fix early exit in ComputeEndCheck. (#156910)
* 2daad319889d [LV] Don't run instcombine for interleaved-accesses test.
* 2d726485a4a3 [LV] Add more tests for interleave groups requiring predicates.
* 81d3b6ee82bf [X86] Only fold AND/ANDNP back to VSELECT if we know the predicated mask select is legal (#156663)
* 41df6d5e08b0 [CMake][AIX] Enable CMP0182: Create shared library archives by default (#155686)
* 35f812f23263 compiler-rt: Use OpenBSD's elf_aux_info to detect AArch64 HW features (#155768)
* c75a0754d358 [builtins] Rename freebsd to elf_aux_info to reflect the function called. NFCI (#155749)
* 0bbb93672952 [libc++] Fix broken precondition of __bit_log2 (#155476)
* 677a8a2d3c5a [compiler-rt] Remove leftovers of FreeBSD md5/sha2 interceptors (#153351)
* fa462a66e418 [lldb][DataFormatter] Allow std::string formatters to match against custom allocators (#156050)
* 12fbb344a1e8 [Coroutines] Restore accidentally dropped intrinsic IDs
* 160ad51687cc [clang][docs] Fix implicit-int-conversion-on-negation typos
* e0d94d9626e4 [lldb][DWARFASTParserClang] Don't complete conflicting Objective-C++ types (#156681)
* b4274c3bc8ee [DebugInfo] When referencing structured bindings use the reference's location, not the binding's declaration's location (#153637)
* 7a077a1b312b [libc++][AIX] Fixup problems with ABI list checking (#155643)
* 85e3f8ec7ff6 Remove EH_LABEL comments from tests
* 3751e53c3e89 [AArch64][BTI] Add BTI at EH entries. (#155308)
* f8a0ecfc6108 [compiler-rt] Avoid depending on the libnvmm header for NetBSD (#153534)
* 113916ccf75f [lldb][ClangASTImporter] Don't ASTImport LambdaExpr nodes (#154962)
* 362b99f60ef5 [libcxx][fstream][NFC] Make __failed helper lambda a member function (#149390)
* b7c18c1e7ac0 [libc++] Ensure that we restore invariants in basic_filebuf::overflow (#147389)
* b63daf6312ab [RISCV] Cost casts with illegal types that can't be legalized (#153030)
* ca11cf3afa42 [clang-format] Use proper flags for git diff-tree (#155247)
* 27f0e6e579b7 [clang][PAC] Fix builtins that claim address discriminated types are bitwise compatible (#154490)
* e35cb1a59b3e [clang] Make sure EvalInfo pointer isn't null (#155563)
* acabba4f6d30 [NVPTX] don't erase CopyToRegs when folding movs into loads (#149393)
* 0e5c3f9b58b9 [mlir][cmake] Fix mlir target export (#153341)
* 1f1a20bcb03d [AArch64][PAC] Do not execute AUT instructions speculatively (#155372)
* d69907d99beb [AArch64][PAC] Fix clobbering registers by BLRA and AUTH_TCRETURN (#155373)
* 9f3f813c94f5 Add pointer auth documentation to contents (#155763)
* 7dbfe40cb318 [libc++] Disable cv-qualified arithmetic hash specializations (#155786)
* ef3a6bd37c15 [Clang][CMake] Use IRPGO instead of FE PGO for Cmake Caches (#155957)
* 35215b6412b4 [SLP]Do not to try to revectorize previously vectorized phis in loops
* 64dd5399f7a1 [sanitizer_common] Older Haiku needs _GNU_SOURCE (#156291)
* 95608643573a [LoongArch] Fix broadcast load with extension. (#155960)
* 0d6736704f38 [X86] getScalarMaskingNode - if the mask is zero just return the blended passthrough and preserved source value (#153575)
* 1db648d1016d [release] Correct download links for Windows on Arm packages (#156459)
* 562605cef22a ThinLTOBitcodeWriter: Emit __cfi_check to full LTO part of bitcode file.
* 33e18acf4a03 [Analyzer] No longer crash with VLA operands to unary type traits (#151719)
* 8b6caff342c3 Bump version to 21.1.1
(From OE-Core rev: 98a1ef53e6f3d10b3cc65ea3dd107300cf2cb722)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently CVE_PRODUCT is set to llvm:llvm from common.inc.
There is historical entry for openmp in the DB.
This entry is ignored, but it shows that there can also be future ones.
(From OE-Core rev: ba94d5f1756647ce9d4ddd664bdf6fc975f952cd)
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
cross-unwinding can pass exception across runtimes e.g.
Multi-language applications ( nodejs native modules, python C extensions )
However, cross-unwinding is not default in libcxx for sometime [1]
it requires special handling at runtime by apps who use it
Switch recipe defaults to upstream defaults, which is to turn it off
This means native unwinding ( with in same runtime )
is build by default which is the most common case.
This also fixes libcxx/libunwind build errors
when enabling TC_CXX_RUNTIME = "llvm" on aarch64 particularly
[1] 85624c5de3
(From OE-Core rev: 88e1214e01c48b174aa9516c60e15a0dfb69e10f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The optimization viewer is a web-based tool that helps developers visualize
and analyze LLVM's optimization passes. It generates reports showing
Which optimizations were applied to specific functions.
Why certain optimizations were or weren't performed.
Performance remarks and missed optimization opportunities
Interactive views of the optimization pipeline.
Its a nice add-on, keep it disabled by default.
(From OE-Core rev: 70c43e35fb7ce0b71f28a91a1864f02338545522)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The environment has variables like LDFLAGS set which CMake will try and
use, so until our cmake class is comprehensive enough to nuke those in
the native toolchain file (if that is possible) do a build inside a
clean (apart from PATH) environment to avoid cross-contamination.
As noticed by Khem Raj, this can fail in nativesdk builds as the target
flags will be passed to the native link resulting in failures like:
Requesting program interpreter: /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-yoesdk-linux/lib/ld-linux-x86-64.so.2
(From OE-Core rev: 0013f501d1de01606b812d930ef6ca842633f551)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
'cross' dependencies are hard, the code currently handles adding MLPREFIX
in these cases but may not in future depending upon implementation.
Add the correct value explictly.
(From OE-Core rev: 8393be1792cee0fbe76d75fd20a97dda41134880)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The lld linker is a standalone project under the LLVM umbrella that just
depends on libLLVM and nothing else, such as clang.
To reduce the build time of clang if lld is not being used, split it out
into a separate recipe.
To ensure that lld is present if needed, the clang-cross recipe will
depend on lld-native if ld-is-lld is enable.
(From OE-Core rev: 5212b69f892af8c9b080fee2c21533a2bbdd2755)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
LLDB Uses SWIG to generate python bindings, however
LLDB is no longer part of clang anymore, its a
separate recipe.
(From OE-Core rev: deda1e227dbdcb04c7bfb0ad0afef6ff05674c4f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
None of these recipes need a native build of Python as they don't depend
on native Python modules, nor build Python modules against the target.
(From OE-Core rev: e0da53fca5ec30d883216bfb0be7d96ad597aa69)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now that lldb has been split out of the clang recipe, there's no need
for the clang recipe to have Python integration beyond the current
Python major version for installing the libclang bindings, which can be
done by simply inheriting python3-dir.
The installation of six.py was done by lldb, and was removed in LLVM 16.
(From OE-Core rev: 5cbe58c604233a0d367e1bb1e3fce0492ae0e836)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Specifically, c-index-test is a 35MB binary which isn't needed if we're
not running the tests.
(From OE-Core rev: a61c3ab08039d382ec2216b8a5deaf256d7bf9c5)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This was added by a certain Mr Burton back in 2016[1] to avoid needing
to depend on perl-native or python3-native, and use the host perl and
python.
However, perl is no longer needed and python3-native is depended on
because the Python bindings are build, so this is now redundant.
[1] meta-clang: 2e003cc ("clang: don't depend on native perl or python")
(From OE-Core rev: 540b02e0fb168fade2afc1d657463c7e0248ae94)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As a single clang-native build is a cross-compiler for all targets, this
recipe should simply create target-prefixed symlinks.
As such, it doesn't need to pull in the common clang include files, or
set TOOLCHAIN.
Unsetting PACKAGES isn't needed as cross inherits nopackages.
The sysroot preprocessing is used to stage bindir, but cross recipes
already stage this directory.
There doesn't appear to be a need to copy clang, so these are now linked
too.
SSTATE_SCAN_FILES only works on actual files not symlinks, so setting it
is pointless.
(From OE-Core rev: 5d96ed55acf7b9a908241222097ad809355de7cf)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Provide libunwind based on TC_CXX_RUNTIME
When TC_CXX_RUNTIME is set to be 'llvm' distro wants
to use llvm provided runtime elements therefore provide
libunwind when TC_CXX_RUNTIME = "llvm"
(From OE-Core rev: 61cf402d5bf95094a02d4ea3b1a60cecc04aa0f4)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These functions are useful outside of just the clang recipe, so move
them to a common .inc file so they can be used by other clang-related
recipes.
Also make the function fail if it doesn't recognise the architecture,
instead of returning the empty string and causing mysterious fails later.
(From OE-Core rev: 1d5298533e97dab7636f885ddd740352782395b0)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
LLDB defaults to adding rpaths into the binaries which are then stripped
by CMake on install.
However, this rpath removal is implemented by editing the binary instead
of relinking at install time, so the final binary will have an entry in
the dynstr section which is all nulls but is as long as the build path.
Obviously this breaks reproducibility, so disable the use of rpaths in
LLDB to remove this problem.
(From OE-Core rev: d96e0458b696a7359d310cbe112c5dc2fc60f97d)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
LLDB links to clang libraries, so it really does need clang and not just
LLVM.
(From OE-Core rev: 1a37bb2f0bbdbd599e1d5967eae1ecde4eff6a80)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Set LLVM_HEADERS_TBLGEN so that we don't build another copy of tblgen.
Also remove LLVM_OPTIMIZED_TABLEGEN, this is redundant as we're not
building a tablegen binary in this recipe anymore.
(From OE-Core rev: 259a3e9a8281c4e9ab73dee82738f359f029b78d)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The cmake.bbclass already does this.
(From OE-Core rev: 85c1aecdf847b97409930d915a90ab850e92bc38)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The GPU targets are incredibly slow to build, so if the DISTRO_FEATURES
doesn't include opengl or vulkan assume that the user will not be using
a GPU and disable them.
Alternatively, a distribution could state that they'll only be using
one of the backends, and set LLVM_TARGETS_GPU explicitly.
On my build machine, disabling the GPU targets reduces the build time of
clang-native from 21m to 16m.
(From OE-Core rev: 2273a0685757421f39541a352d77b67e5ba604d3)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Split the libclc subproject out of the clang recipe and into a dedicated
libclc recipe.
This is useful because libclc is the OpenCL runtime library and as such
isn't target-specific and needs a native clang to build, not a target
libllvm.
Verified that nothing is dropped by adding clang and libclc to an image
and verifying that the file list is the same before and after this
change.
We need to patch the libclc CMakeLists to allow it to use an out-of-tree
prepare_builtins binary, discussion is ongoing with upstream to resolve
this properly.
(From OE-Core rev: 33a8742a1280b4c6779a7aa487c2dd4a713babe6)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This ensures that default system linker is used correctly based upon
distro features, current default remain same i.e. uses BFD linker
(From OE-Core rev: 33e7c85e92ddbc35989e7afcaf5fe4c14efdefab)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Neither LLVM_ENABLE_TERMINFO or COMPILER_RT_TERMINFO_LIB are used in the
current CMakeLists.
(From OE-Core rev: 134880baa4a971660e0800f70404d15c758fb7db)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Accidentally duplicated the beginning of the variable name.
(From OE-Core rev: 1484e2cf36428fbe7f5095ec881fdd018eea344b)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Brings following fixes
* 87f0227cb601 [InstCombine] Avoid folding `select(umin(X, Y), X)` with min/max values in false arm (#143020)
* df43f93388b7 [PhaseOrdering] Add test for #139050 (NFC)
* 25bcf1145fd7 [RISCV] Fix assertion failure when using -fstack-clash-protection (#135248)
* 6fb913d3e2ec [RelLookupTableConverter] Drop unnamed_addr for GVs in entries to avoid generating GOTPCREL relocations (#146068)
* 0c9f909b7976 [AArch64][SME] Fix restoring callee-saves from FP with hazard padding (#143371)
* fa792cd4c630 [AsmPrinter] Always emit global equivalents if there is non-global uses (#145648)
* ce455b382c08 [objcopy][MachO] Revert special handling of encryptable binaries (#144058)
* 0de59a293f7a [X86] Ignore NSW when DstSVT is i32 (#131755)
* 9af763f038f7 [gtest] Fix building on OpenBSD/sparc64 (#145225)
* 1daceb20611f [LoongArch] Pass OptLevel to LoongArchDAGToDAGISel correctly
* b21155f97a0a [LoongArch] Precommit test case to show bug in LoongArchISelDagToDag
* da18fb9f04ce [LoongArch] Fix xvshuf instructions lowering (#145868)
* 65ce78f338cf [LoongArch] Pre-commit test for fixing xvshuf instructions. NFC
* 5532d5b745e4 [AArch64] Ensure the LR is preserved if we must call __arm_get_current_vg (#145760)
* 5ac3ce819688 [WebAssembly] Fix inline assembly with vector types (#146574)
* b83658b7e2c8 Bump version to 20.1.8
(From OE-Core rev: 4c6e132d6e5e49426c911d0fa9215957eb43f186)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There are a number of recipes that are part of the LLVM Project, so set
CVE_PRODUCT to llvm:llvm in common.inc to ensure that all of the recipes
are covered.
Also add llvm:clang in the clang recipe, as there are a number of CVEs
with that product name.
(From OE-Core rev: 319e97643c1e342491931b6274996d1c8caa7d33)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
v1 of the lldb patchset was accidentally merged, which didn't remove
this package from the clang recipe.
(From OE-Core rev: f389f14983cf87238f9a073b50837583596735ea)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
LLDB takes a reasonable amount of time to compile, but also isn't an
essential component of the LLVM suite.
Instead of always building it when we build clang, split it out into a
separate recipe.
On my build machine where clang takes 21 minutes to build with lldb, it
takes 19 minutes without lldb.
(From OE-Core rev: 9da4900aa5a37718bd42f277d5a1805ec897b1b4)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Building the LLVM projects often means using the TableGen tools
(llvm-tblgen etc).
We currently build them as part of clang-native, but I am teasing the
clang recipe into its component parts and having to build llvm-native
or lldb-native simply for one tool isn't ideal.
Instead, add a native recipe that simply builds the tablegen binaries
for llvm, clang, and lldb
(From OE-Core rev: fbf63e03fe09ca74022c9d06442b4f1021b71d57)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There's a BPN assignment in common.inc which means all recipes need to
either be called clang, or set BPN themselves.
Move the assignment to the clang recipes. For now I'm leaving the
existing BPN assignments in the other recipes, in case there are complex
multilib-related reasons to retain them.
(From OE-Core rev: fc7e8c3e5c19a1885bec564c8fc07df5a13c8bd4)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently, clang when used for native builds and uses --rtlib=compiler-rt
does not find the LLVM runtime because its installed in different
directory than where compiler expects it to be. As a result, build fails
for packages using clang in both capacity ( native and cross )
e.g. qtwebengine
Make the build work across native sanitizers as well.
(From OE-Core rev: 4d55698330ce6720cab5dfe9b4e00efeb40ba6e6)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
compiler-rt configure calls for c++ compiler which can cause C++ runtime to
not be detected on some Yocto autobuilder workers running ubuntu 24.04
therefore let it use gcc for native version
Set TOOLCHAIN_NATIVE for using clang for libcxx
(From OE-Core rev: d54512c1c0a98516077b77d5414af47d8c2b8c39)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>