| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit 77394fabd1fee7f4ea3a9358dfba7e94e6a98e8d)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use libgcc with clang-native to compile it
Fixes #465
Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit 4d066667c3cbba3b88d2f8d6c5640f5f793d10b4)
Conflicts:
- recipes-devtools/clang/libcxx_git.bb: Commit
93552c79eed5daa44a24bf4b7a063a2ade739e97 had some of the changes already.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
klibc does not provide libssp functions e.g. __stack_chk_guard and
__stack_chk_guard which it expects from libc and compiler-rt code tend
to use these functions, so when using compiler-rt it ends up with
undefined symbols e.g.
/usr/lib/clang/13.0.0/lib/linux/libclang_rt.builtins-armhf.a(divmoddi4.c.o): in function `__divmoddi4':
divmoddi4.c:(.text+0x70): undefined reference to `__stack_chk_fail'
arm-yoe-linux-gnueabi-ld.bfd: divmoddi4.c:(.text+0x74): undefined reference to `__stack_chk_guard'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit bc2b5e4b874968745fdcfbcea43e2eb8eafa592e)
|
|
|
|
|
|
|
|
| |
llvm unwind can work on rv32 and rv64 with latest clang so open up that
option
Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit bfad2060bcf17f26fff1e6dd760732d551794c2b)
|
|
|
|
|
|
|
|
| |
since toolchain-clang maybe available for native as well now, it means
we have to ensure we do not use it for native recipes _yet_
Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit 95b2e77c088aacaae58aa9157fc7b7bde82527c8)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that clang can pass right options automatically when RUNTIME =
"llvm", adjust the variables e.g. COMPILER_RT/UNWINDLIB/LIBCPLUSPLUS are
no more required to be defaulted
Disable enforcing gcc runtime for packages using gcc as its no longer
needed here but is taken care by RUNTIME variable as an aside it also
helps in building native and nativesdk llvm runtimes
Compute right dependencies based on selected RUNTIME along with
COMPILER_RT/UNWINDLIB/LIBCPLUSPLUS variables
Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit dc5e04e5819a5e7384ae48f1740ac82970a80b8f)
|
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit da92b363e8b57c506250cd677436d1a44b163c98)
|
|
|
|
|
|
|
|
| |
dunfell meta/conf/machine/include/tune-cortexa57-cortexa53.inc defines mtune,
not, mcpu. clang.bbclass attempts to remove these optimisations but it fails
due to mismatch.
Signed-off-by: Caner Altinbasak <cal@brightsign.biz>
|
|
|
|
|
|
| |
This is advertised option from clang
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
| |
This ensures that it matches with CMake's understanding of this option
and when its removed then it silently removes -stdlibc=libc++ but leaves
the spurious '-' in the commandline which confuses the compiler as it
them expects input from stdin
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
There is no need for exporting CLANG_TIDY, since its not a standard
variable
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
Fixes Issue #415
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
oe-core's ccache.bbclass contains:
export CCACHE_COMPILERCHECK ?= "%compiler% -dumpspecs"
which sets a default value and allows others to easily override the
value of CCACHE_COMPILERCHECK if they wish to. Let's update
clang.bbclass to also set only the default value of CCACHE_COMPILERCHECK
too.
Signed-off-by: Mike Crowe <mac@mcrowe.com>
|
|
|
|
|
|
|
|
|
|
| |
The tune file for octeontx2 has been added into oe-core by commit
ad4f82742c6f ("tune-octeontx2.inc: Add tune for Marvell OCTEON TX2
core"). But the clang doesn't support this core yet. So remove the
-mcpu from the TUNE_CCARGS to fix the build failure for the octeontx2
core.
Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
|
|
|
|
|
|
|
|
|
| |
Core uses a dumb utility called dwarfsrcfiles to grok source file names
and it assumes that .o and .a files are good old ELF files, that is not
true when using LTO in which case it becomes IR code, this tool starts
to puke, therefore disable using this tool
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
If thin-lto is used in DISTRO_FEATURES then enable thin-lto
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
lld yet does not work relaxation so accomodate for that so LTO can work
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
The -mmusl flag is GCC specific, Clang supports MUSL differently.
Prevents clang-11: error: unknown argument: '-mmusl'
Verified it does not affect the GCC toolchain.cmake build.
Signed-off-by: Leon Woestenberg <leon@sidebranch.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* issue:
the openembedded-core build procedure relies on changed default
dynamic loader path when the usrmerge distro feature turned on.
As we can find the GCC which is used as default toolchain uses
SYSTEMLIBS_DIR macro variable set to /usr/(lib|lib64) at build
time and hardcodes the binaries with that default loader path.
* solution:
change the default dynamic loader location with --dyld-prefix
clang option to conform the loader location (as GCC does) to
openembedded-core build procedure.
Signed-off-by: Oleksandr Ocheretnyi <oocheret@cisco.com>
|
|
|
|
|
|
|
| |
This helps extra tools like clang-tidy to find arch-specific macros,
headers in a cross compile environment.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
It reset variable CCACHE to disable ccache. But that doesn't effect that
CCACHE is set in an anonymous function from ccache.bbclass at last and
ccache is always not disabled with cmake.
Remove these useless piece of code.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
It fails to build compiler-rt when ccache is enabled:
| ccache: error: Failure running compiler check command: %compiler% -dumpspecs
Because clang doesn't recognize option '-dumpspecs' from default value
of CCACHE_COMPILERCHECK, override CCACHE_COMPILERCHECK for toolchain
clang in clang.bbclass.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Clang does not yet support big.LITTLE performance tunes, so use the LITTLE for tunes
see [1]
Fixes Issue #313
[1] https://reviews.llvm.org/D32076
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
This option can turn Valid options into warnings and cause unintended
behaviour
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
compile-rt is not fully ported for ARM big-endian therefore disable it
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
RUNTIME can be 'llvm' or 'gnu' defaults to 'gnu'
Use this variable for selecting stdc++ and c runtime
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
| |
Do not export libunwind to other recipes besides libcxx itself, we use
non-gnu libunwind on linux in general and its not a drop in replacement
as of yet
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
THUMB_TUNE_CCARGS is gone from oe-core
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
This ensures that clang-runtime elements e.g. llvm-libunwind can be used
with gcc as well
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
libunwind can be either nongnu libunwind ( from OE-Core ) or from llvm
and when using clang and using --unwindlib=libunwind we know we have to
use llvm libunwind implementation, so remove libunwind from DEPENDS and
add llvm-libunwind to depends
Drop providing libunwind from llvm-libunwind since its not needed
anymore
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
--unwindlib=libunwind
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
Its easier to provide it as replacement for nongnu libunwind
bundled into libcxx was getting harder when it came to replacement
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add compiler-rt and libcxx only when these libs are used via cmdline
* libffi still need to disable internal asm on arm <= v6
* Add compiler-rt to linker only when compiler-rt is used in compiler
cmdline
* Set BASE_DEFAULT_DEPS instead of munging BASEEDEPENDS directly
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
| |
Add a blacklist for scanning, add packages which are not scannable
Add --force-analyze-debug-code and -analyze-headers to default set of
scan options
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
Use libgcc
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
Use llvm libunwind as default for clang toolchain
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
This is new way of enabling llvm unwinder as default unwinder
now build shared libunwind which is needed for new option
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
| |
OE-core now points to gcc-* variants of these variables which will not
be installed when a package is built with clang moreover llvm
version would be needed for thin-lto to work anyway
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
LIBCPLUSPLUS and COMPILER_RT are variables to indicate
if clang c/c++ runtime should be used as well or not
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
We do not need it when using clang
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
Add aarch64 host support
Enable lld via LDFLGS instead of TOOLCHAIN_FLAGS which also get passed
to compiler
Add relative rpaths so the liraries from SDK sysroot are preferred over
sdk host when SDK is used
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
- User lld for linking nativesdk-clang
- Enable LTO to build nativesdk-clang
- Use -static-libgcc when using gold/lld for nativesdk clang build
- Use llvm wrappers for ar ranlib and nm to help LTO
- Package and create cross versions of lld
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add to local.conf or distro config the following to enable lto flavors
and lld linker
DISTRO_FEATURES += "thin-lto"
DISTRO_FEATURES += "full-lto"
DISTRO_FEATURES += "lld"
Add lto.bbclass
To enable LTO is currently per recipe, or globally
to enable globally add following to global config meta-data e.g.
local.conf
INHRIT += "lto"
other-wise enable LTO per recipe using
inherit lto to recipe via bbappend or in main recipe
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|