From 1f37bff6d619d59a41e7b6e956d5a7f23a869f10 Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Thu, 15 Aug 2024 10:24:36 +0200 Subject: [PATCH] [ObjWriter/Mach-O] Mark non-global symbols as .private_extern to match ELF --- .../aot/ILCompiler.Compiler/Compiler/ObjectWriter/MachNative.cs | 1 + .../Compiler/ObjectWriter/MachObjectWriter.cs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/ObjectWriter/MachNative.cs b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/ObjectWriter/MachNative.cs index 9c4f07c866cfc7..14db96a9354747 100644 --- a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/ObjectWriter/MachNative.cs +++ b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/ObjectWriter/MachNative.cs @@ -96,6 +96,7 @@ internal static class MachNative public const byte N_INDR = 0xA; public const byte N_SECT = 0xE; public const byte N_PBUD = 0xC; + public const byte N_PEXT = 0x10; // Symbol descriptor flags public const ushort REFERENCE_FLAG_UNDEFINED_NON_LAZY = 0; diff --git a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/ObjectWriter/MachObjectWriter.cs b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/ObjectWriter/MachObjectWriter.cs index 3001640249d44b..78eb1cba6c01fe 100644 --- a/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/ObjectWriter/MachObjectWriter.cs +++ b/src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/ObjectWriter/MachObjectWriter.cs @@ -484,7 +484,7 @@ private protected override void EmitSymbolTable( Section = section, Value = section.VirtualAddress + (ulong)definition.Value, Descriptor = N_NO_DEAD_STRIP, - Type = N_SECT | N_EXT, + Type = (byte)(N_SECT | N_EXT | (definition.Global ? 0 : N_PEXT)), }); } sortedDefinedSymbols.Sort((symA, symB) => string.CompareOrdinal(symA.Name, symB.Name));