summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/glibc/files/2.2.5/glibc-2.2.5-sparc-misc.diff')
-rw-r--r--sys-libs/glibc/files/2.2.5/glibc-2.2.5-sparc-misc.diff339
1 files changed, 0 insertions, 339 deletions
diff --git a/sys-libs/glibc/files/2.2.5/glibc-2.2.5-sparc-misc.diff b/sys-libs/glibc/files/2.2.5/glibc-2.2.5-sparc-misc.diff
deleted file mode 100644
index dc5f08bf50b7..000000000000
--- a/sys-libs/glibc/files/2.2.5/glibc-2.2.5-sparc-misc.diff
+++ /dev/null
@@ -1,339 +0,0 @@
-#! /bin/sh -e
-
-# DP: Misc. SPARC fixes.
-
-if [ $# -ne 2 ]; then
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-fi
-case "$1" in
- -patch) patch -d "$2" -f --no-backup-if-mismatch -p1 < $0;;
- -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p1 < $0;;
- *)
- echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
- exit 1
-esac
-exit 0
-
-2002-05-16 David S. Miller <davem@redhat.com>
-
- * sysdeps/sparc/sparc32/dl-machine.h (LOAD_PIC_REG): Define.
- (elf_machine_dynamic): Use it to force PIC register to be loaded.
- (elf_machine_load_address): Likewise.
- * sysdeps/sparc/sparc64/dl-machine.h: Mirror sparc32 changes.
-
- * sysdeps/sparc/sparc64/strncmp.S: When second argument pointer
- is unaligned, do not forget to fully initialize %g1 magic value.
-
- * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h (LOC): Fix CPP
- pasting.
-
- * sysdeps/unix/sysv/linux/sparc/sys/procfs.h: Fix 64-bit elf
- register definitions and provide 32-bit variants of structures
- during 64-bit builds.
-
- * soft-fp/op-1.h (_FP_FRAC_CLEAR_OVERP_1): Define.
- * soft-fp/op-2.h (_FP_FRAC_CLEAR_OVERP_2): Define.
- * soft-fp/op-4.h (_FP_FRAC_CLEAR_OVERP_4): Define.
- * soft-fp/op-common.h (_FP_PACK_CANONICAL): After rounding, if
- _FP_FRAC_OVERP_X is set, use _FP_FRAC_CLEAR_OVERP_X to clear it.
- (_FP_FROM_INT): Perform right shifts on unsigned integer type.
- Do not clear implicit one bit here, it must be done post-rounding.
- Only pad to the left using left shift if value uses less than the
- available fractional bits.
-
-diff -urN glibc-2.2.5.orig/soft-fp/op-1.h glibc-2.2.5/soft-fp/op-1.h
---- glibc-2.2.5.orig/soft-fp/op-1.h Mon Jun 17 21:48:12 2002
-+++ glibc-2.2.5/soft-fp/op-1.h Mon Jun 17 22:27:52 2002
-@@ -55,6 +55,7 @@
- #define _FP_FRAC_NEGP_1(X) ((_FP_WS_TYPE)X##_f < 0)
- #define _FP_FRAC_ZEROP_1(X) (X##_f == 0)
- #define _FP_FRAC_OVERP_1(fs,X) (X##_f & _FP_OVERFLOW_##fs)
-+#define _FP_FRAC_CLEAR_OVERP_1(fs,X) (X##_f &= ~_FP_OVERFLOW_##fs)
- #define _FP_FRAC_EQ_1(X, Y) (X##_f == Y##_f)
- #define _FP_FRAC_GE_1(X, Y) (X##_f >= Y##_f)
- #define _FP_FRAC_GT_1(X, Y) (X##_f > Y##_f)
-diff -urN glibc-2.2.5.orig/soft-fp/op-2.h glibc-2.2.5/soft-fp/op-2.h
---- glibc-2.2.5.orig/soft-fp/op-2.h Mon Jun 17 21:48:12 2002
-+++ glibc-2.2.5/soft-fp/op-2.h Mon Jun 17 22:27:52 2002
-@@ -112,6 +112,7 @@
- #define _FP_FRAC_NEGP_2(X) ((_FP_WS_TYPE)X##_f1 < 0)
- #define _FP_FRAC_ZEROP_2(X) ((X##_f1 | X##_f0) == 0)
- #define _FP_FRAC_OVERP_2(fs,X) (_FP_FRAC_HIGH_##fs(X) & _FP_OVERFLOW_##fs)
-+#define _FP_FRAC_CLEAR_OVERP_2(fs,X) (_FP_FRAC_HIGH_##fs(X) &= ~_FP_OVERFLOW_##fs)
- #define _FP_FRAC_EQ_2(X, Y) (X##_f1 == Y##_f1 && X##_f0 == Y##_f0)
- #define _FP_FRAC_GT_2(X, Y) \
- (X##_f1 > Y##_f1 || X##_f1 == Y##_f1 && X##_f0 > Y##_f0)
-diff -urN glibc-2.2.5.orig/soft-fp/op-4.h glibc-2.2.5/soft-fp/op-4.h
---- glibc-2.2.5.orig/soft-fp/op-4.h Mon Jun 17 21:48:12 2002
-+++ glibc-2.2.5/soft-fp/op-4.h Mon Jun 17 22:27:52 2002
-@@ -129,6 +129,7 @@
- #define _FP_FRAC_ZEROP_4(X) ((X##_f[0] | X##_f[1] | X##_f[2] | X##_f[3]) == 0)
- #define _FP_FRAC_NEGP_4(X) ((_FP_WS_TYPE)X##_f[3] < 0)
- #define _FP_FRAC_OVERP_4(fs,X) (_FP_FRAC_HIGH_##fs(X) & _FP_OVERFLOW_##fs)
-+#define _FP_FRAC_CLEAR_OVERP_4(fs,X) (_FP_FRAC_HIGH_##fs(X) &= ~_FP_OVERFLOW_##fs)
-
- #define _FP_FRAC_EQ_4(X,Y) \
- (X##_f[0] == Y##_f[0] && X##_f[1] == Y##_f[1] \
-diff -urN glibc-2.2.5.orig/soft-fp/op-common.h glibc-2.2.5/soft-fp/op-common.h
---- glibc-2.2.5.orig/soft-fp/op-common.h Mon Jun 17 21:48:12 2002
-+++ glibc-2.2.5/soft-fp/op-common.h Mon Jun 17 22:27:52 2002
-@@ -89,11 +89,10 @@
- _FP_ROUND(wc, X); \
- if (_FP_FRAC_OVERP_##wc(fs, X)) \
- { \
-- _FP_FRAC_SRL_##wc(X, (_FP_WORKBITS+1)); \
-+ _FP_FRAC_CLEAR_OVERP_##wc(fs, X); \
- X##_e++; \
- } \
-- else \
-- _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \
-+ _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \
- if (X##_e >= _FP_EXPMAX_##fs) \
- { \
- /* overflow */ \
-@@ -682,25 +681,27 @@
- do { \
- if (r) \
- { \
-+ unsigned rtype ur_; \
- X##_c = FP_CLS_NORMAL; \
- \
- if ((X##_s = (r < 0))) \
- r = -r; \
- \
-+ ur_ = (unsigned rtype) r; \
- if (rsize <= _FP_W_TYPE_SIZE) \
-- __FP_CLZ(X##_e, r); \
-+ __FP_CLZ(X##_e, ur_); \
- else \
-- __FP_CLZ_2(X##_e, (_FP_W_TYPE)(r >> _FP_W_TYPE_SIZE), \
-- (_FP_W_TYPE)r); \
-+ __FP_CLZ_2(X##_e, (_FP_W_TYPE)(ur_ >> _FP_W_TYPE_SIZE), \
-+ (_FP_W_TYPE)ur_); \
- if (rsize < _FP_W_TYPE_SIZE) \
- X##_e -= (_FP_W_TYPE_SIZE - rsize); \
- X##_e = rsize - X##_e - 1; \
- \
- if (_FP_FRACBITS_##fs < rsize && _FP_WFRACBITS_##fs < X##_e) \
-- __FP_FRAC_SRS_1(r, (X##_e - _FP_WFRACBITS_##fs), rsize); \
-- r &= ~((rtype)1 << X##_e); \
-- _FP_FRAC_DISASSEMBLE_##wc(X, ((unsigned rtype)r), rsize); \
-- _FP_FRAC_SLL_##wc(X, (_FP_WFRACBITS_##fs - X##_e - 1)); \
-+ __FP_FRAC_SRS_1(ur_, (X##_e - _FP_WFRACBITS_##fs + 1), rsize);\
-+ _FP_FRAC_DISASSEMBLE_##wc(X, ur_, rsize); \
-+ if ((_FP_WFRACBITS_##fs - X##_e - 1) > 0) \
-+ _FP_FRAC_SLL_##wc(X, (_FP_WFRACBITS_##fs - X##_e - 1)); \
- } \
- else \
- { \
-diff -urN glibc-2.2.5.orig/sysdeps/sparc/sparc32/dl-machine.h glibc-2.2.5/sysdeps/sparc/sparc32/dl-machine.h
---- glibc-2.2.5.orig/sysdeps/sparc/sparc32/dl-machine.h Mon Jun 17 21:48:12 2002
-+++ glibc-2.2.5/sysdeps/sparc/sparc32/dl-machine.h Mon Jun 17 22:27:52 2002
-@@ -42,7 +42,6 @@
- #define LD_SO_PRELOAD ((_dl_hwcap & HWCAP_SPARC_V9) ? "/etc/ld.so.preload32" \
- : "/etc/ld.so.preload")
-
--
- /* Return nonzero iff ELF header is compatible with the running host. */
- static inline int
- elf_machine_matches_host (const Elf32_Ehdr *ehdr)
-@@ -64,6 +63,17 @@
- return 0;
- }
-
-+/* We have to do this because elf_machine_{dynamic,load_address} can be
-+ invoked from functions that have no GOT references, and thus the compiler
-+ has no obligation to load the PIC register. */
-+#define LOAD_PIC_REG(PIC_REG) \
-+do { register Elf32_Addr pc __asm("o7"); \
-+ __asm("sethi %%hi(_GLOBAL_OFFSET_TABLE_-4), %1\n\t" \
-+ "call 1f\n\t" \
-+ "add %1, %%lo(_GLOBAL_OFFSET_TABLE_+4), %1\n" \
-+ "1:\tadd %1, %0, %1" \
-+ : "=r" (pc), "=r" (PIC_REG)); \
-+} while (0)
-
- /* Return the link-time address of _DYNAMIC. Conveniently, this is the
- first element of the GOT. This must be inlined in a function which
-@@ -72,6 +82,9 @@
- elf_machine_dynamic (void)
- {
- register Elf32_Addr *got asm ("%l7");
-+
-+ LOAD_PIC_REG (got);
-+
- return *got;
- }
-
-@@ -80,6 +93,8 @@
- elf_machine_load_address (void)
- {
- register Elf32_Addr pc __asm("%o7"), pic __asm("%l7"), got;
-+
-+ LOAD_PIC_REG (pic);
-
- /* Utilize the fact that a local .got entry will be partially
- initialized at startup awaiting its RELATIVE fixup. */
-diff -urN glibc-2.2.5.orig/sysdeps/sparc/sparc64/dl-machine.h glibc-2.2.5/sysdeps/sparc/sparc64/dl-machine.h
---- glibc-2.2.5.orig/sysdeps/sparc/sparc64/dl-machine.h Mon Jun 17 21:48:12 2002
-+++ glibc-2.2.5/sysdeps/sparc/sparc64/dl-machine.h Mon Jun 17 22:27:52 2002
-@@ -34,6 +34,18 @@
- return ehdr->e_machine == EM_SPARCV9;
- }
-
-+/* We have to do this because elf_machine_{dynamic,load_address} can be
-+ invoked from functions that have no GOT references, and thus the compiler
-+ has no obligation to load the PIC register. */
-+#define LOAD_PIC_REG(PIC_REG) \
-+do { Elf64_Addr tmp; \
-+ __asm("sethi %%hi(_GLOBAL_OFFSET_TABLE_-4), %1\n\t" \
-+ "rd %%pc, %0\n\t" \
-+ "add %1, %%lo(_GLOBAL_OFFSET_TABLE_+4), %1\n\t" \
-+ "add %0, %1, %0" \
-+ : "=r" (PIC_REG), "=r" (tmp)); \
-+} while (0)
-+
- /* Return the link-time address of _DYNAMIC. Conveniently, this is the
- first element of the GOT. This must be inlined in a function which
- uses global data. */
-@@ -42,6 +54,8 @@
- {
- register Elf64_Addr *elf_pic_register __asm__("%l7");
-
-+ LOAD_PIC_REG (elf_pic_register);
-+
- return *elf_pic_register;
- }
-
-@@ -50,6 +64,8 @@
- elf_machine_load_address (void)
- {
- register Elf64_Addr *elf_pic_register __asm__("%l7");
-+
-+ LOAD_PIC_REG (elf_pic_register);
-
- /* We used to utilize the fact that a local .got entry will
- be partially initialized at startup awaiting its RELATIVE
-diff -urN glibc-2.2.5.orig/sysdeps/sparc/sparc64/strncmp.S glibc-2.2.5/sysdeps/sparc/sparc64/strncmp.S
---- glibc-2.2.5.orig/sysdeps/sparc/sparc64/strncmp.S Mon Jun 17 21:48:12 2002
-+++ glibc-2.2.5/sysdeps/sparc/sparc64/strncmp.S Mon Jun 17 22:27:52 2002
-@@ -290,14 +290,15 @@
- ldxa [%o0] ASI_PNF, %g4 /* Load */
- 11: sllx %g3, 3, %g5 /* IEU0 Group */
- mov 64, %g7 /* IEU1 */
-- sub %o1, %g3, %o1 /* IEU0 Group */
-+ or %g1, %g2, %g1 /* IEU0 Group */
-+ sub %o1, %g3, %o1 /* IEU1 */
-
-- sub %g7, %g5, %g7 /* IEU1 */
-+ sub %g7, %g5, %g7 /* IEU0 Group */
- ldxa [%o1] ASI_PNF, %o4 /* Load */
-- sllx %g1, 7, %g2 /* IEU0 Group */
-- add %o1, 8, %o1 /* IEU1 */
-+ sllx %g1, 7, %g2 /* IEU1 */
-+ add %o1, 8, %o1 /* IEU0 Group */
- /* %g1 = 0101010101010101
-- %g2 = 8080808080800880
-+ %g2 = 8080808080808080
- %g3 = %o1 alignment
- %g5 = number of bits to shift left
- %g7 = number of bits to shift right */
-diff -urN glibc-2.2.5.orig/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h glibc-2.2.5/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
---- glibc-2.2.5.orig/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h Mon Jun 17 21:48:12 2002
-+++ glibc-2.2.5/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h Mon Jun 17 22:27:52 2002
-@@ -48,7 +48,7 @@
- #define END(name) \
- .size name, . - name
-
--#define LOC(name) . ## L ## name
-+#define LOC(name) .##L##name
-
- #ifdef PIC
- #define SYSCALL_ERROR_HANDLER \
-diff -urN glibc-2.2.5.orig/sysdeps/unix/sysv/linux/sparc/sys/procfs.h glibc-2.2.5/sysdeps/unix/sysv/linux/sparc/sys/procfs.h
---- glibc-2.2.5.orig/sysdeps/unix/sysv/linux/sparc/sys/procfs.h Mon Jun 17 21:48:12 2002
-+++ glibc-2.2.5/sysdeps/unix/sysv/linux/sparc/sys/procfs.h Mon Jun 17 22:27:52 2002
-@@ -35,7 +35,7 @@
-
- #if __WORDSIZE == 64
-
--#define ELF_NGREG 20
-+#define ELF_NGREG 36
-
- typedef struct
- {
-@@ -138,6 +138,73 @@
-
- typedef struct elf_prstatus prstatus_t;
- typedef struct elf_prpsinfo prpsinfo_t;
-+
-+#if __WORDSIZE == 64
-+
-+/* Provide 32-bit variants so that BFD can read 32-bit
-+ core files. */
-+#define ELF_NGREG32 38
-+typedef struct
-+ {
-+ union
-+ {
-+ unsigned int pr_regs[32];
-+ double pr_dregs[16];
-+ } pr_fr;
-+ unsigned int __unused;
-+ unsigned int pr_fsr;
-+ unsigned char pr_qcnt;
-+ unsigned char pr_q_entrysize;
-+ unsigned char pr_en;
-+ unsigned int pr_q[64];
-+ } elf_fpregset_t32;
-+
-+typedef unsigned int elf_greg_t32;
-+typedef elf_greg_t32 elf_gregset_t32[ELF_NGREG32];
-+
-+struct elf_prstatus32
-+ {
-+ struct elf_siginfo pr_info; /* Info associated with signal. */
-+ short int pr_cursig; /* Current signal. */
-+ unsigned int pr_sigpend; /* Set of pending signals. */
-+ unsigned int pr_sighold; /* Set of held signals. */
-+ __pid_t pr_pid;
-+ __pid_t pr_ppid;
-+ __pid_t pr_pgrp;
-+ __pid_t pr_sid;
-+ struct
-+ {
-+ int tv_sec, tv_usec;
-+ } pr_utime, /* User time. */
-+ pr_stime, /* System time. */
-+ pr_cutime, /* Cumulative user time. */
-+ pr_cstime; /* Cumulative system time. */
-+ elf_gregset_t32 pr_reg; /* GP registers. */
-+ int pr_fpvalid; /* True if math copro being used. */
-+ };
-+
-+struct elf_prpsinfo32
-+ {
-+ char pr_state; /* Numeric process state. */
-+ char pr_sname; /* Char for pr_state. */
-+ char pr_zomb; /* Zombie. */
-+ char pr_nice; /* Nice val. */
-+ unsigned int pr_flag; /* Flags. */
-+ unsigned short int pr_uid;
-+ unsigned short int pr_gid;
-+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
-+ /* Lots missing */
-+ char pr_fname[16]; /* Filename of executable. */
-+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
-+ };
-+
-+typedef elf_gregset_t32 prgregset32_t;
-+typedef elf_fpregset_t32 prfpregset32_t;
-+
-+typedef struct elf_prstatus32 prstatus32_t;
-+typedef struct elf_prpsinfo32 prpsinfo32_t;
-+
-+#endif /* sparc64 */
-
- __END_DECLS
-