All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.