[PATCH] D118493: Set rpath on openmp executables

Tom Stellard via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 22 21:24:18 PDT 2022


tstellar added a comment.

In D118493#3398808 <https://reviews.llvm.org/D118493#3398808>, @JonChesterfield wrote:

> It lets applications run with the libomp and libomptarget built with the toolchain. For users, they don't have to be root. For compiler devs, we test our work instead of whatever the distro had installed.
>
> There's no info at that link. What's 'broken rpath'? If they mean runpath, then it's really on fedora to have Wl,--rpath set rpath instead of runpath. Setting the default in the linker to the one your own build tools reject will break everything, not just llvm openmp.
>
> Edit: https://fedoraproject.org/wiki/Changes/Broken_RPATH_will_fail_rpmbuild
> Doesn't mean runpath. There's a list of strings Fedora (IBM?) have decided they don't like, named 'broken' or 'invalid', and declared shall not be present. Page doesn't go into the rpath/runpath distinction, maybe they mean for the string restrictions to apply to both.

I'm not sure I follow this, but there is a script run after every RPM built for fedora that checks for RUNPATH (among other things in the binary).  I have been building packages for Fedora with clang14 and the script fails for packages built with clang + -fopenmp

> Can't tell which rule we're violating (will need to work out what the install directory resolves to on fedora), though the one about executing untrusted code seems likely, where untrusted seems to be anything not owned by root. E.g. applications people have written themselves.

The rule that is broken is "standard RPATHs" Fedora installs libomp to /usr/lib64.

> We can introduce a cmake flag that changes the default on this commandline argument, set when building on Fedora (and maybe redhat, centos-stream, others). That'll annoy anyone developing openmp on, or using a local llvm build on, Fedora but that might be zero people and they could override the cmake flag and disable the build checking scripts.

I don't really like adding CMake options for things like this.  I think what we'll do in Fedora is just add -fno-openmp-implicit-rpath to the default CFLAGS so we can get the old behavior for official RPMs.

> Or disable building openmp on Fedora, that seems reasonable too.

We want to be able to build packages that use OpenMP, so disabling is not really an option.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D118493



More information about the cfe-commits mailing list