diff options
author | Florian Weimer <fweimer@redhat.com> | 2017-08-14 13:03:34 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2017-08-14 15:08:48 +0200 |
commit | fbdc1e3e8de7f49e439b6e274d3e7e07da78416e (patch) | |
tree | bd3815984855006dfdb547703a24a3f6607bd733 | |
parent | b3f85fd2e43b1d69384396a6d99fa2135dbf46e3 (diff) | |
download | glibc-fbdc1e3e8de7f49e439b6e274d3e7e07da78416e.tar.gz glibc-fbdc1e3e8de7f49e439b6e274d3e7e07da78416e.tar.xz glibc-fbdc1e3e8de7f49e439b6e274d3e7e07da78416e.zip |
i386: Do not set internal_function
All calls to functions with the internal_function attribute have been removed from assembler implementations, which means that the definition of internal_function can be changed at the C level without causing ABI issues with assembler code. _dl_fixup still uses a regparm calling convention on i386, but this is controlled through ARCH_FIXUP_ATTRIBUTE, not internal_function.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | config.h.in | 10 | ||||
-rw-r--r-- | sysdeps/i386/configure | 3 | ||||
-rw-r--r-- | sysdeps/i386/configure.ac | 2 |
4 files changed, 7 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog index ac21eae713..2adb6bb293 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2017-08-14 Florian Weimer <fweimer@redhat.com> + i386: Do not set internal_function. + * config.h.in (USE_REGPARMS, internal_function): Remove. + * sysdeps/i386/configure.ac (USE_REGPARMS): Likewise. + * sysdeps/i386/configure (USE_REGPARMS): Likewise. + +2017-08-14 Florian Weimer <fweimer@redhat.com> + * elf/dl-init.c (_dl_init): Remove internal_function. * sysdeps/generic/ldsodefs.h (_dl_init): Likewise. * sysdeps/i386/dl-machine.h (RTLD_START): Adjust call to _dl_init. diff --git a/config.h.in b/config.h.in index 22418576a0..014fb4ea0e 100644 --- a/config.h.in +++ b/config.h.in @@ -47,10 +47,6 @@ #undef STACK_PROTECTOR_LEVEL #endif -/* Define if the regparm attribute shall be used for local functions - (gcc on ix86 only). */ -#undef USE_REGPARMS - /* Defined on SPARC if GCC emits GOTDATA relocations. */ #undef HAVE_GCC_GOTDATA @@ -100,12 +96,6 @@ #undef HAVE_AARCH64_BE -/* Defined to some form of __attribute__ ((...)) if the compiler supports - a different, more efficient calling convention. */ -#if defined USE_REGPARMS && !defined PROF -# define internal_function __attribute__ ((regparm (3), stdcall)) -#endif - /* Linux specific: minimum supported kernel version. */ #undef __LINUX_KERNEL_VERSION diff --git a/sysdeps/i386/configure b/sysdeps/i386/configure index 5b55c5affe..4d6685f7c2 100644 --- a/sysdeps/i386/configure +++ b/sysdeps/i386/configure @@ -77,8 +77,5 @@ if test $libc_cv_asm_mpx = yes; then fi -$as_echo "#define USE_REGPARMS 1" >>confdefs.h - - $as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h diff --git a/sysdeps/i386/configure.ac b/sysdeps/i386/configure.ac index 19ef33f34a..f7766ad2b8 100644 --- a/sysdeps/i386/configure.ac +++ b/sysdeps/i386/configure.ac @@ -45,8 +45,6 @@ if test $libc_cv_asm_mpx = yes; then AC_DEFINE(HAVE_MPX_SUPPORT) fi -AC_DEFINE(USE_REGPARMS) - dnl It is always possible to access static and hidden symbols in an dnl position independent way. AC_DEFINE(PI_STATIC_AND_HIDDEN) |