<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/poky.git/meta/recipes-devtools/llvm, branch langdale</title>
<subtitle>Mirror of git.yoctoproject.org/poky</subtitle>
<id>https://git.enea.com/cgit/linux/poky.git/atom?h=langdale</id>
<link rel='self' href='https://git.enea.com/cgit/linux/poky.git/atom?h=langdale'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/'/>
<updated>2022-12-01T19:35:11+00:00</updated>
<entry>
<title>mesa: do not rely on native llvm-config in target sysroot</title>
<updated>2022-12-01T19:35:11+00:00</updated>
<author>
<name>Alexander Kanavin</name>
<email>alex.kanavin@gmail.com</email>
</author>
<published>2022-11-14T19:00:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=8f41af0ee94e87b673aa75ee2ecb7cf5a43b0d3d'/>
<id>urn:sha1:8f41af0ee94e87b673aa75ee2ecb7cf5a43b0d3d</id>
<content type='text'>
Sadly the magic is not perfect: llvm-config contains a hardcoded
value for the libdir from the native configuration, and things will
break if the target build installs libraries somewhere else (e.g. lib64).

llvm-config in target bindir also needs a rpath adjustment,
otherwise it simply won't even run when e.g. building for arm on x86.

To avoid patching llvm-source let's simply add more cases to the
llvm-config wrapper script, so that falling through to llvm-config binary
is avoided. Fortunately those cases are all static in what they return,
even though llvm-config binary does poke around the file tree to arrive
at them (which is where breakage happens if native and target don't match
exactly wrt libdir).

I verified that this works by building mesa with llvm enabled for
qemuarm64 and with baselib set to 'lib64' - so that both the target
architecture and target libdir differ from native ones.

Upstream tickets:
https://github.com/llvm/llvm-project/issues/58984
https://github.com/mesonbuild/meson/issues/11043

(From OE-Core rev: d2860e67a37623b17fc9c6e1192f06a63b7d52ff)

Signed-off-by: Alexander Kanavin &lt;alex@linutronix.de&gt;
Signed-off-by: Alexandre Belloni &lt;alexandre.belloni@bootlin.com&gt;
(cherry picked from commit 056431883e94296b767a479d029b914392e4fd7c)
Signed-off-by: Steve Sakoman &lt;steve@sakoman.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>llvm: remove 0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch</title>
<updated>2022-09-02T14:58:25+00:00</updated>
<author>
<name>Alexander Kanavin</name>
<email>alex.kanavin@gmail.com</email>
</author>
<published>2022-09-01T12:40:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=5ee00d7e6882929091e2fbd605d0e328a4df0821'/>
<id>urn:sha1:5ee00d7e6882929091e2fbd605d0e328a4df0821</id>
<content type='text'>
At some point this became unnecessary as llvm builds with with musl without it.

(From OE-Core rev: 0469854032ad8ce3f690e84520619d9819263bdc)

Signed-off-by: Alexander Kanavin &lt;alex@linutronix.de&gt;
Signed-off-by: Alexandre Belloni &lt;alexandre.belloni@bootlin.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>llvm: Add llvm-config wrapper to improve flags handling</title>
<updated>2022-08-31T09:40:07+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2022-08-30T16:41:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=13f8a86122cac43cb0084be0ba94c8ccefc72e29'/>
<id>urn:sha1:13f8a86122cac43cb0084be0ba94c8ccefc72e29</id>
<content type='text'>
Add a wrapper for llvm-config which provides flags from the current envrionment
instead of the values hardcoded into llvm-native at compile time. Inspiration
taken from the wrapper in meta-clang but I had to totally rewrite it as:

* the TARGET_* prefixes weren't in our environment
* meson uses --libs --ldflags XXX which didn't work

(From OE-Core rev: 193ee1973f613b72f7f99660aecf652b07652d18)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>llvm: update 14.0.4 -&gt; 14.0.6</title>
<updated>2022-07-23T12:55:25+00:00</updated>
<author>
<name>Alexander Kanavin</name>
<email>alex.kanavin@gmail.com</email>
</author>
<published>2022-07-20T08:44:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=0a060f338c991eb2328385ba0a0dfbd5ffd60a4e'/>
<id>urn:sha1:0a060f338c991eb2328385ba0a0dfbd5ffd60a4e</id>
<content type='text'>
(From OE-Core rev: ddb9664d55bf782a82b693c10d366db2e134b684)

Signed-off-by: Alexander Kanavin &lt;alex@linutronix.de&gt;
Signed-off-by: Alexandre Belloni &lt;alexandre.belloni@bootlin.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>llvm: add PACKAGECONFIG[optviewer]</title>
<updated>2022-06-24T23:06:08+00:00</updated>
<author>
<name>Luca Ceresoli</name>
<email>luca.ceresoli@bootlin.com</email>
</author>
<published>2022-06-22T16:05:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=1bb927e6b370017c30d855817358a93e5b05b969'/>
<id>urn:sha1:1bb927e6b370017c30d855817358a93e5b05b969</id>
<content type='text'>
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" &lt;stefan.herbrechtsmeier-oss@weidmueller.com&gt;
Proposed-by: "Markus Volk" &lt;f_l_k@t-online.de&gt;
(From OE-Core rev: 78b6a08db4e8eb3b4e1d52fcdb39a5b3415f5a3f)

Signed-off-by: Luca Ceresoli &lt;luca.ceresoli@bootlin.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>llvm: update 14.0.3 -&gt; 14.0.4</title>
<updated>2022-06-07T20:21:54+00:00</updated>
<author>
<name>Alexander Kanavin</name>
<email>alex.kanavin@gmail.com</email>
</author>
<published>2022-06-06T12:01:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=6a3e48b3b21f8e8fcecc017d33f68c7544c06c08'/>
<id>urn:sha1:6a3e48b3b21f8e8fcecc017d33f68c7544c06c08</id>
<content type='text'>
(From OE-Core rev: 7160f2e0867bc7224cc69747d095dfd0cc986ee6)

Signed-off-by: Alexander Kanavin &lt;alex@linutronix.de&gt;
Signed-off-by: Luca Ceresoli &lt;luca.ceresoli@bootlin.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>llvm: update 14.0.1 -&gt; 14.0.3</title>
<updated>2022-05-05T20:17:38+00:00</updated>
<author>
<name>Alexander Kanavin</name>
<email>alex.kanavin@gmail.com</email>
</author>
<published>2022-05-05T05:05:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=1d9533d4e7c9f6cc39439a09e89e5f8a9a43e028'/>
<id>urn:sha1:1d9533d4e7c9f6cc39439a09e89e5f8a9a43e028</id>
<content type='text'>
(From OE-Core rev: 24cad5d1bb422e7d54c571902d53330c1f6514b2)

Signed-off-by: Alexander Kanavin &lt;alex@linutronix.de&gt;
Signed-off-by: Luca Ceresoli &lt;luca.ceresoli@bootlin.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>llvm: update 14.0.0 -&gt; 14.0.1</title>
<updated>2022-04-28T10:51:42+00:00</updated>
<author>
<name>Alexander Kanavin</name>
<email>alex.kanavin@gmail.com</email>
</author>
<published>2022-04-27T08:40:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=ddda3af6a1ce816c9f63e5a2ba19eb96c7e9c89c'/>
<id>urn:sha1:ddda3af6a1ce816c9f63e5a2ba19eb96c7e9c89c</id>
<content type='text'>
(From OE-Core rev: 293638a800aadd59f35b732baa47774fa9d9b6fd)

Signed-off-by: Alexander Kanavin &lt;alex@linutronix.de&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>llvm: use default install paths</title>
<updated>2022-04-19T13:14:11+00:00</updated>
<author>
<name>Alexander Kanavin</name>
<email>alex.kanavin@gmail.com</email>
</author>
<published>2022-04-07T17:00:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=9481976d8020f593220a79531bc2dd56a17539f3'/>
<id>urn:sha1:9481976d8020f593220a79531bc2dd56a17539f3</id>
<content type='text'>
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 &lt;alex@linutronix.de&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>llvm: update 13.0.1 -&gt; 14.0.0</title>
<updated>2022-04-19T13:14:11+00:00</updated>
<author>
<name>Alexander Kanavin</name>
<email>alex.kanavin@gmail.com</email>
</author>
<published>2022-04-07T17:00:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=cbb01bd465ceca64cd48c315f86b9239b742999e'/>
<id>urn:sha1:cbb01bd465ceca64cd48c315f86b9239b742999e</id>
<content type='text'>
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 &lt;alex@linutronix.de&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
</feed>
