mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Update.
1998-08-10 15:49 Ulrich Drepper <drepper@cygnus.com> * include/dirent.h: Protect from double inclusion. 1998-08-09 Mark Kettenis <kettenis@phys.uva.nl> * 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 <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Remove -include flag from command.
This commit is contained in:
24
ChangeLog
24
ChangeLog
@ -1,3 +1,27 @@
|
|||||||
|
1998-08-10 15:49 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* include/dirent.h: Protect from double inclusion.
|
||||||
|
|
||||||
|
1998-08-09 Mark Kettenis <kettenis@phys.uva.nl>
|
||||||
|
|
||||||
|
* 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 <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Remove
|
||||||
|
-include flag from command.
|
||||||
|
|
||||||
1998-08-10 Ulrich Drepper <drepper@cygnus.com>
|
1998-08-10 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
* nss/nss_db/db-XXX.c (_nss_db_getXXX): If buffer is too small
|
* nss/nss_db/db-XXX.c (_nss_db_getXXX): If buffer is too small
|
||||||
|
19
FAQ
19
FAQ
@ -115,6 +115,9 @@ please let me know.
|
|||||||
3.11. I get some errors with `gcc -ansi'. Isn't glibc ANSI compatible?
|
3.11. I get some errors with `gcc -ansi'. Isn't glibc ANSI compatible?
|
||||||
3.12. I can't access some functions anymore. nm shows that they do
|
3.12. I can't access some functions anymore. nm shows that they do
|
||||||
exist but linking fails nevertheless.
|
exist but linking fails nevertheless.
|
||||||
|
3.13. When using the db-2 library which comes with glibc is used in
|
||||||
|
the Perl db modules the testsuite is not passed. This did not
|
||||||
|
happen with db-1, gdbm, or ndbm.
|
||||||
|
|
||||||
4. Miscellaneous
|
4. Miscellaneous
|
||||||
|
|
||||||
@ -1159,6 +1162,22 @@ e.g. __ivaliduser). If a program uses these interfaces, it's broken. These
|
|||||||
internal interfaces might change between glibc releases or dropped
|
internal interfaces might change between glibc releases or dropped
|
||||||
completely.
|
completely.
|
||||||
|
|
||||||
|
|
||||||
|
3.13. When using the db-2 library which comes with glibc is used in
|
||||||
|
the Perl db modules the testsuite is not passed. This did not
|
||||||
|
happen with db-1, gdbm, or ndbm.
|
||||||
|
|
||||||
|
{UD} You are using an outdated copy of the DB_File Perl module. In fact db-2
|
||||||
|
finally removed the handling of zero-sized keys which was one of the features
|
||||||
|
tested by the old Perl testsuite and therefore you see an error. But this
|
||||||
|
never was documented and guaranteed, only broken programs used this feature.
|
||||||
|
|
||||||
|
Consequently db-2 does not need to support this feature and instead signals
|
||||||
|
an error which leads to easier debugging. The DB_File module maintainer
|
||||||
|
Paul Marquess <pmarquess@bfsec.bt.co.uk> acknowledged this change and fixed
|
||||||
|
the testsuite so that if you use DB_File v1.60 or later you should not have
|
||||||
|
any more problems with db-2.
|
||||||
|
|
||||||
|
|
||||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||||
|
|
||||||
|
15
FAQ.in
15
FAQ.in
@ -997,6 +997,21 @@ e.g. __ivaliduser). If a program uses these interfaces, it's broken. These
|
|||||||
internal interfaces might change between glibc releases or dropped
|
internal interfaces might change between glibc releases or dropped
|
||||||
completely.
|
completely.
|
||||||
|
|
||||||
|
?? When using the db-2 library which comes with glibc is used in
|
||||||
|
the Perl db modules the testsuite is not passed. This did not
|
||||||
|
happen with db-1, gdbm, or ndbm.
|
||||||
|
|
||||||
|
{UD} You are using an outdated copy of the DB_File Perl module. In fact db-2
|
||||||
|
finally removed the handling of zero-sized keys which was one of the features
|
||||||
|
tested by the old Perl testsuite and therefore you see an error. But this
|
||||||
|
never was documented and guaranteed, only broken programs used this feature.
|
||||||
|
|
||||||
|
Consequently db-2 does not need to support this feature and instead signals
|
||||||
|
an error which leads to easier debugging. The DB_File module maintainer
|
||||||
|
Paul Marquess <pmarquess@bfsec.bt.co.uk> acknowledged this change and fixed
|
||||||
|
the testsuite so that if you use DB_File v1.60 or later you should not have
|
||||||
|
any more problems with db-2.
|
||||||
|
|
||||||
|
|
||||||
? Miscellaneous
|
? Miscellaneous
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#include <dirent/dirent.h>
|
#ifndef _DIRENT_H
|
||||||
|
# include <dirent/dirent.h>
|
||||||
|
|
||||||
/* Now define the internal interfaces. */
|
/* Now define the internal interfaces. */
|
||||||
extern DIR *__opendir __P ((__const char *__name));
|
extern DIR *__opendir __P ((__const char *__name));
|
||||||
@ -9,3 +10,4 @@ extern int __readdir_r __P ((DIR *__dirp, struct dirent *__entry,
|
|||||||
struct dirent **__result));
|
struct dirent **__result));
|
||||||
extern __ssize_t __getdirentries __P ((int __fd, char *__buf,
|
extern __ssize_t __getdirentries __P ((int __fd, char *__buf,
|
||||||
size_t __nbytes, __off_t *__basep));
|
size_t __nbytes, __off_t *__basep));
|
||||||
|
#endif
|
||||||
|
@ -532,6 +532,7 @@ File Attributes
|
|||||||
* Testing File Access:: How to find out if your process can
|
* Testing File Access:: How to find out if your process can
|
||||||
access a file.
|
access a file.
|
||||||
* File Times:: About the time attributes of a file.
|
* File Times:: About the time attributes of a file.
|
||||||
|
* File Size:: Manually changing the size of a file.
|
||||||
|
|
||||||
Pipes and FIFOs
|
Pipes and FIFOs
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ routines := \
|
|||||||
getpgid setpgid getpgrp bsd-getpgrp setpgrp getsid setsid \
|
getpgid setpgid getpgrp bsd-getpgrp setpgrp getsid setsid \
|
||||||
getlogin getlogin_r setlogin \
|
getlogin getlogin_r setlogin \
|
||||||
pathconf sysconf fpathconf \
|
pathconf sysconf fpathconf \
|
||||||
glob fnmatch regex \
|
glob glob64 fnmatch regex \
|
||||||
confstr \
|
confstr \
|
||||||
getopt getopt1 getopt_init \
|
getopt getopt1 getopt_init \
|
||||||
sched_setp sched_getp sched_sets sched_gets sched_yield sched_primax \
|
sched_setp sched_getp sched_sets sched_gets sched_yield sched_primax \
|
||||||
|
@ -73,7 +73,7 @@ libc {
|
|||||||
__pread64; __pwrite64;
|
__pread64; __pwrite64;
|
||||||
|
|
||||||
# g*
|
# g*
|
||||||
gai_strerror; getnameinfo;
|
gai_strerror; getnameinfo; glob64; globfree64;
|
||||||
|
|
||||||
# p*
|
# p*
|
||||||
pread; pread64; pwrite; pwrite64;
|
pread; pread64; pwrite; pwrite64;
|
||||||
|
50
posix/glob.h
50
posix/glob.h
@ -77,21 +77,13 @@ extern "C" {
|
|||||||
#define GLOB_NOSPACE 1 /* Ran out of memory. */
|
#define GLOB_NOSPACE 1 /* Ran out of memory. */
|
||||||
#define GLOB_ABORTED 2 /* Read error. */
|
#define GLOB_ABORTED 2 /* Read error. */
|
||||||
#define GLOB_NOMATCH 3 /* No matches found. */
|
#define GLOB_NOMATCH 3 /* No matches found. */
|
||||||
|
#define GLOB_NOSYS 4 /* Not implemented. */
|
||||||
#ifdef _GNU_SOURCE
|
#ifdef _GNU_SOURCE
|
||||||
/* Previous versions of this file defined GLOB_ABEND instead of
|
/* Previous versions of this file defined GLOB_ABEND instead of
|
||||||
GLOB_ABORTED. Provide a compatibility definition here. */
|
GLOB_ABORTED. Provide a compatibility definition here. */
|
||||||
# define GLOB_ABEND GLOB_ABORTED
|
# define GLOB_ABEND GLOB_ABORTED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* This value is returned if the implementation does not support
|
|
||||||
`glob'. Since this is not the case here it will never be
|
|
||||||
returned but the conformance test suites still require the symbol
|
|
||||||
to be defined. */
|
|
||||||
#ifdef _XOPEN_SOURCE
|
|
||||||
# define GLOB_NOSYS (-1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Structure describing a globbing run. */
|
/* Structure describing a globbing run. */
|
||||||
#if !defined _AMIGA && !defined VMS /* Buggy compiler. */
|
#if !defined _AMIGA && !defined VMS /* Buggy compiler. */
|
||||||
struct stat;
|
struct stat;
|
||||||
@ -112,6 +104,25 @@ typedef struct
|
|||||||
int (*gl_stat) __PMT ((__const char *, struct stat *));
|
int (*gl_stat) __PMT ((__const char *, struct stat *));
|
||||||
} glob_t;
|
} glob_t;
|
||||||
|
|
||||||
|
#ifdef _LARGEFILE64_SOURCE
|
||||||
|
struct stat64;
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
size_t gl_pathc;
|
||||||
|
char **gl_pathv;
|
||||||
|
size_t gl_offs;
|
||||||
|
int gl_flags;
|
||||||
|
|
||||||
|
/* If the GLOB_ALTDIRFUNC flag is set, the following functions
|
||||||
|
are used instead of the normal file access functions. */
|
||||||
|
void (*gl_closedir) __PMT ((void *));
|
||||||
|
struct dirent64 *(*gl_readdir) __PMT ((void *));
|
||||||
|
__ptr_t (*gl_opendir) __PMT ((__const char *));
|
||||||
|
int (*gl_lstat) __PMT ((__const char *, struct stat64 *));
|
||||||
|
int (*gl_stat) __PMT ((__const char *, struct stat64 *));
|
||||||
|
} glob64_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Do glob searching for PATTERN, placing results in PGLOB.
|
/* Do glob searching for PATTERN, placing results in PGLOB.
|
||||||
The bits defined above may be set in FLAGS.
|
The bits defined above may be set in FLAGS.
|
||||||
If a directory cannot be opened or read and ERRFUNC is not nil,
|
If a directory cannot be opened or read and ERRFUNC is not nil,
|
||||||
@ -120,12 +131,33 @@ typedef struct
|
|||||||
`glob' returns GLOB_ABEND; if it returns zero, the error is ignored.
|
`glob' returns GLOB_ABEND; if it returns zero, the error is ignored.
|
||||||
If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
|
If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
|
||||||
Otherwise, `glob' returns zero. */
|
Otherwise, `glob' returns zero. */
|
||||||
|
#if _FILE_OFFSET_BITS != 64
|
||||||
extern int glob __P ((__const char *__pattern, int __flags,
|
extern int glob __P ((__const char *__pattern, int __flags,
|
||||||
int (*__errfunc) __P ((__const char *, int)),
|
int (*__errfunc) __P ((__const char *, int)),
|
||||||
glob_t *__pglob));
|
glob_t *__pglob));
|
||||||
|
|
||||||
/* Free storage allocated in PGLOB by a previous `glob' call. */
|
/* Free storage allocated in PGLOB by a previous `glob' call. */
|
||||||
extern void globfree __P ((glob_t *__pglob));
|
extern void globfree __P ((glob_t *__pglob));
|
||||||
|
#else
|
||||||
|
# if __GNUC__ >= 2
|
||||||
|
extern int glob __P ((__const char *__pattern, int __flags,
|
||||||
|
int (*__errfunc) __P ((__const char *, int)),
|
||||||
|
glob_t *__pglob)) __asm__ ("glob64");
|
||||||
|
|
||||||
|
extern void globfree __P ((glob_t *__pglob)) __asm__ ("globfree64");
|
||||||
|
# else
|
||||||
|
# define glob glob64
|
||||||
|
# define globfree globfree64
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _LARGEFILE64_SOURCE
|
||||||
|
extern int glob64 __P ((__const char *__pattern, int __flags,
|
||||||
|
int (*__errfunc) __P ((__const char *, int)),
|
||||||
|
glob64_t *__pglob));
|
||||||
|
|
||||||
|
extern void globfree64 __P ((glob64_t *__pglob));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef _GNU_SOURCE
|
#ifdef _GNU_SOURCE
|
||||||
|
@ -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.
|
/* Return nonzero if PATTERN contains any metacharacters.
|
||||||
Metacharacters can be quoted with backslashes if QUOTE is nonzero. */
|
Metacharacters can be quoted with backslashes if QUOTE is nonzero. */
|
||||||
int
|
int
|
||||||
@ -1155,8 +1157,9 @@ __glob_pattern_p (pattern, quote)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#ifdef _LIBC
|
# ifdef _LIBC
|
||||||
weak_alias (__glob_pattern_p, glob_pattern_p)
|
weak_alias (__glob_pattern_p, glob_pattern_p)
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
47
sysdeps/generic/glob64.c
Normal file
47
sysdeps/generic/glob64.c
Normal file
@ -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>
|
@ -307,7 +307,8 @@ endif
|
|||||||
|
|
||||||
$(common-objpfx)s-proto.d: $(common-objpfx)%.d: $(..)sysdeps/unix/%.S \
|
$(common-objpfx)s-proto.d: $(common-objpfx)%.d: $(..)sysdeps/unix/%.S \
|
||||||
$(wildcard $(+sysdep_dirs:%=%/syscalls.list))
|
$(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
|
common-generated += s-proto.d
|
||||||
postclean-generated += sysd-syscalls
|
postclean-generated += sysd-syscalls
|
||||||
|
@ -15,6 +15,9 @@
|
|||||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
Boston, MA 02111-1307, USA. */
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
#define glob64 __no_glob64_decl
|
||||||
|
#define globfree64 __no_globfree64_decl
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <glob.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_glob, glob, GLIBC_2.1);
|
||||||
default_symbol_version(__new_globfree, globfree, GLIBC_2.1);
|
default_symbol_version(__new_globfree, globfree, GLIBC_2.1);
|
||||||
|
|
||||||
|
weak_alias (__new_glob, glob64)
|
||||||
|
weak_alias (__new_globfree, globfree64)
|
||||||
|
1
sysdeps/unix/sysv/linux/alpha/glob64.c
Normal file
1
sysdeps/unix/sysv/linux/alpha/glob64.c
Normal file
@ -0,0 +1 @@
|
|||||||
|
/* glob64 is in glob.c */
|
18
sysdeps/unix/sysv/linux/glob64.c
Normal file
18
sysdeps/unix/sysv/linux/glob64.c
Normal file
@ -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>
|
7
sysdeps/unix/sysv/linux/sparc/sparc64/glob.c
Normal file
7
sysdeps/unix/sysv/linux/sparc/sparc64/glob.c
Normal file
@ -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)
|
1
sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c
Normal file
1
sysdeps/unix/sysv/linux/sparc/sparc64/glob64.c
Normal file
@ -0,0 +1 @@
|
|||||||
|
/* glob64 is in glob.c */
|
Reference in New Issue
Block a user