diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2025-04-05 01:46:13 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-05 01:46:13 -0400 |
| commit | 0cd31fc7ff157551cfbba5da35cd79f118d2a2e3 (patch) | |
| tree | a308488f5d85184c8ec402fb3f55f1cf2704443e /src/zig_clang_cc1as_main.cpp | |
| parent | 8acedfd5baabab705946ad097746f9183ef62420 (diff) | |
| parent | cefe65c1b8abe65a22d4b68410db1be264fdeda0 (diff) | |
| download | zig-0cd31fc7ff157551cfbba5da35cd79f118d2a2e3.tar.gz zig-0cd31fc7ff157551cfbba5da35cd79f118d2a2e3.zip | |
Merge pull request #22780 from ziglang/llvm20
LLVM 20
Diffstat (limited to 'src/zig_clang_cc1as_main.cpp')
| -rw-r--r-- | src/zig_clang_cc1as_main.cpp | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/src/zig_clang_cc1as_main.cpp b/src/zig_clang_cc1as_main.cpp index b661a43c88..7fe97cc6e6 100644 --- a/src/zig_clang_cc1as_main.cpp +++ b/src/zig_clang_cc1as_main.cpp @@ -96,10 +96,6 @@ struct AssemblerInvocation { LLVM_PREFERRED_TYPE(bool) unsigned GenDwarfForAssembly : 1; LLVM_PREFERRED_TYPE(bool) - unsigned RelaxELFRelocations : 1; - LLVM_PREFERRED_TYPE(bool) - unsigned SSE2AVX : 1; - LLVM_PREFERRED_TYPE(bool) unsigned Dwarf64 : 1; unsigned DwarfVersion; std::string DwarfDebugFlags; @@ -168,6 +164,13 @@ struct AssemblerInvocation { LLVM_PREFERRED_TYPE(bool) unsigned Crel : 1; + LLVM_PREFERRED_TYPE(bool) + unsigned ImplicitMapsyms : 1; + + LLVM_PREFERRED_TYPE(bool) + unsigned X86RelaxRelocations : 1; + LLVM_PREFERRED_TYPE(bool) + unsigned X86Sse2Avx : 1; /// The name of the relocation model to use. std::string RelocationModel; @@ -199,7 +202,6 @@ public: ShowInst = 0; ShowEncoding = 0; RelaxAll = 0; - SSE2AVX = 0; NoExecStack = 0; FatalWarnings = 0; NoWarn = 0; @@ -211,6 +213,9 @@ public: EmitDwarfUnwind = EmitDwarfUnwindType::Default; EmitCompactUnwindNonCanonical = false; Crel = false; + ImplicitMapsyms = 0; + X86RelaxRelocations = 0; + X86Sse2Avx = 0; } static bool CreateFromArgs(AssemblerInvocation &Res, @@ -290,8 +295,6 @@ bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts, .Default(llvm::DebugCompressionType::None); } - Opts.RelaxELFRelocations = !Args.hasArg(OPT_mrelax_relocations_no); - Opts.SSE2AVX = Args.hasArg(OPT_msse2avx); if (auto *DwarfFormatArg = Args.getLastArg(OPT_gdwarf64, OPT_gdwarf32)) Opts.Dwarf64 = DwarfFormatArg->getOption().matches(OPT_gdwarf64); Opts.DwarfVersion = getLastArgIntValue(Args, OPT_dwarf_version_EQ, 2, Diags); @@ -382,6 +385,9 @@ bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts, Opts.EmitCompactUnwindNonCanonical = Args.hasArg(OPT_femit_compact_unwind_non_canonical); Opts.Crel = Args.hasArg(OPT_crel); + Opts.ImplicitMapsyms = Args.hasArg(OPT_mmapsyms_implicit); + Opts.X86RelaxRelocations = !Args.hasArg(OPT_mrelax_relocations_no); + Opts.X86Sse2Avx = Args.hasArg(OPT_msse2avx); Opts.AsSecureLogFile = Args.getLastArgValue(OPT_as_secure_log_file); @@ -440,8 +446,9 @@ static bool ExecuteAssemblerImpl(AssemblerInvocation &Opts, MCOptions.EmitCompactUnwindNonCanonical = Opts.EmitCompactUnwindNonCanonical; MCOptions.MCSaveTempLabels = Opts.SaveTemporaryLabels; MCOptions.Crel = Opts.Crel; - MCOptions.X86RelaxRelocations = Opts.RelaxELFRelocations; - MCOptions.X86Sse2Avx = Opts.SSE2AVX; + MCOptions.ImplicitMapSyms = Opts.ImplicitMapsyms; + MCOptions.X86RelaxRelocations = Opts.X86RelaxRelocations; + MCOptions.X86Sse2Avx = Opts.X86Sse2Avx; MCOptions.CompressDebugSections = Opts.CompressDebugSections; MCOptions.AsSecureLogFile = Opts.AsSecureLogFile; @@ -489,10 +496,6 @@ static bool ExecuteAssemblerImpl(AssemblerInvocation &Opts, // MCObjectFileInfo needs a MCContext reference in order to initialize itself. std::unique_ptr<MCObjectFileInfo> MOFI( TheTarget->createMCObjectFileInfo(Ctx, PIC)); - if (Opts.DarwinTargetVariantTriple) - MOFI->setDarwinTargetVariantTriple(*Opts.DarwinTargetVariantTriple); - if (!Opts.DarwinTargetVariantSDKVersion.empty()) - MOFI->setDarwinTargetVariantSDKVersion(Opts.DarwinTargetVariantSDKVersion); Ctx.setObjectFileInfo(MOFI.get()); if (Opts.GenDwarfForAssembly) @@ -574,6 +577,13 @@ static bool ExecuteAssemblerImpl(AssemblerInvocation &Opts, Str.reset(TheTarget->createMCObjectStreamer( T, Ctx, std::move(MAB), std::move(OW), std::move(CE), *STI)); Str.get()->initSections(Opts.NoExecStack, *STI); + if (T.isOSBinFormatMachO() && T.isOSDarwin()) { + Triple *TVT = Opts.DarwinTargetVariantTriple + ? &*Opts.DarwinTargetVariantTriple + : nullptr; + Str->emitVersionForTarget(T, VersionTuple(), TVT, + Opts.DarwinTargetVariantSDKVersion); + } } // When -fembed-bitcode is passed to clang_as, a 1-byte marker |
