diff options
author | Sandra Loosemore <sandra@codesourcery.com> | 2024-01-11 21:12:56 +0000 |
---|---|---|
committer | Sandra Loosemore <sandra@codesourcery.com> | 2024-01-12 04:50:22 +0000 |
commit | cc9cac9f073a9517f5b7fcffcb7c28b166339491 (patch) | |
tree | f052e786014ac1587dbaa0a5a7240c09cdd1fa0a /gcc | |
parent | 75ed46558a2e085ba12641a47112e37f114faee0 (diff) | |
download | gcc-cc9cac9f073a9517f5b7fcffcb7c28b166339491.zip gcc-cc9cac9f073a9517f5b7fcffcb7c28b166339491.tar.gz gcc-cc9cac9f073a9517f5b7fcffcb7c28b166339491.tar.bz2 |
libgcc, nios2: Fix exception handling on nios2 with -fpic
Exception handling on nios2-linux-gnu with -fpic has been broken since
revision 790854ea7670f11c14d431c102a49181d2915965, "Use _dl_find_object
in _Unwind_Find_FDE". For whatever reason, this doesn't work on nios2.
Nios2 uses the GOT address as the base for DW_EH_PE_datarel
relocations in PIC; see my previous fix to make this work, revision
2d33dcfe9f0494c9b56a8d704c3d27c5a4329ebc, "Support for GOT-relative
DW_EH_PE_datarel encoding". So this may be a horrible bug in the ABI
or in my interpretation of it or just glibc's implementation of
_dl_find_object for this target, but there's existing code out there
that does things this way; and realistically, nobody is going to
re-engineer this now that the vendor has EOL'ed the nios2
architecture. So, just skip over the code trying to use
_dl_find_object on this target and fall back to the way that works.
I plan to backport this patch to the GCC 12 and GCC 13 branches as well.
libgcc/ChangeLog
* unwind-dw2-fde-dip.c (_Unwind_Find_FDE): Do not try to use
_dl_find_object on nios2; it doesn't work.
Diffstat (limited to 'gcc')
0 files changed, 0 insertions, 0 deletions