How to properly avoid warning about sh_link not set for section “.ARM.exidx”?

Freddie Chopin freddie_chopin@op.pl
Tue Sep 5 11:13:00 GMT 2017


Hello Nick!

On Thu, 2017-08-31 at 14:26 +0100, Nick Clifton wrote:
> I find it strange however that the linker is not able to handle this
> case
> as the default ARM linker script also includes a description of the
> .ARM.exidx
> section with symbols inside it.  I would suggest that you file a
> binutils
> bug report here:
> 
>   https://sourceware.org/bugzilla
> 
> Including a test case will be really helpful.

Finally it turned out that I can avoid the warning by _not_ aligning
the contents of the section manually. This works fine for me:

-- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 --

        .ARM.exidx :
        {
                PROVIDE(__exidx_start = .);
                *(.ARM.exidx* .gnu.linkonce.armexidx.*);
                PROVIDE(__exidx_end = .);
        } > rom AT > rom

-- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 -- >8 --

However if I manually align "." to multiple of 4 right before each
PROVIDE() statement, the warning appears.

Whether this is a bug or just my error - I have no idea (;

Regards,
FCh



More information about the Binutils mailing list