On 04/05/13 00:21, Bernhard Rosenkränzer wrote:
Hi, I've looked into this some more today... But it still looks rather odd.
Has the symbol visibility of __aeabi_uidiv changed?
Apparently not... I've checked a diff between gcc-4.7/libgcc and gcc-4.8/libgcc and didn't find any changes that seem related. Given I also didn't see any relevant ABI changes, I ran a little experiment and removed libgcc.a from 4.8, and copied in libgcc.a from 4.7 (yes, I know that's pure evil ;) ).
How did you diff gcc-4.7/libgcc and gcc-4.8/libgcc? What does readelf give as the symbol types and visibility?
Interestingly enough, that toolchain produces a fully functional (including blobs) Android build.
I still don't see anything relevant in the diff - but of course another difference is that 4.7's libgcc.a is compiled with 4.7 while 4.8's is compiled with 4.8, so it may be related to something 4.8 does differently while building libgcc.a.
This looks like a linkage issue and as 4.7's libgcc works even with 4.8 built objects I think its a change in the libgcc library (and not how things are getting called - although that would be worth checking - what's the difference between the callers from both objects).
So if you could diff the objects within libgcc.a that contain __aeabi_uidiv that would be great.
Thanks,
Matt