From 0e75b5ea3c03ec22b75256eb99e6a494215048ed Mon Sep 17 00:00:00 2001 From: Michal Gorny Date: Mon, 4 Mar 2019 04:53:50 +0000 Subject: [PATCH] [llvm] [Support] Revert "Reimplement getMainExecutable() using sysctl on NetBSD" This apparently does not work reliably after all (non-reentrant?) and causes test failures such as: http://lab.llvm.org:8011/builders/netbsd-amd64/builds/19254/steps/run%20unit%20tests/logs/FAIL%3A%20libc%2B%2B%3A%3Asize.pass.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@355302 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Support/Unix/Path.inc | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/lib/Support/Unix/Path.inc b/lib/Support/Unix/Path.inc index d1f82bc9e72..5eba86d2077 100644 --- a/lib/Support/Unix/Path.inc +++ b/lib/Support/Unix/Path.inc @@ -90,11 +90,6 @@ #define STATVFS_F_FLAG(vfs) (vfs).f_flags #endif -#if defined(__NetBSD__) -#include -#include -#endif - using namespace llvm; namespace llvm { @@ -103,7 +98,7 @@ namespace fs { const file_t kInvalidFile = -1; -#if defined(__FreeBSD__) || defined(__OpenBSD__) || \ +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || \ defined(__minix) || defined(__FreeBSD_kernel__) || defined(__linux__) || \ defined(__CYGWIN__) || defined(__DragonFly__) || defined(_AIX) || defined(__GNU__) static int @@ -174,18 +169,7 @@ std::string getMainExecutable(const char *argv0, void *MainAddr) { if (realpath(exe_path, link_path)) return link_path; } -#elif defined(__NetBSD__) - // NB: sysctl() solution can't be used on FreeBSD since it may return - // a wrong path when a file is hardlinked in multiple locations. - // See r303285 for an earlier revert. - - char exe_path[PATH_MAX]; - int mib[4] = {CTL_KERN, KERN_PROC_ARGS, -1, KERN_PROC_PATHNAME}; - size_t len = sizeof(exe_path); - - if (sysctl(mib, 4, exe_path, &len, nullptr, 0) == 0) - return exe_path; -#elif defined(__FreeBSD__) || defined(__OpenBSD__) || \ +#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || \ defined(__minix) || defined(__DragonFly__) || \ defined(__FreeBSD_kernel__) || defined(_AIX) char exe_path[PATH_MAX]; -- 2.40.0