about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/sparc/sparc64/bits
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-05-19 15:35:26 +0000
committerUlrich Drepper <drepper@redhat.com>1999-05-19 15:35:26 +0000
commit1c25bcacbe58057d511fb5eae19a0af5d43a2b75 (patch)
tree0c7bd762a77adcc1d12824bb211f54633e66c175 /sysdeps/unix/sysv/linux/sparc/sparc64/bits
parent2acd8fcfc4b8c76f34a304087c7a539102eddb6b (diff)
downloadglibc-1c25bcacbe58057d511fb5eae19a0af5d43a2b75.tar.gz
glibc-1c25bcacbe58057d511fb5eae19a0af5d43a2b75.tar.xz
glibc-1c25bcacbe58057d511fb5eae19a0af5d43a2b75.zip
Update.
1999-05-19  Jakub Jelinek   <jj@ultra.linux.cz>

	* sysdeps/generic/bits/elfclass.h: Version common to
	wordsize-32 and wordsize-64.
	* sysdeps/generic/bits/environments.h: Ditto.
	* sysdeps/generic/stdint.h: Ditto.
	* sysdeps/generic/inttypes.h: Ditto.

	* sysdeps/generic/bits/wordsize.h: New file.
	* stdlib/Makefile: Add bits/wordsize.h to headers.

	* sysdeps/sparc/sparc64/bits/wordsize.h: New file.

	* sysdeps/sparc/sparc64/fpu/bits/fenv.h: Allow the same exported
	headers to be used for 32bit and 64bit ABI compilations.
	* sysdeps/sparc/sparc64/fpu/fpu_control.h: Ditto.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h: Ditto.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Ditto.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h: Ditto.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sys/ucontext.h: Ditto.

	* sysdeps/wordsize-64/bits/elfclass.h: Remove.
	* sysdeps/wordsize-64/bits/environments.h: Remove.
	* sysdeps/wordsize-64/stdint.h: Remove.
	* sysdeps/wordsize-64/inttypes.h: Remove.
	* sysdeps/wordsize-64/bits/wordsize.h: New file.

	* sysdeps/wordsize-32/bits/elfclass.h: Remove.
	* sysdeps/wordsize-32/bits/environments.h: Remove.
	* sysdeps/wordsize-32/stdint.h: Remove.
	* sysdeps/wordsize-32/inttypes.h: Remove.
	* sysdeps/wordsize-32/bits/wordsize.h: New file.

1999-05-19  Jakub Jelinek   <jj@ultra.linux.cz>

	* sysdeps/sparc/sparc64/memcpy.S (__align_cpy_4, __align_cpy_8,
	__align_cpy_16): New functions.
	(__align_cpy_2, __align_cpy_1): New aliases to memcpy.

	* sysdeps/sparc/sparc32/Versions: New file.
	* sysdeps/sparc/sparc64/Versions: New file.
	* sysdeps/sparc/Versions: Remove.

1999-05-19  Jakub Jelinek   <jj@ultra.linux.cz>

	* sysdeps/unix/sysv/linux/configure.in:
	On sparc64-*-linux*, set slibdir to /lib64 if prefix
	is /usr, plus set libdir to ${exec_prefix}/lib64.
	* sysdeps/unix/sysv/linux/configure: Regenerated.
	* config.make.in: Propagate libdir settings from configure
	to the Makefiles.
	* shlib-versions: sparc64-*-linux* dynamic linker is
	/lib64/ld-linux.so.2.
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sparc64/bits')
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h23
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h67
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h50
3 files changed, 113 insertions, 27 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h
index e51f81a5a0..b15fc5e90b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h
@@ -21,6 +21,10 @@
 # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
 #endif
 
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 64
+
 #include <sys/ucontext.h>
 
 typedef ucontext_t __jmp_buf[1];
@@ -29,3 +33,22 @@ typedef ucontext_t __jmp_buf[1];
    containing a local variable at ADDRESS.  */
 #define _JMPBUF_UNWINDS(jmpbuf, address) \
   ((unsigned long int) (address) < (jmpbuf)->uc_mcontext.mc_fp)
+
+#else
+
+#if defined __USE_MISC || defined _ASM
+# define JB_SP  0
+# define JB_FP  1
+# define JB_PC  2
+#endif
+
+#ifndef _ASM
+typedef int __jmp_buf[3];
+#endif
+
+/* Test if longjmp to JMPBUF would unwind the frame
+   containing a local variable at ADDRESS.  */
+#define _JMPBUF_UNWINDS(jmpbuf, address) \
+  ((int) (address) < (jmpbuf)[JB_SP])
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h
index b6178f5a8e..6f094bc391 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999 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
@@ -16,43 +16,66 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-/*
- * Never include this file directly; use <sys/statfs.h> instead.
- */
+#ifndef _SYS_STATFS_H
+# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
+#endif
 
-#ifndef _BITS_STATFS_H
-#define _BITS_STATFS_H
-
-#include <bits/types.h>  /* for __fsid_t */
+#include <bits/types.h>  /* for __fsid_t and __fsblkcnt_t*/
 
 struct statfs
   {
+#if __WORDSIZE == 64
     long int f_type;
     long int f_bsize;
-    long int f_blocks;
-    long int f_bfree;
-    long int f_bavail;
-    long int f_files;
-    long int f_ffree;
+#else
+    int f_type;
+    int f_bsize;
+#endif
+#ifndef __USE_FILE_OFFSET64
+    __fsblkcnt_t f_blocks;
+    __fsblkcnt_t f_bfree;
+    __fsblkcnt_t f_bavail;
+    __fsfilcnt_t f_files;
+    __fsfilcnt_t f_ffree;
+#else
+    __fsblkcnt64_t f_blocks;
+    __fsblkcnt64_t f_bfree;
+    __fsblkcnt64_t f_bavail;
+    __fsfilcnt64_t f_files;
+    __fsfilcnt64_t f_ffree;
+#endif
     __fsid_t f_fsid;
+#if __WORDSIZE == 64
     long int f_namelen;
     long int f_spare[6];
+#else    
+    int f_namelen;
+    int f_spare[6];
+#endif
   };
 
-/* We already use 64-bit types in the normal structure,
-   so this is the same as the above.  */
+#ifdef __USE_LARGEFILE64
 struct statfs64
   {
+#if __WORDSIZE == 64
     long int f_type;
     long int f_bsize;
-    long int f_blocks;
-    long int f_bfree;
-    long int f_bavail;
-    long int f_files;
-    long int f_ffree;
+#else
+    int f_type;
+    int f_bsize;
+#endif
+    __fsblkcnt64_t f_blocks;
+    __fsblkcnt64_t f_bfree;
+    __fsblkcnt64_t f_bavail;
+    __fsfilcnt64_t f_files;
+    __fsfilcnt64_t f_ffree;
     __fsid_t f_fsid;
+#if __WORDSIZE == 64
     long int f_namelen;
     long int f_spare[6];
+#else    
+    int f_namelen;
+    int f_spare[6];
+#endif
   };
-
-#endif	/* bits/statfs.h */
+#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h
index b6d98853ea..9ecba2ddcf 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98, 99 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
@@ -27,38 +27,66 @@
 
 #define __need_size_t
 #include <stddef.h>
+#include <bits/wordsize.h>
 
 /* Convenience types.  */
 typedef unsigned char __u_char;
 typedef unsigned short int __u_short;
 typedef unsigned int __u_int;
 typedef unsigned long int __u_long;
+#if __WORDSIZE == 64
 typedef unsigned long int __u_quad_t;
 typedef long int __quad_t;
+#else
+#ifdef __GNUC__
+__extension__ typedef unsigned long long int __u_quad_t;
+__extension__ typedef long long int __quad_t;
+#else
+typedef struct
+  {
+    long int __val[2];
+  } __quad_t;
+typedef struct
+  {
+    __u_long __val[2];
+  } __u_quad_t;
+#endif
+#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;
+#if __WORDSIZE == 64
 typedef signed long int __int64_t;
 typedef unsigned long int __uint64_t;
 typedef __quad_t *__qaddr_t;
+#else
+#ifdef __GNUC__
+__extension__ typedef signed long long int __int64_t;
+__extension__ typedef unsigned long long int __uint64_t;
+#endif
+#endif
 
-typedef __u_long __dev_t;		/* Type of device numbers.  */
+typedef __u_quad_t __dev_t;		/* Type of device numbers.  */
 typedef __u_int __uid_t;		/* Type of user identifications.  */
 typedef __u_int __gid_t;		/* Type of group identifications.  */
 typedef __u_long __ino_t;		/* Type of file serial numbers.  */
-typedef __u_long __ino64_t;		/* Type of file serial numbers.  */
+typedef __uint64_t __ino64_t;		/* Type of file serial numbers.  */
 typedef __u_int __mode_t;		/* Type of file attribute bitmasks.  */
 typedef __u_int __nlink_t; 		/* Type of file link counts.  */
 typedef long int __off_t;		/* Type of file sizes and offsets.  */
 typedef __int64_t  __off64_t;		/*  "" (LFS) */
 typedef __quad_t __loff_t;		/* Type of file sizes and offsets.  */
 typedef int __pid_t;			/* Type of process identifications.  */
+#if __WORDSIZE == 64
 typedef long long int __ssize_t;	/* Type of a byte count, or error.  */
+#else
+typedef int __ssize_t;			/* Type of a byte count, or error.  */
+#endif
 typedef long int __rlim_t;		/* Type of resource counts.  */
-typedef long int __rlim64_t;		/* Type of resource counts (LFS).  */
+typedef __quad_t __rlim64_t;		/* Type of resource counts (LFS).  */
 typedef __u_int __id_t;			/* General type for IDs.  */
 
 typedef struct
@@ -108,7 +136,11 @@ typedef struct
 typedef int __key_t;
 
 /* Used in `struct shmid_ds'.  */
-typedef int __ipc_pid_t;
+#if __WORDSIZE == 64
+typedef int       __ipc_pid_t;
+#else
+typedef short int __ipc_pid_t;
+#endif
 
 
 /* Types from the Large File Support interface.  */
@@ -118,7 +150,11 @@ typedef long int __blkcnt_t;
 typedef __quad_t __blkcnt64_t;
 
 /* Type to count file system blocks.  */
+#if __WORDSIZE == 64
+typedef __u_long     __fsblkcnt_t;
+#else
 typedef unsigned int __fsblkcnt_t;
+#endif
 typedef __u_quad_t __fsblkcnt64_t;
 
 /* Type to count file system inodes.  */
@@ -130,7 +166,11 @@ typedef int __t_scalar_t;
 typedef unsigned int __t_uscalar_t;
 
 /* Duplicates info from stdint.h but this is used in unistd.h.  */
+#if __WORDSIZE == 64
 typedef long int __intptr_t;
+#else
+typedef int      __intptr_t;
+#endif
 
 
 /* Now add the thread types.  */