On Mon, 2009-05-04 at 17:30 +0100, Paul Brook wrote:
> On Saturday 02 May 2009, Samuel Tardieu wrote:
> > The ARM Cortex-M3 which uses the thumb2 instruction set can use "blx
> > register" but not "blx address".
> Not technically true. blx address is fine, you're just guaranteed to get a
> fault afterwards.
> > When compiling calls to GCC helper functions (here a soft-float division
> > between doubles), this instruction is generated:
> > 8170: f000 e94a blx 8408 <__aeabi_ddiv>
> Almost certainly means you're linking against ARM libraries. Don't do that.
The linker ought to be able to detect this using the object
attributes... M-profile objects shouldn't be compatible with ARM
Richard> The linker ought to be able to detect this using the object
Richard> attributes... M-profile objects shouldn't be compatible with
Richard> ARM objects.
This would also help detect problems with GCC multilib construction
(which I suspect here, given that GCC finds the path to the library and
has been given the correct flags, and has been built in multilib mode).