freebsd-dev/lib/libc/arm/aeabi
Michal Meloun cd9bdb7362 Publish __aeabi_uidiv and __aeabi_idiv as compatible symbols from libc.
Due to bug[1] in libcompiler_rt, all symbols declared by
DEFINE_AEABI_FUNCTION_ALIAS() are not hidden. All these but two
are explicitly exported from libc and don't causes problems.

Remaining two, __aeabi_uidiv and __aeabi_idiv, infecting all
non-versioned shared libraries. And these symbols are consumed
by many (if not all) packages[2].

As workaround, export these from libc as compatible symbols,
in global namespace. With this, these are still visible for
rtld, but static linker doesn't use then.

[1]
DEFINE_AEABI_FUNCTION_ALIAS() macro uses '.set' directive for
declaration of aliased symbol. Unfortunately, '.set' doesn't
inherit visibility of base symbol, and macro don't explicitly
sets visibility for aliased one.

[2]
Given symbols are exported from non-versioned libraries only if
library itself uses them. So, if world is built for CPU with
HW divide, these function are not used and given symbols are
not exported. By this, contents of these libraries is not stable,
and all packages fails to run.

Note: Due to r313823 I'm forced to commit this too early, without
leave enough time for proper review.

MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D9632
2017-02-17 11:16:19 +00:00
..
aeabi_asm_double.S Annotate arm userspace assembler sources stating their tolerance to 2015-09-29 16:09:58 +00:00
aeabi_asm_float.S Annotate arm userspace assembler sources stating their tolerance to 2015-09-29 16:09:58 +00:00
aeabi_atexit.c
aeabi_double.c Add support for the __aeabi_c*cmp* functions. These are similar to the 2014-10-14 14:27:51 +00:00
aeabi_float.c Add support for the __aeabi_c*cmp* functions. These are similar to the 2014-10-14 14:27:51 +00:00
aeabi_int_div.S Publish __aeabi_uidiv and __aeabi_idiv as compatible symbols from libc. 2017-02-17 11:16:19 +00:00
aeabi_unwind_cpp.c
aeabi_unwind_exidx.c Add dl_unwind_find_exidx() for ARM EABI, required for C++ exception 2014-07-19 22:13:27 +00:00
aeabi_vfp_double.S Annotate arm userspace assembler sources stating their tolerance to 2015-09-29 16:09:58 +00:00
aeabi_vfp_float.S Annotate arm userspace assembler sources stating their tolerance to 2015-09-29 16:09:58 +00:00
aeabi_vfp.h Revert a change that sneeked with 297619 2016-04-06 16:50:18 +00:00
Makefile.inc Publish __aeabi_uidiv and __aeabi_idiv as compatible symbols from libc. 2017-02-17 11:16:19 +00:00
Symbol.map Publish __aeabi_uidiv and __aeabi_idiv as compatible symbols from libc. 2017-02-17 11:16:19 +00:00