[all-commits] [llvm/llvm-project] a2b502: [ELF] ICF: replace includeInDynsym with isExported
Fangrui Song via All-commits
all-commits at lists.llvm.org
Mon Feb 17 16:16:29 PST 2025
Branch: refs/heads/release/20.x
Home: https://github.com/llvm/llvm-project
Commit: a2b502050302a4cf8a9c4e623331810eed51bb81
https://github.com/llvm/llvm-project/commit/a2b502050302a4cf8a9c4e623331810eed51bb81
Author: Fangrui Song <i at maskray.me>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M lld/ELF/Driver.cpp
M lld/test/ELF/icf-safe.s
Log Message:
-----------
[ELF] ICF: replace includeInDynsym with isExported
Similar to the change to MarkLive.cpp when isExported was introduced.
includeInDynsym might return true even when isExported is false for
statically linked executables.
(cherry picked from commit 45f538ecba1a51768002a5bc0c194b5af4cd9c27)
Commit: 02a511e42c6783f14ac45d71c5278dd031c1bcf7
https://github.com/llvm/llvm-project/commit/02a511e42c6783f14ac45d71c5278dd031c1bcf7
Author: Fangrui Song <i at maskray.me>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M lld/ELF/Driver.cpp
M lld/ELF/InputFiles.cpp
M lld/ELF/SymbolTable.cpp
M lld/ELF/Symbols.cpp
M lld/ELF/Symbols.h
M lld/ELF/SyntheticSections.cpp
M lld/ELF/Writer.cpp
Log Message:
-----------
[ELF] Merge exportDynamic/isExported and remove Symbol::includeInDynsym
Commit 3733ed6f1c6b0eef1e13e175ac81ad309fc0b080 introduced isExported to
cache includeInDynsym. If we don't unnecessarily set isExported for
undefined symbols, exportDynamic/includeInDynsym can be replaced with
isExported.
(cherry picked from commit d6fa74ab3d4cc77005836e72a2d6fe222bab4c59)
Commit: 9bcc825ee491a85c2f7b1573d6a3abf6d5cf0c8a
https://github.com/llvm/llvm-project/commit/9bcc825ee491a85c2f7b1573d6a3abf6d5cf0c8a
Author: Fangrui Song <i at maskray.me>
Date: 2025-02-17 (Mon, 17 Feb 2025)
Changed paths:
M lld/ELF/Config.h
M lld/ELF/Driver.cpp
M lld/ELF/Symbols.cpp
M lld/ELF/SyntheticSections.cpp
M lld/ELF/Writer.cpp
M lld/test/ELF/executable-undefined-ignoreall.s
M lld/test/ELF/ppc32-weak-undef-call.s
M lld/test/ELF/ppc64-undefined-weak.s
M lld/test/ELF/riscv-gp.s
M lld/test/ELF/weak-undef-lib.s
M lld/test/ELF/weak-undef-no-dynamic-linker.s
M lld/test/ELF/weak-undef-rw.s
Log Message:
-----------
[ELF] Refine isExported/isPreemptible condition
Reland 994cea3f0a2d0caf4d66321ad5a06ab330144d89 after bolt tests no
longer rely on -pie --unresolved-symbols=ignore-all with no input DSO
generating PLT entries.
---
Commit f10441ad003236ef3b9e5415a571d2be0c0ce5ce , while dropping a
special case for isUndefWeak and --no-dynamic-linking, made
--export-dynamic ineffective when -pie is used without any input DSO.
This change restores --export-dynamic and unifies -pie and -pie
--no-dynamic-linker when there is no input DSO.
* -pie with no input DSO suppresses undefined symbols in .dynsym.
Previously this only appied to -pie --no-dynamic-linker.
* As a side effect, -pie with no input DSO suppresses PLT.
(cherry picked from commit 52fc6ffcda0895c0c7b976ad1f5cb5a282b571d2)
Compare: https://github.com/llvm/llvm-project/compare/94291653a741...9bcc825ee491
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list