From 195bea3498a7de1d84ace6d4685f02d4d7485468 Mon Sep 17 00:00:00 2001 From: Nick Lewycky Date: Thu, 30 Apr 2009 15:24:09 +0000 Subject: Allow a user of libLTO to specify the full pathname of the gcc executable to run when assembling. Wire this up to the gold plugin. You can now pass --plugin-opt gcc=/foo/bar/gcc and it will run that gcc instead of looking for it on the path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70490 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/gold/gold-plugin.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'tools/gold/gold-plugin.cpp') diff --git a/tools/gold/gold-plugin.cpp b/tools/gold/gold-plugin.cpp index 260e175282..86d3fd3b92 100644 --- a/tools/gold/gold-plugin.cpp +++ b/tools/gold/gold-plugin.cpp @@ -44,6 +44,7 @@ namespace { int gold_version = 0; bool generate_api_file = false; + const char *gcc_path = NULL; struct claimed_file { lto_module_t M; @@ -101,6 +102,13 @@ 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 { (*message)(LDPL_WARNING, "Ignoring flag %s", tv->tv_u.tv_string); } @@ -336,6 +344,8 @@ 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); size_t bufsize = 0; const char *buffer = static_cast(lto_codegen_compile(cg, -- cgit v1.2.3