diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/glob.c | 5 | ||||
-rw-r--r-- | sysdeps/generic/glob64.c | 47 | ||||
-rw-r--r-- | sysdeps/unix/Makefile | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/glob.c | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/glob64.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/glob64.c | 18 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/glob.c | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c | 1 |
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 */ |