/* Define if the compiler\'s exception support is based on libunwind. */
#undef HAVE_CC_WITH_LIBUNWIND
-/* Define if the access to static and hidden variables is position independent
- and does not need relocations. */
-#undef PI_STATIC_AND_HIDDEN
+/* Define if the accesses to static and hidden variables in a shared object
+ need dynamic relocations. */
+#undef HIDDEN_VAR_NEEDS_DYNAMIC_RELOC
/* Define this to disable the 'hidden_proto' et al macros in
include/libc-symbols.h that avoid PLT slots in PIE. */
is fine, too. The latter is important here. We can avoid setting
up a temporary link map for ld.so if we can mark _rtld_global as
hidden. */
-#ifdef PI_STATIC_AND_HIDDEN
+#ifndef HIDDEN_VAR_NEEDS_DYNAMIC_RELOC
# define DONT_USE_BOOTSTRAP_MAP 1
#endif
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/aarch64.
-# Static and hidden objects are accessed without dynamic relocations.
-# The exception is -mcmodel=large which is unsupported with PIC/PIE.
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
-
# Static PIE is supported.
$as_echo "#define SUPPORT_STATIC_PIE 1" >>confdefs.h
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/aarch64.
-# Static and hidden objects are accessed without dynamic relocations.
-# The exception is -mcmodel=large which is unsupported with PIC/PIE.
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
-
# Static PIE is supported.
AC_DEFINE(SUPPORT_STATIC_PIE)
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/alpha.
-# With required gcc+binutils, we can always access static and hidden
-# symbols in a position independent way.
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
-
# PIE builds fail on binutils 2.37 and earlier, see:
# https://sourceware.org/bugzilla/show_bug.cgi?id=28672
$as_echo "#define PIE_UNSUPPORTED 1" >>confdefs.h
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/alpha.
-# With required gcc+binutils, we can always access static and hidden
-# symbols in a position independent way.
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
-
# PIE builds fail on binutils 2.37 and earlier, see:
# https://sourceware.org/bugzilla/show_bug.cgi?id=28672
AC_DEFINE(PIE_UNSUPPORTED)
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/arc.
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
libc_cv_have_sdata_section=no
# For ARC, historically ; was used for comments and not newline
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/arc.
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
libc_cv_have_sdata_section=no
# For ARC, historically ; was used for comments and not newline
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/arm.
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
-
# We check to see if the compiler and flags are
# selecting the hard-float ABI and if they are then
# we set libc_cv_arm_pcs_vfp to yes which causes
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/arm.
-dnl It is always possible to access static and hidden symbols in an
-dnl position independent way. This has been true since GCC 4.1,
-dnl which is older than the minimum version required to build libc.
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
-
# We check to see if the compiler and flags are
# selecting the hard-float ABI and if they are then
# we set libc_cv_arm_pcs_vfp to yes which causes
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/csky.
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
-
# PIE builds fail on binutils 2.37 and earlier, see:
# https://sourceware.org/bugzilla/show_bug.cgi?id=28672
$as_echo "#define PIE_UNSUPPORTED 1" >>confdefs.h
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/csky.
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
-
# PIE builds fail on binutils 2.37 and earlier, see:
# https://sourceware.org/bugzilla/show_bug.cgi?id=28672
AC_DEFINE(PIE_UNSUPPORTED)
_ACEOF
+$as_echo "#define HIDDEN_VAR_NEEDS_DYNAMIC_RELOC 1" >>confdefs.h
+
+
# PIE builds fail on binutils 2.37 and earlier, see:
# https://sourceware.org/bugzilla/show_bug.cgi?id=28672
$as_echo "#define PIE_UNSUPPORTED 1" >>confdefs.h
rm -f conftest*])
AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
+AC_DEFINE(HIDDEN_VAR_NEEDS_DYNAMIC_RELOC)
+
# PIE builds fail on binutils 2.37 and earlier, see:
# https://sourceware.org/bugzilla/show_bug.cgi?id=28672
AC_DEFINE(PIE_UNSUPPORTED)
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/ia64.
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
-
# PIE builds fail on binutils 2.37 and earlier, see:
# https://sourceware.org/bugzilla/show_bug.cgi?id=28672
$as_echo "#define PIE_UNSUPPORTED 1" >>confdefs.h
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/ia64.
-dnl It is always possible to access static and hidden symbols in an
-dnl position independent way.
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
-
# PIE builds fail on binutils 2.37 and earlier, see:
# https://sourceware.org/bugzilla/show_bug.cgi?id=28672
AC_DEFINE(PIE_UNSUPPORTED)
--- /dev/null
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/m68k.
+
+# Accessing static and hidden variables in a shared object needs relative
+# relocation.
+$as_echo "#define HIDDEN_VAR_NEEDS_DYNAMIC_RELOC 1" >>confdefs.h
+
--- /dev/null
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/m68k.
+
+# Accessing static and hidden variables in a shared object needs relative
+# relocation.
+AC_DEFINE(HIDDEN_VAR_NEEDS_DYNAMIC_RELOC)
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/microblaze.
+$as_echo "#define HIDDEN_VAR_NEEDS_DYNAMIC_RELOC 1" >>confdefs.h
+
+
# gcc 11.2.1 and earlier crash with an internal compiler error, see:
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103613
$as_echo "#define PIE_UNSUPPORTED 1" >>confdefs.h
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/microblaze.
+AC_DEFINE(HIDDEN_VAR_NEEDS_DYNAMIC_RELOC)
+
# gcc 11.2.1 and earlier crash with an internal compiler error, see:
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103613
AC_DEFINE(PIE_UNSUPPORTED)
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/mips.
+$as_echo "#define HIDDEN_VAR_NEEDS_DYNAMIC_RELOC 1" >>confdefs.h
+
dnl No MIPS GCC supports accessing static and hidden symbols in an
dnl position independent way.
-dnl AC_DEFINE(PI_STATIC_AND_HIDDEN)
+AC_DEFINE(HIDDEN_VAR_NEEDS_DYNAMIC_RELOC)
AC_CACHE_CHECK([whether the compiler is using the 2008 NaN encoding],
libc_cv_mips_nan2008, [AC_EGREP_CPP(yes, [dnl
if test $libc_cv_nios2_be = yes; then
as_fn_error $? "Big endian not supported for Nios II" "$LINENO" 5
fi
+
+$as_echo "#define HIDDEN_VAR_NEEDS_DYNAMIC_RELOC 1" >>confdefs.h
+
if test $libc_cv_nios2_be = yes; then
AC_MSG_ERROR([Big endian not supported for Nios II])
fi
+
+AC_DEFINE(HIDDEN_VAR_NEEDS_DYNAMIC_RELOC)
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/or1k.
-
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/or1k.
-
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/powerpc/powerpc32.
+$as_echo "#define HIDDEN_VAR_NEEDS_DYNAMIC_RELOC 1" >>confdefs.h
+
+
# See whether GCC uses -msecure-plt.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -msecure-plt by default" >&5
$as_echo_n "checking for -msecure-plt by default... " >&6; }
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/powerpc/powerpc32.
+AC_DEFINE(HIDDEN_VAR_NEEDS_DYNAMIC_RELOC)
+
# See whether GCC uses -msecure-plt.
AC_CACHE_CHECK(for -msecure-plt by default, libc_cv_ppc_secure_plt, [dnl
echo 'int foo (void) { extern int bar; return bar; }' > conftest.c
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/powerpc/powerpc64.
+$as_echo "#define HIDDEN_VAR_NEEDS_DYNAMIC_RELOC 1" >>confdefs.h
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for support for overlapping .opd entries" >&5
$as_echo_n "checking for support for overlapping .opd entries... " >&6; }
if ${libc_cv_overlapping_opd+:} false; then :
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/powerpc/powerpc64.
+AC_DEFINE(HIDDEN_VAR_NEEDS_DYNAMIC_RELOC)
+
AC_CACHE_CHECK(for support for overlapping .opd entries,
libc_cv_overlapping_opd, [dnl
libc_cv_overlapping_opd=no
if (&bar == bar_ptr)
printf ("PASS: bar address read from IFUNC resolver is correct.\n");
#if !defined TST_TLSIFUNC_STATIC || !defined PIC \
- || !defined PI_STATIC_AND_HIDDEN
+ || defined HIDDEN_VAR_NEEDS_DYNAMIC_RELOC
else
{
printf ("FAIL: bar address read from IFUNC resolver is incorrect.\n");
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/riscv/elf.
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
-
# Check if static linker supports R_RISCV_ALIGN
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for R_RISCV_ALIGN linker relaxation support" >&5
$as_echo_n "checking for R_RISCV_ALIGN linker relaxation support... " >&6; }
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/riscv/elf.
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
-
# Check if static linker supports R_RISCV_ALIGN
AC_CACHE_CHECK([for R_RISCV_ALIGN linker relaxation support], [libc_cv_riscv_r_align],[dnl
cat > conftest.S <<EOF
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/s390.
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_tbegin" >&5
$as_echo_n "checking for __builtin_tbegin... " >&6; }
if ${libc_cv_gcc_builtin_tbegin+:} false; then :
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/s390.
-dnl It is always possible to access static and hidden symbols in an
-dnl position independent way.
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
-
AC_CACHE_CHECK(for __builtin_tbegin, libc_cv_gcc_builtin_tbegin, [dnl
cat > conftest.c <<\EOF
#include <htmintrin.h>
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/sh.
-
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/sh.
-
-dnl It is always possible to access static and hidden symbols in an
-dnl position independent way.
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/sparc.
-
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/sparc.
-
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
config_vars="$config_vars
enable-x86-isa-level = $libc_cv_include_x86_isa_level"
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
-
$as_echo "#define SUPPORT_STATIC_PIE 1" >>confdefs.h
fi
LIBC_CONFIG_VAR([enable-x86-isa-level], [$libc_cv_include_x86_isa_level])
-dnl It is always possible to access static and hidden symbols in an
-dnl position independent way.
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
-
dnl Static PIE is supported.
AC_DEFINE(SUPPORT_STATIC_PIE)