summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2017-08-15 14:46:19 +0200
committerFlorian Weimer <fweimer@redhat.com>2017-08-15 14:51:55 +0200
commit4ebf934e34c947ed50d0a3ff68c40bc72e50ecc9 (patch)
treef150a13f161032ddc897d50997ea2c22a712a4d8
parente9f57484aa18dff76dcad7a3943f08bb7affb840 (diff)
downloadglibc-4ebf934e34c947ed50d0a3ff68c40bc72e50ecc9.tar.gz
i386: Replace internal_function attribute for __mcount_internal
__mcount_internal is called from assembler code. Use an explicit regparm attribute to pass both arguments in registers, to match what used to happen with internal_function before commit fbdc1e3e8de7f49e439b6e274d3e7e07da78416e (i386: Do not set internal_function).
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/i386/machine-gmon.h8
2 files changed, 11 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index b540c5f995..8f072e701b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-08-15 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/i386/machine-gmon.h (mcount_internal): Declare with
+ regparm (2) instead of internal_function.
+ (_MCOUNT_DECL): Adjust.
+
2017-08-15 Stefan Liebler <stli@linux.vnet.ibm.com>
* sysdeps/s390/dl-procinfo.c (_dl_s390_cap_flags): Add z14.
diff --git a/sysdeps/i386/machine-gmon.h b/sysdeps/i386/machine-gmon.h
index d5d8cdf7c6..3e90b8c0c7 100644
--- a/sysdeps/i386/machine-gmon.h
+++ b/sysdeps/i386/machine-gmon.h
@@ -29,10 +29,12 @@
/* We must not pollute the global namespace. */
#define mcount_internal __mcount_internal
-extern void mcount_internal (u_long frompc, u_long selfpc) internal_function;
+extern void mcount_internal (u_long frompc, u_long selfpc)
+ __attribute__ ((regparm (2)));
-#define _MCOUNT_DECL(frompc, selfpc) \
-void internal_function mcount_internal (u_long frompc, u_long selfpc)
+#define _MCOUNT_DECL(frompc, selfpc) \
+ __attribute__ ((regparm (2))) \
+void mcount_internal (u_long frompc, u_long selfpc)
/* Define MCOUNT as empty since we have the implementation in another