D53557-hurd-self-exe-realpath
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Wed, 24 Oct 2018 22:44:54 +0000 (23:44 +0100)
committerSamuel Thibault <sthibault@debian.org>
Wed, 24 Oct 2018 22:44:54 +0000 (23:44 +0100)
commit5d0a10d49be53d3f8a3b4bc44b555c90639172c2
treed3786375d82454322f916cc4fa596be84f3d37a9
parentea4a9e2d70e2f0a297a6721dd0812b19651bc65e
D53557-hurd-self-exe-realpath

[hurd] Make getMainExecutable get the real binary path

On GNU/Hurd, llvm-config is returning bogus value, such as:

$ llvm-config-6.0 --includedir
/usr/include

while it should be:
$ llvm-config-6.0 --includedir
/usr/lib/llvm-6.0/include

This is because getMainExecutable does not get the actual installation
path. On GNU/Hurd, /proc/self/exe is indeed a symlink to the path that
was used to start the program, and not the eventual binary file. Llvm's
getMainExecutable thus needs to run realpath over it to get the actual
place where llvm was installed (/usr/lib/llvm-6.0/bin/llvm-config), and
not /usr/bin/llvm-config-6.0. This will not change the result on Linux,
where /proc/self/exe already points to the eventual file.

Patch by Samuel Thibault!

While making changes here, I reformatted this block a bit to reduce
indentation and match 2 space indent style.

Differential Revision: https://reviews.llvm.org/D53557

Gbp-Pq: Name D53557-hurd-self-exe-realpath.diff
lib/Support/Unix/Path.inc