EABI functions like __aeabi_f2ulz are defined as aliases
of standard libgcc functions like __fixunssfdi. In libgcc.a,
the standard function gets the correct hidden visibility,
but the alias retains default visibility. This means that
DSOs linked against libgcc.a may end up exporting the
libgcc.a definition of __aeabi_f2ulz.
The bug is that bpabi-lib.h uses an asm statement to define
an alias, so the standard ways of forcing hidden visibility
at the C level have no effect.
EABI functions like __aeabi_f2ulz are defined as aliases
of standard libgcc functions like __fixunssfdi. In libgcc.a,
the standard function gets the correct hidden visibility,
but the alias retains default visibility. This means that
DSOs linked against libgcc.a may end up exporting the
libgcc.a definition of __aeabi_f2ulz.
The bug is that bpabi-lib.h uses an asm statement to define
an alias, so the standard ways of forcing hidden visibility
at the C level have no effect.