1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00
* version.h (VERSION): Bump to 2.0.99.

	* posix/fnmath.h: Don't redefine __P when used in glibc.
	* posix/glob.h: Likewise.

	* inet/rcmd.c (__ivaliduser2): Fix memory leak.
	Patch by Dick Streefland <dick_streefland@tasking.com>.

	* stdio-common/tst-ungetc.c: Add more test cases.

	* sysdeps/unix/sysv/linux/Dist: Add linux_fsinfo.h.
	* sysdeps/unix/sysv/linux/fstatvfs.c: Move filesystem magic number
	definitions to ...
	* sysdeps/unix/sysv/linux/linux_fsinfo.h: ...here.  New file.
	* sysdeps/unix/sysv/linux/fpathconf.c: New file.
	* sysdeps/unix/sysv/linux/pathconf.c: New file.
	* sysdeps/unix/sysv/linux/alpha/fpathconf.c: Handle _PC_LINK_MAX here.
	* sysdeps/unix/sysv/linux/alpha/pathconf.c: Likewise.

1998-10-20  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: Include
	<asm/ptrace.h> to define struct pt_regs.
	* sysdeps/unix/sysv/linux/arm/profil-counter.h: Don't bother
	including <asm/ptrace.h> here.

	* sysdeps/unix/sysv/linux/arm/sysdep.S: Remove spurious call to
	C_SYMBOL_NAME macro.

1998-10-23  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/generic/sys/ptrace.h (__ptrace_request): Remove comma at
	end of enumerator list.
	* sysdeps/unix/sysv/linux/sys/ptrace.h (__ptrace_request): Likewise.
	* posix/wordexp.h: Likewise.

	* db/db.h: Use __PMT instead of __P in typedefs.
	* db/mpool.h: Likewise.
	* sysdeps/generic/bits/siginfo.h: Likewise.
	* nis/rpcsvc/ypclnt.h: Likewise.

1998-10-23  Ulrich Drepper  <drepper@cygnus.com>
This commit is contained in:
Ulrich Drepper
1998-10-23 13:44:50 +00:00
parent d6787ff257
commit 24f25de656
24 changed files with 407 additions and 75 deletions

View File

@ -7,6 +7,7 @@ kernel_stat.h
kernel_termios.h
ldd-rewrite.sed
lddlibc4.c
linux_fsinfo.h
llseek.c
s_pread64.c
s_pwrite64.c

View File

@ -22,9 +22,7 @@
#include <limits.h>
#include <sys/statfs.h>
#define EXT2_SUPER_MAGIC 0xef53
#define UFS_MAGIC 0x00011954
#define UFS_CIGAM 0x54190100 /* byteswapped MAGIC */
#include <linux_fsinfo.h>
static long int default_fpathconf (int fd, int name);
@ -55,6 +53,46 @@ __fpathconf (fd, name)
/* This filesystem supported files >2GB. */
return 64;
}
if (name == _PC_LINK_MAX)
{
struct statfs fsbuf;
/* Determine the filesystem type. */
if (__fstatfs (fd, &fsbuf) < 0)
/* not possible, return the default value. */
return LINK_MAX;
switch (fsbuf.f_type)
{
case EXT2_SUPER_MAGIC:
return EXT2_LINK_MAX;
case MINIX_SUPER_MAGIC:
case MINIX_SUPER_MAGIC2:
return MINIX_LINK_MAX;
case MINIX2_SUPER_MAGIC:
case MINIX2_SUPER_MAGIC2:
return MINIX2_LINK_MAX;
case XENIX_SUPER_MAGIC:
return XENIX_LINK_MAX;
case SYSV4_SUPER_MAGIC:
case SYSV2_SUPER_MAGIC:
return SYSV_LINK_MAX;
case COH_SUPER_MAGIC:
return COH_LINK_MAX;
case UFS_MAGIC:
case UFS_CIGAM:
return UFS_LINK_MAX;
default:
return LINK_MAX;
}
}
/* Fallback to the generic version. */
return default_fpathconf (fd, name);

View File

@ -23,9 +23,7 @@
#include <fcntl.h>
#include <sys/statfs.h>
#define EXT2_SUPER_MAGIC 0xef53
#define UFS_MAGIC 0x00011954
#define UFS_CIGAM 0x54190100 /* byteswapped MAGIC */
#include <linux_fsinfo.h>
static long int default_pathconf (const char *path, int name);
@ -48,6 +46,46 @@ __pathconf (const char *path, int name)
/* This filesystem supported files >2GB. */
return 64;
}
if (name == _PC_LINK_MAX)
{
struct statfs fsbuf;
/* Determine the filesystem type. */
if (__statfs (fd, &fsbuf) < 0)
/* not possible, return the default value. */
return LINK_MAX;
switch (fsbuf.f_type)
{
case EXT2_SUPER_MAGIC:
return EXT2_LINK_MAX;
case MINIX_SUPER_MAGIC:
case MINIX_SUPER_MAGIC2:
return MINIX_LINK_MAX;
case MINIX2_SUPER_MAGIC:
case MINIX2_SUPER_MAGIC2:
return MINIX2_LINK_MAX;
case XENIX_SUPER_MAGIC:
return XENIX_LINK_MAX;
case SYSV4_SUPER_MAGIC:
case SYSV2_SUPER_MAGIC:
return SYSV_LINK_MAX;
case COH_SUPER_MAGIC:
return COH_LINK_MAX;
case UFS_MAGIC:
case UFS_CIGAM:
return UFS_LINK_MAX;
default:
return LINK_MAX;
}
}
/* Fallback to the generic version. */
return default_pathconf (path, name);

View File

@ -21,6 +21,8 @@
Fortunately 2.0 puts a magic number in the first word and this is not
a legal value for `trap_no', so we can tell them apart. */
#include <asm/ptrace.h>
union k_sigcontext
{
struct

View File

@ -18,7 +18,6 @@
Boston, MA 02111-1307, USA. */
#include <signal.h>
#include <asm/ptrace.h>
#include <bits/armsigctx.h>
void

View File

@ -24,7 +24,7 @@
.type C_SYMBOL_NAME(errno),%object
.size C_SYMBOL_NAME(errno),4
C_SYMBOL_NAME(errno): .zero 4
weak_alias (C_SYMBOL_NAME(errno), C_SYMBOL_NAME(_errno))
weak_alias (errno, _errno)
.text
/* The syscall stubs jump here when they detect an error.

View File

@ -0,0 +1,80 @@
/* Linux specific extensions to fpathconf.
Copyright (C) 1991, 1995, 1996, 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. */
#include <unistd.h>
#include <limits.h>
#include <sys/statfs.h>
#include "linux_fsinfo.h"
static long int posix_fpathconf (int fd, int name);
/* Get file-specific information about descriptor FD. */
long int
__fpathconf (fd, name)
int fd;
int name;
{
if (name == _PC_LINK_MAX)
{
struct statfs fsbuf;
/* Determine the filesystem type. */
if (__fstatfs (fd, &fsbuf) < 0)
/* not possible, return the default value. */
return LINK_MAX;
switch (fsbuf.f_type)
{
case EXT2_SUPER_MAGIC:
return EXT2_LINK_MAX;
case MINIX_SUPER_MAGIC:
case MINIX_SUPER_MAGIC2:
return MINIX_LINK_MAX;
case MINIX2_SUPER_MAGIC:
case MINIX2_SUPER_MAGIC2:
return MINIX2_LINK_MAX;
case XENIX_SUPER_MAGIC:
return XENIX_LINK_MAX;
case SYSV4_SUPER_MAGIC:
case SYSV2_SUPER_MAGIC:
return SYSV_LINK_MAX;
case COH_SUPER_MAGIC:
return COH_LINK_MAX;
case UFS_MAGIC:
case UFS_CIGAM:
return UFS_LINK_MAX;
default:
return LINK_MAX;
}
}
return posix_fpathconf (fd, name);
}
#define __fpathconf static posix_fpathconf
#include <sysdeps/posix/fpathconf.c>

View File

@ -26,31 +26,7 @@
#include <sys/statfs.h>
#include <sys/statvfs.h>
/* These definitions come from the kernel headers. But we cannot
include the headers here because of type clashes. If new
filesystem types will become available we have to add the
appropriate definitions here.*/
#define ADFS_SUPER_MAGIC 0xadf5
#define AFFS_SUPER_MAGIC 0xadff
#define CODA_SUPER_MAGIC 0x73757245
#define EXT2_SUPER_MAGIC 0xef53
#define HPFS_SUPER_MAGIC 0xf995e849
#define ISOFS_SUPER_MAGIC 0x9660
#define MINIX_SUPER_MAGIC 0x137f
#define MINIX_SUPER_MAGIC2 0x138F
#define MINIX2_SUPER_MAGIC 0x2468
#define MINIX2_SUPER_MAGIC2 0x2478
#define MSDOS_SUPER_MAGIC 0x4d44
#define NCP_SUPER_MAGIC 0x564c
#define NFS_SUPER_MAGIC 0x6969
#define PROC_SUPER_MAGIC 0x9fa0
#define SMB_SUPER_MAGIC 0x517b
#define XENIX_SUPER_MAGIC 0x012ff7b4
#define SYSV4_SUPER_MAGIC 0x012ff7b5
#define SYSV2_SUPER_MAGIC 0x012ff7b6
#define COH_SUPER_MAGIC 0x012ff7b7
#define UFS_MAGIC 0x00011954
#define UFS_CIGAM 0x54190100 /* byteswapped MAGIC */
#include "linux_fsinfo.h"
int

View File

@ -0,0 +1,58 @@
/* Constants from kernel header for various FSes.
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. */
#ifndef _LINUX_FSINFO_H
#define _LINUX_FSINFO_H 1
/* These definitions come from the kernel headers. But we cannot
include the headers here because of type clashes. If new
filesystem types will become available we have to add the
appropriate definitions here.*/
#define ADFS_SUPER_MAGIC 0xadf5
#define AFFS_SUPER_MAGIC 0xadff
#define CODA_SUPER_MAGIC 0x73757245
#define EXT2_SUPER_MAGIC 0xef53
#define HPFS_SUPER_MAGIC 0xf995e849
#define ISOFS_SUPER_MAGIC 0x9660
#define MINIX_SUPER_MAGIC 0x137f
#define MINIX_SUPER_MAGIC2 0x138F
#define MINIX2_SUPER_MAGIC 0x2468
#define MINIX2_SUPER_MAGIC2 0x2478
#define MSDOS_SUPER_MAGIC 0x4d44
#define NCP_SUPER_MAGIC 0x564c
#define NFS_SUPER_MAGIC 0x6969
#define PROC_SUPER_MAGIC 0x9fa0
#define SMB_SUPER_MAGIC 0x517b
#define XENIX_SUPER_MAGIC 0x012ff7b4
#define SYSV4_SUPER_MAGIC 0x012ff7b5
#define SYSV2_SUPER_MAGIC 0x012ff7b6
#define COH_SUPER_MAGIC 0x012ff7b7
#define UFS_MAGIC 0x00011954
#define UFS_CIGAM 0x54190100 /* byteswapped MAGIC */
/* Maximum link counts. */
#define EXT2_LINK_MAX 32000
#define MINIX_LINK_MAX 250
#define MINIX2_LINK_MAX 65530
#define XENIX_LINK_MAX 126 /* ?? */
#define SYSV_LINK_MAX 126 /* 127? 251? */
#define COH_LINK_MAX 10000
#define UFS_LINK_MAX EXT2_LINK_MAX
#endif /* linux_fsinfo.h */

View File

@ -0,0 +1,80 @@
/* Linux specific extensions to pathconf.
Copyright (C) 1991, 1995, 1996, 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. */
#include <unistd.h>
#include <limits.h>
#include <sys/statfs.h>
#include "linux_fsinfo.h"
static long int posix_pathconf (const char *path, int name);
/* Get file-specific information about descriptor FD. */
long int
__pathconf (path, name)
const char *path;
int name;
{
if (name == _PC_LINK_MAX)
{
struct statfs fsbuf;
/* Determine the filesystem type. */
if (__statfs (path, &fsbuf) < 0)
/* not possible, return the default value. */
return LINK_MAX;
switch (fsbuf.f_type)
{
case EXT2_SUPER_MAGIC:
return EXT2_LINK_MAX;
case MINIX_SUPER_MAGIC:
case MINIX_SUPER_MAGIC2:
return MINIX_LINK_MAX;
case MINIX2_SUPER_MAGIC:
case MINIX2_SUPER_MAGIC2:
return MINIX2_LINK_MAX;
case XENIX_SUPER_MAGIC:
return XENIX_LINK_MAX;
case SYSV4_SUPER_MAGIC:
case SYSV2_SUPER_MAGIC:
return SYSV_LINK_MAX;
case COH_SUPER_MAGIC:
return COH_LINK_MAX;
case UFS_MAGIC:
case UFS_CIGAM:
return UFS_LINK_MAX;
default:
return LINK_MAX;
}
}
return posix_pathconf (path, name);
}
#define __pathconf static posix_pathconf
#include <sysdeps/posix/pathconf.c>

View File

@ -99,7 +99,7 @@ enum __ptrace_request
#define PT_DETACH PTRACE_DETACH
/* Continue and stop at the next (return from) syscall. */
PTRACE_SYSCALL = 24,
PTRACE_SYSCALL = 24
#define PTRACE_SYSCALL PTRACE_SYSCALL
};