1263320SdimPull in r198311 from upstream clang trunk (by Roman Divacky): 2263320Sdim 3263320Sdim In the FreeBSD assembler driver, inform the sparc assembler that we're producing 4263320Sdim PIC code. 5263320Sdim 6269012SemasteIntroduced here: http://svnweb.freebsd.org/changeset/base/262262 7263320Sdim 8263320SdimIndex: tools/clang/lib/Driver/Tools.cpp 9263320Sdim=================================================================== 10263320Sdim--- tools/clang/lib/Driver/Tools.cpp 11263320Sdim+++ tools/clang/lib/Driver/Tools.cpp 12263320Sdim@@ -5785,6 +5785,19 @@ void freebsd::Assemble::ConstructJob(Compilation & 13263320Sdim default: 14263320Sdim CmdArgs.push_back("-matpcs"); 15263320Sdim } 16263320Sdim+ } else if (getToolChain().getArch() == llvm::Triple::sparc || 17263320Sdim+ getToolChain().getArch() == llvm::Triple::sparcv9) { 18263320Sdim+ Arg *LastPICArg = Args.getLastArg(options::OPT_fPIC, options::OPT_fno_PIC, 19263320Sdim+ options::OPT_fpic, options::OPT_fno_pic, 20263320Sdim+ options::OPT_fPIE, options::OPT_fno_PIE, 21263320Sdim+ options::OPT_fpie, options::OPT_fno_pie); 22263320Sdim+ if (LastPICArg && 23263320Sdim+ (LastPICArg->getOption().matches(options::OPT_fPIC) || 24263320Sdim+ LastPICArg->getOption().matches(options::OPT_fpic) || 25263320Sdim+ LastPICArg->getOption().matches(options::OPT_fPIE) || 26263320Sdim+ LastPICArg->getOption().matches(options::OPT_fpie))) { 27263320Sdim+ CmdArgs.push_back("-KPIC"); 28263320Sdim+ } 29263320Sdim } 30263320Sdim 31263320Sdim Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, 32