From c28010bdd14e3d68a5d97af6cdfc882e4a96037b Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Mon, 14 Jul 2008 20:43:21 +0000 Subject: Add a new patch to glibc to build for Alpha on recent Linux kernels. /trunk/patches/glibc/2.5.1/260-alpha-asm_elf.patch | 194 194 0 0 ++++++++++++++++++++++++++++ /trunk/patches/glibc/2.5/260-alpha-asm_elf.patch | 194 194 0 0 ++++++++++++++++++++++++++++ /trunk/patches/glibc/2.6.1/200-alpha-asm_elf.patch | 194 194 0 0 ++++++++++++++++++++++++++++ /trunk/patches/glibc/2.6/200-alpha-asm_elf.patch | 194 194 0 0 ++++++++++++++++++++++++++++ /trunk/patches/glibc/2.3.6/270-alpha-asm_elf.patch | 194 194 0 0 ++++++++++++++++++++++++++++ /trunk/patches/glibc/2.7/220-alpha-asm_elf.patch | 194 194 0 0 ++++++++++++++++++++++++++++ 6 files changed, 1164 insertions(+) diff --git a/patches/glibc/2.3.6/270-alpha-asm_elf.patch b/patches/glibc/2.3.6/270-alpha-asm_elf.patch new file mode 100644 index 0000000..3da5c8e --- /dev/null +++ b/patches/glibc/2.3.6/270-alpha-asm_elf.patch @@ -0,0 +1,194 @@ +since the kernel no longer provides asm/elf.h, the sys/procfs.h from the +common code, alpha, and sh fail when used. this should things up. +-mike + +2008-06-07 Mike Frysinger + + * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. + * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h + definitions from the kernel header to sys/procfs.h and remove the + #include of asm/elf.h. + * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. + +*Attachment: signature.asc * +/Description:/ This is a digitally signed message part. + +2008-06-07 Mike Frysinger + + * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. + * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h + definitions from the kernel header to sys/procfs.h and remove the + #include of asm/elf.h. + * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. + +--- a/sysdeps/unix/sysv/linux/alpha/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/alpha/sys/procfs.h +@@ -29,10 +29,23 @@ + #include + #include + #include +-#include + + __BEGIN_DECLS + ++/* ++ * The OSF/1 version of makes gregset_t 46 entries long. ++ * I have no idea why that is so. For now, we just leave it at 33 ++ * (32 general regs + processor status word). ++ */ ++#define ELF_NGREG 33 ++#define ELF_NFPREG 32 ++ ++typedef unsigned long elf_greg_t; ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++ ++typedef double elf_fpreg_t; ++typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ +--- a/sysdeps/unix/sysv/linux/sh/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/sh/sys/procfs.h +@@ -29,10 +29,19 @@ + #include + #include + #include +-#include + + __BEGIN_DECLS + ++/* ++ * ELF register definitions... ++ */ ++typedef unsigned long elf_greg_t; ++ ++#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++ ++typedef struct user_fpu_struct elf_fpregset_t; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ +--- a/sysdeps/unix/sysv/linux/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/sys/procfs.h +@@ -1,115 +1,2 @@ +-/* Copyright (C) 1996, 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 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 +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#ifndef _SYS_PROCFS_H +-#define _SYS_PROCFS_H 1 +- +-/* This is somehow modelled after the file of the same name on SysVr4 +- systems. It provides a definition of the core file format for ELF +- used on Linux. */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-__BEGIN_DECLS +- +-struct elf_siginfo +- { +- int si_signo; /* Signal number. */ +- int si_code; /* Extra code. */ +- int si_errno; /* Errno. */ +- }; +- +-/* Definitions to generate Intel SVR4-like core files. These mostly +- have the same names as the SVR4 types with "elf_" tacked on the +- front to prevent clashes with linux definitions, and the typedef +- forms have been avoided. This is mostly like the SVR4 structure, +- but more Linuxy, with things that Linux does not support and which +- gdb doesn't really use excluded. Fields present but not used are +- marked with "XXX". */ +-struct elf_prstatus +- { +-#if 0 +- long int pr_flags; /* XXX Process flags. */ +- short int pr_why; /* XXX Reason for process halt. */ +- short int pr_what; /* XXX More detailed reason. */ +-#endif +- struct elf_siginfo pr_info; /* Info associated with signal. */ +- short int pr_cursig; /* Current signal. */ +- unsigned long int pr_sigpend; /* Set of pending signals. */ +- unsigned long int pr_sighold; /* Set of held signals. */ +-#if 0 +- struct sigaltstack pr_altstack; /* Alternate stack info. */ +- struct sigaction pr_action; /* Signal action for current sig. */ +-#endif +- __pid_t pr_pid; +- __pid_t pr_ppid; +- __pid_t pr_pgrp; +- __pid_t pr_sid; +- struct timeval pr_utime; /* User time. */ +- struct timeval pr_stime; /* System time. */ +- struct timeval pr_cutime; /* Cumulative user time. */ +- struct timeval pr_cstime; /* Cumulative system time. */ +-#if 0 +- long int pr_instr; /* Current instruction. */ +-#endif +- elf_gregset_t pr_reg; /* GP registers. */ +- int pr_fpvalid; /* True if math copro being used. */ +- }; +- +- +-#define ELF_PRARGSZ (80) /* Number of chars for args */ +- +-struct elf_prpsinfo +- { +- char pr_state; /* Numeric process state. */ +- char pr_sname; /* Char for pr_state. */ +- char pr_zomb; /* Zombie. */ +- char pr_nice; /* Nice val. */ +- unsigned long 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. */ +- }; +- +-/* Addresses. */ +-typedef void *psaddr_t; +- +-/* Register sets. Linux has different names. */ +-typedef gregset_t prgregset_t; +-typedef fpregset_t prfpregset_t; +- +-/* We don't have any differences between processes and threads, +- therefore habe only ine PID type. */ +-typedef __pid_t lwpid_t; +- +- +-typedef struct elf_prstatus prstatus_t; +-typedef struct elf_prpsinfo prpsinfo_t; +- +-__END_DECLS +- +-#endif /* sys/procfs.h */ ++/* sys/procfs.h is architecture specific. */ ++#error "This file must be supplied by every Linux architecture." + diff --git a/patches/glibc/2.5.1/260-alpha-asm_elf.patch b/patches/glibc/2.5.1/260-alpha-asm_elf.patch new file mode 100644 index 0000000..3da5c8e --- /dev/null +++ b/patches/glibc/2.5.1/260-alpha-asm_elf.patch @@ -0,0 +1,194 @@ +since the kernel no longer provides asm/elf.h, the sys/procfs.h from the +common code, alpha, and sh fail when used. this should things up. +-mike + +2008-06-07 Mike Frysinger + + * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. + * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h + definitions from the kernel header to sys/procfs.h and remove the + #include of asm/elf.h. + * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. + +*Attachment: signature.asc * +/Description:/ This is a digitally signed message part. + +2008-06-07 Mike Frysinger + + * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. + * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h + definitions from the kernel header to sys/procfs.h and remove the + #include of asm/elf.h. + * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. + +--- a/sysdeps/unix/sysv/linux/alpha/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/alpha/sys/procfs.h +@@ -29,10 +29,23 @@ + #include + #include + #include +-#include + + __BEGIN_DECLS + ++/* ++ * The OSF/1 version of makes gregset_t 46 entries long. ++ * I have no idea why that is so. For now, we just leave it at 33 ++ * (32 general regs + processor status word). ++ */ ++#define ELF_NGREG 33 ++#define ELF_NFPREG 32 ++ ++typedef unsigned long elf_greg_t; ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++ ++typedef double elf_fpreg_t; ++typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ +--- a/sysdeps/unix/sysv/linux/sh/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/sh/sys/procfs.h +@@ -29,10 +29,19 @@ + #include + #include + #include +-#include + + __BEGIN_DECLS + ++/* ++ * ELF register definitions... ++ */ ++typedef unsigned long elf_greg_t; ++ ++#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++ ++typedef struct user_fpu_struct elf_fpregset_t; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ +--- a/sysdeps/unix/sysv/linux/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/sys/procfs.h +@@ -1,115 +1,2 @@ +-/* Copyright (C) 1996, 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 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 +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#ifndef _SYS_PROCFS_H +-#define _SYS_PROCFS_H 1 +- +-/* This is somehow modelled after the file of the same name on SysVr4 +- systems. It provides a definition of the core file format for ELF +- used on Linux. */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-__BEGIN_DECLS +- +-struct elf_siginfo +- { +- int si_signo; /* Signal number. */ +- int si_code; /* Extra code. */ +- int si_errno; /* Errno. */ +- }; +- +-/* Definitions to generate Intel SVR4-like core files. These mostly +- have the same names as the SVR4 types with "elf_" tacked on the +- front to prevent clashes with linux definitions, and the typedef +- forms have been avoided. This is mostly like the SVR4 structure, +- but more Linuxy, with things that Linux does not support and which +- gdb doesn't really use excluded. Fields present but not used are +- marked with "XXX". */ +-struct elf_prstatus +- { +-#if 0 +- long int pr_flags; /* XXX Process flags. */ +- short int pr_why; /* XXX Reason for process halt. */ +- short int pr_what; /* XXX More detailed reason. */ +-#endif +- struct elf_siginfo pr_info; /* Info associated with signal. */ +- short int pr_cursig; /* Current signal. */ +- unsigned long int pr_sigpend; /* Set of pending signals. */ +- unsigned long int pr_sighold; /* Set of held signals. */ +-#if 0 +- struct sigaltstack pr_altstack; /* Alternate stack info. */ +- struct sigaction pr_action; /* Signal action for current sig. */ +-#endif +- __pid_t pr_pid; +- __pid_t pr_ppid; +- __pid_t pr_pgrp; +- __pid_t pr_sid; +- struct timeval pr_utime; /* User time. */ +- struct timeval pr_stime; /* System time. */ +- struct timeval pr_cutime; /* Cumulative user time. */ +- struct timeval pr_cstime; /* Cumulative system time. */ +-#if 0 +- long int pr_instr; /* Current instruction. */ +-#endif +- elf_gregset_t pr_reg; /* GP registers. */ +- int pr_fpvalid; /* True if math copro being used. */ +- }; +- +- +-#define ELF_PRARGSZ (80) /* Number of chars for args */ +- +-struct elf_prpsinfo +- { +- char pr_state; /* Numeric process state. */ +- char pr_sname; /* Char for pr_state. */ +- char pr_zomb; /* Zombie. */ +- char pr_nice; /* Nice val. */ +- unsigned long 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. */ +- }; +- +-/* Addresses. */ +-typedef void *psaddr_t; +- +-/* Register sets. Linux has different names. */ +-typedef gregset_t prgregset_t; +-typedef fpregset_t prfpregset_t; +- +-/* We don't have any differences between processes and threads, +- therefore habe only ine PID type. */ +-typedef __pid_t lwpid_t; +- +- +-typedef struct elf_prstatus prstatus_t; +-typedef struct elf_prpsinfo prpsinfo_t; +- +-__END_DECLS +- +-#endif /* sys/procfs.h */ ++/* sys/procfs.h is architecture specific. */ ++#error "This file must be supplied by every Linux architecture." + diff --git a/patches/glibc/2.5/260-alpha-asm_elf.patch b/patches/glibc/2.5/260-alpha-asm_elf.patch new file mode 100644 index 0000000..3da5c8e --- /dev/null +++ b/patches/glibc/2.5/260-alpha-asm_elf.patch @@ -0,0 +1,194 @@ +since the kernel no longer provides asm/elf.h, the sys/procfs.h from the +common code, alpha, and sh fail when used. this should things up. +-mike + +2008-06-07 Mike Frysinger + + * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. + * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h + definitions from the kernel header to sys/procfs.h and remove the + #include of asm/elf.h. + * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. + +*Attachment: signature.asc * +/Description:/ This is a digitally signed message part. + +2008-06-07 Mike Frysinger + + * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. + * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h + definitions from the kernel header to sys/procfs.h and remove the + #include of asm/elf.h. + * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. + +--- a/sysdeps/unix/sysv/linux/alpha/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/alpha/sys/procfs.h +@@ -29,10 +29,23 @@ + #include + #include + #include +-#include + + __BEGIN_DECLS + ++/* ++ * The OSF/1 version of makes gregset_t 46 entries long. ++ * I have no idea why that is so. For now, we just leave it at 33 ++ * (32 general regs + processor status word). ++ */ ++#define ELF_NGREG 33 ++#define ELF_NFPREG 32 ++ ++typedef unsigned long elf_greg_t; ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++ ++typedef double elf_fpreg_t; ++typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ +--- a/sysdeps/unix/sysv/linux/sh/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/sh/sys/procfs.h +@@ -29,10 +29,19 @@ + #include + #include + #include +-#include + + __BEGIN_DECLS + ++/* ++ * ELF register definitions... ++ */ ++typedef unsigned long elf_greg_t; ++ ++#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++ ++typedef struct user_fpu_struct elf_fpregset_t; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ +--- a/sysdeps/unix/sysv/linux/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/sys/procfs.h +@@ -1,115 +1,2 @@ +-/* Copyright (C) 1996, 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 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 +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#ifndef _SYS_PROCFS_H +-#define _SYS_PROCFS_H 1 +- +-/* This is somehow modelled after the file of the same name on SysVr4 +- systems. It provides a definition of the core file format for ELF +- used on Linux. */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-__BEGIN_DECLS +- +-struct elf_siginfo +- { +- int si_signo; /* Signal number. */ +- int si_code; /* Extra code. */ +- int si_errno; /* Errno. */ +- }; +- +-/* Definitions to generate Intel SVR4-like core files. These mostly +- have the same names as the SVR4 types with "elf_" tacked on the +- front to prevent clashes with linux definitions, and the typedef +- forms have been avoided. This is mostly like the SVR4 structure, +- but more Linuxy, with things that Linux does not support and which +- gdb doesn't really use excluded. Fields present but not used are +- marked with "XXX". */ +-struct elf_prstatus +- { +-#if 0 +- long int pr_flags; /* XXX Process flags. */ +- short int pr_why; /* XXX Reason for process halt. */ +- short int pr_what; /* XXX More detailed reason. */ +-#endif +- struct elf_siginfo pr_info; /* Info associated with signal. */ +- short int pr_cursig; /* Current signal. */ +- unsigned long int pr_sigpend; /* Set of pending signals. */ +- unsigned long int pr_sighold; /* Set of held signals. */ +-#if 0 +- struct sigaltstack pr_altstack; /* Alternate stack info. */ +- struct sigaction pr_action; /* Signal action for current sig. */ +-#endif +- __pid_t pr_pid; +- __pid_t pr_ppid; +- __pid_t pr_pgrp; +- __pid_t pr_sid; +- struct timeval pr_utime; /* User time. */ +- struct timeval pr_stime; /* System time. */ +- struct timeval pr_cutime; /* Cumulative user time. */ +- struct timeval pr_cstime; /* Cumulative system time. */ +-#if 0 +- long int pr_instr; /* Current instruction. */ +-#endif +- elf_gregset_t pr_reg; /* GP registers. */ +- int pr_fpvalid; /* True if math copro being used. */ +- }; +- +- +-#define ELF_PRARGSZ (80) /* Number of chars for args */ +- +-struct elf_prpsinfo +- { +- char pr_state; /* Numeric process state. */ +- char pr_sname; /* Char for pr_state. */ +- char pr_zomb; /* Zombie. */ +- char pr_nice; /* Nice val. */ +- unsigned long 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. */ +- }; +- +-/* Addresses. */ +-typedef void *psaddr_t; +- +-/* Register sets. Linux has different names. */ +-typedef gregset_t prgregset_t; +-typedef fpregset_t prfpregset_t; +- +-/* We don't have any differences between processes and threads, +- therefore habe only ine PID type. */ +-typedef __pid_t lwpid_t; +- +- +-typedef struct elf_prstatus prstatus_t; +-typedef struct elf_prpsinfo prpsinfo_t; +- +-__END_DECLS +- +-#endif /* sys/procfs.h */ ++/* sys/procfs.h is architecture specific. */ ++#error "This file must be supplied by every Linux architecture." + diff --git a/patches/glibc/2.6.1/200-alpha-asm_elf.patch b/patches/glibc/2.6.1/200-alpha-asm_elf.patch new file mode 100644 index 0000000..3da5c8e --- /dev/null +++ b/patches/glibc/2.6.1/200-alpha-asm_elf.patch @@ -0,0 +1,194 @@ +since the kernel no longer provides asm/elf.h, the sys/procfs.h from the +common code, alpha, and sh fail when used. this should things up. +-mike + +2008-06-07 Mike Frysinger + + * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. + * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h + definitions from the kernel header to sys/procfs.h and remove the + #include of asm/elf.h. + * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. + +*Attachment: signature.asc * +/Description:/ This is a digitally signed message part. + +2008-06-07 Mike Frysinger + + * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. + * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h + definitions from the kernel header to sys/procfs.h and remove the + #include of asm/elf.h. + * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. + +--- a/sysdeps/unix/sysv/linux/alpha/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/alpha/sys/procfs.h +@@ -29,10 +29,23 @@ + #include + #include + #include +-#include + + __BEGIN_DECLS + ++/* ++ * The OSF/1 version of makes gregset_t 46 entries long. ++ * I have no idea why that is so. For now, we just leave it at 33 ++ * (32 general regs + processor status word). ++ */ ++#define ELF_NGREG 33 ++#define ELF_NFPREG 32 ++ ++typedef unsigned long elf_greg_t; ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++ ++typedef double elf_fpreg_t; ++typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ +--- a/sysdeps/unix/sysv/linux/sh/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/sh/sys/procfs.h +@@ -29,10 +29,19 @@ + #include + #include + #include +-#include + + __BEGIN_DECLS + ++/* ++ * ELF register definitions... ++ */ ++typedef unsigned long elf_greg_t; ++ ++#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++ ++typedef struct user_fpu_struct elf_fpregset_t; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ +--- a/sysdeps/unix/sysv/linux/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/sys/procfs.h +@@ -1,115 +1,2 @@ +-/* Copyright (C) 1996, 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 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 +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#ifndef _SYS_PROCFS_H +-#define _SYS_PROCFS_H 1 +- +-/* This is somehow modelled after the file of the same name on SysVr4 +- systems. It provides a definition of the core file format for ELF +- used on Linux. */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-__BEGIN_DECLS +- +-struct elf_siginfo +- { +- int si_signo; /* Signal number. */ +- int si_code; /* Extra code. */ +- int si_errno; /* Errno. */ +- }; +- +-/* Definitions to generate Intel SVR4-like core files. These mostly +- have the same names as the SVR4 types with "elf_" tacked on the +- front to prevent clashes with linux definitions, and the typedef +- forms have been avoided. This is mostly like the SVR4 structure, +- but more Linuxy, with things that Linux does not support and which +- gdb doesn't really use excluded. Fields present but not used are +- marked with "XXX". */ +-struct elf_prstatus +- { +-#if 0 +- long int pr_flags; /* XXX Process flags. */ +- short int pr_why; /* XXX Reason for process halt. */ +- short int pr_what; /* XXX More detailed reason. */ +-#endif +- struct elf_siginfo pr_info; /* Info associated with signal. */ +- short int pr_cursig; /* Current signal. */ +- unsigned long int pr_sigpend; /* Set of pending signals. */ +- unsigned long int pr_sighold; /* Set of held signals. */ +-#if 0 +- struct sigaltstack pr_altstack; /* Alternate stack info. */ +- struct sigaction pr_action; /* Signal action for current sig. */ +-#endif +- __pid_t pr_pid; +- __pid_t pr_ppid; +- __pid_t pr_pgrp; +- __pid_t pr_sid; +- struct timeval pr_utime; /* User time. */ +- struct timeval pr_stime; /* System time. */ +- struct timeval pr_cutime; /* Cumulative user time. */ +- struct timeval pr_cstime; /* Cumulative system time. */ +-#if 0 +- long int pr_instr; /* Current instruction. */ +-#endif +- elf_gregset_t pr_reg; /* GP registers. */ +- int pr_fpvalid; /* True if math copro being used. */ +- }; +- +- +-#define ELF_PRARGSZ (80) /* Number of chars for args */ +- +-struct elf_prpsinfo +- { +- char pr_state; /* Numeric process state. */ +- char pr_sname; /* Char for pr_state. */ +- char pr_zomb; /* Zombie. */ +- char pr_nice; /* Nice val. */ +- unsigned long 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. */ +- }; +- +-/* Addresses. */ +-typedef void *psaddr_t; +- +-/* Register sets. Linux has different names. */ +-typedef gregset_t prgregset_t; +-typedef fpregset_t prfpregset_t; +- +-/* We don't have any differences between processes and threads, +- therefore habe only ine PID type. */ +-typedef __pid_t lwpid_t; +- +- +-typedef struct elf_prstatus prstatus_t; +-typedef struct elf_prpsinfo prpsinfo_t; +- +-__END_DECLS +- +-#endif /* sys/procfs.h */ ++/* sys/procfs.h is architecture specific. */ ++#error "This file must be supplied by every Linux architecture." + diff --git a/patches/glibc/2.6/200-alpha-asm_elf.patch b/patches/glibc/2.6/200-alpha-asm_elf.patch new file mode 100644 index 0000000..3da5c8e --- /dev/null +++ b/patches/glibc/2.6/200-alpha-asm_elf.patch @@ -0,0 +1,194 @@ +since the kernel no longer provides asm/elf.h, the sys/procfs.h from the +common code, alpha, and sh fail when used. this should things up. +-mike + +2008-06-07 Mike Frysinger + + * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. + * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h + definitions from the kernel header to sys/procfs.h and remove the + #include of asm/elf.h. + * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. + +*Attachment: signature.asc * +/Description:/ This is a digitally signed message part. + +2008-06-07 Mike Frysinger + + * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. + * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h + definitions from the kernel header to sys/procfs.h and remove the + #include of asm/elf.h. + * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. + +--- a/sysdeps/unix/sysv/linux/alpha/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/alpha/sys/procfs.h +@@ -29,10 +29,23 @@ + #include + #include + #include +-#include + + __BEGIN_DECLS + ++/* ++ * The OSF/1 version of makes gregset_t 46 entries long. ++ * I have no idea why that is so. For now, we just leave it at 33 ++ * (32 general regs + processor status word). ++ */ ++#define ELF_NGREG 33 ++#define ELF_NFPREG 32 ++ ++typedef unsigned long elf_greg_t; ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++ ++typedef double elf_fpreg_t; ++typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ +--- a/sysdeps/unix/sysv/linux/sh/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/sh/sys/procfs.h +@@ -29,10 +29,19 @@ + #include + #include + #include +-#include + + __BEGIN_DECLS + ++/* ++ * ELF register definitions... ++ */ ++typedef unsigned long elf_greg_t; ++ ++#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++ ++typedef struct user_fpu_struct elf_fpregset_t; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ +--- a/sysdeps/unix/sysv/linux/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/sys/procfs.h +@@ -1,115 +1,2 @@ +-/* Copyright (C) 1996, 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 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 +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#ifndef _SYS_PROCFS_H +-#define _SYS_PROCFS_H 1 +- +-/* This is somehow modelled after the file of the same name on SysVr4 +- systems. It provides a definition of the core file format for ELF +- used on Linux. */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-__BEGIN_DECLS +- +-struct elf_siginfo +- { +- int si_signo; /* Signal number. */ +- int si_code; /* Extra code. */ +- int si_errno; /* Errno. */ +- }; +- +-/* Definitions to generate Intel SVR4-like core files. These mostly +- have the same names as the SVR4 types with "elf_" tacked on the +- front to prevent clashes with linux definitions, and the typedef +- forms have been avoided. This is mostly like the SVR4 structure, +- but more Linuxy, with things that Linux does not support and which +- gdb doesn't really use excluded. Fields present but not used are +- marked with "XXX". */ +-struct elf_prstatus +- { +-#if 0 +- long int pr_flags; /* XXX Process flags. */ +- short int pr_why; /* XXX Reason for process halt. */ +- short int pr_what; /* XXX More detailed reason. */ +-#endif +- struct elf_siginfo pr_info; /* Info associated with signal. */ +- short int pr_cursig; /* Current signal. */ +- unsigned long int pr_sigpend; /* Set of pending signals. */ +- unsigned long int pr_sighold; /* Set of held signals. */ +-#if 0 +- struct sigaltstack pr_altstack; /* Alternate stack info. */ +- struct sigaction pr_action; /* Signal action for current sig. */ +-#endif +- __pid_t pr_pid; +- __pid_t pr_ppid; +- __pid_t pr_pgrp; +- __pid_t pr_sid; +- struct timeval pr_utime; /* User time. */ +- struct timeval pr_stime; /* System time. */ +- struct timeval pr_cutime; /* Cumulative user time. */ +- struct timeval pr_cstime; /* Cumulative system time. */ +-#if 0 +- long int pr_instr; /* Current instruction. */ +-#endif +- elf_gregset_t pr_reg; /* GP registers. */ +- int pr_fpvalid; /* True if math copro being used. */ +- }; +- +- +-#define ELF_PRARGSZ (80) /* Number of chars for args */ +- +-struct elf_prpsinfo +- { +- char pr_state; /* Numeric process state. */ +- char pr_sname; /* Char for pr_state. */ +- char pr_zomb; /* Zombie. */ +- char pr_nice; /* Nice val. */ +- unsigned long 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. */ +- }; +- +-/* Addresses. */ +-typedef void *psaddr_t; +- +-/* Register sets. Linux has different names. */ +-typedef gregset_t prgregset_t; +-typedef fpregset_t prfpregset_t; +- +-/* We don't have any differences between processes and threads, +- therefore habe only ine PID type. */ +-typedef __pid_t lwpid_t; +- +- +-typedef struct elf_prstatus prstatus_t; +-typedef struct elf_prpsinfo prpsinfo_t; +- +-__END_DECLS +- +-#endif /* sys/procfs.h */ ++/* sys/procfs.h is architecture specific. */ ++#error "This file must be supplied by every Linux architecture." + diff --git a/patches/glibc/2.7/220-alpha-asm_elf.patch b/patches/glibc/2.7/220-alpha-asm_elf.patch new file mode 100644 index 0000000..3da5c8e --- /dev/null +++ b/patches/glibc/2.7/220-alpha-asm_elf.patch @@ -0,0 +1,194 @@ +since the kernel no longer provides asm/elf.h, the sys/procfs.h from the +common code, alpha, and sh fail when used. this should things up. +-mike + +2008-06-07 Mike Frysinger + + * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. + * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h + definitions from the kernel header to sys/procfs.h and remove the + #include of asm/elf.h. + * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. + +*Attachment: signature.asc * +/Description:/ This is a digitally signed message part. + +2008-06-07 Mike Frysinger + + * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. + * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h + definitions from the kernel header to sys/procfs.h and remove the + #include of asm/elf.h. + * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. + +--- a/sysdeps/unix/sysv/linux/alpha/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/alpha/sys/procfs.h +@@ -29,10 +29,23 @@ + #include + #include + #include +-#include + + __BEGIN_DECLS + ++/* ++ * The OSF/1 version of makes gregset_t 46 entries long. ++ * I have no idea why that is so. For now, we just leave it at 33 ++ * (32 general regs + processor status word). ++ */ ++#define ELF_NGREG 33 ++#define ELF_NFPREG 32 ++ ++typedef unsigned long elf_greg_t; ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++ ++typedef double elf_fpreg_t; ++typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ +--- a/sysdeps/unix/sysv/linux/sh/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/sh/sys/procfs.h +@@ -29,10 +29,19 @@ + #include + #include + #include +-#include + + __BEGIN_DECLS + ++/* ++ * ELF register definitions... ++ */ ++typedef unsigned long elf_greg_t; ++ ++#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++ ++typedef struct user_fpu_struct elf_fpregset_t; ++ + struct elf_siginfo + { + int si_signo; /* Signal number. */ +--- a/sysdeps/unix/sysv/linux/sys/procfs.h ++++ b/sysdeps/unix/sysv/linux/sys/procfs.h +@@ -1,115 +1,2 @@ +-/* Copyright (C) 1996, 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 +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 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 +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#ifndef _SYS_PROCFS_H +-#define _SYS_PROCFS_H 1 +- +-/* This is somehow modelled after the file of the same name on SysVr4 +- systems. It provides a definition of the core file format for ELF +- used on Linux. */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-__BEGIN_DECLS +- +-struct elf_siginfo +- { +- int si_signo; /* Signal number. */ +- int si_code; /* Extra code. */ +- int si_errno; /* Errno. */ +- }; +- +-/* Definitions to generate Intel SVR4-like core files. These mostly +- have the same names as the SVR4 types with "elf_" tacked on the +- front to prevent clashes with linux definitions, and the typedef +- forms have been avoided. This is mostly like the SVR4 structure, +- but more Linuxy, with things that Linux does not support and which +- gdb doesn't really use excluded. Fields present but not used are +- marked with "XXX". */ +-struct elf_prstatus +- { +-#if 0 +- long int pr_flags; /* XXX Process flags. */ +- short int pr_why; /* XXX Reason for process halt. */ +- short int pr_what; /* XXX More detailed reason. */ +-#endif +- struct elf_siginfo pr_info; /* Info associated with signal. */ +- short int pr_cursig; /* Current signal. */ +- unsigned long int pr_sigpend; /* Set of pending signals. */ +- unsigned long int pr_sighold; /* Set of held signals. */ +-#if 0 +- struct sigaltstack pr_altstack; /* Alternate stack info. */ +- struct sigaction pr_action; /* Signal action for current sig. */ +-#endif +- __pid_t pr_pid; +- __pid_t pr_ppid; +- __pid_t pr_pgrp; +- __pid_t pr_sid; +- struct timeval pr_utime; /* User time. */ +- struct timeval pr_stime; /* System time. */ +- struct timeval pr_cutime; /* Cumulative user time. */ +- struct timeval pr_cstime; /* Cumulative system time. */ +-#if 0 +- long int pr_instr; /* Current instruction. */ +-#endif +- elf_gregset_t pr_reg; /* GP registers. */ +- int pr_fpvalid; /* True if math copro being used. */ +- }; +- +- +-#define ELF_PRARGSZ (80) /* Number of chars for args */ +- +-struct elf_prpsinfo +- { +- char pr_state; /* Numeric process state. */ +- char pr_sname; /* Char for pr_state. */ +- char pr_zomb; /* Zombie. */ +- char pr_nice; /* Nice val. */ +- unsigned long 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. */ +- }; +- +-/* Addresses. */ +-typedef void *psaddr_t; +- +-/* Register sets. Linux has different names. */ +-typedef gregset_t prgregset_t; +-typedef fpregset_t prfpregset_t; +- +-/* We don't have any differences between processes and threads, +- therefore habe only ine PID type. */ +-typedef __pid_t lwpid_t; +- +- +-typedef struct elf_prstatus prstatus_t; +-typedef struct elf_prpsinfo prpsinfo_t; +- +-__END_DECLS +- +-#endif /* sys/procfs.h */ ++/* sys/procfs.h is architecture specific. */ ++#error "This file must be supplied by every Linux architecture." + -- cgit v0.10.2-6-g49f6