Hi guys,
Has anyone encountered following warning message when using nRF51 SDK v8.1.0 or 9.0.0 and compiling project by GCC arm-none-eabi (I'm on V4.9 2015q2 which is the latest stable I suppose)?
...
BFD: _build/ble-example.elf: warning: sh_link not set for section `.ARM.exidx'
...
It's just warning but when I was looking for some help I just see that "exidx" section is used only during debugging and in most of the binaries is empty (which is the case for Nordic nRF5x binaries as well) and that this error was encountered on other projects but no resolution found (usually ignored as unimportant or fixed by changing loader script). When I play with "components\toolchain\gcc\gcc_nrf51_common.ld" file it looks like excluding . = ALIGN(4);
line from section
__exidx_start = .;
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
. = ALIGN(4);
} > FLASH
__exidx_end = .;
fixes the problem (no warning). This line was actually included in SDK v8.1.0 so I'm wondering if:
- This is problem of BFD component in GCC and I should wait for fix there (which can take years).
- This is problem of LD script and I could get fix with next SDK release by Nordic.
Any idea or feedback are welcome. Cheers Jan