Currently the CMake configuration for llvm finds the python pygments and
pyyaml if they are installed on the host. This makes builds
non-reproducible across different machines, some having those modules
installed and some others not.
This has been causing a 'reproducible' failure on one of the autobuilders:
AssertionError: The following deb packages are missing or different and not in exclusion list: /home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/deb/./core2-64/llvm-dev_14.0.4-r0_amd64.deb
The following ipk packages are missing or different and not in exclusion list: /home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/llvm-dev_14.0.4-r0_core2-64.ipk
The following rpm packages are missing or different and not in exclusion list: /home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/rpm/./core2_64/llvm-dev-14.0.4-r0.core2_64.rpm
Fix by adding an explicit PACKAGECONFIG to control the
LLVM_HAVE_OPT_VIEWER_MODULES option in CMake. If unset, it forces CMake to
ignore pygments and pyyaml, no matter it they are available on the host. If
set, it DEPENDS on the pygments and pyyaml modules so that CMake will find
and use them.
Based on suggestions from Stefan and Markus -- thanks.
Proposed-by: "Stefan Herbrechtsmeier" <stefan.herbrechtsmeier-oss@weidmueller.com>
Proposed-by: "Markus Volk" <f_l_k@t-online.de>
(From OE-Core rev: 78b6a08db4e8eb3b4e1d52fcdb39a5b3415f5a3f)
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There was a very brittle sed hack against cpp source code
that allowed installing multiple llvm versions into the same
target/sysroot. Patching with sed is prone to silent
regressions as it can change both too little and too much,
and it indeed it broke with llvm 14. It's also difficult to tell
what the 'right' change should look like.
If this feature is actually needed somewhere, please do it properly:
proper patch and upstream first.
(From OE-Core rev: 974f67b18a2f1a15c76785d69e7234594af97a88)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
llvm-config no longer links with libLLVM, so there is no need
to install it in -native (and it isn't built in the first place).
This also significantly speeds up llvm-native build.
(From OE-Core rev: ee06fc2a19665461e143fe3bf7e94b703652e1cf)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is the result of automated script conversion:
scripts/contrib/convert-overrides.py <oe-core directory>
converting the metadata to use ":" as the override character instead of "_".
(From OE-Core rev: 42344347be29f0997cc2f7636d9603b1fe1875ae)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Assembling PV from bits is too clever for devtool; but it can be
done in the opposite direction.
(From OE-Core rev: f1c6881ee1799426d85e6bd23347a875767c4994)
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixes
/benchmark_register.h:17:30: error: 'numeric_limits' is not a member of 'std'
| static const T kmax = std::numeric_limits<T>::max();
| ^~~~~~~~~~~~~~
(From OE-Core rev: e093eff9d94c02939ca398d59d66d1b1dbc8a12e)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
I cannot reproduce the problem.
(From OE-Core rev: 80cc6e60b98da7c9de9e9da629353cf1fb687197)
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
libOptRemarks has been renamed as libRemarks
RISC-V backend is now supported
(From OE-Core rev: 7f4870132ece9efa7f1404e2620a2e05055bca12)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
after gcc upgrade to 9.1.0, with this flags will make below error:
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]
remove it as workaround, after remove it, powerpc can compile successfully
(From OE-Core rev: 487eb18928c26e7781bb86a972369f3594ecdcca)
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- Add missing dependency on libedit
- Define LLVMVERSION on the same lines as GCCVERSION and other tools
- Use LLVMVERSION in mesa and meson.bbclass to get llvm version instead of
hardcoding it
- Use llvm patches unmodified from meta-clang, helps in keeping them in
sync
- Define PREFERRED_VERSION for llvm, llvm-native, nativesdk-llvm
(From OE-Core rev: 3c08b638348abd543fc92baf56c28ca16ae6aac6)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
fix below link error for powerpc
lib/libLLVMSupport.a(CommandLine.cpp.o): in function `llvm:🆑:opt_storage<(anonymous namespace):
:HelpPrinterWrapper, true, true>::setLocation(llvm:🆑:Option&, (anonymous namespace)::HelpPrinterWrapper&) [clone .isra.189]':
/usr/src/debug/llvm/8.0-r0/git/llvm/include/llvm/Support/CommandLine.h:1218:(.text.startup+0x5c):
relocation truncated to fit: R_PPC_PLTREL24 against symbol `llvm::errs()' defined in .text section in lib/libLLVMSupport.a(raw_ostream.cpp.o)+8000
lib/libLLVMSupport.a(CommandLine.cpp.o): in function `setLocation':
(From OE-Core rev: 5302047be6bcdae85a43f9b09778a91dcd03b191)
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
LLVM is now warning if your host compiler is gcc <5.1, and some of our supported
operating systems still only have 4.8.5. Set
LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN so those builds continue to work, hopefully
we retire the old operating systems before LLVM requires 5.1+.
(From OE-Core rev: 0e7d761b1360f603a4cc0de15c67f4e182e5a6a4)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Also, update PV to match the version scheme used by upstream
to tag releases (e.g. major.minor.patch).
(From OE-Core rev: 4405a1793a42aecd7923ab2b18df296ed8c32dc1)
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This doesn't appear to be required at all.
(From OE-Core rev: d8269db061c471d230dfd27e158f1aa5ce188e5a)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
LLVM doesn't actually need pythonnative, the host Python2 is sufficient but
cmake's executable searching currently isn't reliable in cross-compilations.
Convince cmake by setting PYTHON_EXECUTABLE to point at python2 in the HOSTTOOLS
directory. Note that currently LLVM *needs* python2 currently:
https://github.com/llvm-mirror/llvm/blob/master/CMakeLists.txt#L670
(From OE-Core rev: 1587475e45edc995b7643844594abc94160a5549)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The mesa 19.0.0 release requires RTTI to allow the build of Nouveau
driver, which is enabled by default when building for x86 and x86-64
target.
This commit enables RTTI support so it prepares the toolchain for the
upcoming change.
(From OE-Core rev: 8e24164606185e1d8b8eb293a30bb22760218f06)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
License-Update: Copyright year updates from 2017-2019
Refresh patches to apply on new version
mesa move dep to the llvm release to 8.0
Needs to happen along with llvm upgrade always
(From OE-Core rev: 96631d53becca8408758b405adc670ad7e2ea2f3)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix handling of escape characters in regexs and hence fix python
Deprecation warnings which will be problematic in python 3.8.
Note that some show up as:
"""
meta/classes/package.bbclass:1293: DeprecationWarning: invalid escape sequence \.
"""
where the problem isn't on 1293 in package.bbclass but in some _prepend to a
package.bbclass function in a different file like mesa.inc, often from
do_package_split() calls.
(From OE-Core rev: 4b1c0c7d5525fc4cea9e0f02ec54e92a6fbc6199)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
LLVM_TARGETS_TO_BUILD is needed to represent HOST_ARCH for
builds and target specific additions should use class-target
override
(From OE-Core rev: 5e6e08512e130951e66376ea43e4e6a98941b950)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If not defined, llvm build system tries to build one
which then confuses the OE QA system since its building
native tool and target packages in same package build
moreover it is not required since we already have it via
llvm-native
Fixes
ERROR: llvm-6.0-r0 do_package_qa: QA Issue: llvm: The compile log indicates that host include and/or library paths were used.
(From OE-Core rev: 7153a17166d9a94fd0ddc36d597a0140979d58ff)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Its trying to build NATIVE llvm-config which is
already built with llvm-native so we do not need
to rebuild it
Drop setting NINJA_STATUS explicitly, its no longer
needed, on the contrary it hinders the task status
update
(From OE-Core rev: f8393b2b4bc5fbd972be00cb17d0c574ae8deff9)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This greatly reduces the amount of recipes for which upstream
version check fails: from about 30 to about 8.
(From OE-Core rev: bb9066670a6096aa4134bebc84132b4eb3964b6d)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Search made with the following regex: getVar ?\((.*), True\).
(From OE-Core rev: dbc0eaf478feb3f752ae22fd184984494fc85d0a)
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When Thumb1 is used as default ISA, there are linker
issues, therefore always use ARM ISA
Fixes
relocation truncated to fit: R_ARM_THM_CALL against symbol `__gnu_thumb1_case_uhi' defined in .text section
(From OE-Core rev: a0c9d19b46ccefbb90eea5965e11ea21d13242b4)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This was needed when we were conflicting with clang-native
but this is solved via append PN to binaries of llvm-native
(From OE-Core rev: 82ea78bd2f03b6ba4d720595d3a3fbd96e0232f9)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When parsing this recipe on an unsupported or non-mappable architecture
an error is generated despite no dependencies on the recipe. E.g.
ERROR: .../llvm_git.bb: cannot map 'microblazeel' to a supported llvm architecture
Instead of generating an error which might confuse users, raise a
SkipRecipe exception similar to other arch-style mapping functions (e.g.
go_map_arch). This avoids showing the error during parse, and prevents
the use of the recipe on unsupported targets. Resulting in an error like
so when trying to build llvm:
ERROR: Nothing PROVIDES 'llvm'
llvm was skipped: Cannot map 'microblazeel' to a supported LLVM architecture
(From OE-Core rev: d796abac982f368aa088a291560b565cc47a2c27)
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We have a variable YOCTO_ALTERNATE_EXE_PATH to point to
target sysroot, utilize this in mesa to use native version
of llvm-config to report values from target sysroot.
(From OE-Core rev: 1c4444f7b2f5cbcaaf6f9d21d7b4f86555ed746a)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Based on recipe from meta-oe and clang recipe from meta-clang
Needed by mesa
Fixes
[YOCTO #11529]
(From OE-Core rev: 8724ef9c53e7804ead9ba0f019369b0e4daada63)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>