Skip to content

Commit f1cb64b

Browse files
authored
[MC] Remove Darwin SDK/Version from ObjFileInfo (#103025)
There's only a single user (MCMachOStreamer), so it makes more sense to move the version emission to the source of the data.
1 parent 829992c commit f1cb64b

File tree

5 files changed

+11
-39
lines changed

5 files changed

+11
-39
lines changed

clang/tools/driver/cc1as_main.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -489,10 +489,6 @@ static bool ExecuteAssemblerImpl(AssemblerInvocation &Opts,
489489
// MCObjectFileInfo needs a MCContext reference in order to initialize itself.
490490
std::unique_ptr<MCObjectFileInfo> MOFI(
491491
TheTarget->createMCObjectFileInfo(Ctx, PIC));
492-
if (Opts.DarwinTargetVariantTriple)
493-
MOFI->setDarwinTargetVariantTriple(*Opts.DarwinTargetVariantTriple);
494-
if (!Opts.DarwinTargetVariantSDKVersion.empty())
495-
MOFI->setDarwinTargetVariantSDKVersion(Opts.DarwinTargetVariantSDKVersion);
496492
Ctx.setObjectFileInfo(MOFI.get());
497493

498494
if (Opts.GenDwarfForAssembly)
@@ -574,6 +570,13 @@ static bool ExecuteAssemblerImpl(AssemblerInvocation &Opts,
574570
Str.reset(TheTarget->createMCObjectStreamer(
575571
T, Ctx, std::move(MAB), std::move(OW), std::move(CE), *STI));
576572
Str.get()->initSections(Opts.NoExecStack, *STI);
573+
if (T.isOSBinFormatMachO() && T.isOSDarwin()) {
574+
Triple *TVT = Opts.DarwinTargetVariantTriple
575+
? &*Opts.DarwinTargetVariantTriple
576+
: nullptr;
577+
Str->emitVersionForTarget(T, VersionTuple(), TVT,
578+
Opts.DarwinTargetVariantSDKVersion);
579+
}
577580
}
578581

579582
// When -fembed-bitcode is passed to clang_as, a 1-byte marker

llvm/include/llvm/MC/MCObjectFileInfo.h

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -458,9 +458,6 @@ class MCObjectFileInfo {
458458
private:
459459
bool PositionIndependent = false;
460460
MCContext *Ctx = nullptr;
461-
VersionTuple SDKVersion;
462-
std::optional<Triple> DarwinTargetVariantTriple;
463-
VersionTuple DarwinTargetVariantSDKVersion;
464461

465462
void initMachOMCObjectFileInfo(const Triple &T);
466463
void initELFMCObjectFileInfo(const Triple &T, bool Large);
@@ -471,29 +468,6 @@ class MCObjectFileInfo {
471468
void initXCOFFMCObjectFileInfo(const Triple &T);
472469
void initDXContainerObjectFileInfo(const Triple &T);
473470
MCSection *getDwarfComdatSection(const char *Name, uint64_t Hash) const;
474-
475-
public:
476-
void setSDKVersion(const VersionTuple &TheSDKVersion) {
477-
SDKVersion = TheSDKVersion;
478-
}
479-
480-
const VersionTuple &getSDKVersion() const { return SDKVersion; }
481-
482-
void setDarwinTargetVariantTriple(const Triple &T) {
483-
DarwinTargetVariantTriple = T;
484-
}
485-
486-
const Triple *getDarwinTargetVariantTriple() const {
487-
return DarwinTargetVariantTriple ? &*DarwinTargetVariantTriple : nullptr;
488-
}
489-
490-
void setDarwinTargetVariantSDKVersion(const VersionTuple &TheSDKVersion) {
491-
DarwinTargetVariantSDKVersion = TheSDKVersion;
492-
}
493-
494-
const VersionTuple &getDarwinTargetVariantSDKVersion() const {
495-
return DarwinTargetVariantSDKVersion;
496-
}
497471
};
498472

499473
} // end namespace llvm

llvm/lib/MC/MCMachOStreamer.cpp

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -533,14 +533,8 @@ MCStreamer *llvm::createMachOStreamer(MCContext &Context,
533533
std::unique_ptr<MCCodeEmitter> &&CE,
534534
bool DWARFMustBeAtTheEnd,
535535
bool LabelSections) {
536-
MCMachOStreamer *S = new MCMachOStreamer(
537-
Context, std::move(MAB), std::move(OW), std::move(CE), LabelSections);
538-
const Triple &Target = Context.getTargetTriple();
539-
S->emitVersionForTarget(
540-
Target, Context.getObjectFileInfo()->getSDKVersion(),
541-
Context.getObjectFileInfo()->getDarwinTargetVariantTriple(),
542-
Context.getObjectFileInfo()->getDarwinTargetVariantSDKVersion());
543-
return S;
536+
return new MCMachOStreamer(Context, std::move(MAB), std::move(OW),
537+
std::move(CE), LabelSections);
544538
}
545539

546540
// The AddrSig section uses a series of relocations to refer to the symbols that

llvm/lib/Object/ModuleSymbolTable.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@ initializeRecordStreamer(const Module &M,
109109
MCContext MCCtx(TT, MAI.get(), MRI.get(), STI.get(), &SrcMgr);
110110
std::unique_ptr<MCObjectFileInfo> MOFI(
111111
T->createMCObjectFileInfo(MCCtx, /*PIC=*/false));
112-
MOFI->setSDKVersion(M.getSDKVersion());
113112
MCCtx.setObjectFileInfo(MOFI.get());
114113
RecordStreamer Streamer(MCCtx, M);
115114
T->createNullTargetStreamer(Streamer);

llvm/tools/llvm-mc/llvm-mc.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,8 @@ int main(int argc, char **argv) {
559559
std::unique_ptr<MCCodeEmitter>(CE), *STI));
560560
if (NoExecStack)
561561
Str->initSections(true, *STI);
562+
Str->emitVersionForTarget(TheTriple, VersionTuple(), nullptr,
563+
VersionTuple());
562564
}
563565

564566
int Res = 1;

0 commit comments

Comments
 (0)