This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Avoid PLT references from __get_clockfreq on powerpc
- From: Andreas Schwab <schwab at linux-m68k dot org>
- To: "Ryan S. Arnold" <ryan dot arnold at gmail dot com>
- Cc: Tulio Magno Quites Machado Filho <tuliom at linux dot vnet dot ibm dot com>, libc-alpha at sourceware dot org
- Date: Fri, 12 Oct 2012 14:26:30 +0200
- Subject: [PATCH] Avoid PLT references from __get_clockfreq on powerpc
- References: <1345833351-10398-1-git-send-email-tuliom@linux.vnet.ibm.com><m2zk3tl5az.fsf@igel.home><CAAKybw_m_JcyJ=0xN31_ngoUyzz0wu47O8Uh6JQp-oV954AxTA@mail.gmail.com>
I don't think we need more protection for memmem, since mem* is already
reserved for future use.
Andreas.
* include/string.h (memmem): Declare libc hidden alias.
* string/memmem.c (memmem): Define libc hidden alias.
* sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c: Use __open,
__read, __close instead of open, read, close.
---
include/string.h | 1 +
string/memmem.c | 3 ++-
sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c | 10 +++++-----
3 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/include/string.h b/include/string.h
index f1077f6..d6d8594 100644
--- a/include/string.h
+++ b/include/string.h
@@ -89,6 +89,7 @@ libc_hidden_proto (__strtok_r)
extern char *__strsep_g (char **__stringp, const char *__delim);
libc_hidden_proto (__strsep_g)
libc_hidden_proto (strnlen)
+libc_hidden_proto (memmem)
libc_hidden_builtin_proto (memchr)
libc_hidden_builtin_proto (memcpy)
diff --git a/string/memmem.c b/string/memmem.c
index 625c9cf..06704cb 100644
--- a/string/memmem.c
+++ b/string/memmem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,92,93,94,96,97,98,2000,2004,2008 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -73,5 +73,6 @@ memmem (const void *haystack_start, size_t haystack_len,
else
return two_way_long_needle (haystack, haystack_len, needle, needle_len);
}
+libc_hidden_def (memmem)
#undef LONG_NEEDLE_THRESHOLD
diff --git a/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c b/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c
index d1e65a8..a863a27 100644
--- a/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c
+++ b/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c
@@ -1,5 +1,5 @@
/* Get frequency of the system processor. powerpc/Linux version.
- Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2000-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -46,7 +46,7 @@ __get_clockfreq (void)
&& INTERNAL_SYSCALL_ERRNO (timebase_freq, err) == ENOSYS)
#endif
{
- int fd = open ("/proc/cpuinfo", O_RDONLY);
+ int fd = __open ("/proc/cpuinfo", O_RDONLY);
if (__builtin_expect (fd != -1, 1))
{
@@ -58,7 +58,7 @@ __get_clockfreq (void)
char buf[1024];
ssize_t n;
- n = read (fd, buf, sizeof (buf));
+ n = __read (fd, buf, sizeof (buf));
if (n == sizeof (buf))
{
/* We are here because the 1st read returned exactly sizeof
@@ -76,7 +76,7 @@ __get_clockfreq (void)
while (n >= half_buf)
{
memcpy (buf, buf + half_buf, half_buf);
- n = read (fd, buf + half_buf, half_buf);
+ n = __read (fd, buf + half_buf, half_buf);
}
if (n >= 0)
n += half_buf;
@@ -108,7 +108,7 @@ __get_clockfreq (void)
}
timebase_freq = result;
}
- close (fd);
+ __close (fd);
}
}
--
1.7.12.3
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."