diff options
Diffstat (limited to 'tools/gold/gold-plugin.cpp')
-rw-r--r-- | tools/gold/gold-plugin.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/tools/gold/gold-plugin.cpp b/tools/gold/gold-plugin.cpp index 46b1717..8d8fcd2 100644 --- a/tools/gold/gold-plugin.cpp +++ b/tools/gold/gold-plugin.cpp @@ -18,6 +18,7 @@ #include "llvm/Support/raw_ostream.h" #include "llvm/System/Path.h" +#include "llvm/System/Program.h" #include <cerrno> #include <cstdlib> @@ -44,7 +45,6 @@ namespace { int gold_version = 0; bool generate_api_file = false; - const char *gcc_path = NULL; const char *as_path = NULL; struct claimed_file { @@ -103,13 +103,6 @@ ld_plugin_status onload(ld_plugin_tv *tv) { case LDPT_OPTION: if (strcmp("generate-api-file", tv->tv_u.tv_string) == 0) { generate_api_file = true; - } else if (strncmp("gcc=", tv->tv_u.tv_string, 4) == 0) { - if (gcc_path) { - (*message)(LDPL_WARNING, "Path to gcc specified twice. " - "Discarding %s", tv->tv_u.tv_string); - } else { - gcc_path = strdup(tv->tv_u.tv_string + 4); - } } else if (strncmp("as=", tv->tv_u.tv_string, 3) == 0) { if (as_path) { (*message)(LDPL_WARNING, "Path to as specified twice. " @@ -352,10 +345,10 @@ ld_plugin_status all_symbols_read_hook(void) { lto_codegen_set_pic_model(cg, output_type); lto_codegen_set_debug_model(cg, LTO_DEBUG_MODEL_DWARF); - if (gcc_path) - lto_codegen_set_gcc_path(cg, gcc_path); - if (as_path) - lto_codegen_set_assembler_path(cg, as_path); + if (as_path) { + sys::Path p = sys::Program::FindProgramByName(as_path); + lto_codegen_set_assembler_path(cg, p.c_str()); + } size_t bufsize = 0; const char *buffer = static_cast<const char *>(lto_codegen_compile(cg, |