http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57221
Bug #: 57221 Summary: [4.8/4.9 regression] libgcc symbol visibility changes break Android blobs Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libgcc AssignedTo: unassig...@gcc.gnu.org ReportedBy: bernhard.rosenkran...@linaro.org Created attachment 30064 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30064 Proposed fix The changes in libgcc symbol visibilities that got into 4.8 (http://gcc.gnu.org/ml/gcc-patches/2012-08/msg01462.html) break important Android blobs. Bionic (Android's libc) has some rather weird hacks that expose libgcc.a's __aeabi_uidiv and friends to applications linking to Bionic. The changed symbol visibility breaks this, resulting in e.g. a Galaxy Nexus Android build done with gcc 4.8 failing to boot to UI because it can't load its graphics drivers. It may make sense to change symbol visibility back to default if the target is Android. I've attached a patch that does that.