raj.khem created this revision.
raj.khem added reviewers: jhuber6, JonChesterfield.
Herald added subscribers: guansong, yaxunl.
raj.khem requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added subscribers: cfe-commits, sstefan1.
Herald added a project: clang.

OpenEmbedded based SDKs stage toolchains outsides the target rootfs and
libomp.so is part of the target rootfs and not part of compiler
toolchain install or relative to it. It finds the libraries via
--sysroot during compile. This ensures that -rpath is not added for such
systems, since it is adding cross-compile paths to rpath which is not
correct when the binaries are run on real targets.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D119590

Files:
  clang/lib/Driver/ToolChains/CommonArgs.cpp


Index: clang/lib/Driver/ToolChains/CommonArgs.cpp
===================================================================
--- clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -648,6 +648,11 @@
 void tools::addOpenMPRuntimeSpecificRPath(const ToolChain &TC,
                                           const ArgList &Args,
                                           ArgStringList &CmdArgs) {
+  // OpenEmbedded/Yocto installs libomp.so into <sysroot>/usr/lib
+  // therefore using -rpath is not needed, on the contrary it adds
+  // paths from cross compiler install location which is not correct
+  if (TC.getTriple().getVendor() == llvm::Triple::OpenEmbedded)
+    return;
 
   if (Args.hasFlag(options::OPT_fopenmp_implicit_rpath,
                    options::OPT_fno_openmp_implicit_rpath, true)) {


Index: clang/lib/Driver/ToolChains/CommonArgs.cpp
===================================================================
--- clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -648,6 +648,11 @@
 void tools::addOpenMPRuntimeSpecificRPath(const ToolChain &TC,
                                           const ArgList &Args,
                                           ArgStringList &CmdArgs) {
+  // OpenEmbedded/Yocto installs libomp.so into <sysroot>/usr/lib
+  // therefore using -rpath is not needed, on the contrary it adds
+  // paths from cross compiler install location which is not correct
+  if (TC.getTriple().getVendor() == llvm::Triple::OpenEmbedded)
+    return;
 
   if (Args.hasFlag(options::OPT_fopenmp_implicit_rpath,
                    options::OPT_fno_openmp_implicit_rpath, true)) {
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D119590: exclude ... Khem Raj via Phabricator via cfe-commits

Reply via email to