Port-vax archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Unwinding with GCC
Hi,
so, looking at things we should address for GCC/vax, I went over
review comments by Jeff Law[1].
One point was that flag_dwarf2_cfi_asm = 0. This probably isn't
great for unwinding, which is one thing we're struggling with.
This was apparently introduced during a binutils update[2].
Removing it results in a build failure in libc,
ld: warning: dynamic relocation to `?' in readonly section `.eh_frame'
ld: warning: dynamic relocation to `?' in readonly section `.eh_frame'
ld: warning: creating a DT_TEXTREL in a shared object
ld: .eh_frame_hdr refers to overlapping FDEs
ld: final link failed: bad value
This seemed to be a cross platform at the time, shared by RISC-V.[3]
Their answer is "Use pc-relative relocation for FDE initial location",
which they do in binutils md_apply_fix.
But that got me to look at the dwarf code and comparing to other archs,
and I can't help but notice there's so much LESS code related to the
use of DWARF.
This is discouraging, I'm not qualified to write such code from scratch,
although I might be able to cargo-cult the RISC-V fix with some help.
Did this code, and C++ exception handling, ever work?
[1] https://gcc.gnu.org/ml/gcc/2019-04/msg00281.html
[2] https://github.com/NetBSD/src/commit/1df57dce3744cf4743358b098728a0658b80b8fb
[3] https://github.com/riscv/riscv-binutils-gdb/issues/76
Home |
Main Index |
Thread Index |
Old Index