summaryrefslogtreecommitdiff
path: root/tools/gold/gold-plugin.cpp
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2009-06-07 00:50:45 +0000
committerNick Lewycky <nicholas@mxc.ca>2009-06-07 00:50:45 +0000
commita9b9032df155fde9855307483f8e0b621f8730d7 (patch)
treeb0c5031dbea9780bc309fee8e7657b27541b1151 /tools/gold/gold-plugin.cpp
parentd7f20b6b98839210706aa056653b2ccd4e402db2 (diff)
downloadllvm-a9b9032df155fde9855307483f8e0b621f8730d7.tar.gz
llvm-a9b9032df155fde9855307483f8e0b621f8730d7.tar.bz2
llvm-a9b9032df155fde9855307483f8e0b621f8730d7.tar.xz
Add option for specifying the path to assembler, "as". This overrides the path
to gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73008 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/gold/gold-plugin.cpp')
-rw-r--r--tools/gold/gold-plugin.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/tools/gold/gold-plugin.cpp b/tools/gold/gold-plugin.cpp
index 86d3fd3b92..46b1717fca 100644
--- a/tools/gold/gold-plugin.cpp
+++ b/tools/gold/gold-plugin.cpp
@@ -45,6 +45,7 @@ namespace {
bool generate_api_file = false;
const char *gcc_path = NULL;
+ const char *as_path = NULL;
struct claimed_file {
lto_module_t M;
@@ -109,6 +110,13 @@ ld_plugin_status onload(ld_plugin_tv *tv) {
} 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. "
+ "Discarding %s", tv->tv_u.tv_string);
+ } else {
+ as_path = strdup(tv->tv_u.tv_string + 3);
+ }
} else {
(*message)(LDPL_WARNING, "Ignoring flag %s", tv->tv_u.tv_string);
}
@@ -346,6 +354,8 @@ ld_plugin_status all_symbols_read_hook(void) {
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);
size_t bufsize = 0;
const char *buffer = static_cast<const char *>(lto_codegen_compile(cg,