[PATCH] D147666: [OPENMP] Adds /lib to rpath to avoid need to set LD_LIBRARY_PATH to find plugins.

2023-04-24 Thread Greg Rodgers via Phabricator via cfe-commits
gregrodgers abandoned this revision.
gregrodgers added a comment.

Its ugly, but to avoid requirement to set LD_LIBRARY_PATH for end-users who may 
need LD_LIBRARY_PATH for their own application, we will modify the compiler 
installation with these bash commands where _INSTALL_DIR is the installation 
directory.

  echo "-Wl,-rpath=${_INSTALL_DIR}/lib" > ${_INSTALL_DIR}/bin/rpath.cfg
  echo "-L${_INSTALL_DIR}/lib" >> ${_INSTALL_DIR}/bin/rpath.cfg
  ln -sf rpath.cfg ${_INSTALL_DIR}/bin/clang++.cfg
  ln -sf rpath.cfg ${_INSTALL_DIR}/bin/clang.cfg
  ln -sf rpath.cfg ${_INSTALL_DIR}/bin/flang.cfg
  ln -sf rpath.cfg ${_INSTALL_DIR}/bin/flang-new.cfg

My apologies to linux distro packaging teams.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D147666/new/

https://reviews.llvm.org/D147666

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D147666: [OPENMP] Adds /lib to rpath to avoid need to set LD_LIBRARY_PATH to find plugins.

2023-04-06 Thread Jon Chesterfield via Phabricator via cfe-commits
JonChesterfield added a comment.

Sorry Greg, we can't have this back in trunk. It's now value add for the ROCm 
toolchain, and some llvm releases had this feature, but no longer.

The consensus in the OpenMP weekly meeting was to require users to hack around 
with linker flags or environment variables to get a working program. This makes 
Fedora's packaging scripts happy.

I do not like this but was comprehensively outvoted.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D147666/new/

https://reviews.llvm.org/D147666

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D147666: [OPENMP] Adds /lib to rpath to avoid need to set LD_LIBRARY_PATH to find plugins.

2023-04-05 Thread Joseph Huber via Phabricator via cfe-commits
jhuber6 added a comment.

Using `-rpath` by default with OpenMP was removed after a long conversation in 
https://reviews.llvm.org/D143306. The way forward is most likely to have AOMP 
provide this in a resource file configuration. I think @ronlieb has a working 
version of that.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D147666/new/

https://reviews.llvm.org/D147666

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D147666: [OPENMP] Adds /lib to rpath to avoid need to set LD_LIBRARY_PATH to find plugins.

2023-04-05 Thread Greg Rodgers via Phabricator via cfe-commits
gregrodgers created this revision.
Herald added subscribers: sunshaoce, guansong, yaxunl.
Herald added a project: All.
gregrodgers requested review of this revision.
Herald added subscribers: cfe-commits, jplehr, sstefan1, MaskRay.
Herald added a reviewer: jdoerfert.
Herald added a project: clang.

Currently, The user of an OpenMP application needs to set LD_LIBRARY_PATH to 
the directory
that contains the offload plugins. This change adds the rpath for OpenMP 
applications.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D147666

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
@@ -813,7 +813,9 @@
  ArgStringList ) {
   // Enable -frtlib-add-rpath by default for the case of VE.
   const bool IsVE = TC.getTriple().isVE();
-  bool DefaultValue = IsVE;
+  const bool IsOpenMP = (TC.getDriver().getOpenMPRuntime(Args)
+ != Driver::OMPRT_Unknown);
+  bool DefaultValue = IsVE || IsOpenMP ;
   if (!Args.hasFlag(options::OPT_frtlib_add_rpath,
 options::OPT_fno_rtlib_add_rpath, DefaultValue))
 return;
@@ -822,6 +824,16 @@
   if (TC.getVFS().exists(CandidateRPath)) {
 CmdArgs.push_back("-rpath");
 CmdArgs.push_back(Args.MakeArgString(CandidateRPath));
+  } else {
+if (IsOpenMP) {
+  SmallString<256> TopLibPath =
+llvm::sys::path::parent_path(TC.getDriver().Dir);
+  llvm::sys::path::append(TopLibPath, "lib");
+  if (TC.getVFS().exists(TopLibPath)) {
+CmdArgs.push_back("-rpath");
+CmdArgs.push_back(Args.MakeArgString(TopLibPath));
+  }
+}
   }
 }
 


Index: clang/lib/Driver/ToolChains/CommonArgs.cpp
===
--- clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -813,7 +813,9 @@
  ArgStringList ) {
   // Enable -frtlib-add-rpath by default for the case of VE.
   const bool IsVE = TC.getTriple().isVE();
-  bool DefaultValue = IsVE;
+  const bool IsOpenMP = (TC.getDriver().getOpenMPRuntime(Args)
+		  != Driver::OMPRT_Unknown);
+  bool DefaultValue = IsVE || IsOpenMP ;
   if (!Args.hasFlag(options::OPT_frtlib_add_rpath,
 options::OPT_fno_rtlib_add_rpath, DefaultValue))
 return;
@@ -822,6 +824,16 @@
   if (TC.getVFS().exists(CandidateRPath)) {
 CmdArgs.push_back("-rpath");
 CmdArgs.push_back(Args.MakeArgString(CandidateRPath));
+  } else {
+if (IsOpenMP) {
+  SmallString<256> TopLibPath =
+llvm::sys::path::parent_path(TC.getDriver().Dir);
+  llvm::sys::path::append(TopLibPath, "lib");
+  if (TC.getVFS().exists(TopLibPath)) {
+CmdArgs.push_back("-rpath");
+CmdArgs.push_back(Args.MakeArgString(TopLibPath));
+  }
+}
   }
 }
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits