From 6c2db179b5d94ddc32ba1a9b631d59d056e594fc Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Sat, 4 Oct 2014 01:09:27 +0300 Subject: [PATCH 1/1] Deal with absolute paths in tool commands --- source/tool.cpp | 2 +- source/virtualfilesystem.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/source/tool.cpp b/source/tool.cpp index abded33..3aa2db3 100644 --- a/source/tool.cpp +++ b/source/tool.cpp @@ -28,7 +28,7 @@ void Tool::set_command(const string &cmd, bool cross) if(cmd.empty()) throw invalid_argument("Tool::set_command"); - if(cross && architecture->is_cross()) + if(cross && architecture->is_cross() && !FS::Path(cmd).is_absolute()) command = format("%s-%s", architecture->get_cross_prefix(), cmd); else command = cmd; diff --git a/source/virtualfilesystem.cpp b/source/virtualfilesystem.cpp index 0e95950..869a1e3 100644 --- a/source/virtualfilesystem.cpp +++ b/source/virtualfilesystem.cpp @@ -137,7 +137,9 @@ FileTarget *VirtualFileSystem::find_library(const string &lib, const SearchPath FileTarget *VirtualFileSystem::find_binary(const string &name) { SearchPath path; - if(const char *env_path = getenv("PATH")) + if(FS::Path(name).is_absolute()) + path.push_back("/"); + else if(const char *env_path = getenv("PATH")) { vector parts = split(env_path, ':'); for(vector::const_iterator i=parts.begin(); i!=parts.end(); ++i) -- 2.43.0