patches/glibc/2.5.1/170-alpha-asm_elf.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Jul 28 21:32:33 2008 +0000 (2008-07-28)
changeset 747 d3e603e7c17c
parent 665 patches/glibc/2.5.1/260-alpha-asm_elf.patch@313618c2c185
permissions -rw-r--r--
Fourth step at renaming patches: renumber all patches with a 10-step.
     1 since the kernel no longer provides asm/elf.h, the sys/procfs.h from the 
     2 common code, alpha, and sh fail when used.  this should things up.
     3 -mike
     4 
     5 2008-06-07  Mike Frysinger  <vapier@gentoo.org>
     6 
     7 	* sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub.
     8 	* sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h
     9 	definitions from the kernel header to sys/procfs.h and remove the
    10 	#include of asm/elf.h.
    11 	* sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise.
    12 
    13 *Attachment: signature.asc <msg00012/signature.asc>*
    14 /Description:/ This is a digitally signed message part.
    15 
    16 2008-06-07  Mike Frysinger  <vapier@gentoo.org>
    17 
    18 	* sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub.
    19 	* sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h
    20 	definitions from the kernel header to sys/procfs.h and remove the
    21 	#include of asm/elf.h.
    22 	* sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise.
    23 
    24 --- a/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
    25 +++ b/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
    26 @@ -29,10 +29,23 @@
    27  #include <sys/types.h>
    28  #include <sys/ucontext.h>
    29  #include <sys/user.h>
    30 -#include <asm/elf.h>
    31  
    32  __BEGIN_DECLS
    33  
    34 +/*
    35 + * The OSF/1 version of <sys/procfs.h> makes gregset_t 46 entries long.
    36 + * I have no idea why that is so.  For now, we just leave it at 33
    37 + * (32 general regs + processor status word).
    38 + */
    39 +#define ELF_NGREG  33
    40 +#define ELF_NFPREG 32
    41 +
    42 +typedef unsigned long elf_greg_t;
    43 +typedef elf_greg_t elf_gregset_t[ELF_NGREG];
    44 +
    45 +typedef double elf_fpreg_t;
    46 +typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
    47 +
    48  struct elf_siginfo
    49    {
    50      int si_signo;			/* Signal number.  */
    51 --- a/sysdeps/unix/sysv/linux/sh/sys/procfs.h
    52 +++ b/sysdeps/unix/sysv/linux/sh/sys/procfs.h
    53 @@ -29,10 +29,19 @@
    54  #include <sys/types.h>
    55  #include <sys/ucontext.h>
    56  #include <sys/user.h>
    57 -#include <asm/elf.h>
    58  
    59  __BEGIN_DECLS
    60  
    61 +/*
    62 + * ELF register definitions...
    63 + */
    64 +typedef unsigned long elf_greg_t;
    65 +
    66 +#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t))
    67 +typedef elf_greg_t elf_gregset_t[ELF_NGREG];
    68 +
    69 +typedef struct user_fpu_struct elf_fpregset_t;
    70 +
    71  struct elf_siginfo
    72    {
    73      int si_signo;			/* Signal number.  */
    74 --- a/sysdeps/unix/sysv/linux/sys/procfs.h
    75 +++ b/sysdeps/unix/sysv/linux/sys/procfs.h
    76 @@ -1,115 +1,2 @@
    77 -/* Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
    78 -   This file is part of the GNU C Library.
    79 -
    80 -   The GNU C Library is free software; you can redistribute it and/or
    81 -   modify it under the terms of the GNU Lesser General Public
    82 -   License as published by the Free Software Foundation; either
    83 -   version 2.1 of the License, or (at your option) any later version.
    84 -
    85 -   The GNU C Library is distributed in the hope that it will be useful,
    86 -   but WITHOUT ANY WARRANTY; without even the implied warranty of
    87 -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    88 -   Lesser General Public License for more details.
    89 -
    90 -   You should have received a copy of the GNU Lesser General Public
    91 -   License along with the GNU C Library; if not, write to the Free
    92 -   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    93 -   02111-1307 USA.  */
    94 -
    95 -#ifndef _SYS_PROCFS_H
    96 -#define _SYS_PROCFS_H	1
    97 -
    98 -/* This is somehow modelled after the file of the same name on SysVr4
    99 -   systems.  It provides a definition of the core file format for ELF
   100 -   used on Linux.  */
   101 -
   102 -#include <features.h>
   103 -#include <signal.h>
   104 -#include <sys/time.h>
   105 -#include <sys/types.h>
   106 -#include <sys/ucontext.h>
   107 -#include <sys/user.h>
   108 -#include <asm/elf.h>
   109 -
   110 -__BEGIN_DECLS
   111 -
   112 -struct elf_siginfo
   113 -  {
   114 -    int si_signo;			/* Signal number.  */
   115 -    int si_code;			/* Extra code.  */
   116 -    int si_errno;			/* Errno.  */
   117 -  };
   118 -
   119 -/* Definitions to generate Intel SVR4-like core files.  These mostly
   120 -   have the same names as the SVR4 types with "elf_" tacked on the
   121 -   front to prevent clashes with linux definitions, and the typedef
   122 -   forms have been avoided.  This is mostly like the SVR4 structure,
   123 -   but more Linuxy, with things that Linux does not support and which
   124 -   gdb doesn't really use excluded.  Fields present but not used are
   125 -   marked with "XXX".  */
   126 -struct elf_prstatus
   127 -  {
   128 -#if 0
   129 -    long int pr_flags;			/* XXX Process flags.  */
   130 -    short int pr_why;			/* XXX Reason for process halt.  */
   131 -    short int pr_what;			/* XXX More detailed reason.  */
   132 -#endif
   133 -    struct elf_siginfo pr_info;		/* Info associated with signal.  */
   134 -    short int pr_cursig;		/* Current signal.  */
   135 -    unsigned long int pr_sigpend;	/* Set of pending signals.  */
   136 -    unsigned long int pr_sighold;	/* Set of held signals.  */
   137 -#if 0
   138 -    struct sigaltstack pr_altstack;	/* Alternate stack info.  */
   139 -    struct sigaction pr_action;		/* Signal action for current sig.  */
   140 -#endif
   141 -    __pid_t pr_pid;
   142 -    __pid_t pr_ppid;
   143 -    __pid_t pr_pgrp;
   144 -    __pid_t pr_sid;
   145 -    struct timeval pr_utime;		/* User time.  */
   146 -    struct timeval pr_stime;		/* System time.  */
   147 -    struct timeval pr_cutime;		/* Cumulative user time.  */
   148 -    struct timeval pr_cstime;		/* Cumulative system time.  */
   149 -#if 0
   150 -    long int pr_instr;			/* Current instruction.  */
   151 -#endif
   152 -    elf_gregset_t pr_reg;		/* GP registers.  */
   153 -    int pr_fpvalid;			/* True if math copro being used.  */
   154 -  };
   155 -
   156 -
   157 -#define ELF_PRARGSZ     (80)    /* Number of chars for args */
   158 -
   159 -struct elf_prpsinfo
   160 -  {
   161 -    char pr_state;			/* Numeric process state.  */
   162 -    char pr_sname;			/* Char for pr_state.  */
   163 -    char pr_zomb;			/* Zombie.  */
   164 -    char pr_nice;			/* Nice val.  */
   165 -    unsigned long int pr_flag;		/* Flags.  */
   166 -    unsigned short int pr_uid;
   167 -    unsigned short int pr_gid;
   168 -    int pr_pid, pr_ppid, pr_pgrp, pr_sid;
   169 -    /* Lots missing */
   170 -    char pr_fname[16];			/* Filename of executable.  */
   171 -    char pr_psargs[ELF_PRARGSZ];	/* Initial part of arg list.  */
   172 -  };
   173 -
   174 -/* Addresses.  */
   175 -typedef void *psaddr_t;
   176 -
   177 -/* Register sets.  Linux has different names.  */
   178 -typedef gregset_t prgregset_t;
   179 -typedef fpregset_t prfpregset_t;
   180 -
   181 -/* We don't have any differences between processes and threads,
   182 -   therefore habe only ine PID type.  */
   183 -typedef __pid_t lwpid_t;
   184 -
   185 -
   186 -typedef struct elf_prstatus prstatus_t;
   187 -typedef struct elf_prpsinfo prpsinfo_t;
   188 -
   189 -__END_DECLS
   190 -
   191 -#endif	/* sys/procfs.h */
   192 +/* sys/procfs.h is architecture specific.  */
   193 +#error "This file must be supplied by every Linux architecture."
   194