diff options
Diffstat (limited to 'compiler-rt/lib/int_util.c')
-rw-r--r-- | compiler-rt/lib/int_util.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/compiler-rt/lib/int_util.c b/compiler-rt/lib/int_util.c index 2dc4d2ee926..f19476864b1 100644 --- a/compiler-rt/lib/int_util.c +++ b/compiler-rt/lib/int_util.c @@ -11,6 +11,16 @@ #include "int_util.h" #include "int_lib.h" +/* NOTE: The definitions in this file are declared weak because we clients to be + * able to arbitrarily package individual functions into separate .a files. If + * we did not declare these weak, some link situations might end up seeing + * duplicate strong definitions of the same symbol. + * + * We can't use this solution for kernel use (which may not support weak), but + * currently expect that when built for kernel use all the functionality is + * packaged into a single library. + */ + #ifdef KERNEL_USE extern void panic(const char *, ...) __attribute__((noreturn)); @@ -24,6 +34,7 @@ void compilerrt_abort_impl(const char *file, int line, const char *function) { /* Get the system definition of abort() */ #include <stdlib.h> +__attribute__((weak)) __attribute__((visibility("hidden"))) void compilerrt_abort_impl(const char *file, int line, const char *function) { abort(); |