srhines added a comment.

In http://reviews.llvm.org/D19480#410641, @rengolin wrote:

> In http://reviews.llvm.org/D19480#410620, @tberghammer wrote:
>
> > Both executables and shared libraries are containing ARM Attributes what 
> > contains the information about soft-float vs hard-float. I am not sure how 
> > accurate it is as in theory you can link together an object file compiled 
> > with soft float with a one compiled with hard float but most likely we can 
> > trust it to be good enough.
>
>
> That's only true if one doesn't depend on the other, and only if you can 
> guarantee that hard-float library functions will only be called using 
> AAPCS_VFP and soft-float library functions will only be called with AAPCS.
>
> This is not the kind of guarantee one can do easily. Nor it is recommended 
> that one does so. If Android applications can guarantee that by having two 
> different ABIs for Android specific and user specific, this could work in 
> theory.
>
> > The problem is that currently this information is not stored in the 
> > llvm::Triple so if the Environment part of the Triple is set to Android 
> > then the information is lost. I can try to recover the data from the 
> > architecture flags but I am not convinced that it is always possible and 
> > considering that the same executable can contain soft-float and hard-float 
> > code on Android we have to treat them as compatible architectures at some 
> > point.
>
>
> The information is not lost, because "Android EABI" is always soft-float, and 
> by definition, you should not be linking hard-float objects with soft-float 
> ones.
>
> Can you elaborate which case you can reach that improbably scenario?


This happens because there is a broken mode (supported by an older NDK) that 
allowed for Hard FP calling conventions to be mixed with Soft FP in a hybrid 
mode. Everything in the user's application would get to use Hard FP, while any 
calls to bionic (libc/libm), or platform native libraries would use Soft FP. 
This wasn't really well tested, nor is it something that I think we should be 
promoting. Does this patch only affect debugging? Could we hold off on this 
until a long term decision is made about supporting mixed hard/soft FP calling 
conventions simultaneously?

> cheers,

> --renato





http://reviews.llvm.org/D19480



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to