https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61044

--- Comment #3 from Senthil Kumar Selvaraj <senthil_kumar.selvaraj at atmel dot 
com> ---
Johann,

The primary reason I added the diff relocs was to prevent linker relaxation
messing up DWARF line number information - as you know, relaxation can shorten
instruction sequences, and the addresses in DWARF then go out of sync.

I guess I must add some user documentation about this, but ideally, this is
supposed to be transparent to the user - just passing -mrelax to the compiler
should work.

I turned diff reloc generation on only if -mlink-relax is passed because this
is what other ports (xtensa) do, and I wasn't sure of the consequences of
resolving every subtraction expression at link time.

I tried assembling .word pm(.L3-.L2) with -mlink-relax, but the assembler gave
up with an "expression too complex" error. Like you said, I guess documenting
that this is not supported is the way to go.

Reply via email to