Repository navigation
fix(tests): use position-independent unwind data in the C++ error fixture - #5300
Conversation
|
I independently validated the Linux path on the PR head: Ninja Release build of |
|
I checked the changed encodings against the fixture declarations: AI-assisted: yes; reviewed by MarcZX100. I did not rerun this PR locally. |
|
Additional, limited Windows compatibility evidence for PR head
The runtime libraries were reused from my frozen local build at source revision Separately, the installed clang/LLD 19.1.5 cross-assembled the ELF fixture. With identical Linux/ASan execution and full PR builds: not tested. AI-assisted: yes; local execution and result checking assisted by Codex. |
|
Tested on Ubuntu and on Windows, which the description lists as not built. #5102 (mine) is what registered this fixture on Linux, so the absolute relocations reached Fedora through it; thanks for the fix. The tree is
Not checked: Fedora itself, the ASan build, the full test suite. Ubuntu: relink of the main fixture with -z textWindows: ctest with this PR's fixtureAI-assisted (Claude Code). |
|
Tested on Nobara 44 (Fedora 44), GCC 16.2.1, GNU ld 2.46.1, Release,
Not tested: ASan, Windows. AI-assisted (Claude Code). |
MarcZX10
left a comment
There was a problem hiding this comment.
Thanks for the additional Fedora/Ubuntu and Windows runs; they address the platform gap called out in the description. I verified the only changed file is the unwind fixture, which has not changed on current main, and the reported merge state is clean. This head is still 51 commits behind current main (bf8dc61), though, and the PR checks currently skip both full Linux and Windows jobs. Please rebase/update onto current main and rerun the relevant Linux test before merge; I can then complete the review.
5757a9f to
75c25e1
Compare
|
Rebased onto Rerun on the new base: Fedora 44, GCC 16.2.1, GNU ld 2.46.1, Release,
|
What
Fixes #5299.
On Linux,
GuestAmprCppError.Snow uses position-independent unwind data, so the PIE test executable needs no dynamic relocations in read-only sections:.data.rel.ro(.cfi_personality 0x9b);.cfi_lsda 0x1b);.longentries (TType encoding0x9b) instead of absolute.quadones.AnyPS5's unwinder and personality decode these encodings through
Encodedinexceptions/Unwind.hpp. The Windows encodings are unchanged.Tested
Fedora 44, GCC 16.2.1, GNU ld 2.46.1, Release,
main0214069e3:main,guest_ampr_cpp_error_testsfails to link with "read-only segment has dynamic relocations". With the change it links, withoutTEXTREL, andguest_ampr_cpp_errorpasses in 3 of 3 runs.-DANYPS5_ENABLE_ASAN=ONit also links and passes in 3 of 3 runs, with no AddressSanitizer report.readelf --debug-dump=frameson the object shows augmentationzPLRwith personality encoding0x9band LSDA encoding0x1b.FixtureOtherType, the test aborts, so the personality does read the new entries.python3 tools/check_conventions.py --base origin/mainpasses, andgit diff --checkis clean.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)