about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog23
-rw-r--r--dirent/alphasort.c13
-rw-r--r--dirent/alphasort64.c7
-rw-r--r--dirent/versionsort.c12
-rw-r--r--dirent/versionsort64.c7
-rw-r--r--sysdeps/unix/sysv/linux/alphasort64.c (renamed from sysdeps/unix/sysv/linux/i386/alphasort64.c)22
-rw-r--r--sysdeps/unix/sysv/linux/arm/alphasort64.c1
-rw-r--r--sysdeps/unix/sysv/linux/arm/versionsort64.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/alphasort64.c1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/versionsort64.c1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/alphasort64.c3
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/versionsort64.c3
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/alphasort64.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/versionsort64.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/alphasort64.c3
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/versionsort64.c3
-rw-r--r--sysdeps/unix/sysv/linux/versionsort64.c (renamed from sysdeps/unix/sysv/linux/i386/versionsort64.c)22
17 files changed, 69 insertions, 55 deletions
diff --git a/ChangeLog b/ChangeLog
index ef5c0359bb..ed025cc1d4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,26 @@
+2018-04-23  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	* dirent/alphasort.c (alphasort): Build iff _DIRENT_MATCHES_DIRENT64 is
+	defined.
+	* dirent/versionsort.c (versionsort): Likewise.
+	* dirent/alphasort64.c (alphasort64): Build regardless and alias to
+	alphasort if _DIRENT_MATCHES_DIRENT64 is defined.
+	* dirent/versionsort64.c (versionsort64): Likewise.
+	* sysdeps/unix/sysv/linux/i386/alphasort64.c: Remove file.
+	* sysdeps/unix/sysv/linux/arm/alphasort64.c: Likewise.
+	* sysdeps/unix/sysv/linux/arm/versionsort64.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/alphasort64.c: Likewise.
+	* sysdeps/unix/sysv/linux/m68k/versionsort64.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/alphasort64.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/versionsort64.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/versionsort64.c: Likewise.
+	* sysdeps/unix/sysv/linux/alphasort64.c: New file.
+	* sysdeps/unix/sysv/linux/versionsort64.c: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/alphasort64.c: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/versionsort64.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/alphasort64.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/versionsort64.c: Likewise.
+
 2018-04-23  Joseph Myers  <joseph@codesourcery.com>
 
 	* elf/elf.h (NT_PPC_PKEY): New macro.
diff --git a/dirent/alphasort.c b/dirent/alphasort.c
index a6cd151bd1..6b2a70770d 100644
--- a/dirent/alphasort.c
+++ b/dirent/alphasort.c
@@ -15,23 +15,14 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-/* We need to avoid the header declaration of alphasort64, because
-   the types don't match alphasort and then the compiler will
-   complain about the mismatch when we do the alias below.  */
-#define alphasort64     __renamed_alphasort64
-
 #include <dirent.h>
 
-#undef  alphasort64
-
-#include <string.h>
+#if !_DIRENT_MATCHES_DIRENT64
+# include <string.h>
 
 int
 alphasort (const struct dirent **a, const struct dirent **b)
 {
   return strcoll ((*a)->d_name, (*b)->d_name);
 }
-
-#if _DIRENT_MATCHES_DIRENT64
-weak_alias (alphasort, alphasort64)
 #endif
diff --git a/dirent/alphasort64.c b/dirent/alphasort64.c
index 3a47a97bb5..b822333fca 100644
--- a/dirent/alphasort64.c
+++ b/dirent/alphasort64.c
@@ -15,16 +15,17 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#define alphasort __no_alphasort_decl
 #include <dirent.h>
+#undef alphasort
 #include <string.h>
 
-/* alphasort.c defines alphasort64 as an alias if _DIRENT_MATCHES_DIRENT64.  */
-#if !_DIRENT_MATCHES_DIRENT64
-
 int
 alphasort64 (const struct dirent64 **a, const struct dirent64 **b)
 {
   return strcoll ((*a)->d_name, (*b)->d_name);
 }
 
+#if _DIRENT_MATCHES_DIRENT64
+weak_alias (alphasort64, alphasort)
 #endif
diff --git a/dirent/versionsort.c b/dirent/versionsort.c
index 5ec15e83e9..ca38c2dc03 100644
--- a/dirent/versionsort.c
+++ b/dirent/versionsort.c
@@ -15,16 +15,10 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-/* We need to avoid the header declaration of versionsort64, because
-   the types don't match versionsort and then the compiler will
-   complain about the mismatch when we do the alias below.  */
-#define versionsort64     __renamed_versionsort64
-
 #include <dirent.h>
 
-#undef  versionsort64
-
-#include <string.h>
+#if !_DIRENT_MATCHES_DIRENT64
+# include <string.h>
 
 int
 versionsort (const struct dirent **a, const struct dirent **b)
@@ -32,6 +26,4 @@ versionsort (const struct dirent **a, const struct dirent **b)
   return __strverscmp ((*a)->d_name, (*b)->d_name);
 }
 
-#if _DIRENT_MATCHES_DIRENT64
-weak_alias (versionsort, versionsort64)
 #endif
diff --git a/dirent/versionsort64.c b/dirent/versionsort64.c
index 7689c268a5..8f47e609d0 100644
--- a/dirent/versionsort64.c
+++ b/dirent/versionsort64.c
@@ -15,16 +15,17 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#define versionsort __no_versionsort_decl
 #include <dirent.h>
+#undef versionsort
 #include <string.h>
 
-/* versionsort.c defines a versionsort64 alias if _DIRENT_MATCHES_DIRENT64.  */
-#if !_DIRENT_MATCHES_DIRENT64
-
 int
 versionsort64 (const struct dirent64 **a, const struct dirent64 **b)
 {
   return __strverscmp ((*a)->d_name, (*b)->d_name);
 }
 
+#if !_DIRENT_MATCHES_DIRENT64
+weak_alias (versionsort64, versionsort)
 #endif
diff --git a/sysdeps/unix/sysv/linux/i386/alphasort64.c b/sysdeps/unix/sysv/linux/alphasort64.c
index ee3b00b70b..7bacdff561 100644
--- a/sysdeps/unix/sysv/linux/i386/alphasort64.c
+++ b/sysdeps/unix/sysv/linux/alphasort64.c
@@ -15,7 +15,9 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#define alphasort __no_alphasort_decl
 #include <dirent.h>
+#undef alphasort
 #include <string.h>
 
 int
@@ -24,17 +26,14 @@ __alphasort64 (const struct dirent64 **a, const struct dirent64 **b)
   return strcoll ((*a)->d_name, (*b)->d_name);
 }
 
-#include <shlib-compat.h>
-
+#if _DIRENT_MATCHES_DIRENT64
+weak_alias (__alphasort64, alphasort64)
+weak_alias (__alphasort64, alphasort)
+#else
+# include <shlib-compat.h>
 versioned_symbol (libc, __alphasort64, alphasort64, GLIBC_2_2);
-
-#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
-
-#include <olddirent.h>
-
-int
-__old_alphasort64 (const struct __old_dirent64 **a,
-		   const struct __old_dirent64 **b);
+# if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+#  include <olddirent.h>
 
 int
 attribute_compat_text_section
@@ -45,4 +44,5 @@ __old_alphasort64 (const struct __old_dirent64 **a,
 }
 
 compat_symbol (libc, __old_alphasort64, alphasort64, GLIBC_2_1);
-#endif
+# endif /* SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)  */
+#endif /* _DIRENT_MATCHES_DIRENT64  */
diff --git a/sysdeps/unix/sysv/linux/arm/alphasort64.c b/sysdeps/unix/sysv/linux/arm/alphasort64.c
deleted file mode 100644
index 0b5ae47d2f..0000000000
--- a/sysdeps/unix/sysv/linux/arm/alphasort64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/alphasort64.c>
diff --git a/sysdeps/unix/sysv/linux/arm/versionsort64.c b/sysdeps/unix/sysv/linux/arm/versionsort64.c
deleted file mode 100644
index 144b691e56..0000000000
--- a/sysdeps/unix/sysv/linux/arm/versionsort64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/versionsort64.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/alphasort64.c b/sysdeps/unix/sysv/linux/m68k/alphasort64.c
deleted file mode 100644
index 0b5ae47d2f..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/alphasort64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/alphasort64.c>
diff --git a/sysdeps/unix/sysv/linux/m68k/versionsort64.c b/sysdeps/unix/sysv/linux/m68k/versionsort64.c
deleted file mode 100644
index 144b691e56..0000000000
--- a/sysdeps/unix/sysv/linux/m68k/versionsort64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/versionsort64.c>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/alphasort64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/alphasort64.c
new file mode 100644
index 0000000000..c7de3a7547
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/alphasort64.c
@@ -0,0 +1,3 @@
+/* Although powerpc32 define _DIRENT_MATCHES_DIRENT64=0 and have compat
+   mode for 2.1, it does have a compat symbol for alphasort64.  */
+#include <dirent/alphasort64.c>
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/versionsort64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/versionsort64.c
new file mode 100644
index 0000000000..ee0e86672d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/versionsort64.c
@@ -0,0 +1,3 @@
+/* Although powerpc32 define _DIRENT_MATCHES_DIRENT64=0 and have compat
+   mode for 2.1, it does have a compat symbol for alphasort64.  */
+#include <dirent/versionsort64.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/alphasort64.c b/sysdeps/unix/sysv/linux/s390/s390-32/alphasort64.c
deleted file mode 100644
index 0b5ae47d2f..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-32/alphasort64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/alphasort64.c>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/versionsort64.c b/sysdeps/unix/sysv/linux/s390/s390-32/versionsort64.c
deleted file mode 100644
index 144b691e56..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-32/versionsort64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/versionsort64.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/alphasort64.c b/sysdeps/unix/sysv/linux/sparc/sparc32/alphasort64.c
new file mode 100644
index 0000000000..39700869fc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/alphasort64.c
@@ -0,0 +1,3 @@
+/* Although sparc32 define _DIRENT_MATCHES_DIRENT64=0 and have compat
+   mode for 2.1, it does have a compat symbol for alphasort64.  */
+#include <dirent/alphasort64.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/versionsort64.c b/sysdeps/unix/sysv/linux/sparc/sparc32/versionsort64.c
new file mode 100644
index 0000000000..b195442ce1
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/versionsort64.c
@@ -0,0 +1,3 @@
+/* Although sparc32 define _DIRENT_MATCHES_DIRENT64=0 and have compat
+   mode for 2.1, it does have a compat symbol for alphasort64.  */
+#include <dirent/versionsort64.c>
diff --git a/sysdeps/unix/sysv/linux/i386/versionsort64.c b/sysdeps/unix/sysv/linux/versionsort64.c
index 1777eb297f..a3a3a6655a 100644
--- a/sysdeps/unix/sysv/linux/i386/versionsort64.c
+++ b/sysdeps/unix/sysv/linux/versionsort64.c
@@ -15,7 +15,9 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#define versionsort __no_versionsort_decl
 #include <dirent.h>
+#undef versionsort
 #include <string.h>
 
 int
@@ -24,17 +26,14 @@ __versionsort64 (const struct dirent64 **a, const struct dirent64 **b)
   return __strverscmp ((*a)->d_name, (*b)->d_name);
 }
 
-#include <shlib-compat.h>
-
+#if _DIRENT_MATCHES_DIRENT64
+weak_alias (__versionsort64, versionsort64)
+weak_alias (__versionsort64, versionsort)
+#else
+# include <shlib-compat.h>
 versioned_symbol (libc, __versionsort64, versionsort64, GLIBC_2_2);
-
-#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
-
-#include <olddirent.h>
-
-int
-__old_versionsort64 (const struct __old_dirent64 **a,
-		     const struct __old_dirent64 **b);
+# if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+#  include <olddirent.h>
 
 int
 attribute_compat_text_section
@@ -45,4 +44,5 @@ __old_versionsort64 (const struct __old_dirent64 **a,
 }
 
 compat_symbol (libc, __old_versionsort64, versionsort64, GLIBC_2_1);
-#endif
+# endif /* SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)  */
+#endif /* _DIRENT_MATCHES_DIRENT64  */