]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - ChangeLog
Don't use hidden visibility in libc.a with PIE on i386
[thirdparty/glibc.git] / ChangeLog
index 25587d670e015fe90384e968636c594768adf773..bb09add53d9f58b211172e45f5074f77cb2f6f87 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,382 @@
+2017-10-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config.h.in (NO_HIDDEN_EXTERN_FUNC_IN_PIE): New.
+       * include/libc-symbols.h (__hidden_proto_hiddenattr): Add check
+       for PIC and NO_HIDDEN_EXTERN_FUNC_IN_PIE.
+       * sysdeps/i386/configure.ac (NO_HIDDEN_EXTERN_FUNC_IN_PIE): New
+       AC_DEFINE if multi-arch is enabled.
+       * sysdeps/i386/configure: Regenerated.
+
+2017-10-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * Makeconfig (+link-static-before-libc): Use
+       $(DEFAULT-LDFLAGS-$(@F)).
+       * elf/Makefile (CRT-tst-tls1-static-non-pie): New.
+       (LDFLAGS-tst-tls1-static-non-pie): Renamed to ...
+       (DEFAULT-LDFLAGS-tst-tls1-static-non-pie): This.
+
+2017-10-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf/Makefile (tests): Add tst-main1.
+       (modules-names): Add tst-main1mod.
+       ($(objpfx)tst-main1): New.
+       (CRT-tst-main1): Likewise.
+       (LDFLAGS-tst-main1): Likewise.
+       (LDLIBS-tst-main1): Likewise.
+       (tst-main1mod.so-no-z-defs): Likewise.
+       * elf/tst-main1.c: New file.
+       * elf/tst-main1mod.c: Likewise.
+
+2017-10-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * math/test-math-iscanonical.cc (do_test): Return errors != 0.
+
+2017-10-04  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/ieee754/dbl-64/s_fma.c: Include <libm-alias-double.h>.
+       (fma): Define using libm_alias_double.
+       * sysdeps/ieee754/ldbl-opt/s_fma.c: Remove file.
+       * sysdeps/sparc/sparc32/fpu/s_fma.c: Do not include
+       <math_ldbl_opt.h>.
+       (fmal): Do not define as compat symbol here.
+       * sysdeps/alpha/fpu/s_fma.c: New file.
+
+2017-10-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+       * sysdeps/aarch64/dl-machine.h (elf_machine_rela): Expand MIN.
+
+2017-10-04  Joseph Myers  <joseph@codesourcery.com>
+
+       [BZ #22229]
+       * sysdeps/sparc/sparc32/fpu/s_copysign.S: Include
+       <math_ldbl_opt.h>
+       (copysignl): Define as compat symbol at version GLIBC_2_0 for libm
+       and libc.
+       * sysdeps/sparc/sparc32/fpu/s_fabs.S: Include <math_ldbl_opt.h>.
+       (fabsl): Define as compat symbol at version GLIBC_2_0 for libm.
+       * sysdeps/sparc/sparc32/fpu/s_fma.c: Include <math_ldbl_opt.h>.
+       (fmal): Define as compat symbol at version GLIBC_2_1 for libm.
+       * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.S:
+       Include <math_ldbl_opt.h>
+       (copysignl): Define as compat symbol at version GLIBC_2_0 for libm
+       and libc.
+       (compat_symbol): Undefine and redefine.
+       * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fabs.S: Include
+       <math_ldbl_opt.h>
+       (fabsl): Define as compat symbol at version GLIBC_2_0 for libm.
+       (compat_symbol): Undefine and redefine.
+       * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fma.c
+       [HAVE_AS_VIS3_SUPPORT]: Include <math_ldbl_opt.h>.
+       [HAVE_AS_VIS3_SUPPORT] (fmal): Define as compat symbol at version
+       GLIBC_2_1 for libm.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Add
+       GLIBC_2.0 copysignl symbol.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Add
+       GLIBC_2.0 copysignl and fabsl and GLIBC_2.1 fmal symbols.
+
+       * sysdeps/alpha/fpu/s_nearbyint.c: Remove file.
+
+2017-10-04  Florian Weimer  <fweimer@redhat.com>
+
+       * scripts/check-local-headers.sh: Ignore nspr4 header file
+       directory in addition to nspr.
+
+2017-10-04  Guido Trentalancia  <guido@trentalancia.net>
+
+       [BZ #17956]
+       * configure.ac (--enable-nss-crypt): Use NSPR include directory.
+       * configure: Regenerate.
+       * crypt/Makefile (nss-cpp-flags): New variable.
+       (CPPFLAGS-sha256-crypt.c, CPPFLAGS-sha512-crypt.c)
+       (CPPFLAGS-md5-crypt.c): Use it.
+       * scripts/check-local-headers.sh: Ignore nspr header file
+       directory.
+
+2017-10-04  Andreas Schwab  <schwab@suse.de>
+
+       * nis/Makefile (services): Remove compat.
+       (libnss_compat-routines, libnss_compat-inhibit-o): Don't define.
+       ($(objpfx)libnss_compat.so): Remove rule.
+       * nis/Versions (libnss_compat): Remove.
+       * nss/Makefile (services): Add compat.
+       (libnss_compat-routines, libnss_compat-inhibit-o): Define.
+       * nss/Versions (libnss_compat): Define.
+       * nss/nss_compat/compat-grp.c: Moved here from nis/nss_compat.
+       Don't include <rpc/types.h>.  Replace bool_t by bool.
+       * nss/nss_compat/compat-initgroups.c: Likewise.
+       * nss/nss_compat/compat-pwd.c: Likewise.  Include "nisdomain.h"
+       instead of <rpcsrv/ypclnt.h>.
+       (getpwent_next_nss_netgr): Use __nss_get_default_domain instead of
+       yp_get_default_domain.
+       * nss/nss_compat/compat-pwd.c: Likewise.
+       (getspent_next_nss_netgr): Use __nss_get_default_domain instead of
+       yp_get_default_domain.
+       * nss/nss_compat/nisdomain.c: New file.
+       * nss/nss_compat/nisdomain.h: Likewise.
+
+2017-10-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+       [BZ #22244]
+       * sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_yn): Fix x == 0 case.
+       * sysdeps/ieee754/flt-32/e_jnf.c (__ieee754_ynf): Likewise.
+
+2017-10-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+       [BZ #22243]
+       * sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c (__ieee754_log10): Use fabs.
+       * sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c (__ieee754_log2): Likewise.
+
+2017-10-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/i386/start.S: Replace "leal main@GOT(%ebx), %eax" with
+       "movl main@GOTOFF(%ebx), %eax".
+
+2017-10-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/i386/dl-machine.h (elf_machine_load_address): Don't
+       allow undefined _DYNAMIC in PIE libc.a.
+       * sysdeps/x86_64/dl-machine.h (elf_machine_load_address):
+       Likewse.
+
+2017-10-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/mips/dl-machine.h (elf_machine_load_address): Don't
+       check _DYNAMIC.
+
+2017-10-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/arm/dl-machine.h (elf_machine_load_address): Don't
+       check _DYNAMIC.
+
+2017-10-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * math/test-math-iscanonical.cc (error): Replace bool with int.
+
+2017-10-03  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/ieee754/dbl-64/s_modf.c: Include <libm-alias-double.h>.
+       (modf): Define using libm_alias_double, only if [!__modf].
+       * sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c: Include
+       <libm-alias-double.h>.
+       (modf): Define using libm_alias_double, only if [!__modf].
+       * sysdeps/ieee754/ldbl-opt/s_modf.c (modfl): Only define libc
+       compat symbol here.
+       * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c
+       (weak_alias): Do not undefine and redefine.
+       (strong_alias): Likewise.
+       * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-ppc64.c
+       (weak_alias): Likewise.
+       (strong_alias): Likewise.
+
+       * sysdeps/ieee754/dbl-64/s_logb.c: Include <libm-alias-double.h>.
+       (logb): Define using libm_alias_double, only if [!__logb].
+       * sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c: Include
+       <libm-alias-double.h>.
+       (logb): Define using libm_alias_double, only if [!__logb].
+       * sysdeps/ieee754/ldbl-opt/s_logb.c: Remove file.
+       * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c
+       (weak_alias): Do not undefine and redefine.
+       (strong_alias): Likewise.
+       * sysdeps/powerpc/powerpc64/fpu/multiarch/s_logb-ppc64.c
+       (weak_alias): Likewise.
+       (strong_alias): Likewise.
+
+2017-10-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/unix/sysv/linux/tile/sysdep.h (SYSCALL_ERROR_NAME):
+       Check SHARED instead PIC.
+
+2017-10-03  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/ieee754/dbl-64/s_fmaf.c: Include <libm-alias-float.h>.
+       [!__fmaf] (fmaf): Define using libm_alias_float.
+
+       * sysdeps/ieee754/dbl-64/s_frexp.c: Include <libm-alias-double.h>.
+       (frexp): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c: Include
+       <libm-alias-double.h>.
+       (frexp): Define using libm_alias_double.
+       * sysdeps/ieee754/ldbl-opt/s_frexp.c (frexpl): Only define libc
+       compat symbol here.
+
+2017-10-03  Gabriel F. T. Gomes  <gabriel@inconstante.eti.br>
+
+       [BZ #22235]
+       * math/math.h: Trivial fix for unbalanced parentheses in comment.
+       * math/Makefile [CXX] (tests): Add test-math-iscanonical.cc.
+       (CFLAGS-test-math-iscanonical.cc): New variable.
+       * math/test-math-iscanonical.cc: New file.
+       * sysdeps/ieee754/ldbl-96/bits/iscanonical.h (iscanonical):
+       Provide a C++ implementation based on function overloading,
+       rather than using __MATH_TG, which uses C-only builtins.
+       * sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h (iscanonical):
+       Likewise.
+       * sysdeps/powerpc/powerpc64le/Makefile
+       (CFLAGS-test-math-iscanonical.cc): New variable.
+
+2017-10-03  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/ieee754/dbl-64/s_ceil.c: Include <libm-alias-double.h>.
+       (ceil): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/s_floor.c: Include <libm-alias-double.h>.
+       (floor): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/s_llround.c: Include
+       <libm-alias-double.h>.
+       (llround): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/s_lround.c: Include
+       <libm-alias-double.h>.
+       (lround): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/s_nearbyint.c: Include
+       <libm-alias-double.h>.
+       (nearbyint): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/s_remquo.c: Include
+       <libm-alias-double.h>.
+       (remquo): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/s_rint.c: Include <libm-alias-double.h>.
+       (rint): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/s_round.c: Include <libm-alias-double.h>.
+       (round): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/s_trunc.c: Include <libm-alias-double.h>.
+       (trunc): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c: Include
+       <libm-alias-double.h>.
+       (ceil): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c: Include
+       <libm-alias-double.h>.
+       (floor): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c: Include
+       <libm-alias-double.h>.
+       (llround): Define using libm_alias_double.
+       [_LP64] (lround): Likewise.
+       * sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c: Include
+       <libm-alias-double.h>.
+       [!_LP64] (lround): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: Include
+       <libm-alias-double.h>.
+       (nearbyint): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c: Include
+       <libm-alias-double.h>.
+       (remquo): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c: Include
+       <libm-alias-double.h>.
+       (rint): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/wordsize-64/s_round.c: Include
+       <libm-alias-double.h>.
+       (round): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c: Include
+       <libm-alias-double.h>.
+       (trunc): Define using libm_alias_double.
+       * sysdeps/ieee754/ldbl-opt/s_ceil.c: Remove file.
+       * sysdeps/ieee754/ldbl-opt/s_floor.c: Likewise.
+       * sysdeps/ieee754/ldbl-opt/s_llround.c: Likewise.
+       * sysdeps/ieee754/ldbl-opt/s_lround.c: Likewise.
+       * sysdeps/ieee754/ldbl-opt/s_nearbyint.c: Likewise.
+       * sysdeps/ieee754/ldbl-opt/s_remquo.c: Likewise.
+       * sysdeps/ieee754/ldbl-opt/s_rint.c: Likewise.
+       * sysdeps/ieee754/ldbl-opt/s_round.c: Likewise.
+       * sysdeps/ieee754/ldbl-opt/s_trunc.c: Likewise.
+
+2017-10-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+       * math/w_remainder.c: New file.
+       * math/w_remainderf.c: New file.
+       * math/w_remainderl.c: New file.
+
+2017-10-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf/rtld.c (BOOTSTRAP_MAP): New.
+       (RESOLVE_MAP): Replace (&bootstrap_map) with BOOTSTRAP_MAP.
+       * sysdeps/hppa/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
+       Likewise.
+       * sysdeps/ia64/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
+       Likewise.
+       * sysdeps/mips/dl-machine.h (ELF_MACHINE_BEFORE_RTLD_RELOC):
+       Likewise.
+
+2017-10-03  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * include/libc-symbols.h [NO_RTLD_HIDDEN] (rtld_hidden_proto,
+       rtld_hidden_tls_proto, rtld_hidden_def, rtld_hidden_weak,
+       rtld_hidden_rtld_hidden_ver, data_def, rtld_hidden_data_weak,
+       rtld_hidden_data_ver): Define to empty.
+       * include/assert.h [IS_IN(rtld) && NO_RTLD_HIDDEN] (__assert_fail,
+       __assert_perror_fail): Likewise.
+       * include/dirent.h [IS_IN(rtld) && NO_RTLD_HIDDEN]
+       (__rewinddir): Likewise.
+       * include/libc-internal.h [IS_IN(rtld) && NO_RTLD_HIDDEN]
+       (__profile_frequency): Likewise.
+       * include/setjmp.h (__sigsetjmp): Likewise.
+       * include/signal.h [IS_IN(rtld) && NO_RTLD_HIDDEN] (__sigaction,
+       __libc_sigaction): Likewise.
+       * include/stdlib.h [NO_RTLD_HIDDEN] (unsetenv, __strtoul_internal): Do
+       not set hidden attribute.
+       * include/string.h [IS_IN(rtld) && NO_RTLD_HIDDEN] (__stpcpy, __strdup,
+       __strerror_t, __strsep_g, memchr, memcmp, memcpy, memmove, memset,
+       rawmemchr, stpcpy, strchr, strcmp, strlen, strnlen, strsep): Likewise.
+       * include/sys/stat.h [IS_IN(rtld) && NO_RTLD_HIDDEN] (__fxstat,
+       __fxstat64, __lxstat, __lxstat64, __xstat, __xstat64,
+       __fxstatat64): Likewise.
+       * include/sys/utsname.h [IS_IN(rtld) && NO_RTLD_HIDDEN]
+       (__uname): Likewise.
+       * include/sysdeps/generic/_itoa.h [IS_IN(rtld) && NO_RTLD_HIDDEN]
+       (_itoa_upper_digits, _itoa_lower_digits): Likewise.
+       * sysdeps/mach/hurd/configure.ac (NO_HIDDEN): Do not set.
+       (NO_RTLD_HIDDEN): Set.
+       * sysdeps/mach/hurd/configure: Refresh.
+       * config.h.in: Refresh.
+
+2017-10-02  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/ieee754/dbl-64/s_atan.c: Include <libm-alias-double.h>.
+       (atan): Define using libm_alias_double.
+       * sysdeps/ieee754/dbl-64/s_tan.c: Include <libm-alias-double.h>.
+       (tan): Define using libm_alias_double.
+       * sysdeps/ieee754/ldbl-opt/s_atan.c: Remove file.
+       * sysdeps/ieee754/ldbl-opt/s_tan.c: Likewise.
+
+       * sysdeps/ieee754/dbl-64/s_atan.c (atan): Rename to __atan and
+       define as weak alias of __atan.  Do not define any aliases if
+       [__atan].
+       [NO_LONG_DOUBLE] (__atanl): Define as strong alias of __atan.
+       [NO_LONG_DOUBLE] (atanl): Define as weak alias of __atanl.
+       * sysdeps/ieee754/dbl-64/s_tan.c (tan): Rename to __tan and define
+       as weak alias of __tan.  Do not define any aliases if [__tan].
+       [NO_LONG_DOUBLE] (__tanl): Define as strong alias of __tan.
+       [NO_LONG_DOUBLE] (tanl): Define as weak alias of __tanl.
+       * sysdeps/x86_64/fpu/multiarch/s_atan-avx.c (atan): Rename to
+       __atan.
+       * sysdeps/x86_64/fpu/multiarch/s_atan-fma.c (atan): Likewise.
+       * sysdeps/x86_64/fpu/multiarch/s_atan-fma4.c (atan): Likewise.
+       * sysdeps/x86_64/fpu/multiarch/s_atan.c (atan): Rename to __atan
+       and define as weak alias of __atan.
+       * sysdeps/x86_64/fpu/multiarch/s_tan-avx.c (tan): Rename to
+       __atan.
+       * sysdeps/x86_64/fpu/multiarch/s_tan-fma.c (tan): Likewise.
+       * sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c (tan): Likewise.
+       * sysdeps/x86_64/fpu/multiarch/s_tan.c (tan): Rename to __tan and
+       define as weak alias of __tan.
+
+2017-10-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+       * math/w_lgamma.c: New file.
+       * math/w_lgammaf.c: New file.
+       * math/w_lgammal.c: New file.
+
+2017-10-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+       * sysdeps/ieee754/flt-32/e_log2f.c (__log2f): Define without wrapper.
+       * sysdeps/ieee754/flt-32/e_logf.c (__logf): Likewise
+       * sysdeps/ieee754/flt-32/e_powf.c (__powf): Likewise
+       * sysdeps/ieee754/flt-32/w_log2f.c: New file.
+       * sysdeps/ieee754/flt-32/w_logf.c: New file.
+       * sysdeps/ieee754/flt-32/w_powf.c: New file.
+       * sysdeps/i386/fpu/w_log2f.c: New file.
+       * sysdeps/i386/fpu/w_logf.c: New file.
+       * sysdeps/i386/fpu/w_powf.c: New file.
+       * sysdeps/m68k/m680x0/fpu/w_log2f.c: New file.
+       * sysdeps/m68k/m680x0/fpu/w_logf.c: New file.
+       * sysdeps/m68k/m680x0/fpu/w_powf.c: New file.
+
 2017-10-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
            H.J. Lu  <hongjiu.lu@intel.com>