|
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3 |
|
| #
89a1f144 |
| 16-Aug-2024 |
Peter Rong <peterrong96@gmail.com> |
[LLD, MachO] Default objc_relative_method_lists on MacOS10.16+/iOS14+ (#104519)
This patch makes `-objc_relative_method_lists` default on MacOS
10.16+/iOS 14+. Manual override still work if command
[LLD, MachO] Default objc_relative_method_lists on MacOS10.16+/iOS14+ (#104519)
This patch makes `-objc_relative_method_lists` default on MacOS
10.16+/iOS 14+. Manual override still work if command line argument is
provided.
To test this change, many explict arguments are removed from the test
files. Some explict `-objc_no_objc_relative_method_lists` are also added
for tests that don't support this yet.
This commit tries to revive #101360, which exposes a bug that breaks CI.
#104081 has fixed that bug.
show more ...
|
| #
dd251b05 |
| 08-Aug-2024 |
Peter Rong <peterrong96@gmail.com> |
Revert PR #101360 (#102420)
|
| #
6a3604ef |
| 07-Aug-2024 |
Peter Rong <peterrong96@gmail.com> |
[LLD, MachO] Default objc_relative_method_lists on MacOS11+/iOS14+ (#101360)
This patch makes `objc_relative_method_lists` default on MacOS 11+ / iOS
14+. Manual override still work if command line
[LLD, MachO] Default objc_relative_method_lists on MacOS11+/iOS14+ (#101360)
This patch makes `objc_relative_method_lists` default on MacOS 11+ / iOS
14+. Manual override still work if command line argument is provided.
To test this change, many explicit arguments are removed from the test
files. Some explicit `no_objc_relative...` are also added for tests that
don't support this yet.
Signed-off-by: Peter Rong <PeterRong@meta.com>
show more ...
|
|
Revision tags: llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3 |
|
| #
6b957470 |
| 28-Mar-2024 |
Leandro Lupori <leandro.lupori@linaro.org> |
[lld-macho] Disable objc test on 32-bit ARM targets
lld/test/MachO/objc-relative-method-lists-simple.s fails on AArch64 hosts running 32-bit ARM binaries, such as armv8l-unknown-linux-gnueabihf.
Di
[lld-macho] Disable objc test on 32-bit ARM targets
lld/test/MachO/objc-relative-method-lists-simple.s fails on AArch64 hosts running 32-bit ARM binaries, such as armv8l-unknown-linux-gnueabihf.
Disable the test on the failing targets for now, to keep the buildbots passing.
show more ...
|
| #
bbfa5069 |
| 28-Mar-2024 |
alx32 <103613512+alx32@users.noreply.github.com> |
[lld-macho] Fix bug in makeSyntheticInputSection when -dead_strip flag is specified (#86878)
Previously, `makeSyntheticInputSection` would create a new
`ConcatInputSection` without setting `live` e
[lld-macho] Fix bug in makeSyntheticInputSection when -dead_strip flag is specified (#86878)
Previously, `makeSyntheticInputSection` would create a new
`ConcatInputSection` without setting `live` explicitly for it. Without
`-dead_strip` this would be OK since `live` would default to `true`.
However, with `-dead_strip`, `live` would default to false, and it would
remain set to `false`.
This hasn't resulted in any issues so far since no code paths that
exposed this issue were present.
However a recent change - ObjC relative method lists
(https://github.com/llvm/llvm-project/pull/86231) exposes this issue by
creating relocations to the `SyntheticInputSection`.
When these relocations are attempted to be written, this ends up with a
crash(assert), since the `SyntheticInputSection` they refer to is marked
as dead (`live` = `false`).
With this change, we set the correct behavior - `live` will always be
`true`. We add a test case that before this change would trigger an
assert in the linker.
show more ...
|
| #
742a82a7 |
| 27-Mar-2024 |
alx32 <103613512+alx32@users.noreply.github.com> |
[lld-macho] Implement support for ObjC relative method lists (#86231)
The MachO format supports relative offsets for ObjC method lists. This
support is present already in ld64. With this change we
[lld-macho] Implement support for ObjC relative method lists (#86231)
The MachO format supports relative offsets for ObjC method lists. This
support is present already in ld64. With this change we implement this
support in lld also.
Relative method lists can be identified by a specific flag (0x80000000)
in the method list header. When this flag is present, the method list
will contain 32-bit relative offsets to the current Program Counter
(PC), instead of absolute pointers.
Additionally, when relative method lists are used, the offset to the
selector name will now be relative and point to the selector reference
(selref) instead of the name itself.
show more ...
|