[patch][Driver] -Bprefix option
David Fang
fang at csl.cornell.edu
Fri Dec 13 10:43:02 PST 2013
Hi,
The attached patch adds help-text to clang -B, and also forwards
-B to gcc in the Driver, which allows use of newer linker tools.
This would fix the issue I reported in
http://llvm.org/bugs/show_bug.cgi?id=18238
Questions:
1) Should I do the same for the assembler? (commented out in patch)
2) How would you advise writing a host-independent test for this feature?
Create directory with phony 'ld'? Would -### or -v be sufficient to show
that gcc/g++ is getting -B?
David
--
David Fang
http://www.csl.cornell.edu/~fang/
-------------- next part --------------
diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td
index 091e25f..adf1c28 100644
--- a/include/clang/Driver/Options.td
+++ b/include/clang/Driver/Options.td
@@ -201,7 +201,8 @@ def _HASH_HASH_HASH : Flag<["-"], "###">, Flags<[DriverOption, CoreOption]>,
def _DASH_DASH : Option<["--"], "", KIND_REMAINING_ARGS>,
Flags<[DriverOption, CoreOption]>;
def A : JoinedOrSeparate<["-"], "A">, Flags<[RenderJoined]>;
-def B : JoinedOrSeparate<["-"], "B">;
+def B : JoinedOrSeparate<["-"], "B">, Flags<[RenderJoined]>,
+ HelpText<"Add search paths for compiler executables (ld,as)">;
def CC : Flag<["-"], "CC">, Flags<[CC1Option]>;
def C : Flag<["-"], "C">, Flags<[CC1Option]>;
def D : JoinedOrSeparate<["-"], "D">, Group<CompileOnly_Group>, Flags<[CC1Option]>;
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index c006939..e6a14b8 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -4658,6 +4658,9 @@ void darwin::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
// Derived from asm spec.
AddDarwinArch(Args, CmdArgs);
+ // We probably want to allow use of newer assemblers.
+ // Args.AddAllArgs(CmdArgs, options::OPT_B);
+
// Use -force_cpusubtype_ALL on x86 by default.
if (getToolChain().getArch() == llvm::Triple::x86 ||
getToolChain().getArch() == llvm::Triple::x86_64 ||
@@ -4950,6 +4974,7 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
// we follow suite for ease of comparison.
AddLinkArgs(C, Args, CmdArgs, Inputs);
+ Args.AddAllArgs(CmdArgs, options::OPT_B);
Args.AddAllArgs(CmdArgs, options::OPT_d_Flag);
Args.AddAllArgs(CmdArgs, options::OPT_s);
Args.AddAllArgs(CmdArgs, options::OPT_t);
More information about the cfe-commits
mailing list