i386: Do not set internal_function
authorFlorian Weimer <fweimer@redhat.com>
Mon, 14 Aug 2017 11:03:34 +0000 (13:03 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 14 Aug 2017 13:08:48 +0000 (15:08 +0200)
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.

ChangeLog
config.h.in
sysdeps/i386/configure
sysdeps/i386/configure.ac

index ac21eae..2adb6bb 100644 (file)
--- 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.
index 2241857..014fb4e 100644 (file)
 #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
 
 #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
 
index 5b55c5a..4d6685f 100644 (file)
@@ -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
 
index 19ef33f..f7766ad 100644 (file)
@@ -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)