about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2017-09-28 00:41:02 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2017-09-28 00:49:59 +0200
commit64a4af28a62e9f305c82bc9649bbe065fffdeb0d (patch)
tree70b8b85f7ac1b13ac568e446ebd433c945295cf2
parent52a1f1814ef530d8c78442f2bcaf28f4f2575790 (diff)
downloadglibc-64a4af28a62e9f305c82bc9649bbe065fffdeb0d.tar.gz
glibc-64a4af28a62e9f305c82bc9649bbe065fffdeb0d.tar.xz
glibc-64a4af28a62e9f305c82bc9649bbe065fffdeb0d.zip
hurd: Fix `seekdir' symbol exposition from `rewinddir'
`seekdir' is MISC || XOPEN, it should not be exposed along `rewinddir' which
is POSIX.

	* include/dirent.h (__seekdir): New declaration.
	* sysdeps/mach/hurd/seekdir.c (seekdir): Rename to __seekdir and
	redefine as weak alias.
	* sysdeps/mach/hurd/rewinddir.c (__rewinddir): Use __seekdir instead
	of seekdir.
-rw-r--r--ChangeLog5
-rw-r--r--include/dirent.h1
-rw-r--r--sysdeps/mach/hurd/rewinddir.c2
-rw-r--r--sysdeps/mach/hurd/seekdir.c5
4 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ff321d7e2b..737dc8f808 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,11 @@
 	* sysdeps/mach/hurd/revoke.c (revoke): Likewise.
 	* sysdeps/unix/bsd/unlockpt.c (unlockpt): Use __revoke instead of
 	revoke.
+	* include/dirent.h (__seekdir): New declaration.
+	* sysdeps/mach/hurd/seekdir.c (seekdir): Rename to __seekdir and
+	redefine as weak alias.
+	* sysdeps/mach/hurd/rewinddir.c (__rewinddir): Use __seekdir instead
+	of seekdir.
 
 2017-09-26  H.J. Lu  <hongjiu.lu@intel.com>
 
diff --git a/include/dirent.h b/include/dirent.h
index 5720d589a2..d7dbf83964 100644
--- a/include/dirent.h
+++ b/include/dirent.h
@@ -46,6 +46,7 @@ extern int __versionsort64 (const struct dirent64 **a,
 extern DIR *__alloc_dir (int fd, bool close_fd, int flags,
 			 const struct stat64 *statp) attribute_hidden;
 extern __typeof (rewinddir) __rewinddir;
+extern __typeof (seekdir) __seekdir;
 extern __typeof (dirfd) __dirfd;
 
 extern void __scandir_cancel_handler (void *arg) attribute_hidden;
diff --git a/sysdeps/mach/hurd/rewinddir.c b/sysdeps/mach/hurd/rewinddir.c
index b6791d95c3..84aa87c961 100644
--- a/sysdeps/mach/hurd/rewinddir.c
+++ b/sysdeps/mach/hurd/rewinddir.c
@@ -24,7 +24,7 @@
 void
 __rewinddir (DIR *dirp)
 {
-  seekdir (dirp, (off_t) 0L);
+  __seekdir (dirp, (off_t) 0L);
 }
 libc_hidden_def (__rewinddir)
 weak_alias (__rewinddir, rewinddir)
diff --git a/sysdeps/mach/hurd/seekdir.c b/sysdeps/mach/hurd/seekdir.c
index 8d3020b02c..68f7ce07c5 100644
--- a/sysdeps/mach/hurd/seekdir.c
+++ b/sysdeps/mach/hurd/seekdir.c
@@ -22,9 +22,8 @@
 #include "dirstream.h"
 
 /* Seek to position POS in DIRP.  */
-/* XXX should be __seekdir ? */
 void
-seekdir (DIR *dirp, long int pos)
+__seekdir (DIR *dirp, long int pos)
 {
   __libc_lock_lock (dirp->__lock);
   /* Change our entry index pointer to POS and discard any data already
@@ -35,3 +34,5 @@ seekdir (DIR *dirp, long int pos)
   dirp->__size = 0;
   __libc_lock_unlock (dirp->__lock);
 }
+
+weak_alias (__seekdir, seekdir)