https://sourceware.org/bugzilla/show_bug.cgi?id=31179
--- Comment #6 from Palmer Dabbelt <palmer at gcc dot gnu.org> --- (In reply to Andreas Schwab from comment #5) > There are a lot of SUB_ULEB128 relocations with a non-zero addend in > installed static archives that will change behaviour with this commit. > > $ readelf -Wr /usr/lib64/libc.a | grep -c 'SUB_ULEB128.*[+-] [^0]' > 17043 > $ readelf -Wr /usr/lib64/gcc/riscv64-suse-linux/13/libgphobos.a | grep -c > 'SUB_ULEB128.*[+-] [^0]' > 55318 Awesome, thanks. Nelson and I were getting some confusing error reports, but this matches what I was trying to fix at the beginning. We might have another bug, but I think this one we can try to fix. So I think we can do something like the following: * Check for binaries with the bug -- I think we want a tag here, but I guess we could also try and pattern match the +N/+N vs +M/+0. * If the binary has the bug, then revert to the old linker behavior for calculating the addresses from the input. * Always emit correct addends into the output. Then we can add some some warning when we detect the old inputs, along with some commandline/autoconf arguments to turn the warnings into errors. -- You are receiving this mail because: You are on the CC list for the bug.