| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
define CLANG_TIDY_EXE which is used by some build systems e.g. cmake
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
lld is being folded into clang recipe itself
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
| |
There still are some recipes which do not build with internal
assembler, due to GNU'isms or other bugs in inline assembly,
but its small enough number to fix or pin to external assembler
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
buildscan -> scanbuild
viewscan -> scanview
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
| |
It was a workaround which was supposed to go away one day
and that day has arrived
We should fix the packages if they need such a workaround
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
Drop -C <src> from make invocation this helps in
making it more generic
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
- Dependency on clang-native causes circular dependency
- Use spaces instead of tabs in shell functions
- Convert do_configure_prepend into a prefunc, makes it work
with non-shell do_configure
- Use TARGET_CC_ARCH instead of HOST_CC_ARCH
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
Implements issues #44
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
Drop upstreamed patches
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
llvm libunwind is still not ported to mips
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
Right now it becomes highest priority override which we dont
want
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
clang-5.0 supports the option now
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I could not manage to build nativesdk-clang, I encountered errors as
follows: (trimmed for purpose)
| ../gcc/x86_64-pokysdk-linux/6.3.0/ld::
| cannot find crt1.o: No such file or directory
| cannot find crtbegin.o: No such file or directory
| cannot find -lgcc
| cannot find -lgcc_s
After some investigation, I found it's caused by the llvm native tools
could not compile with crosssdk toolchains. (special linking flags
are needed)
So we introduce a cmake-native class with a task to generate a native
toolchain file, it will be used to build llvm native tools by passed
with CROSS_TOOLCHAIN_FLAGS_NATIVE.
Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using cmdline options -std doesnt always work e.g. boost
where it uses c++ driver (clang++) to invoke compilation
but then passes '-x c' to choose the language for compilation
Which ends in errors like below
error: invalid argument '-std=c++14' not allowed with 'C'
Therefore change the defaults in driver itself to use gnu++14
which is default with g++ from gcc7+ too.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
latest gcc7 also defaults to c++14, some packages
have started to use c++11 and newer features without
specifying -std option and rightly so now that gcc
defaults are c++14, applications can safely assume
c++14 as default
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
build llvm libunwind along with libcxx
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
| |
This matches with OE-Core expectations and we
do not need to inject PIE flags manually via
SECURITY_CFLAGS which does not always work
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
| |
gcc in core now is configured with these options but clang
does not have a configuration level knob so we still need to
pass it old way
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
| |
GCC ignores unused arguements by default, but Clang needs this extra
parameter to stop printing warnings about LDFLAGS passed during
compiling stage and CFLAGS passed during linking stage.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
Its not ported to mips yet
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
A step towards unplugging gcc runtime
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
| |
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Users find it too intrusive that clang becomes the default
compiler, they would like to invoke it on demand for certain
packages only.
Use TOOLCHAIN ?= "clang" in local.conf if you want clang
to become default
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
This gcc option is not supported in clang
hence remove it
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
Adding it to TOOLCHAIN_OPTIONS renders libtool useless and its not able to
build .so
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
We can get past the errors due to -Werror when unused cmdline
options appear on compiler cmdline
e.g.
error: argument unused during compilation: '-pie'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
|
|
|
|
|
|
|
| |
OE-Core now uses -march=armv7ve for cortext-a7 and clang/llvm doesnt
have arch tunable for armv7ve, we revert to prior art of using armv7-a
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
| |
These are not part of target image and many of these tools are still
not ported to be buildable with clang, so lets use gcc for building them
at this moment
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
The option is not defined for llvm/clang but the defaults are hard-float
anyway so not needed
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So far we have been selecting which packages are compiled using clang
this patch changes the logic to use clang by default unless selecting
TOOLCHAIN = "gcc"
explicitly in the recipe
We have not yet enabled clang for native recipes, its only enabled for
target recipes needing cross compilation as of now.
Get rid of configuration file and move the code to clang.bbclass,
simplifies the logic
If needed to select gcc to be default system compiler set
TOOLCHAIN = "gcc" in local.conf
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
brings it inline with gcc toolchain
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
compiler
We add clang as an alternative compiler, it sitll uses underlying
binutils and compiler runtime, it will only do the compilation and defer
link, to GNU ld/gold, to compile a component usign clang add
TOOLCHAIN_pn-<recipe-name> = "clang"
DEPENDS_append_pn-<recipe-name> = " clang-cross "
And OE will start using clang to compile <recipe-name>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|