Author: Fangrui Song Date: 2023-03-08T10:18:40-08:00 New Revision: 555b572e3f407ac48b5f30fc06760cc4d0549977
URL: https://github.com/llvm/llvm-project/commit/555b572e3f407ac48b5f30fc06760cc4d0549977 DIFF: https://github.com/llvm/llvm-project/commit/555b572e3f407ac48b5f30fc06760cc4d0549977.diff LOG: Revert D118493 "Set rpath on openmp executables" This reverts commit 9b9d08111b618d74574ba03e5cc3d752ecc56f55. (Accepted by Jon https://reviews.llvm.org/D118493#4178250) libc++, libc++abi, libunwind, and compiler-rt don't add the extra DT_RUNPATH, it's strange for OpenMP to diverge. Some build systems want to handle DT_RUNPATH themselves (e.g. CMAKE_INSTALL_RPATH). Some distributions (e.g. Fedora) have policies against DT_RUNPATH and the default DT_RUNPATH for OpenMP is causing trouble. For users who don't want to specify rpath by themselves, https://clang.llvm.org/docs/UsersManual.html#configuration-files can be used to specify the default rpath, e.g. specify -frtlib-add-rpath or -Wl,-rpath in bin/clang.cfg Added: Modified: clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/CommonArgs.cpp clang/lib/Driver/ToolChains/CommonArgs.h openmp/libomptarget/test/lit.cfg Removed: clang/test/OpenMP/Inputs/libomp.a ################################################################################ diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index b8a12660b32b..97b9fdbb31a0 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -4260,12 +4260,6 @@ def offload_add_rpath: Flag<["--"], "offload-add-rpath">, Flags<[NoArgumentUnuse HelpText<"Add -rpath with HIP runtime library directory to the linker flags">; def no_offload_add_rpath: Flag<["--"], "no-offload-add-rpath">, Flags<[NoArgumentUnused]>, HelpText<"Do not add -rpath with HIP runtime library directory to the linker flags">; -defm openmp_implicit_rpath: BoolFOption<"openmp-implicit-rpath", - LangOpts<"OpenMP">, - DefaultTrue, - PosFlag<SetTrue, [], "Set rpath on OpenMP executables">, - NegFlag<SetFalse>, - BothFlags<[NoArgumentUnused]>>; def r : Flag<["-"], "r">, Flags<[LinkerInput,NoArgumentUnused]>, Group<Link_Group>; def save_temps_EQ : Joined<["-", "--"], "save-temps=">, Flags<[CC1Option, FlangOption, NoXarchOption]>, diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index dc46b625bb67..bc32b8d8cac8 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -795,22 +795,6 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args, /*IsLTO=*/true, PluginOptPrefix); } -void tools::addOpenMPRuntimeSpecificRPath(const ToolChain &TC, - const ArgList &Args, - ArgStringList &CmdArgs) { - - if (Args.hasFlag(options::OPT_fopenmp_implicit_rpath, - options::OPT_fno_openmp_implicit_rpath, true)) { - // Default to clang lib / lib64 folder, i.e. the same location as device - // runtime - SmallString<256> DefaultLibPath = - llvm::sys::path::parent_path(TC.getDriver().Dir); - llvm::sys::path::append(DefaultLibPath, CLANG_INSTALL_LIBDIR_BASENAME); - CmdArgs.push_back("-rpath"); - CmdArgs.push_back(Args.MakeArgString(DefaultLibPath)); - } -} - void tools::addOpenMPRuntimeLibraryPath(const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs) { @@ -881,9 +865,6 @@ bool tools::addOpenMPRuntime(ArgStringList &CmdArgs, const ToolChain &TC, CmdArgs.push_back("-lomptarget.devicertl"); addArchSpecificRPath(TC, Args, CmdArgs); - - if (RTKind == Driver::OMPRT_OMP) - addOpenMPRuntimeSpecificRPath(TC, Args, CmdArgs); addOpenMPRuntimeLibraryPath(TC, Args, CmdArgs); return true; diff --git a/clang/lib/Driver/ToolChains/CommonArgs.h b/clang/lib/Driver/ToolChains/CommonArgs.h index d44d9214c08b..e64e9524601d 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.h +++ b/clang/lib/Driver/ToolChains/CommonArgs.h @@ -117,9 +117,6 @@ void AddAssemblerKPIC(const ToolChain &ToolChain, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs); -void addOpenMPRuntimeSpecificRPath(const ToolChain &TC, - const llvm::opt::ArgList &Args, - llvm::opt::ArgStringList &CmdArgs); void addArchSpecificRPath(const ToolChain &TC, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs); void addOpenMPRuntimeLibraryPath(const ToolChain &TC, diff --git a/clang/test/OpenMP/Inputs/libomp.a b/clang/test/OpenMP/Inputs/libomp.a deleted file mode 100644 index 8b277f0dd5dc..000000000000 --- a/clang/test/OpenMP/Inputs/libomp.a +++ /dev/null @@ -1 +0,0 @@ -!<arch> diff --git a/openmp/libomptarget/test/lit.cfg b/openmp/libomptarget/test/lit.cfg index a10e1e804588..2fd36bd6dc95 100644 --- a/openmp/libomptarget/test/lit.cfg +++ b/openmp/libomptarget/test/lit.cfg @@ -100,8 +100,6 @@ if supports_unified_shared_memory: config.available_features.add('unified_shared_memory') # Setup environment to find dynamic library at runtime -# Disable the implicit path to increase certainty over which library is picked up -config.test_flags += " -fno-openmp-implicit-rpath" if config.operating_system == 'Windows': append_dynamic_library_path('PATH', config.library_dir, ";") append_dynamic_library_path('PATH', config.omp_host_rtl_directory, ";") _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits