From d75cd87bdcf889148d50415366d713ed82456945 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Sun, 3 Dec 2017 11:13:29 +0200 Subject: [PATCH] Revert to default system path for GnuCompiler is autodetection fails --- source/gnucompiler.cpp | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/source/gnucompiler.cpp b/source/gnucompiler.cpp index 8d0bca7..16e7cca 100644 --- a/source/gnucompiler.cpp +++ b/source/gnucompiler.cpp @@ -102,6 +102,9 @@ string GnuCompiler::create_build_signature(const BuildInfo &binfo) const void GnuCompiler::do_prepare() { + bool path_found = false; + const FS::Path &sysroot = build_info.sysroot; + executable = builder.get_vfs().find_binary(command); if(executable) { @@ -111,12 +114,10 @@ void GnuCompiler::do_prepare() argv.push_back("-E"); if(tag=="CXX") argv.push_back("-xc++"); - const FS::Path &sysroot = build_info.sysroot; if(!sysroot.empty()) argv.push_back("--sysroot="+sysroot.str()); argv.push_back("-"); - string prog = FS::basename(executable->get_path()); builder.get_logger().log("auxcommands", format("Running %s", join(argv.begin(), argv.end()))); try { @@ -127,22 +128,34 @@ void GnuCompiler::do_prepare() { string::size_type newline = output.find('\n', start); if(!output.compare(start, 34, "#include <...> search starts here:")) + { record_path = true; + path_found = true; + } else if(!output.compare(start, 19, "End of search list.")) record_path = false; else if(record_path) { FS::Path path = strip(output.substr(start, newline-start)); - builder.get_logger().log("tools", format("Got %s (%s) system path: %s", prog, tag, path)); + builder.get_logger().log("tools", format("Got %s system path: %s", tag, path)); system_path.push_back(path); } start = newline+1; } } catch(const runtime_error &e) - { - problems.push_back("Unable to determine system path"); - } + { } + } + + if(!path_found) + { + builder.get_logger().log("tools", format("No %s system path found, using defaults", tag)); + if(!sysroot.empty()) + system_path.push_back(sysroot/"usr/include"); + else if(architecture->is_native()) + system_path.push_back("/usr/include"); + else + system_path.push_back("/usr/"+architecture->get_cross_prefix()+"/include"); } } -- 2.45.2