From a5f4e34a264b7cd296f8ca890ca4eaa1d0f99317 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 10 Aug 1998 15:54:54 +0000 Subject: Update. 1998-08-10 15:49 Ulrich Drepper * include/dirent.h: Protect from double inclusion. 1998-08-09 Mark Kettenis * posix/glob.h: Add LFS support for glob and globfree. * posix/Versions [GLIBC_2.1]: Add glob64 and globfree64. * posix/Makefile (routines): Add glob64. * sysdeps/generic/glob64.c: New file. * sysdeps/unix/sysv/linux/glob64.c: New file. * sysdeps/unix/sysv/linux/alpha/glob64.c: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c: New file. * sysdeps/generic/glob.c [_LIBC && glob] (__glob_pattern_p): Elide function. * sysdeps/unix/sysv/linux/alpha/glob.c: Add glob64 as a weak alias for __new_glob. Likewise for globfree64. * sysdeps/unix/sysv/linux/sparc/sparc64/glob.c: New file. 1998-08-09 Andreas Schwab * sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Remove -include flag from command. --- sysdeps/generic/glob.c | 5 ++- sysdeps/generic/glob64.c | 47 ++++++++++++++++++++++++++ sysdeps/unix/Makefile | 3 +- sysdeps/unix/sysv/linux/alpha/glob.c | 6 ++++ sysdeps/unix/sysv/linux/alpha/glob64.c | 1 + sysdeps/unix/sysv/linux/glob64.c | 18 ++++++++++ sysdeps/unix/sysv/linux/sparc/sparc64/glob.c | 7 ++++ sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c | 1 + 8 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 sysdeps/generic/glob64.c create mode 100644 sysdeps/unix/sysv/linux/alpha/glob64.c create mode 100644 sysdeps/unix/sysv/linux/glob64.c create mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/glob.c create mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c (limited to 'sysdeps') diff --git a/sysdeps/generic/glob.c b/sysdeps/generic/glob.c index 5fc094e..626b091 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 0000000..6e1b835 --- /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 diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile index 18bd88b..9727844 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 5baa0ae..311a923 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 #include @@ -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 0000000..33918ea --- /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 0000000..022ae54 --- /dev/null +++ b/sysdeps/unix/sysv/linux/glob64.c @@ -0,0 +1,18 @@ +#include +#include +#include + +#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 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 0000000..b6da989 --- /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 +#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 0000000..33918ea --- /dev/null +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c @@ -0,0 +1 @@ +/* glob64 is in glob.c */ -- cgit v1.1