MaskRay created this revision. MaskRay added reviewers: martell, rsmith. Herald added a subscriber: cfe-commits.
Repository: rC Clang https://reviews.llvm.org/D53238 Files: include/clang/Driver/Options.td lib/Driver/ToolChains/CommonArgs.cpp lib/Driver/ToolChains/Darwin.cpp lib/Driver/ToolChains/DragonFly.cpp lib/Driver/ToolChains/Fuchsia.cpp lib/Driver/ToolChains/Gnu.cpp lib/Driver/ToolChains/Hexagon.cpp lib/Driver/ToolChains/MinGW.cpp lib/Driver/ToolChains/Myriad.cpp lib/Driver/ToolChains/NaCl.cpp
Index: lib/Driver/ToolChains/NaCl.cpp =================================================================== --- lib/Driver/ToolChains/NaCl.cpp +++ lib/Driver/ToolChains/NaCl.cpp @@ -134,12 +134,12 @@ if (D.CCCIsCXX() && !Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) { if (ToolChain.ShouldLinkCXXStdlib(Args)) { - bool OnlyLibstdcxxStatic = - Args.hasArg(options::OPT_static_libstdcxx) && !IsStatic; - if (OnlyLibstdcxxStatic) + bool OnlyCXXstdlib = + Args.hasArg(options::OPT_static_stdlib) && !IsStatic; + if (OnlyCXXstdlib) CmdArgs.push_back("-Bstatic"); ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs); - if (OnlyLibstdcxxStatic) + if (OnlyCXXstdlib) CmdArgs.push_back("-Bdynamic"); } CmdArgs.push_back("-lm"); Index: lib/Driver/ToolChains/Myriad.cpp =================================================================== --- lib/Driver/ToolChains/Myriad.cpp +++ lib/Driver/ToolChains/Myriad.cpp @@ -145,7 +145,7 @@ // Eat some arguments that may be present but have no effect. Args.ClaimAllArgs(options::OPT_g_Group); Args.ClaimAllArgs(options::OPT_w); - Args.ClaimAllArgs(options::OPT_static_libgcc); + Args.ClaimAllArgs(options::OPT_static_rtlib); if (Args.hasArg(options::OPT_s)) // Pass the 'strip' option. CmdArgs.push_back("-s"); Index: lib/Driver/ToolChains/MinGW.cpp =================================================================== --- lib/Driver/ToolChains/MinGW.cpp +++ lib/Driver/ToolChains/MinGW.cpp @@ -66,7 +66,7 @@ // Make use of compiler-rt if --rtlib option is used ToolChain::RuntimeLibType RLT = getToolChain().GetRuntimeLibType(Args); if (RLT == ToolChain::RLT_Libgcc) { - bool Static = Args.hasArg(options::OPT_static_libgcc) || + bool Static = Args.hasArg(options::OPT_static_rtlib) || Args.hasArg(options::OPT_static); bool Shared = Args.hasArg(options::OPT_shared); bool CXX = getToolChain().getDriver().CCCIsCXX(); @@ -192,12 +192,12 @@ // TODO: Add profile stuff here if (TC.ShouldLinkCXXStdlib(Args)) { - bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) && - !Args.hasArg(options::OPT_static); - if (OnlyLibstdcxxStatic) + bool OnlyCXXstdlib = Args.hasArg(options::OPT_static_stdlib) && + !Args.hasArg(options::OPT_static); + if (OnlyCXXstdlib) CmdArgs.push_back("-Bstatic"); TC.AddCXXStdlibLibArgs(Args, CmdArgs); - if (OnlyLibstdcxxStatic) + if (OnlyCXXstdlib) CmdArgs.push_back("-Bdynamic"); } Index: lib/Driver/ToolChains/Hexagon.cpp =================================================================== --- lib/Driver/ToolChains/Hexagon.cpp +++ lib/Driver/ToolChains/Hexagon.cpp @@ -218,7 +218,7 @@ Args.ClaimAllArgs(options::OPT_emit_llvm); Args.ClaimAllArgs(options::OPT_w); // Other warning options are already // handled somewhere else. - Args.ClaimAllArgs(options::OPT_static_libgcc); + Args.ClaimAllArgs(options::OPT_static_rtlib); //---------------------------------------------------------------------------- // Index: lib/Driver/ToolChains/Gnu.cpp =================================================================== --- lib/Driver/ToolChains/Gnu.cpp +++ lib/Driver/ToolChains/Gnu.cpp @@ -445,12 +445,12 @@ if (D.CCCIsCXX() && !Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) { if (ToolChain.ShouldLinkCXXStdlib(Args)) { - bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) && - !Args.hasArg(options::OPT_static); - if (OnlyLibstdcxxStatic) + bool OnlyCXXstdlib = Args.hasArg(options::OPT_static_stdlib) && + !Args.hasArg(options::OPT_static); + if (OnlyCXXstdlib) CmdArgs.push_back("-Bstatic"); ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs); - if (OnlyLibstdcxxStatic) + if (OnlyCXXstdlib) CmdArgs.push_back("-Bdynamic"); } CmdArgs.push_back("-lm"); Index: lib/Driver/ToolChains/Fuchsia.cpp =================================================================== --- lib/Driver/ToolChains/Fuchsia.cpp +++ lib/Driver/ToolChains/Fuchsia.cpp @@ -117,12 +117,12 @@ if (D.CCCIsCXX()) { if (ToolChain.ShouldLinkCXXStdlib(Args)) { - bool OnlyLibstdcxxStatic = Args.hasArg(options::OPT_static_libstdcxx) && - !Args.hasArg(options::OPT_static); - if (OnlyLibstdcxxStatic) + bool OnlyCXXstdlib = Args.hasArg(options::OPT_static_stdlib) && + !Args.hasArg(options::OPT_static); + if (OnlyCXXstdlib) CmdArgs.push_back("-Bstatic"); ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs); - if (OnlyLibstdcxxStatic) + if (OnlyCXXstdlib) CmdArgs.push_back("-Bdynamic"); } CmdArgs.push_back("-lm"); Index: lib/Driver/ToolChains/DragonFly.cpp =================================================================== --- lib/Driver/ToolChains/DragonFly.cpp +++ lib/Driver/ToolChains/DragonFly.cpp @@ -140,7 +140,7 @@ } if (Args.hasArg(options::OPT_static) || - Args.hasArg(options::OPT_static_libgcc)) { + Args.hasArg(options::OPT_static_rtlib)) { CmdArgs.push_back("-lgcc"); CmdArgs.push_back("-lgcc_eh"); } else { Index: lib/Driver/ToolChains/Darwin.cpp =================================================================== --- lib/Driver/ToolChains/Darwin.cpp +++ lib/Driver/ToolChains/Darwin.cpp @@ -1075,7 +1075,7 @@ // Reject -static-libgcc for now, we can deal with this when and if someone // cares. This is useful in situations where someone wants to statically link // something like libstdc++, and needs its runtime support routines. - if (const Arg *A = Args.getLastArg(options::OPT_static_libgcc)) { + if (const Arg *A = Args.getLastArg(options::OPT_static_rtlib)) { getDriver().Diag(diag::err_drv_unsupported_opt) << A->getAsString(Args); return; } Index: lib/Driver/ToolChains/CommonArgs.cpp =================================================================== --- lib/Driver/ToolChains/CommonArgs.cpp +++ lib/Driver/ToolChains/CommonArgs.cpp @@ -1125,7 +1125,7 @@ bool isAndroid = Triple.isAndroid(); bool isCygMing = Triple.isOSCygMing(); bool IsIAMCU = Triple.isOSIAMCU(); - bool StaticLibgcc = Args.hasArg(options::OPT_static_libgcc) || + bool StaticLibgcc = Args.hasArg(options::OPT_static_rtlib) || Args.hasArg(options::OPT_static); // The driver ignores -shared-libgcc and therefore treats such cases as Index: include/clang/Driver/Options.td =================================================================== --- include/clang/Driver/Options.td +++ include/clang/Driver/Options.td @@ -2458,8 +2458,10 @@ def single__module : Flag<["-"], "single_module">; def specs_EQ : Joined<["-", "--"], "specs=">; def specs : Separate<["-", "--"], "specs">, Flags<[Unsupported]>; -def static_libgcc : Flag<["-"], "static-libgcc">; -def static_libstdcxx : Flag<["-"], "static-libstdc++">; +def static_rtlib : Flag<["-"], "static-rtlib">; +def static_libgcc : Flag<["-"], "static-libgcc">, Alias<static_rtlib>; +def static_stdlib : Flag<["-"], "static-stdlib">; +def static_libstdcxx : Flag<["-"], "static-libstdc++">, Alias<static_stdlib>; def static : Flag<["-", "--"], "static">, Flags<[NoArgumentUnused]>; def std_default_EQ : Joined<["-"], "std-default=">; def std_EQ : Joined<["-", "--"], "std=">, Flags<[CC1Option]>,
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits