diff --git a/ChangeLog b/ChangeLog index 14b208c354..b1a178f802 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,35 @@ +1998-05-06 09:49 Ulrich Drepper + + * sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h: Add LFS support. + Use correct types. + * sysdeps/unix/sysv/sysv4/solaris2/bits/types.h: New file. + +1998-05-05 Andreas Schwab + + * Makerules (elide-routines.*): Fix assignments. + (do-makelib): Fix typo. + ($(subdirs-stamps)): Depend on $(objpfx)stamp.* if in parent + makefile. + +1998-05-04 Andreas Schwab + + * Makefile (sysdep-subdirs, subdirs, $(common-objpfx)sysd-dirs, + $(objpfx)sysd-dirs): Move them... + * Makeconfig: ... here. + * Makerules (subdirs-stamps, subdirs-stamp-o): Always define. + (stubs): Fix circular depedency. + (do-makelib): Clean up. + (lib): Don't depend on lib-noranlib. + ($(objpfx)stamp.oS): Remove special case for empty + static-only-routines. + (elide-routines.o): Add $(static-only-routines). + (elide-routines$o): Define this instead of elide-routines.$o. + * manual/Makefile (stubs): Fix circular dependency. + +1998-05-05 Andreas Schwab + + * libio/Makefile (routines): Remove duplicate oldiofclose. + 1998-05-05 Ulrich Drepper * string/strcoll.c: Use uint32_t instead of u_int32_t. diff --git a/abi-tags b/abi-tags index 45d1d1f119..b43f8afb6f 100644 --- a/abi-tags +++ b/abi-tags @@ -20,5 +20,7 @@ .*-.*-gnu-gnu.* 1 0.0.0 +sparc-sun-solaris2.* 2 2.0.0 # just an arbitrary value + # There is no catch-all default here because every supported OS that uses # ELF must have its own unique ABI tag. diff --git a/libio/Makefile b/libio/Makefile index 4ad342ec05..779c93632b 100644 --- a/libio/Makefile +++ b/libio/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +# Copyright (C) 1995, 1996, 1997, 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 @@ -43,7 +43,7 @@ all: # Make this the default target; it will be defined in Rules. include ../Makeconfig ifeq ($(versioning),yes) -routines += oldiofopen oldiofdopen oldiofclose oldiofclose +routines += oldiofopen oldiofdopen oldiofclose endif CPPFLAGS-.o += -DIO_DEBUG diff --git a/sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h b/sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h index c6048a9277..ef93b7be27 100644 --- a/sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h +++ b/sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1996, 1997, 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 @@ -22,19 +22,21 @@ #include +/* Length of array allocated for file system type name. */ +#define _ST_FSTYPSZ 16 + + /* Structure describing file characteristics. */ struct stat { - unsigned long int st_dev; + __dev_t st_dev; long int st_filler1[3]; __ino_t st_ino; /* File serial number. */ - unsigned long int st_mode; /* File mode. */ - /* This is unsigned long instead of __nlink_t, since SVR4 has - a long nlink_t, not a short one. */ - unsigned long int st_nlink; /* Link count. */ + __mode_t st_mode; /* File mode. */ + __nlink_t st_nlink; /* Link count. */ __uid_t st_uid; /* User ID of the file's owner. */ __gid_t st_gid; /* Group ID of the file's group.*/ - unsigned long int st_rdev; /* Device number, if device. */ + __dev_t st_rdev; /* Device number, if device. */ long int st_filler2[2]; __off_t st_size; /* Size of file, in bytes. */ @@ -48,14 +50,45 @@ struct stat __time_t st_ctime; /* Time of last status change. */ unsigned long int st_ctime_usec; - __blkcnt_t st_blksize; /* Optimal block size for I/O. */ + long int st_blksize; /* Optimal block size for I/O. */ #define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */ - long int st_blocks; /* Number of 512-byte blocks allocated. */ - char st_fstype[16]; + __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */ + char st_fstype[_ST_FSTYPSZ]; long int st_filler4[8]; }; +#ifdef __USE_LARGEFILE64 +/* struct stat64 has the shape as stat */ +struct stat64 + { + __dev_t st_dev; /* Device */ + long int st_filler1[2]; + __ino64_t st_ino; /* File serial number */ + __mode_t st_mode; /* File mode */ + __nlink_t st_nlink; /* Link count */ + __uid_t st_uid; /* User ID of the file's owner. */ + __gid_t st_gid; /* Group ID of the file's group.*/ + __dev_t st_rdev; /* Device number, if device */ + long int st_filler2; + + __off64_t st_size; /* Size of file, in bytes. */ + + __time_t st_atime; /* Time of last access */ + unsigned long int st_atime_usec; + __time_t st_mtime; /* Time of last modification */ + unsigned long int st_mtime_usec; + __time_t st_ctime; /* Time of last status change */ + unsigned long int st_ctime_usec; + + long int st_blksize; + __blkcnt64_t st_blocks; + char st_fstype[_ST_FSTYPSZ]; + long int st_filler3[8]; +}; +#endif + + /* Encoding of the file mode. */ #define __S_IFMT 0170000 /* These bits determine file type. */ diff --git a/sysdeps/unix/sysv/sysv4/solaris2/bits/types.h b/sysdeps/unix/sysv/sysv4/solaris2/bits/types.h new file mode 100644 index 0000000000..44e343ab1c --- /dev/null +++ b/sysdeps/unix/sysv/sysv4/solaris2/bits/types.h @@ -0,0 +1,118 @@ +/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 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. */ + +/* + * Never include this file directly; use instead. + */ + +#ifndef _BITS_TYPES_H +#define _BITS_TYPES_H 1 + + +/* Convenience types. */ +typedef unsigned char __u_char; +typedef unsigned short __u_short; +typedef unsigned int __u_int; +typedef unsigned long __u_long; +#ifdef __GNUC__ +typedef unsigned long long int __u_quad_t; +typedef long long int __quad_t; +#else +typedef struct +{ + long __val[2]; +} __quad_t; +typedef struct +{ + __u_long __val[2]; +} __u_quad_t; +#endif +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef signed short int __int16_t; +typedef unsigned short int __uint16_t; +typedef signed int __int32_t; +typedef unsigned int __uint32_t; +#ifdef __GNUC__ +typedef signed long long int __int64_t; +typedef unsigned long long int __uint64_t; +#endif +typedef __quad_t *__qaddr_t; +typedef unsigned long int __dev_t; /* Type of device numbers. */ +typedef long int __uid_t; /* Type of user identifications. */ +typedef long int __gid_t; /* Type of group identifications. */ +typedef unsigned long int __ino_t; /* Type of file serial numbers. */ +typedef unsigned long int __mode_t; /* Type of file attribute bitmasks. */ +typedef unsigned long int __nlink_t; /* Type of file link counts. */ +typedef long int __off_t; /* Type of file sizes and offsets. */ +typedef __quad_t __loff_t; /* Type of file sizes and offsets. */ +typedef long int __pid_t; /* Type of process identifications. */ +typedef int __ssize_t; /* Type of a byte count, or error. */ +typedef __u_quad_t __fsid_t; /* Type of file system IDs. */ +typedef long int __clock_t; /* Type of CPU usage counts. */ +typedef long int __rlim_t; /* Type for resource measurement. */ +typedef __quad_t __rlim64_t; /* Type for resource measurement (LFS). */ +typedef __quad_t __ino64_t; /* Type for file serial numbers. */ +typedef __loff_t __off64_t; /* Type of file izes and offsets. */ +typedef unsigned int __id_t; /* General type for IDs. */ + +/* Everythin' else. */ +typedef long int __daddr_t; /* The type of a disk address. */ +typedef char *__caddr_t; +typedef long int __time_t; +typedef long int __swblk_t; /* Type of a swap block maybe? */ +typedef int __key_t; /* Type of an IPC key */ + +/* fd_set for select. */ + +/* Number of descriptors that can fit in an `fd_set'. */ +#define __FD_SETSIZE 1024 + +/* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ +#define __NFDBITS (sizeof (unsigned long int) * 8) +#define __FDELT(d) ((d) / __NFDBITS) +#define __FDMASK(d) ((unsigned long int) 1 << ((d) % __NFDBITS)) + +typedef struct + { + /* XPG4.2 requires this member name. */ + unsigned long int fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS]; + } __fd_set; + +typedef unsigned long int __fd_mask; + + +/* Types from the Large File Support interface. */ + +/* Type to count number os disk blocks. */ +typedef long int __blkcnt_t; +typedef __quad_t __blkcnt64_t; + +/* Type to count file system blocks. */ +typedef unsigned int __fsblkcnt_t; +typedef __u_quad_t __fsblkcnt64_t; + +/* Type to count file system inodes. */ +typedef unsigned long int __fsfilcnt_t; +typedef __u_quad_t __fsfilcnt64_t; + +/* Used in XTI. */ +typedef int __t_scalar_t; +typedef unsigned int __t_uscalar_t; + +#endif /* bits/types.h */