+1999-05-24 Jakub Jelinek <jj@ultra.linux.cz>
+
+ * sysdeps/sparc/bits/wordsize.h: New file.
+ * sysdeps/sparc/bits/fenv.h: New file.
+ * sysdeps/sparc/fpu_control.h: New file.
+ * sysdeps/sparc/gmp-mparam.h: New file.
+
+ * sysdeps/sparc/sparc32/fpu/bits/fenv.h: Remove.
+ * sysdeps/sparc/sparc32/fpu/fpu_control.h: Remove.
+ * sysdeps/sparc/sparc64/bits/wordsize.h: Remove.
+ * sysdeps/sparc/sparc64/fpu/bits/fenv.h: Remove.
+ * sysdeps/sparc/sparc64/fpu/fpu_control.h: Remove.
+ * sysdeps/sparc/sparc64/gmp-mparam.h: Remove.
+
+ * sysdeps/unix/sysv/linux/sparc/bits/setjmp.h: New file.
+ * sysdeps/unix/sysv/linux/sparc/bits/types.h: New file.
+ * sysdeps/unix/sysv/linux/sparc/bits/statfs.h: New file.
+ * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h: New file.
+
+ * sysdeps/unix/sysv/linux/sparc/sparc32/sys/ucontext.h: Remove.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h: Remove.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Remove.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h: Remove.
+ * sysdeps/unix/sysv/linux/sparc/sparc64/sys/ucontext.h: Remove.
+
1999-05-24 Ulrich Drepper <drepper@cygnus.com>
* login/openpty.c (openpty): Make sure pty does not because
* configure.in: Recognize and allow gcc 2.95.
-1999-05-19 Jakub Jelinek <jj@ultra.linux.cz>
+1999-05-19 Jakub Jelinek <jj@ultra.linux.cz>
* sysdeps/generic/bits/elfclass.h: Version common to
wordsize-32 and wordsize-64.
* sysdeps/wordsize-32/inttypes.h: Remove.
* sysdeps/wordsize-32/bits/wordsize.h: New file.
-1999-05-19 Jakub Jelinek <jj@ultra.linux.cz>
+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.
* sysdeps/sparc/sparc64/Versions: New file.
* sysdeps/sparc/Versions: Remove.
-1999-05-19 Jakub Jelinek <jj@ultra.linux.cz>
+1999-05-19 Jakub Jelinek <jj@ultra.linux.cz>
* sysdeps/unix/sysv/linux/configure.in:
On sparc64-*-linux*, set slibdir to /lib64 if prefix
--- /dev/null
+/* Determine the wordsize from the preprocessor defines. */
+
+#if defined __sparc_v9__ || defined __arch64__ || defined __sparcv9
+# define __WORDSIZE 64
+#else
+# define __WORDSIZE 32
+#endif
#include <features.h>
+#include <bits/wordsize.h>
/* masking of interrupts */
#define _FPU_MASK_IM 0x08000000
/* Linux and IEEE default:
- extended precision
- rounding to nearest
- - no exceptions. */
+ - no exceptions */
#define _FPU_DEFAULT 0x0
#define _FPU_IEEE 0x0
/* Type of the control word. */
-typedef unsigned int fpu_control_t;
-
-#define _FPU_GETCW(cw) __asm__ ("st %%fsr,%0" : "=m" (*&cw))
-#define _FPU_SETCW(cw) __asm__ ("ld %0,%%fsr" : : "m" (*&cw))
+typedef unsigned long int fpu_control_t;
+
+#if __WORDSIZE == 64
+# define _FPU_GETCW(cw) __asm__ ("stx %%fsr,%0" : "=m" (*&cw))
+# define _FPU_SETCW(cw) __asm__ ("ldx %0,%%fsr" : : "m" (*&cw))
+#else
+# define _FPU_GETCW(cw) __asm__ ("st %%fsr,%0" : "=m" (*&cw))
+# define _FPU_SETCW(cw) __asm__ ("ld %0,%%fsr" : : "m" (*&cw))
+#endif
/* Default control word set at startup. */
extern fpu_control_t __fpu_control;
--- /dev/null
+/* gmp-mparam.h -- Compiler/machine parameter header file.
+ Copyright (C) 1991, 1993, 1994, 1999 Free Software Foundation, Inc.
+ This file is part of the GNU MP Library.
+
+ The GNU MP 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 MP 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 MP 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 <bits/wordsize.h>
+
+#define BITS_PER_MP_LIMB __WORDSIZE
+#define BYTES_PER_MP_LIMB (__WORDSIZE / 8)
+#define BITS_PER_LONGINT __WORDSIZE
+#define BITS_PER_INT 32
+#define BITS_PER_SHORTINT 16
+#define BITS_PER_CHAR 8
+++ /dev/null
-/* Copyright (C) 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
- 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 _FENV_H
-# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-#endif
-
-
-/* Define bits representing the exception. We use the bit positions
- of the appropriate accrued exception bits from the FSR. */
-enum
- {
- FE_INVALID = (1 << 9),
-#define FE_INVALID FE_INVALID
- FE_OVERFLOW = (1 << 8),
-#define FE_OVERFLOW FE_OVERFLOW
- FE_UNDERFLOW = (1 << 7),
-#define FE_UNDERFLOW FE_UNDERFLOW
- FE_DIVBYZERO = (1 << 6),
-#define FE_DIVBYZERO FE_DIVBYZERO
- FE_INEXACT = (1 << 5)
-#define FE_INEXACT FE_INEXACT
- };
-
-#define FE_ALL_EXCEPT \
- (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
-
-/* The Sparc FPU supports all of the four defined rounding modes. We
- use again the bit positions in the FPU control word as the values
- for the appropriate macros. */
-enum
- {
- FE_TONEAREST = (0U << 30),
-#define FE_TONEAREST FE_TONEAREST
- FE_TOWARDZERO = (1U << 30),
-#define FE_TOWARDZERO FE_TOWARDZERO
- FE_UPWARD = (2U << 30),
-#define FE_UPWARD FE_UPWARD
- FE_DOWNWARD = (3U << 30)
-#define FE_DOWNWARD FE_DOWNWARD
- };
-
-#define __FE_ROUND_MASK (3U << 30)
-
-/* Type representing exception flags. */
-typedef unsigned int fexcept_t;
-
-/* Type representing floating-point environment. */
-typedef unsigned int fenv_t;
-
-/* If the default argument is used we use this value. */
-#define FE_DFL_ENV ((fenv_t *) -1)
-
-#ifdef __USE_GNU
-/* Floating-point environment where none of the exception is masked. */
-# define FE_NOMASK_ENV ((fenv_t *) -2)
-#endif
-
-/* For internal use only: access the fp state register. */
-#define __fenv_stfsr(X) __asm__ ("st %%fsr,%0" : "=m" (X))
-#define __fenv_ldfsr(X) __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (X))
+++ /dev/null
-/* Copyright (C) 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
- 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. */
-
-#if defined __sparc_v9__ || defined __arch64__ || defined __sparcv9
-# define __WORDSIZE 64
-#else
-# define __WORDSIZE 32
-#endif
+++ /dev/null
-/* FPU control word bits. SPARC v9 version.
- Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Miguel de Icaza
-
- 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 _FPU_CONTROL_H
-#define _FPU_CONTROL_H 1
-
-
-#include <features.h>
-#include <bits/wordsize.h>
-
-/* masking of interrupts */
-#define _FPU_MASK_IM 0x08000000
-#define _FPU_MASK_OM 0x04000000
-#define _FPU_MASK_UM 0x02000000
-#define _FPU_MASK_ZM 0x01000000
-#define _FPU_MASK_PM 0x00800000
-
-/* precision control */
-#define _FPU_EXTENDED 0x00000000 /* RECOMMENDED */
-#define _FPU_DOUBLE 0x20000000
-#define _FPU_80BIT 0x30000000
-#define _FPU_SINGLE 0x10000000 /* DO NOT USE */
-
-/* rounding control / Sparc */
-#define _FPU_RC_DOWN 0xc0000000
-#define _FPU_RC_UP 0x80000000
-#define _FPU_RC_ZERO 0x40000000
-#define _FPU_RC_NEAREST 0x0 /* RECOMMENDED */
-
-#define _FPU_RESERVED 0x30300000 /* Reserved bits in cw */
-
-
-/* Now two recommended cw */
-
-/* Linux and IEEE default:
- - extended precision
- - rounding to nearest
- - no exceptions */
-#define _FPU_DEFAULT 0x0
-#define _FPU_IEEE 0x0
-
-#if __WORDSIZE == 64
-/* Type of the control word. */
-typedef unsigned long fpu_control_t;
-
-#define _FPU_GETCW(cw) __asm__ ("stx %%fsr,%0" : "=m" (*&cw))
-#define _FPU_SETCW(cw) __asm__ ("ldx %0,%%fsr" : : "m" (*&cw))
-#else
-/* Type of the control word. */
-typedef unsigned int fpu_control_t;
-
-#define _FPU_GETCW(cw) __asm__ ("st %%fsr,%0" : "=m" (*&cw))
-#define _FPU_SETCW(cw) __asm__ ("ld %0,%%fsr" : : "m" (*&cw))
-#endif
-
-/* Default control word set at startup. */
-extern fpu_control_t __fpu_control;
-
-#endif /* fpu_control.h */
+++ /dev/null
-/* gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright (C) 1991, 1993, 1994 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP 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 MP 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 MP 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. */
-
-#define BITS_PER_MP_LIMB 64
-#define BYTES_PER_MP_LIMB 8
-#define BITS_PER_LONGINT 64
-#define BITS_PER_INT 32
-#define BITS_PER_SHORTINT 16
-#define BITS_PER_CHAR 8
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997,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
struct statfs
{
-#if __WORDSIZE == 64
long int f_type;
long int f_bsize;
-#else
- int f_type;
- int f_bsize;
-#endif
#ifndef __USE_FILE_OFFSET64
__fsblkcnt_t f_blocks;
__fsblkcnt_t f_bfree;
__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
};
#ifdef __USE_LARGEFILE64
struct statfs64
{
-#if __WORDSIZE == 64
long int f_type;
long int f_bsize;
-#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
-/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98, 99 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
typedef unsigned long int __u_quad_t;
typedef long int __quad_t;
#else
-#ifdef __GNUC__
+# ifdef __GNUC__
__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
-#else
+# else
typedef struct
{
long int __val[2];
{
__u_long __val[2];
} __u_quad_t;
-#endif
+# endif
#endif
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef unsigned long int __uint64_t;
typedef __quad_t *__qaddr_t;
#else
-#ifdef __GNUC__
+# ifdef __GNUC__
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
-#endif
+# endif
#endif
typedef __u_quad_t __dev_t; /* Type of device numbers. */
from the user namespace. */
#ifdef __USE_XOPEN
__fd_mask fds_bits[__FD_SETSIZE / __NFDBITS];
-# define __FDS_BITS(set) ((set)->fds_bits)
+# define __FDS_BITS(set) ((set)->fds_bits)
#else
__fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS];
-# define __FDS_BITS(set) ((set)->__fds_bits)
+# define __FDS_BITS(set) ((set)->__fds_bits)
#endif
} __fd_set;
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. */
+++ /dev/null
-/* 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 _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
-
-#include <features.h>
-#include <signal.h>
-
-/*
- * Location of the users' stored registers relative to R0.
- * Usage is as an index into a gregset_t array or as u.u_ar0[XX].
- */
-#define REG_PSR (0)
-#define REG_PC (1)
-#define REG_nPC (2)
-#define REG_Y (3)
-#define REG_G1 (4)
-#define REG_G2 (5)
-#define REG_G3 (6)
-#define REG_G4 (7)
-#define REG_G5 (8)
-#define REG_G6 (9)
-#define REG_G7 (10)
-#define REG_O0 (11)
-#define REG_O1 (12)
-#define REG_O2 (13)
-#define REG_O3 (14)
-#define REG_O4 (15)
-#define REG_O5 (16)
-#define REG_O6 (17)
-#define REG_O7 (18)
-
-/*
- * A gregset_t is defined as an array type for compatibility with the reference
- * source. This is important due to differences in the way the C language
- * treats arrays and structures as parameters.
- *
- * Note that NGREG is really (sizeof (struct regs) / sizeof (greg_t)),
- * but that the ABI defines it absolutely to be 19.
- */
-#define NGREG 19
-
-typedef int greg_t;
-typedef greg_t gregset_t[NGREG];
-
-/*
- * The following structures define how a register window can appear on the
- * stack. This structure is available (when required) through the `gwins'
- * field of an mcontext (nested within ucontext). SPARC_MAXWINDOW is the
- * maximum number of outstanding regiters window defined in the SPARC
- * architecture (*not* implementation).
- */
-#define SPARC_MAXREGWINDOW 31 /* max windows in SPARC arch. */
-struct rwindow
- {
- greg_t rw_local[8]; /* locals */
- greg_t rw_in[8]; /* ins */
- };
-
-#define rw_fp rw_in[6] /* frame pointer */
-#define rw_rtn rw_in[7] /* return address */
-
-typedef struct gwindows
- {
- int wbcnt;
- int *spbuf[SPARC_MAXREGWINDOW];
- struct rwindow wbuf[SPARC_MAXREGWINDOW];
- } gwindows_t;
-
-/*
- * Floating point definitions.
- */
-
-#define MAXFPQ 16 /* max # of fpu queue entries currently supported */
-
-/*
- * struct fq defines the minimal format of a floating point instruction queue
- * entry. The size of entries in the floating point queue are implementation
- * dependent. The union FQu is guarenteed to be the first field in any ABI
- * conformant system implementation. Any additional fields provided by an
- * implementation should not be used applications designed to be ABI conformant. */
-
-struct fpq
- {
- unsigned long *fpq_addr; /* address */
- unsigned long fpq_instr; /* instruction */
- };
-
-struct fq
- {
- union /* FPU inst/addr queue */
- {
- double whole;
- struct fpq fpq;
- } FQu;
- };
-
-#define FPU_REGS_TYPE unsigned
-#define FPU_DREGS_TYPE unsigned long long
-#define V7_FPU_FSR_TYPE unsigned
-#define V9_FPU_FSR_TYPE unsigned long long
-#define V9_FPU_FPRS_TYPE unsigned
-
-typedef struct fpu
- {
- union { /* FPU floating point regs */
- unsigned long long fpu_regs[32]; /* 32 singles */
- double fpu_dregs[16]; /* 16 doubles */
- } fpu_fr;
- struct fq *fpu_q; /* ptr to array of FQ entries */
- unsigned fpu_fsr; /* FPU status register */
- unsigned char fpu_qcnt; /* # of entries in saved FQ */
- unsigned char fpu_q_entrysize; /* # of bytes per FQ entry */
- unsigned char fpu_en; /* flag signifying fpu in use */
- } fpregset_t;
-
-/*
- * The following structure is for associating extra register state with
- * the ucontext structure and is kept within the uc_mcontext filler area.
- *
- * If (xrs_id == XRS_ID) then the xrs_ptr field is a valid pointer to
- * extra register state. The exact format of the extra register state
- * pointed to by xrs_ptr is platform-dependent.
- *
- * Note: a platform may or may not manage extra register state.
- */
-typedef struct
- {
- unsigned int xrs_id; /* indicates xrs_ptr validity */
- void * xrs_ptr; /* ptr to extra reg state */
- } xrs_t;
-
-#define XRS_ID 0x78727300 /* the string "xrs" */
-
-typedef struct
- {
- gregset_t gregs; /* general register set */
- gwindows_t *gwins; /* POSSIBLE pointer to register windows */
- fpregset_t fpregs; /* floating point register set */
- xrs_t xrs; /* POSSIBLE extra register state association */
- long filler[19];
- } mcontext_t;
-
-
-/* Userlevel context. */
-typedef struct ucontext
- {
- unsigned long uc_flags;
- struct ucontext *uc_link;
- unsigned long uc_sigmask[4]; /* a svr4 sigset_t */
- stack_t uc_stack;
- mcontext_t uc_mcontext;
- long uc_filler[23];
- } ucontext_t;
-
-#endif /* sys/ucontext.h */