Use libc_hidden_* for strtoumax (bug 15105)

Message ID alpine.DEB.2.20.1802271756470.14335@digraph.polyomino.org.uk
State New
Headers show
Series
  • Use libc_hidden_* for strtoumax (bug 15105)
Related show

Commit Message

Joseph Myers Feb. 27, 2018, 5:57 p.m.
On sparc, localplt test failures appear when building with -Os because
of a call to strtoumax from
sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c, and strtoumax
is not inlined when building with -Os.  This patch fixes those
failures by using libc_hidden_proto and libc_hidden_def for strtoumax.

Tested with build-many-glibcs.py for
sparc64-linux-gnu-disable-multi-arch, sparc64-linux-gnu,
sparcv9-linux-gnu-disable-multi-arch, sparcv9-linux-gnu that this
fixes that test failure with -Os.

2018-02-27  Joseph Myers  <joseph@codesourcery.com>

	[BZ #15105]
	* sysdeps/wordsize-32/strtoumax.c (strtoumax): Use
	libc_hidden_def.
	* sysdeps/wordsize-64/strtoumax.c (strtoumax): Likewise.
	* include/inttypes.h: New file.


-- 
Joseph S. Myers
joseph@codesourcery.com

Comments

Andreas Schwab Feb. 28, 2018, 10:20 a.m. | #1
On Feb 27 2018, Joseph Myers <joseph@codesourcery.com> wrote:

> 	[BZ #15105]

> 	* sysdeps/wordsize-32/strtoumax.c (strtoumax): Use

> 	libc_hidden_def.

> 	* sysdeps/wordsize-64/strtoumax.c (strtoumax): Likewise.

> 	* include/inttypes.h: New file.


Ok.

Andreas.

-- 
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."

Patch

diff --git a/include/inttypes.h b/include/inttypes.h
new file mode 100644
index 0000000..33219e2
--- /dev/null
+++ b/include/inttypes.h
@@ -0,0 +1,6 @@ 
+#ifndef _INTTYPES_H
+#include_next <inttypes.h>
+#ifndef _ISOMAC
+libc_hidden_proto (strtoumax)
+#endif
+#endif
diff --git a/sysdeps/wordsize-32/strtoumax.c b/sysdeps/wordsize-32/strtoumax.c
index 7f19ff0..cabd4d8 100644
--- a/sysdeps/wordsize-32/strtoumax.c
+++ b/sysdeps/wordsize-32/strtoumax.c
@@ -25,3 +25,4 @@  strtoumax (const char *__restrict nptr, char **__restrict endptr, int base)
 {
   return __strtoull_internal (nptr, endptr, base, 0);
 }
+libc_hidden_def (strtoumax)
diff --git a/sysdeps/wordsize-64/strtoumax.c b/sysdeps/wordsize-64/strtoumax.c
index bc7dd43..0446845 100644
--- a/sysdeps/wordsize-64/strtoumax.c
+++ b/sysdeps/wordsize-64/strtoumax.c
@@ -25,3 +25,4 @@  strtoumax (const char *__restrict nptr, char **__restrict endptr, int base)
 {
   return __strtoul_internal (nptr, endptr, base, 0);
 }
+libc_hidden_def (strtoumax)