mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-07-09 10:05:49 +00:00
merge changes from 1:6.0.1-9.2
This commit is contained in:
parent
409d2272a8
commit
56c9025048
8
debian/changelog
vendored
8
debian/changelog
vendored
@ -5,6 +5,14 @@ llvm-toolchain-6.0 (1:6.0.1-10) UNRELEASED; urgency=medium
|
||||
|
||||
-- Sylvestre Ledru <sylvestre@debian.org> Thu, 18 Oct 2018 16:43:31 +0200
|
||||
|
||||
llvm-toolchain-6.0 (1:6.0.1-9.2) unstable; urgency=medium
|
||||
|
||||
* Non-maintainer upload.
|
||||
* debian/patches/D53557-hurd-self-exe-realpath.diff: Fix paths returned by
|
||||
llvm-config (Closes: Bug#911817).
|
||||
|
||||
-- Samuel Thibault <sthibault@debian.org> Wed, 24 Oct 2018 22:44:54 +0000
|
||||
|
||||
llvm-toolchain-6.0 (1:6.0.1-9.1) unstable; urgency=medium
|
||||
|
||||
* Non-maintainer upload.
|
||||
|
72
debian/patches/D53557-hurd-self-exe-realpath.diff
vendored
Normal file
72
debian/patches/D53557-hurd-self-exe-realpath.diff
vendored
Normal file
@ -0,0 +1,72 @@
|
||||
[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
|
||||
|
||||
Index: llvm-toolchain-6.0-6.0.1/lib/Support/Unix/Path.inc
|
||||
===================================================================
|
||||
--- llvm-toolchain-6.0-6.0.1.orig/lib/Support/Unix/Path.inc
|
||||
+++ llvm-toolchain-6.0-6.0.1/lib/Support/Unix/Path.inc
|
||||
@@ -191,14 +191,34 @@ std::string getMainExecutable(const char
|
||||
char exe_path[MAXPATHLEN];
|
||||
StringRef aPath("/proc/self/exe");
|
||||
if (sys::fs::exists(aPath)) {
|
||||
- // /proc is not always mounted under Linux (chroot for example).
|
||||
- ssize_t len = readlink(aPath.str().c_str(), exe_path, sizeof(exe_path));
|
||||
- if (len >= 0)
|
||||
- return std::string(exe_path, len);
|
||||
+ // /proc is not always mounted under Linux (chroot for example).
|
||||
+ ssize_t len = readlink(aPath.str().c_str(), exe_path, sizeof(exe_path));
|
||||
+ if (len < 0)
|
||||
+ return "";
|
||||
+
|
||||
+ // Null terminate the string for realpath. readlink never null
|
||||
+ // terminates its output.
|
||||
+ len = std::min(len, ssize_t(sizeof(exe_path) - 1));
|
||||
+ exe_path[len] = '\0';
|
||||
+
|
||||
+ // At least on GNU/Hurd, /proc/self/exe is a symlink to the path that
|
||||
+ // was used to start the program, and not the eventual binary file.
|
||||
+ // We thus needs to run realpath over it to get the actual place
|
||||
+ // where llvm was installed.
|
||||
+#if _POSIX_VERSION >= 200112 || defined(__GLIBC__)
|
||||
+ char *real_path = realpath(exe_path, NULL);
|
||||
+ std::string ret = std::string(real_path);
|
||||
+ free(real_path);
|
||||
+ return ret;
|
||||
+#else
|
||||
+ char real_path[MAXPATHLEN];
|
||||
+ realpath(exe_path, real_path);
|
||||
+ return std::string(real_path);
|
||||
+#endif
|
||||
} else {
|
||||
- // Fall back to the classical detection.
|
||||
- if (getprogpath(exe_path, argv0))
|
||||
- return exe_path;
|
||||
+ // Fall back to the classical detection.
|
||||
+ if (getprogpath(exe_path, argv0))
|
||||
+ return exe_path;
|
||||
}
|
||||
#elif defined(HAVE_DLFCN_H) && defined(HAVE_DLADDR)
|
||||
// Use dladdr to get executable path if available.
|
2
debian/patches/series
vendored
2
debian/patches/series
vendored
@ -71,4 +71,4 @@ powerpcspe-add-missing-include-path.diff
|
||||
x32-fix-driver-search-paths.diff
|
||||
hurd-lib_Support_Unix_Path.inc.diff
|
||||
hurd-tools_llvm-shlib_CMakeLists.txt.diff
|
||||
|
||||
D53557-hurd-self-exe-realpath.diff
|
||||
|
Loading…
Reference in New Issue
Block a user