Movatterモバイル変換
[0]ホーム
This is the mail archive of thelibc-alpha@sourceware.orgmailing list for theglibc project.
Re: [PATCH] Add hidden visibility to internal function prototypes
On Mon, Aug 21, 2017 at 10:59 AM, Joseph Myers <joseph@codesourcery.com> wrote:> The commit>> commit 568ff4296c72534e49c8d9c83c33f3a0069cccc7> Author: H.J. Lu <hjl.tools@gmail.com>> Date: Mon Aug 21 05:50:38 2017 -0700>> Add hidden visibility to internal function prototypes>> breaks the build of the testsuite for many platforms:>>https://sourceware.org/ml/libc-testresults/2017-q3/msg00300.html>> The errors are of the following form, building math/atest-exp:>> [...]> /scratch/jmyers/glibc-bot/build/glibcs/aarch64-linux-gnu/glibc/stdlib/rshift.o: In function `__mpn_rshift':> /scratch/jmyers/glibc-bot/build/glibcs/aarch64-linux-gnu/glibc-src/stdlib/rshift.c:45: undefined reference to `__assert_fail'> /scratch/jmyers/glibc-bot/install/compilers/aarch64-linux-gnu/lib/gcc/aarch64-glibc-linux-gnu/7.2.1/../../../../aarch64-glibc-linux-gnu/bin/ld: /scratch/jmyers/glibc-bot/build/glibcs/aarch64-linux-gnu/glibc/math/atest-exp: hidden symbol `__assert_fail' isn't defined> /scratch/jmyers/glibc-bot/install/compilers/aarch64-linux-gnu/lib/gcc/aarch64-glibc-linux-gnu/7.2.1/../../../../aarch64-glibc-linux-gnu/bin/ld: final link failed: Bad value>> This test is using various objects from the build of libc. Some of> those objects contain references to __assert_fail. Because those> references are hidden, they cannot refer to __assert_fail from> libc.so. Given the tests using internal objects those symbols in> libc.a can't safely be made hidden, so this patch reverts the problem> commit until any alternative approach that doesn't break the build can> be found.Can't these link against libc.so instead of libc.a?> Committed (having tested on aarch64 with build-many-glibcs.py that this> fixes the build).>> diff --git a/ChangeLog b/ChangeLog> index b0f3a17..0e0ab13 100644> --- a/ChangeLog> +++ b/ChangeLog> @@ -1,5 +1,14 @@> 2017-08-21 Joseph Myers <joseph@codesourcery.com>>> + Revert:> + 2017-08-21 H.J. Lu <hongjiu.lu@intel.com>> +> + * include/libc-symbols.h (__hidden_proto_hiddenattr): New for> + building libc.a.> + (hidden_proto): Likewise.> + (hidden_tls_proto): Likewise.> + (__hidden_proto): Likewise.> +> [BZ #21973]> * sysdeps/sparc/sparc32/fpu/w_sqrt_compat.S: Remove file.> * sysdeps/sparc/sparc32/fpu/w_sqrtf_compat.S: Likewise.> diff --git a/include/libc-symbols.h b/include/libc-symbols.h> index fe3571a..d6a1c26 100644> --- a/include/libc-symbols.h> +++ b/include/libc-symbols.h> @@ -513,20 +513,8 @@ for linking")> # endif> #else> # ifndef __ASSEMBLER__> -# if !defined SHARED && IS_IN (libc) && !defined LIBC_NONSHARED \> - && !defined NO_HIDDEN> -# define __hidden_proto_hiddenattr(attrs...) \> - __attribute__ ((visibility ("hidden"), ##attrs))> -# define hidden_proto(name, attrs...) \> - __hidden_proto (name, , name, ##attrs)> -# define hidden_tls_proto(name, attrs...) \> - __hidden_proto (name, __thread, name, ##attrs)> -# define __hidden_proto(name, thread, internal, attrs...) \> - extern thread __typeof (name) name __hidden_proto_hiddenattr (attrs);> -# else> -# define hidden_proto(name, attrs...)> -# define hidden_tls_proto(name, attrs...)> -# endif> +# define hidden_proto(name, attrs...)> +# define hidden_tls_proto(name, attrs...)> # else> # define HIDDEN_JUMPTARGET(name) JUMPTARGET(name)> # endif /* Not __ASSEMBLER__ */>> --> Joseph S. Myers> joseph@codesourcery.com-- H.J.
[8]ページ先頭