@@ -115,15 +115,17 @@ MSP430ToolChain::MSP430ToolChain(const Driver &D, const llvm::Triple &Triple,
115
115
const ArgList &Args)
116
116
: Generic_ELF(D, Triple, Args) {
117
117
118
+ StringRef MultilibSuf = " " ;
119
+
118
120
GCCInstallation.init (Triple, Args);
119
121
if (GCCInstallation.isValid ()) {
120
- StringRef MultilibSuf = GCCInstallation.getMultilib ().gccSuffix ();
121
- getFilePaths ().push_back ((computeSysRoot () + " /lib" + MultilibSuf).str ());
122
+ MultilibSuf = GCCInstallation.getMultilib ().gccSuffix ();
122
123
getFilePaths ().push_back (
123
124
(GCCInstallation.getInstallPath () + MultilibSuf).str ());
124
125
getProgramPaths ().push_back (
125
126
(GCCInstallation.getParentLibPath () + " /../bin" ).str ());
126
127
}
128
+ getFilePaths ().push_back ((computeSysRoot () + " /lib" + MultilibSuf).str ());
127
129
}
128
130
129
131
Tool *MSP430ToolChain::buildLinker () const {
@@ -145,6 +147,8 @@ void MSP430ToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
145
147
void MSP430ToolChain::addClangTargetOptions (const ArgList &DriverArgs,
146
148
ArgStringList &CC1Args,
147
149
Action::OffloadKind) const {
150
+ CC1Args.push_back (" -nostdsysteminc" );
151
+
148
152
const auto *MCUArg = DriverArgs.getLastArg (options::OPT_mmcu_EQ);
149
153
if (!MCUArg)
150
154
return ;
@@ -163,13 +167,14 @@ std::string MSP430ToolChain::computeSysRoot() const {
163
167
if (!getDriver ().SysRoot .empty ())
164
168
return getDriver ().SysRoot ;
165
169
166
- if (!GCCInstallation.isValid ())
167
- return std::string ();
168
-
169
- StringRef LibDir = GCCInstallation.getParentLibPath ();
170
- StringRef TripleStr = GCCInstallation.getTriple ().str ();
171
- std::string SysRootDir = LibDir.str () + " /../" + TripleStr.str ();
172
-
170
+ std::string SysRootDir;
171
+ if (GCCInstallation.isValid ()) {
172
+ StringRef LibDir = GCCInstallation.getParentLibPath ();
173
+ StringRef TripleStr = GCCInstallation.getTriple ().str ();
174
+ SysRootDir = LibDir.str () + " /../" + TripleStr.str ();
175
+ } else {
176
+ SysRootDir = getDriver ().Dir + " /../" + getTriple ().getTriple ();
177
+ }
173
178
if (!llvm::sys::fs::exists (SysRootDir))
174
179
return std::string ();
175
180
0 commit comments