| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This reverts commit 96b2f3da50c8cf814f661fba37df0a098457b016.
The is required to be applied globally and not only for libcxx.
Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
|
|
|
| |
Fix syntax error, '-DD' -> '-D'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes Issue #991
If this is not disabled, the build tries to use CMake magic to compute
repository and sha1 its building, however in case of OE it gets it
completely wrong when building from tarball, because its building under
TMPDIR which maybe a directory under main repo checkout e.g. poky tree
so it traverses up and finds the sha of poky and assumes that its building
from a git tree instead of tarball and emits the version control info into
clang -v output e.g.
❯ ../image/mnt/b/yoe/master/build/tmp/work/x86_64-linux/clang-native/20.0.0/recipe-sysroot-native/usr/bin/clang -v
clang version 20.0.0 (/home/kraj/work/llvm-project f133c59b33a749dc6d5fa8fb9a2366b95ea45068)
This can contain buildpaths since work-shared is where llvm sources will be and they
will appear here.
Therefore, avoid cmake trying to do this and we get good clean version info
> ../recipe-sysroot-native/usr/bin/aarch64-yoe-linux/aarch64-yoe-linux-clang
clang version 20.0.0
This will also avoid emitting buildpaths into debuginfo in some cases where
compiler version is emitted into build.id info
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
On arm64 OE-Core has moved the gcc default configuration done
with --enable-standard-branch-protection to be a CFLAGS option
which is appended to CC variable, this means that this option can
override the package's default to not use it e.g. libunwind where
the library has to be built without it.
Fixes https://github.com/kraj/meta-clang/issues/963
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
This is enabled in upcoming clang-19
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
this will simplify things with UNPACKDIR and shared sources for all llvm
derived recipes
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LLVM_RUNTIME_TARGETS will define the location of triple for target
correctly. This is an effort to fix the case where cross compiler will
lurk into host libc++ header if libcxx-native is staged for a given
recipe e.g. graphviz, it works ok if --sysroot is specified because
thats how it tries to find if its a cross sysroot or not but without
that it has mind of its own.
e.g. try
x86_64-yoe-linux-musl-clang++ -stdlib=libc++ ~/tests/iosfd.cpp -v -c
...
clang -cc1 version 18.1.0 based upon LLVM 18.1.0 default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../x86_64-pc-linux-gnu/include"
ignoring nonexistent directory "/include"
/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/graphviz/8.1.0/recipe-sysroot-native/usr/bin/../include/c++/v1
/usr/local/include
/usr/include
/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/graphviz/8.1.0/recipe-sysroot-native/usr/lib/clang/18/include
End of search list.
...
See where it is looking for c++ headers.
Its not an issue for OE right now, since we always specify --sysroot in
CC but still would be good to handle it amicably if possible
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
TC_CXX_RUNTIME is now defined in OE-core
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
This is new way of building it from 16.x onwards
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
This helps in compling shared libraries which may use e.g. static
libc++.a during link
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
| |
This helps statically linking c++ runtime into binaries which use
exceptions functions e.g. std::out_of_range as used in rwmem package
and using -static-libstdc++ compiler flags
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
clang can now build multiarch runtimes like debian's setup, but not all
arches work equally well, e.g. arm32 bit can not handle arm and armhf
case, so lets disable it for now.
Use DCMAKE_BUILD_TYPE=RelWithDebInfo as it is needed to set
DCMAKE_BUILD_TYPE in 15.x
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
This ensures that -stdlib=libc++ option works as expected
by adding both -lc++ -c++abi to linker command in sequence
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com>
|
|
|
|
|
|
| |
LLVM_LIBDIR_SUFFIX is already computed fine in clang.inc
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
When building libunwind, install new headers which are refactored from
unwind.h in clang 14.0.0 onwards
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cmake 3.22+ is causing install failures e.g.
| -- Install configuration: "Debug"
| -- Installing: /mnt/b/yoe/master/build/tmp/work/armv7at2hf-neon-yoe-linux-gnueabi/libcxx/13.0.1-r0/image/usr/lib/libc++.so.1.0
| -- Installing: /mnt/b/yoe/master/build/tmp/work/armv7at2hf-neon-yoe-linux-gnueabi/libcxx/13.0.1-r0/image/usr/lib/libc++.so.1
| -- Set runtime path of "/mnt/b/yoe/master/build/tmp/work/armv7at2hf-neon-yoe-linux-gnueabi/libcxx/13.0.1-r0/image/usr/lib/libc++.so.1.0" to ""
| -- Installing: /mnt/b/yoe/master/build/tmp/work/armv7at2hf-neon-yoe-linux-gnueabi/libcxx/13.0.1-r0/image/usr/lib/libc++.so
| CMake Error at cmake_install.cmake:88 (file):
| file RPATH_CHANGE could not write new RPATH:
|
|
|
| to the file:
|
| /mnt/b/yoe/master/build/tmp/work/armv7at2hf-neon-yoe-linux-gnueabi/libcxx/13.0.1-r0/image/usr/lib/libc++.so
|
| Call Stack (most recent call first):
| /mnt/b/yoe/master/build/tmp/work/armv7at2hf-neon-yoe-linux-gnueabi/libcxx/13.0.1-r0/build/projects/libcxx/cmake_install.cmake:56 (include)
|
Apply a workaround by building install time rpaths directly during build time
too.
Real fix perhaps will be in cmake somewhere.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
| |
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
| |
This helps during cross-compile as new clang expects this to be set or
else it deduces it and that deduction can go wrong.
See commit 395271ad11b8c233db1a4e0e6a76aa52e93e5aec in clang repo
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
| |
Use libgcc with clang-native to compile it
Fixes #465
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
This helps in ensuring it pose as RPROVIDES when llvm runtime is used
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
This ensures it can replace nongnu libunwind
Use it only when selecting RUNTIME = "llvm"
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
ensure that libcxx can be built when RUNTIME = "llvm" as it might need
to pass some cmake compiler tests
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
Use compile-rt consistently across when building libc++ and libc++abi
and libunwind
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
This ensures right C runtime is used as desired by user
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
libcxx can use either libgcc_s or llvm libunwind for unwinder
functionality, the defaults are platform dependent, therefore with this
patch we make intentional choice based on RUNTIME settings chosen, e.g.
when using GNU runtime we use libgcc and also ensure that it add right
compiler options to build as well, since libcxx build looks C runtime by
calling $($CC --print-libgcc-file-name) to build libc++abi.so unless we
use right -rtlib option it will result in linking wrong library
Enable RTTI as well
do not enable llvm unwinder unless we chose llvm runtime, even that
might not work since libpthread from glibc explicitly dlopens
libgcc_s.so to enable unwinding
https://github.com/bminor/glibc/blob/5f72f9800b250410cad3abfeeb09469ef12b2438/sysdeps/nptl/unwind-forcedunwind.c#L53...L58
Fixes Issue #332
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
py2 is gone from oe-core
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Allow more of the cmake variables coming from the OE environment
through, otherwise the release C flags and CXX flags get reset to
LLVM's default, which greatly extend build times.
Also switch to using cmake.bbclass's do_compile and do_install
commands. There's no need to call ninja directly anymore.
Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Co-authored-by: INAJIMA Daisuke <inajima@soum.co.jp>
|
|
|
|
|
|
|
|
| |
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 helps in disabling compiler-rt e.g. on risc-v if we need to enable
exceptions then we need to use libgcc_s, since llvm-libunwind is not yet
ported to risc-v
For ppc, enable compiler-rt
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
Fix build on armv5
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
setting these flags via CMake cmdline means that LDFLAGS that OE expects
to insert via environment wont be respected anymore, therefore its
better to pass it along during configure, so we get the desired flags
into linker
Fixes Issue #188
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>
|
|
|
|
|
|
| |
--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>
|
|
|
|
|
|
| |
Use LLVM_LIBDIR_SUFFIX with the correct value of suffix derived using baselib.
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when llvm unwind library is disabled, build was not picking up libgcc
automatically since we still use, compiler-rt for C runtime, therefore
introduce it via special CMAKE_SHARED_LINKER_FLAGS in packageconfig
Bundle static unwind library into libcxx-abi library and bundle
libcxx-abi.a into libc++.a this helps in just specifying lc++ and no
other flags are needed.
Also bundle static libunwind and cxx-abi but not into shared libc++, this would
avoid adding them explicitly on linker cmdline in packages when doing
static linking
Use PREFERRED_PROVIDER_libunwind to determine if unwind packageconfig
should be enabled or not
Pass -fno-exceptions on arm, otherwise it links in unwinding routines
which it expects to link from libgcc_s, we really don't need this when
doing cmake checks so disable exceptions during cmake checks
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
this should help when libcxx is preferred to provide libunwind and help
masking the packages coming from libunwind recipe
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
It really does not build with gcc dont force it
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
This helps in building with gcc
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
| |
Fixes build errors due to missing unwind symbols
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
| |
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
|
|
|
|
| |
This ensures that llvm libunwind is used always, even for sdks
Move depends above as per recipe styleguides
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|