aboutsummaryrefslogtreecommitdiff
path: root/src/link/Elf
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-02-21 22:49:58 +0100
committerJakub Konka <kubkon@jakubkonka.com>2024-02-21 22:49:58 +0100
commitd19001abac6b5c0bc478799dc683bf71a6e6b2d8 (patch)
treef0ca763017b7bb4e82b34c7a61ea3dc78b81e078 /src/link/Elf
parent9fd112804fbdeb288b90cf8323d3ebefaa26372f (diff)
downloadzig-d19001abac6b5c0bc478799dc683bf71a6e6b2d8.tar.gz
zig-d19001abac6b5c0bc478799dc683bf71a6e6b2d8.zip
elf: skip STT_NOTYPE only if SHN_UNDEF from symtab inclusion
Diffstat (limited to 'src/link/Elf')
-rw-r--r--src/link/Elf/Object.zig3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/link/Elf/Object.zig b/src/link/Elf/Object.zig
index 31b31f0578..16f8e263e7 100644
--- a/src/link/Elf/Object.zig
+++ b/src/link/Elf/Object.zig
@@ -848,7 +848,8 @@ pub fn updateSymtabSize(self: *Object, elf_file: *Elf) !void {
if (local.atom(elf_file)) |atom| if (!atom.flags.alive) continue;
const esym = local.elfSym(elf_file);
switch (esym.st_type()) {
- elf.STT_SECTION, elf.STT_NOTYPE => continue,
+ elf.STT_SECTION => continue,
+ elf.STT_NOTYPE => if (esym.st_shndx == elf.SHN_UNDEF) continue,
else => {},
}
local.flags.output_symtab = true;