This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

GCC: BFD warning on ".ARM.exidx" section when using LD script from nRF51 SDK v8.1.0 or higher

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

Parents Reply Children
No Data
Related