* [PATCH] llvm: fix llvm-config to work again with multilib
@ 2020-10-06 10:40 Yann Dirson
2020-10-06 16:07 ` [OE-core] " Khem Raj
0 siblings, 1 reply; 5+ messages in thread
From: Yann Dirson @ 2020-10-06 10:40 UTC (permalink / raw)
To: openembedded-core; +Cc: Yann Dirson
From: Yann Dirson <yann@blade-group.com>
Newer llvm versions have changed the logic for finding libraries,
which prevents Mesa from building with PACKAGECONFIG[gallium-llvm]:
See https://bugzilla.yoctoproject.org/show_bug.cgi?id=13937
This patch comes from meta-amd, which exhibits one such situation.
Signed-off-by: Yann Dirson <yann@blade-group.com>
---
...-llvm-allow-env-override-of-exe-path.patch | 96 +++++++++++++++++--
1 file changed, 87 insertions(+), 9 deletions(-)
Note that I took the updated patch from meta-amd without a change, and
I'm dubious about the [OE-Specific] tag in patch metadata.
diff --git a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
index b01b8647c9..417eaf0aa1 100644
--- a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
+++ b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
@@ -1,27 +1,30 @@
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-From 61b00e1e051e367f5483d7b5253b6c85a9e8a90f Mon Sep 17 00:00:00 2001
+From 0570fe02c07244a8724c1e6c0437f893c8aa8e93 Mon Sep 17 00:00:00 2001
From: Martin Kelly <mkelly@xevo.com>
Date: Fri, 19 May 2017 00:22:57 -0700
-Subject: [PATCH] llvm: allow env override of exe path
+Subject: [PATCH 2/2] llvm: allow env override of exe path
When using a native llvm-config from inside a sysroot, we need llvm-config to
return the libraries, include directories, etc. from inside the sysroot rather
than from the native sysroot. Thus provide an env override for calling
llvm-config from a target sysroot.
+To let it work in multilib environment, we need to provide a knob to supply
+multilib dirname as well
+
+Upstream-Status: Inappropriate [OE-Specific]
+
Signed-off-by: Martin Kelly <mkelly@xevo.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Arsalan H. Awan <Arsalan_Awan@mentor.com>
---
- llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++
- 1 file changed, 7 insertions(+)
+ llvm/tools/llvm-config/llvm-config.cpp | 35 ++++++++++++++++++++++---------
+ 1 file changed, 25 insertions(+), 10 deletions(-)
diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp
-index 7ef7c46a262..a4f7ed82c7b 100644
+index bec89fef98c..91b4d6e4c43 100644
--- a/llvm/tools/llvm-config/llvm-config.cpp
+++ b/llvm/tools/llvm-config/llvm-config.cpp
-@@ -225,6 +225,13 @@ Typical components:\n\
+@@ -226,6 +226,13 @@ Typical components:\n\
/// Compute the path to the main executable.
std::string GetExecutablePath(const char *Argv0) {
@@ -35,3 +38,78 @@ index 7ef7c46a262..a4f7ed82c7b 100644
// This just needs to be some symbol in the binary; C++ doesn't
// allow taking the address of ::main however.
void *P = (void *)(intptr_t)GetExecutablePath;
+@@ -284,7 +291,7 @@ int main(int argc, char **argv) {
+ // bin dir).
+ sys::fs::make_absolute(CurrentPath);
+ CurrentExecPrefix =
+- sys::path::parent_path(sys::path::parent_path(CurrentPath)).str();
++ sys::path::parent_path(sys::path::parent_path(sys::path::parent_path(CurrentPath))).str();
+
+ // Check to see if we are inside a development tree by comparing to possible
+ // locations (prefix style or CMake style).
+@@ -293,7 +300,7 @@ int main(int argc, char **argv) {
+ DevelopmentTreeLayout = CMakeStyle;
+ ActiveObjRoot = LLVM_OBJ_ROOT;
+ } else if (sys::fs::equivalent(CurrentExecPrefix,
+- Twine(LLVM_OBJ_ROOT) + "/bin")) {
++ Twine(LLVM_OBJ_ROOT) + "/bin/llvm9.0.1")) {
+ IsInDevelopmentTree = true;
+ DevelopmentTreeLayout = CMakeBuildModeStyle;
+ ActiveObjRoot = LLVM_OBJ_ROOT;
+@@ -307,37 +314,45 @@ int main(int argc, char **argv) {
+ std::string ActivePrefix, ActiveBinDir, ActiveIncludeDir, ActiveLibDir,
+ ActiveCMakeDir;
+ std::string ActiveIncludeOption;
++ // Hack for Yocto: we need to override the multilib path when we are using
++ // llvm-config from within a target sysroot.
++ std::string Multilibdir = std::getenv("YOCTO_ALTERNATE_MULTILIB_NAME");
++ if (Multilibdir.empty()) {
++ Multilibdir = "/lib/llvm9.0.1" LLVM_LIBDIR_SUFFIX;
++ }
++
+ if (IsInDevelopmentTree) {
+- ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include";
++ ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include/llvm9.0.1";
+ ActivePrefix = CurrentExecPrefix;
+
+ // CMake organizes the products differently than a normal prefix style
+ // layout.
++
+ switch (DevelopmentTreeLayout) {
+ case CMakeStyle:
+- ActiveBinDir = ActiveObjRoot + "/bin";
+- ActiveLibDir = ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX;
++ ActiveBinDir = ActiveObjRoot + "/bin/llvm9.0.1";
++ ActiveLibDir = ActiveObjRoot + "/lib/llvm9.0.1" + LLVM_LIBDIR_SUFFIX;
+ ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
+ break;
+ case CMakeBuildModeStyle:
+ ActivePrefix = ActiveObjRoot;
+- ActiveBinDir = ActiveObjRoot + "/bin/" + build_mode;
++ ActiveBinDir = ActiveObjRoot + "/bin/llvm9.0.1/" + build_mode;
+ ActiveLibDir =
+- ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX + "/" + build_mode;
++ ActiveObjRoot + "/lib/llvm9.0.1" + LLVM_LIBDIR_SUFFIX + "/" + build_mode;
+ ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
+ break;
+ }
+
+ // We need to include files from both the source and object trees.
+ ActiveIncludeOption =
+- ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
++ ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include/llvm9.0.1");
+ } else {
+ ActivePrefix = CurrentExecPrefix;
+- ActiveIncludeDir = ActivePrefix + "/include";
++ ActiveIncludeDir = ActivePrefix + "/include/llvm9.0.1";
+ SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
+ sys::fs::make_absolute(ActivePrefix, path);
+ ActiveBinDir = path.str();
+- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
++ ActiveLibDir = ActivePrefix + Multilibdir;
+ ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
+ ActiveIncludeOption = "-I" + ActiveIncludeDir;
+ }
+--
+2.20.1
+
--
2.28.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [OE-core] [PATCH] llvm: fix llvm-config to work again with multilib
2020-10-06 10:40 [PATCH] llvm: fix llvm-config to work again with multilib Yann Dirson
@ 2020-10-06 16:07 ` Khem Raj
2020-10-06 18:16 ` Yann Dirson
0 siblings, 1 reply; 5+ messages in thread
From: Khem Raj @ 2020-10-06 16:07 UTC (permalink / raw)
To: Yann Dirson; +Cc: Patches and discussions about the oe-core layer, Yann Dirson
in master we have llvm 10 but the patch seems to be accessing
llvm9.0.1 dir, that seems incorrect to me.
On Tue, Oct 6, 2020 at 3:41 AM Yann Dirson <yann.dirson@blade-group.com> wrote:
>
> From: Yann Dirson <yann@blade-group.com>
>
> Newer llvm versions have changed the logic for finding libraries,
> which prevents Mesa from building with PACKAGECONFIG[gallium-llvm]:
>
> See https://bugzilla.yoctoproject.org/show_bug.cgi?id=13937
>
> This patch comes from meta-amd, which exhibits one such situation.
>
> Signed-off-by: Yann Dirson <yann@blade-group.com>
> ---
> ...-llvm-allow-env-override-of-exe-path.patch | 96 +++++++++++++++++--
> 1 file changed, 87 insertions(+), 9 deletions(-)
>
>
> Note that I took the updated patch from meta-amd without a change, and
> I'm dubious about the [OE-Specific] tag in patch metadata.
>
>
> diff --git a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
> index b01b8647c9..417eaf0aa1 100644
> --- a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
> +++ b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
> @@ -1,27 +1,30 @@
> -Upstream-Status: Pending
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> -
> -From 61b00e1e051e367f5483d7b5253b6c85a9e8a90f Mon Sep 17 00:00:00 2001
> +From 0570fe02c07244a8724c1e6c0437f893c8aa8e93 Mon Sep 17 00:00:00 2001
> From: Martin Kelly <mkelly@xevo.com>
> Date: Fri, 19 May 2017 00:22:57 -0700
> -Subject: [PATCH] llvm: allow env override of exe path
> +Subject: [PATCH 2/2] llvm: allow env override of exe path
>
> When using a native llvm-config from inside a sysroot, we need llvm-config to
> return the libraries, include directories, etc. from inside the sysroot rather
> than from the native sysroot. Thus provide an env override for calling
> llvm-config from a target sysroot.
>
> +To let it work in multilib environment, we need to provide a knob to supply
> +multilib dirname as well
> +
> +Upstream-Status: Inappropriate [OE-Specific]
> +
> Signed-off-by: Martin Kelly <mkelly@xevo.com>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Signed-off-by: Arsalan H. Awan <Arsalan_Awan@mentor.com>
> ---
> - llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++
> - 1 file changed, 7 insertions(+)
> + llvm/tools/llvm-config/llvm-config.cpp | 35 ++++++++++++++++++++++---------
> + 1 file changed, 25 insertions(+), 10 deletions(-)
>
> diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp
> -index 7ef7c46a262..a4f7ed82c7b 100644
> +index bec89fef98c..91b4d6e4c43 100644
> --- a/llvm/tools/llvm-config/llvm-config.cpp
> +++ b/llvm/tools/llvm-config/llvm-config.cpp
> -@@ -225,6 +225,13 @@ Typical components:\n\
> +@@ -226,6 +226,13 @@ Typical components:\n\
>
> /// Compute the path to the main executable.
> std::string GetExecutablePath(const char *Argv0) {
> @@ -35,3 +38,78 @@ index 7ef7c46a262..a4f7ed82c7b 100644
> // This just needs to be some symbol in the binary; C++ doesn't
> // allow taking the address of ::main however.
> void *P = (void *)(intptr_t)GetExecutablePath;
> +@@ -284,7 +291,7 @@ int main(int argc, char **argv) {
> + // bin dir).
> + sys::fs::make_absolute(CurrentPath);
> + CurrentExecPrefix =
> +- sys::path::parent_path(sys::path::parent_path(CurrentPath)).str();
> ++ sys::path::parent_path(sys::path::parent_path(sys::path::parent_path(CurrentPath))).str();
> +
> + // Check to see if we are inside a development tree by comparing to possible
> + // locations (prefix style or CMake style).
> +@@ -293,7 +300,7 @@ int main(int argc, char **argv) {
> + DevelopmentTreeLayout = CMakeStyle;
> + ActiveObjRoot = LLVM_OBJ_ROOT;
> + } else if (sys::fs::equivalent(CurrentExecPrefix,
> +- Twine(LLVM_OBJ_ROOT) + "/bin")) {
> ++ Twine(LLVM_OBJ_ROOT) + "/bin/llvm9.0.1")) {
> + IsInDevelopmentTree = true;
> + DevelopmentTreeLayout = CMakeBuildModeStyle;
> + ActiveObjRoot = LLVM_OBJ_ROOT;
> +@@ -307,37 +314,45 @@ int main(int argc, char **argv) {
> + std::string ActivePrefix, ActiveBinDir, ActiveIncludeDir, ActiveLibDir,
> + ActiveCMakeDir;
> + std::string ActiveIncludeOption;
> ++ // Hack for Yocto: we need to override the multilib path when we are using
> ++ // llvm-config from within a target sysroot.
> ++ std::string Multilibdir = std::getenv("YOCTO_ALTERNATE_MULTILIB_NAME");
> ++ if (Multilibdir.empty()) {
> ++ Multilibdir = "/lib/llvm9.0.1" LLVM_LIBDIR_SUFFIX;
> ++ }
> ++
> + if (IsInDevelopmentTree) {
> +- ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include";
> ++ ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include/llvm9.0.1";
> + ActivePrefix = CurrentExecPrefix;
> +
> + // CMake organizes the products differently than a normal prefix style
> + // layout.
> ++
> + switch (DevelopmentTreeLayout) {
> + case CMakeStyle:
> +- ActiveBinDir = ActiveObjRoot + "/bin";
> +- ActiveLibDir = ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX;
> ++ ActiveBinDir = ActiveObjRoot + "/bin/llvm9.0.1";
> ++ ActiveLibDir = ActiveObjRoot + "/lib/llvm9.0.1" + LLVM_LIBDIR_SUFFIX;
> + ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
> + break;
> + case CMakeBuildModeStyle:
> + ActivePrefix = ActiveObjRoot;
> +- ActiveBinDir = ActiveObjRoot + "/bin/" + build_mode;
> ++ ActiveBinDir = ActiveObjRoot + "/bin/llvm9.0.1/" + build_mode;
> + ActiveLibDir =
> +- ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX + "/" + build_mode;
> ++ ActiveObjRoot + "/lib/llvm9.0.1" + LLVM_LIBDIR_SUFFIX + "/" + build_mode;
> + ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
> + break;
> + }
> +
> + // We need to include files from both the source and object trees.
> + ActiveIncludeOption =
> +- ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
> ++ ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include/llvm9.0.1");
> + } else {
> + ActivePrefix = CurrentExecPrefix;
> +- ActiveIncludeDir = ActivePrefix + "/include";
> ++ ActiveIncludeDir = ActivePrefix + "/include/llvm9.0.1";
> + SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
> + sys::fs::make_absolute(ActivePrefix, path);
> + ActiveBinDir = path.str();
> +- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
> ++ ActiveLibDir = ActivePrefix + Multilibdir;
> + ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
> + ActiveIncludeOption = "-I" + ActiveIncludeDir;
> + }
> +--
> +2.20.1
> +
> --
> 2.28.0
>
>
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [OE-core] [PATCH] llvm: fix llvm-config to work again with multilib
2020-10-06 16:07 ` [OE-core] " Khem Raj
@ 2020-10-06 18:16 ` Yann Dirson
2020-10-06 18:24 ` Khem Raj
0 siblings, 1 reply; 5+ messages in thread
From: Yann Dirson @ 2020-10-06 18:16 UTC (permalink / raw)
To: Khem Raj; +Cc: Patches and discussions about the oe-core layer, Yann Dirson
[-- Attachment #1: Type: text/plain, Size: 7525 bytes --]
Oh right that one is targeting dunfell and I did not check, will reroll
Le mar. 6 oct. 2020 à 18:07, Khem Raj <raj.khem@gmail.com> a écrit :
> in master we have llvm 10 but the patch seems to be accessing
> llvm9.0.1 dir, that seems incorrect to me.
>
> On Tue, Oct 6, 2020 at 3:41 AM Yann Dirson <yann.dirson@blade-group.com>
> wrote:
> >
> > From: Yann Dirson <yann@blade-group.com>
> >
> > Newer llvm versions have changed the logic for finding libraries,
> > which prevents Mesa from building with PACKAGECONFIG[gallium-llvm]:
> >
> > See https://bugzilla.yoctoproject.org/show_bug.cgi?id=13937
> >
> > This patch comes from meta-amd, which exhibits one such situation.
> >
> > Signed-off-by: Yann Dirson <yann@blade-group.com>
> > ---
> > ...-llvm-allow-env-override-of-exe-path.patch | 96 +++++++++++++++++--
> > 1 file changed, 87 insertions(+), 9 deletions(-)
> >
> >
> > Note that I took the updated patch from meta-amd without a change, and
> > I'm dubious about the [OE-Specific] tag in patch metadata.
> >
> >
> > diff --git
> a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
> b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
> > index b01b8647c9..417eaf0aa1 100644
> > ---
> a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
> > +++
> b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
> > @@ -1,27 +1,30 @@
> > -Upstream-Status: Pending
> > -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > -
> > -From 61b00e1e051e367f5483d7b5253b6c85a9e8a90f Mon Sep 17 00:00:00 2001
> > +From 0570fe02c07244a8724c1e6c0437f893c8aa8e93 Mon Sep 17 00:00:00 2001
> > From: Martin Kelly <mkelly@xevo.com>
> > Date: Fri, 19 May 2017 00:22:57 -0700
> > -Subject: [PATCH] llvm: allow env override of exe path
> > +Subject: [PATCH 2/2] llvm: allow env override of exe path
> >
> > When using a native llvm-config from inside a sysroot, we need
> llvm-config to
> > return the libraries, include directories, etc. from inside the sysroot
> rather
> > than from the native sysroot. Thus provide an env override for calling
> > llvm-config from a target sysroot.
> >
> > +To let it work in multilib environment, we need to provide a knob to
> supply
> > +multilib dirname as well
> > +
> > +Upstream-Status: Inappropriate [OE-Specific]
> > +
> > Signed-off-by: Martin Kelly <mkelly@xevo.com>
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > +Signed-off-by: Arsalan H. Awan <Arsalan_Awan@mentor.com>
> > ---
> > - llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++
> > - 1 file changed, 7 insertions(+)
> > + llvm/tools/llvm-config/llvm-config.cpp | 35
> ++++++++++++++++++++++---------
> > + 1 file changed, 25 insertions(+), 10 deletions(-)
> >
> > diff --git a/llvm/tools/llvm-config/llvm-config.cpp
> b/llvm/tools/llvm-config/llvm-config.cpp
> > -index 7ef7c46a262..a4f7ed82c7b 100644
> > +index bec89fef98c..91b4d6e4c43 100644
> > --- a/llvm/tools/llvm-config/llvm-config.cpp
> > +++ b/llvm/tools/llvm-config/llvm-config.cpp
> > -@@ -225,6 +225,13 @@ Typical components:\n\
> > +@@ -226,6 +226,13 @@ Typical components:\n\
> >
> > /// Compute the path to the main executable.
> > std::string GetExecutablePath(const char *Argv0) {
> > @@ -35,3 +38,78 @@ index 7ef7c46a262..a4f7ed82c7b 100644
> > // This just needs to be some symbol in the binary; C++ doesn't
> > // allow taking the address of ::main however.
> > void *P = (void *)(intptr_t)GetExecutablePath;
> > +@@ -284,7 +291,7 @@ int main(int argc, char **argv) {
> > + // bin dir).
> > + sys::fs::make_absolute(CurrentPath);
> > + CurrentExecPrefix =
> > +-
> sys::path::parent_path(sys::path::parent_path(CurrentPath)).str();
> > ++
> sys::path::parent_path(sys::path::parent_path(sys::path::parent_path(CurrentPath))).str();
> > +
> > + // Check to see if we are inside a development tree by comparing to
> possible
> > + // locations (prefix style or CMake style).
> > +@@ -293,7 +300,7 @@ int main(int argc, char **argv) {
> > + DevelopmentTreeLayout = CMakeStyle;
> > + ActiveObjRoot = LLVM_OBJ_ROOT;
> > + } else if (sys::fs::equivalent(CurrentExecPrefix,
> > +- Twine(LLVM_OBJ_ROOT) + "/bin")) {
> > ++ Twine(LLVM_OBJ_ROOT) +
> "/bin/llvm9.0.1")) {
> > + IsInDevelopmentTree = true;
> > + DevelopmentTreeLayout = CMakeBuildModeStyle;
> > + ActiveObjRoot = LLVM_OBJ_ROOT;
> > +@@ -307,37 +314,45 @@ int main(int argc, char **argv) {
> > + std::string ActivePrefix, ActiveBinDir, ActiveIncludeDir,
> ActiveLibDir,
> > + ActiveCMakeDir;
> > + std::string ActiveIncludeOption;
> > ++ // Hack for Yocto: we need to override the multilib path when we are
> using
> > ++ // llvm-config from within a target sysroot.
> > ++ std::string Multilibdir =
> std::getenv("YOCTO_ALTERNATE_MULTILIB_NAME");
> > ++ if (Multilibdir.empty()) {
> > ++ Multilibdir = "/lib/llvm9.0.1" LLVM_LIBDIR_SUFFIX;
> > ++ }
> > ++
> > + if (IsInDevelopmentTree) {
> > +- ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include";
> > ++ ActiveIncludeDir = std::string(LLVM_SRC_ROOT) +
> "/include/llvm9.0.1";
> > + ActivePrefix = CurrentExecPrefix;
> > +
> > + // CMake organizes the products differently than a normal prefix
> style
> > + // layout.
> > ++
> > + switch (DevelopmentTreeLayout) {
> > + case CMakeStyle:
> > +- ActiveBinDir = ActiveObjRoot + "/bin";
> > +- ActiveLibDir = ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX;
> > ++ ActiveBinDir = ActiveObjRoot + "/bin/llvm9.0.1";
> > ++ ActiveLibDir = ActiveObjRoot + "/lib/llvm9.0.1" +
> LLVM_LIBDIR_SUFFIX;
> > + ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
> > + break;
> > + case CMakeBuildModeStyle:
> > + ActivePrefix = ActiveObjRoot;
> > +- ActiveBinDir = ActiveObjRoot + "/bin/" + build_mode;
> > ++ ActiveBinDir = ActiveObjRoot + "/bin/llvm9.0.1/" + build_mode;
> > + ActiveLibDir =
> > +- ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX + "/" +
> build_mode;
> > ++ ActiveObjRoot + "/lib/llvm9.0.1" + LLVM_LIBDIR_SUFFIX + "/"
> + build_mode;
> > + ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
> > + break;
> > + }
> > +
> > + // We need to include files from both the source and object trees.
> > + ActiveIncludeOption =
> > +- ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot +
> "/include");
> > ++ ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot +
> "/include/llvm9.0.1");
> > + } else {
> > + ActivePrefix = CurrentExecPrefix;
> > +- ActiveIncludeDir = ActivePrefix + "/include";
> > ++ ActiveIncludeDir = ActivePrefix + "/include/llvm9.0.1";
> > + SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
> > + sys::fs::make_absolute(ActivePrefix, path);
> > + ActiveBinDir = path.str();
> > +- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
> > ++ ActiveLibDir = ActivePrefix + Multilibdir;
> > + ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
> > + ActiveIncludeOption = "-I" + ActiveIncludeDir;
> > + }
> > +--
> > +2.20.1
> > +
> > --
> > 2.28.0
> >
> >
> >
> >
>
--
Yann Dirson <yann@blade-group.com>
Blade / Shadow -- http://shadow.tech
[-- Attachment #2: Type: text/html, Size: 9850 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [OE-core] [PATCH] llvm: fix llvm-config to work again with multilib
2020-10-06 18:16 ` Yann Dirson
@ 2020-10-06 18:24 ` Khem Raj
2020-10-08 8:46 ` Yann Dirson
0 siblings, 1 reply; 5+ messages in thread
From: Khem Raj @ 2020-10-06 18:24 UTC (permalink / raw)
To: Yann Dirson; +Cc: Patches and discussions about the oe-core layer, Yann Dirson
does something like this not work fully ?
https://github.com/kraj/meta-clang/blob/master/recipes-devtools/clang/clang/0007-llvm-allow-env-override-of-exe-path.patch
On Tue, Oct 6, 2020 at 11:16 AM Yann Dirson <yann.dirson@blade-group.com> wrote:
>
> Oh right that one is targeting dunfell and I did not check, will reroll
>
> Le mar. 6 oct. 2020 à 18:07, Khem Raj <raj.khem@gmail.com> a écrit :
>>
>> in master we have llvm 10 but the patch seems to be accessing
>> llvm9.0.1 dir, that seems incorrect to me.
>>
>> On Tue, Oct 6, 2020 at 3:41 AM Yann Dirson <yann.dirson@blade-group.com> wrote:
>> >
>> > From: Yann Dirson <yann@blade-group.com>
>> >
>> > Newer llvm versions have changed the logic for finding libraries,
>> > which prevents Mesa from building with PACKAGECONFIG[gallium-llvm]:
>> >
>> > See https://bugzilla.yoctoproject.org/show_bug.cgi?id=13937
>> >
>> > This patch comes from meta-amd, which exhibits one such situation.
>> >
>> > Signed-off-by: Yann Dirson <yann@blade-group.com>
>> > ---
>> > ...-llvm-allow-env-override-of-exe-path.patch | 96 +++++++++++++++++--
>> > 1 file changed, 87 insertions(+), 9 deletions(-)
>> >
>> >
>> > Note that I took the updated patch from meta-amd without a change, and
>> > I'm dubious about the [OE-Specific] tag in patch metadata.
>> >
>> >
>> > diff --git a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
>> > index b01b8647c9..417eaf0aa1 100644
>> > --- a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
>> > +++ b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
>> > @@ -1,27 +1,30 @@
>> > -Upstream-Status: Pending
>> > -Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> > -
>> > -From 61b00e1e051e367f5483d7b5253b6c85a9e8a90f Mon Sep 17 00:00:00 2001
>> > +From 0570fe02c07244a8724c1e6c0437f893c8aa8e93 Mon Sep 17 00:00:00 2001
>> > From: Martin Kelly <mkelly@xevo.com>
>> > Date: Fri, 19 May 2017 00:22:57 -0700
>> > -Subject: [PATCH] llvm: allow env override of exe path
>> > +Subject: [PATCH 2/2] llvm: allow env override of exe path
>> >
>> > When using a native llvm-config from inside a sysroot, we need llvm-config to
>> > return the libraries, include directories, etc. from inside the sysroot rather
>> > than from the native sysroot. Thus provide an env override for calling
>> > llvm-config from a target sysroot.
>> >
>> > +To let it work in multilib environment, we need to provide a knob to supply
>> > +multilib dirname as well
>> > +
>> > +Upstream-Status: Inappropriate [OE-Specific]
>> > +
>> > Signed-off-by: Martin Kelly <mkelly@xevo.com>
>> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> > +Signed-off-by: Arsalan H. Awan <Arsalan_Awan@mentor.com>
>> > ---
>> > - llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++
>> > - 1 file changed, 7 insertions(+)
>> > + llvm/tools/llvm-config/llvm-config.cpp | 35 ++++++++++++++++++++++---------
>> > + 1 file changed, 25 insertions(+), 10 deletions(-)
>> >
>> > diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp
>> > -index 7ef7c46a262..a4f7ed82c7b 100644
>> > +index bec89fef98c..91b4d6e4c43 100644
>> > --- a/llvm/tools/llvm-config/llvm-config.cpp
>> > +++ b/llvm/tools/llvm-config/llvm-config.cpp
>> > -@@ -225,6 +225,13 @@ Typical components:\n\
>> > +@@ -226,6 +226,13 @@ Typical components:\n\
>> >
>> > /// Compute the path to the main executable.
>> > std::string GetExecutablePath(const char *Argv0) {
>> > @@ -35,3 +38,78 @@ index 7ef7c46a262..a4f7ed82c7b 100644
>> > // This just needs to be some symbol in the binary; C++ doesn't
>> > // allow taking the address of ::main however.
>> > void *P = (void *)(intptr_t)GetExecutablePath;
>> > +@@ -284,7 +291,7 @@ int main(int argc, char **argv) {
>> > + // bin dir).
>> > + sys::fs::make_absolute(CurrentPath);
>> > + CurrentExecPrefix =
>> > +- sys::path::parent_path(sys::path::parent_path(CurrentPath)).str();
>> > ++ sys::path::parent_path(sys::path::parent_path(sys::path::parent_path(CurrentPath))).str();
>> > +
>> > + // Check to see if we are inside a development tree by comparing to possible
>> > + // locations (prefix style or CMake style).
>> > +@@ -293,7 +300,7 @@ int main(int argc, char **argv) {
>> > + DevelopmentTreeLayout = CMakeStyle;
>> > + ActiveObjRoot = LLVM_OBJ_ROOT;
>> > + } else if (sys::fs::equivalent(CurrentExecPrefix,
>> > +- Twine(LLVM_OBJ_ROOT) + "/bin")) {
>> > ++ Twine(LLVM_OBJ_ROOT) + "/bin/llvm9.0.1")) {
>> > + IsInDevelopmentTree = true;
>> > + DevelopmentTreeLayout = CMakeBuildModeStyle;
>> > + ActiveObjRoot = LLVM_OBJ_ROOT;
>> > +@@ -307,37 +314,45 @@ int main(int argc, char **argv) {
>> > + std::string ActivePrefix, ActiveBinDir, ActiveIncludeDir, ActiveLibDir,
>> > + ActiveCMakeDir;
>> > + std::string ActiveIncludeOption;
>> > ++ // Hack for Yocto: we need to override the multilib path when we are using
>> > ++ // llvm-config from within a target sysroot.
>> > ++ std::string Multilibdir = std::getenv("YOCTO_ALTERNATE_MULTILIB_NAME");
>> > ++ if (Multilibdir.empty()) {
>> > ++ Multilibdir = "/lib/llvm9.0.1" LLVM_LIBDIR_SUFFIX;
>> > ++ }
>> > ++
>> > + if (IsInDevelopmentTree) {
>> > +- ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include";
>> > ++ ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include/llvm9.0.1";
>> > + ActivePrefix = CurrentExecPrefix;
>> > +
>> > + // CMake organizes the products differently than a normal prefix style
>> > + // layout.
>> > ++
>> > + switch (DevelopmentTreeLayout) {
>> > + case CMakeStyle:
>> > +- ActiveBinDir = ActiveObjRoot + "/bin";
>> > +- ActiveLibDir = ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX;
>> > ++ ActiveBinDir = ActiveObjRoot + "/bin/llvm9.0.1";
>> > ++ ActiveLibDir = ActiveObjRoot + "/lib/llvm9.0.1" + LLVM_LIBDIR_SUFFIX;
>> > + ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
>> > + break;
>> > + case CMakeBuildModeStyle:
>> > + ActivePrefix = ActiveObjRoot;
>> > +- ActiveBinDir = ActiveObjRoot + "/bin/" + build_mode;
>> > ++ ActiveBinDir = ActiveObjRoot + "/bin/llvm9.0.1/" + build_mode;
>> > + ActiveLibDir =
>> > +- ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX + "/" + build_mode;
>> > ++ ActiveObjRoot + "/lib/llvm9.0.1" + LLVM_LIBDIR_SUFFIX + "/" + build_mode;
>> > + ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
>> > + break;
>> > + }
>> > +
>> > + // We need to include files from both the source and object trees.
>> > + ActiveIncludeOption =
>> > +- ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
>> > ++ ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include/llvm9.0.1");
>> > + } else {
>> > + ActivePrefix = CurrentExecPrefix;
>> > +- ActiveIncludeDir = ActivePrefix + "/include";
>> > ++ ActiveIncludeDir = ActivePrefix + "/include/llvm9.0.1";
>> > + SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
>> > + sys::fs::make_absolute(ActivePrefix, path);
>> > + ActiveBinDir = path.str();
>> > +- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
>> > ++ ActiveLibDir = ActivePrefix + Multilibdir;
>> > + ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
>> > + ActiveIncludeOption = "-I" + ActiveIncludeDir;
>> > + }
>> > +--
>> > +2.20.1
>> > +
>> > --
>> > 2.28.0
>> >
>> >
>> >
>> >
>
>
>
> --
> Yann Dirson <yann@blade-group.com>
> Blade / Shadow -- http://shadow.tech
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [OE-core] [PATCH] llvm: fix llvm-config to work again with multilib
2020-10-06 18:24 ` Khem Raj
@ 2020-10-08 8:46 ` Yann Dirson
0 siblings, 0 replies; 5+ messages in thread
From: Yann Dirson @ 2020-10-08 8:46 UTC (permalink / raw)
To: Khem Raj; +Cc: Patches and discussions about the oe-core layer, Yann Dirson
[-- Attachment #1: Type: text/plain, Size: 8794 bytes --]
No, it doesn't. That's the one we have already in poky.
Just reproduced with this in local.conf:
PACKAGECONFIG_append_pn-mesa += " gallium-llvm"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
meta-amd does not have a patch for mesa10, I'm updating this
Le mar. 6 oct. 2020 à 20:25, Khem Raj <raj.khem@gmail.com> a écrit :
> does something like this not work fully ?
>
>
> https://github.com/kraj/meta-clang/blob/master/recipes-devtools/clang/clang/0007-llvm-allow-env-override-of-exe-path.patch
>
> On Tue, Oct 6, 2020 at 11:16 AM Yann Dirson <yann.dirson@blade-group.com>
> wrote:
> >
> > Oh right that one is targeting dunfell and I did not check, will reroll
> >
> > Le mar. 6 oct. 2020 à 18:07, Khem Raj <raj.khem@gmail.com> a écrit :
> >>
> >> in master we have llvm 10 but the patch seems to be accessing
> >> llvm9.0.1 dir, that seems incorrect to me.
> >>
> >> On Tue, Oct 6, 2020 at 3:41 AM Yann Dirson <yann.dirson@blade-group.com>
> wrote:
> >> >
> >> > From: Yann Dirson <yann@blade-group.com>
> >> >
> >> > Newer llvm versions have changed the logic for finding libraries,
> >> > which prevents Mesa from building with PACKAGECONFIG[gallium-llvm]:
> >> >
> >> > See https://bugzilla.yoctoproject.org/show_bug.cgi?id=13937
> >> >
> >> > This patch comes from meta-amd, which exhibits one such situation.
> >> >
> >> > Signed-off-by: Yann Dirson <yann@blade-group.com>
> >> > ---
> >> > ...-llvm-allow-env-override-of-exe-path.patch | 96
> +++++++++++++++++--
> >> > 1 file changed, 87 insertions(+), 9 deletions(-)
> >> >
> >> >
> >> > Note that I took the updated patch from meta-amd without a change, and
> >> > I'm dubious about the [OE-Specific] tag in patch metadata.
> >> >
> >> >
> >> > diff --git
> a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
> b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
> >> > index b01b8647c9..417eaf0aa1 100644
> >> > ---
> a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
> >> > +++
> b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch
> >> > @@ -1,27 +1,30 @@
> >> > -Upstream-Status: Pending
> >> > -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> >> > -
> >> > -From 61b00e1e051e367f5483d7b5253b6c85a9e8a90f Mon Sep 17 00:00:00
> 2001
> >> > +From 0570fe02c07244a8724c1e6c0437f893c8aa8e93 Mon Sep 17 00:00:00
> 2001
> >> > From: Martin Kelly <mkelly@xevo.com>
> >> > Date: Fri, 19 May 2017 00:22:57 -0700
> >> > -Subject: [PATCH] llvm: allow env override of exe path
> >> > +Subject: [PATCH 2/2] llvm: allow env override of exe path
> >> >
> >> > When using a native llvm-config from inside a sysroot, we need
> llvm-config to
> >> > return the libraries, include directories, etc. from inside the
> sysroot rather
> >> > than from the native sysroot. Thus provide an env override for
> calling
> >> > llvm-config from a target sysroot.
> >> >
> >> > +To let it work in multilib environment, we need to provide a knob to
> supply
> >> > +multilib dirname as well
> >> > +
> >> > +Upstream-Status: Inappropriate [OE-Specific]
> >> > +
> >> > Signed-off-by: Martin Kelly <mkelly@xevo.com>
> >> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> >> > +Signed-off-by: Arsalan H. Awan <Arsalan_Awan@mentor.com>
> >> > ---
> >> > - llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++
> >> > - 1 file changed, 7 insertions(+)
> >> > + llvm/tools/llvm-config/llvm-config.cpp | 35
> ++++++++++++++++++++++---------
> >> > + 1 file changed, 25 insertions(+), 10 deletions(-)
> >> >
> >> > diff --git a/llvm/tools/llvm-config/llvm-config.cpp
> b/llvm/tools/llvm-config/llvm-config.cpp
> >> > -index 7ef7c46a262..a4f7ed82c7b 100644
> >> > +index bec89fef98c..91b4d6e4c43 100644
> >> > --- a/llvm/tools/llvm-config/llvm-config.cpp
> >> > +++ b/llvm/tools/llvm-config/llvm-config.cpp
> >> > -@@ -225,6 +225,13 @@ Typical components:\n\
> >> > +@@ -226,6 +226,13 @@ Typical components:\n\
> >> >
> >> > /// Compute the path to the main executable.
> >> > std::string GetExecutablePath(const char *Argv0) {
> >> > @@ -35,3 +38,78 @@ index 7ef7c46a262..a4f7ed82c7b 100644
> >> > // This just needs to be some symbol in the binary; C++ doesn't
> >> > // allow taking the address of ::main however.
> >> > void *P = (void *)(intptr_t)GetExecutablePath;
> >> > +@@ -284,7 +291,7 @@ int main(int argc, char **argv) {
> >> > + // bin dir).
> >> > + sys::fs::make_absolute(CurrentPath);
> >> > + CurrentExecPrefix =
> >> > +-
> sys::path::parent_path(sys::path::parent_path(CurrentPath)).str();
> >> > ++
> sys::path::parent_path(sys::path::parent_path(sys::path::parent_path(CurrentPath))).str();
> >> > +
> >> > + // Check to see if we are inside a development tree by comparing
> to possible
> >> > + // locations (prefix style or CMake style).
> >> > +@@ -293,7 +300,7 @@ int main(int argc, char **argv) {
> >> > + DevelopmentTreeLayout = CMakeStyle;
> >> > + ActiveObjRoot = LLVM_OBJ_ROOT;
> >> > + } else if (sys::fs::equivalent(CurrentExecPrefix,
> >> > +- Twine(LLVM_OBJ_ROOT) + "/bin")) {
> >> > ++ Twine(LLVM_OBJ_ROOT) +
> "/bin/llvm9.0.1")) {
> >> > + IsInDevelopmentTree = true;
> >> > + DevelopmentTreeLayout = CMakeBuildModeStyle;
> >> > + ActiveObjRoot = LLVM_OBJ_ROOT;
> >> > +@@ -307,37 +314,45 @@ int main(int argc, char **argv) {
> >> > + std::string ActivePrefix, ActiveBinDir, ActiveIncludeDir,
> ActiveLibDir,
> >> > + ActiveCMakeDir;
> >> > + std::string ActiveIncludeOption;
> >> > ++ // Hack for Yocto: we need to override the multilib path when we
> are using
> >> > ++ // llvm-config from within a target sysroot.
> >> > ++ std::string Multilibdir =
> std::getenv("YOCTO_ALTERNATE_MULTILIB_NAME");
> >> > ++ if (Multilibdir.empty()) {
> >> > ++ Multilibdir = "/lib/llvm9.0.1" LLVM_LIBDIR_SUFFIX;
> >> > ++ }
> >> > ++
> >> > + if (IsInDevelopmentTree) {
> >> > +- ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include";
> >> > ++ ActiveIncludeDir = std::string(LLVM_SRC_ROOT) +
> "/include/llvm9.0.1";
> >> > + ActivePrefix = CurrentExecPrefix;
> >> > +
> >> > + // CMake organizes the products differently than a normal
> prefix style
> >> > + // layout.
> >> > ++
> >> > + switch (DevelopmentTreeLayout) {
> >> > + case CMakeStyle:
> >> > +- ActiveBinDir = ActiveObjRoot + "/bin";
> >> > +- ActiveLibDir = ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX;
> >> > ++ ActiveBinDir = ActiveObjRoot + "/bin/llvm9.0.1";
> >> > ++ ActiveLibDir = ActiveObjRoot + "/lib/llvm9.0.1" +
> LLVM_LIBDIR_SUFFIX;
> >> > + ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
> >> > + break;
> >> > + case CMakeBuildModeStyle:
> >> > + ActivePrefix = ActiveObjRoot;
> >> > +- ActiveBinDir = ActiveObjRoot + "/bin/" + build_mode;
> >> > ++ ActiveBinDir = ActiveObjRoot + "/bin/llvm9.0.1/" + build_mode;
> >> > + ActiveLibDir =
> >> > +- ActiveObjRoot + "/lib" + LLVM_LIBDIR_SUFFIX + "/" +
> build_mode;
> >> > ++ ActiveObjRoot + "/lib/llvm9.0.1" + LLVM_LIBDIR_SUFFIX +
> "/" + build_mode;
> >> > + ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
> >> > + break;
> >> > + }
> >> > +
> >> > + // We need to include files from both the source and object
> trees.
> >> > + ActiveIncludeOption =
> >> > +- ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot +
> "/include");
> >> > ++ ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot +
> "/include/llvm9.0.1");
> >> > + } else {
> >> > + ActivePrefix = CurrentExecPrefix;
> >> > +- ActiveIncludeDir = ActivePrefix + "/include";
> >> > ++ ActiveIncludeDir = ActivePrefix + "/include/llvm9.0.1";
> >> > + SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
> >> > + sys::fs::make_absolute(ActivePrefix, path);
> >> > + ActiveBinDir = path.str();
> >> > +- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
> >> > ++ ActiveLibDir = ActivePrefix + Multilibdir;
> >> > + ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
> >> > + ActiveIncludeOption = "-I" + ActiveIncludeDir;
> >> > + }
> >> > +--
> >> > +2.20.1
> >> > +
> >> > --
> >> > 2.28.0
> >> >
> >> >
> >> >
> >> >
> >
> >
> >
> > --
> > Yann Dirson <yann@blade-group.com>
> > Blade / Shadow -- http://shadow.tech
> >
>
--
Yann Dirson <yann@blade-group.com>
Blade / Shadow -- http://shadow.tech
[-- Attachment #2: Type: text/html, Size: 12661 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-10-08 8:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-06 10:40 [PATCH] llvm: fix llvm-config to work again with multilib Yann Dirson
2020-10-06 16:07 ` [OE-core] " Khem Raj
2020-10-06 18:16 ` Yann Dirson
2020-10-06 18:24 ` Khem Raj
2020-10-08 8:46 ` Yann Dirson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.