I am trying to provoke long calls of __aeabi_fmul function from a foo.c file.I am not using libgcc, during linking i am passing a symbol file that has the address of __aeabi_fmul.
In foo.c i can see that the compiler assembled the call into the instruction:
BL address_of_aeabi_function
That's fine, but I would like to provoke a long call where the 32bits address of the function will be in the .got section and the compiler will end up doing the BL using a 32bits register, hence doing the long call.
I am able to provoke long calls on my own functions using the attribute:
float my_func(float) __attribute__((long_call));
but
float __aeabi_fmul(float, float) __attribute__((long_call));
does not work ...
I am also able to provoke long calls on __aeabi_fmul if i specify -mlong-calls in the compiler flagsBut if i do this, all functions are using long calls, which is not what i want.