views:

116

answers:

1

I'm hoping maybe someone has a quick answer for this but essentially when I turn on optimizations, I get the following error:

[elxr] (error) small data area overflow: 0xfff9f6fc (signed) didn't fit in 16 bits while performing relocation in file test_main.o at location sti_13_test_main_cpp_252229d3+0xc, to reference symbol oe_init_intconn

A similar error occurs when I put in this linker directive as well:

-auto_sda

Their manual doesn't make any mention of this linker error. I'm using Integrity 5.10

+1  A: 

After doing some research, it's possible that linking libraries that all don't use the SDA option might have this conflict. Since I don't have control over how those libraries are built, at the moment I've applied the following flags to my GPJ that seemed to resolve the issue:

-Onolink
-no_auto_sda
-nothreshold

Note that these options disable all linker optimizations and disable the SDA option completely.

Gary
Note, initially I'm not accepting this answer as its not the best and would welcome any improved ideas that would still allow optimizations.
Gary