about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/glob.c5
-rw-r--r--sysdeps/generic/glob64.c47
-rw-r--r--sysdeps/unix/Makefile3
-rw-r--r--sysdeps/unix/sysv/linux/alpha/glob.c6
-rw-r--r--sysdeps/unix/sysv/linux/alpha/glob64.c1
-rw-r--r--sysdeps/unix/sysv/linux/glob64.c18
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/glob.c7
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c1
8 files changed, 86 insertions, 2 deletions
diff --git a/sysdeps/generic/glob.c b/sysdeps/generic/glob.c
index 5fc094ebe7..626b0914bc 100644
--- a/sysdeps/generic/glob.c
+++ b/sysdeps/generic/glob.c
@@ -1121,6 +1121,8 @@ prefix_array (dirname, array, n)
 }
 
 
+/* We must not compile this function twice.  */
+#if !defined _LIBC || !defined glob
 /* Return nonzero if PATTERN contains any metacharacters.
    Metacharacters can be quoted with backslashes if QUOTE is nonzero.  */
 int
@@ -1155,8 +1157,9 @@ __glob_pattern_p (pattern, quote)
 
   return 0;
 }
-#ifdef _LIBC
+# ifdef _LIBC
 weak_alias (__glob_pattern_p, glob_pattern_p)
+# endif
 #endif
 
 
diff --git a/sysdeps/generic/glob64.c b/sysdeps/generic/glob64.c
new file mode 100644
index 0000000000..6e1b835f8d
--- /dev/null
+++ b/sysdeps/generic/glob64.c
@@ -0,0 +1,47 @@
+/* Copyright (C) 1998 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
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* Do glob searching for PATTERN, placing results in PGLOB.
+   The bits defined above may be set in FLAGS.
+   If a directory cannot be opened or read and ERRFUNC is not nil,
+   it is called with the pathname that caused the error, and the
+   `errno' value from the failing call; if it returns non-zero
+   `glob' returns GLOB_ABORTED; if it returns zero, the error is ignored.
+   If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
+   Otherwise, `glob' returns zero.  */
+int
+glob64 (const char *pattern, int flags,
+	int (*errfunc) (const char *, int), glib64_t *pglob);
+{
+  if (pattern == NULL || pglob == NULL || (flags & ~__GLOB_FLAGS) != 0)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  __set_errno (ENOSYS);
+  return GLOB_NOSYS;
+}
+
+void
+globfree64 (glob64_t *pglob)
+{
+}
+
+stub_warning (glob64)
+#include <stub-tag.h>
diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile
index 18bd88b614..9727844897 100644
--- a/sysdeps/unix/Makefile
+++ b/sysdeps/unix/Makefile
@@ -307,7 +307,8 @@ endif
 
 $(common-objpfx)s-proto.d: $(common-objpfx)%.d: $(..)sysdeps/unix/%.S \
 			   $(wildcard $(+sysdep_dirs:%=%/syscalls.list))
-	$(+make-deps)
+# Don't try to use compat.h in the db2 subdir
+	$(subst -include ./compat.h,,$(+make-deps))
 
 common-generated += s-proto.d
 postclean-generated += sysd-syscalls
diff --git a/sysdeps/unix/sysv/linux/alpha/glob.c b/sysdeps/unix/sysv/linux/alpha/glob.c
index 5baa0aea78..311a923026 100644
--- a/sysdeps/unix/sysv/linux/alpha/glob.c
+++ b/sysdeps/unix/sysv/linux/alpha/glob.c
@@ -15,6 +15,9 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
+#define glob64 __no_glob64_decl
+#define globfree64 __no_globfree64_decl
+
 #include <sys/types.h>
 #include <glob.h>
 
@@ -37,3 +40,6 @@ extern void __new_globfree (glob_t *__pglob);
 
 default_symbol_version(__new_glob, glob, GLIBC_2.1);
 default_symbol_version(__new_globfree, globfree, GLIBC_2.1);
+
+weak_alias (__new_glob, glob64)
+weak_alias (__new_globfree, globfree64)
diff --git a/sysdeps/unix/sysv/linux/alpha/glob64.c b/sysdeps/unix/sysv/linux/alpha/glob64.c
new file mode 100644
index 0000000000..33918ea6a5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/glob64.c
@@ -0,0 +1 @@
+/* glob64 is in glob.c */
diff --git a/sysdeps/unix/sysv/linux/glob64.c b/sysdeps/unix/sysv/linux/glob64.c
new file mode 100644
index 0000000000..022ae54848
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/glob64.c
@@ -0,0 +1,18 @@
+#include <dirent.h>
+#include <glob.h>
+#include <sys/stat.h>
+
+#define dirent dirent64
+#define __readdir(dirp) __readdir64 (dirp)
+
+#define glob_t glob64_t
+#define glob(pattern, flags, errfunc, pglob) \
+  glob64 (pattern, flags, errfunc, pglob)
+#define globfree(pglob) globfree64 (pglob)
+
+#undef stat
+#define stat stat64
+#undef __stat
+#define __stat(file, buf) stat64 (file, buf)
+
+#include <sysdeps/generic/glob.c>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/glob.c b/sysdeps/unix/sysv/linux/sparc/sparc64/glob.c
new file mode 100644
index 0000000000..b6da989e57
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/glob.c
@@ -0,0 +1,7 @@
+#define glob64 __no_glob64_decl
+#define globfree64 __no_globfree64_decl
+#include <sysdeps/generic/glob.c>
+#undef glob64
+#undef globfree64
+weak_alias (glob, glob64)
+weak_alias (globfree, globfree64)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c
new file mode 100644
index 0000000000..33918ea6a5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c
@@ -0,0 +1 @@
+/* glob64 is in glob.c */