From ad146de70ec85c70a680bb4817f1d9e9f3bc7fd6 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 4 Nov 2004 23:37:44 +0000 Subject: * sysdeps/unix/sysv/linux/x86_64/sys/procfs.h [__WORDSIZE == 32] (elf_fpxregset_t): New type. (struct elf_prpsinfo): If __WORDSIZE == 32, change pr_[ug]id type to unsigned short int. * sysdeps/unix/sysv/linux/x86_64/sys/user.h (struct user_fpregs_struct): Fix comment. * sysdeps/i386/fpu/bits/mathdef.h (float_t, double_t): If __FLOAT_EVAL_METHOD__ is defined and 0, typedef to float resp. double. * sysdeps/x86_64/fpu/bits/mathdef.h: Include bits/wordsize.h. (float_t, double_t): If -m32 and not -mfpmath=sse, typedef to long double. * sysdeps/x86_64/fpu/bits/fenv.h: Include bits/wordsize.h. (fenv_t): Remove __mxcsr field for -m32. --- sysdeps/unix/sysv/linux/x86_64/sys/procfs.h | 17 ++++++++++++++++- sysdeps/unix/sysv/linux/x86_64/sys/user.h | 4 ++-- 2 files changed, 18 insertions(+), 3 deletions(-) (limited to 'sysdeps/unix/sysv') diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h b/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h index d774c63706..853d7db49d 100644 --- a/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h +++ b/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2004 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 @@ -45,10 +45,20 @@ typedef unsigned long elf_greg_t; #define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t)) typedef elf_greg_t elf_gregset_t[ELF_NGREG]; +#if __WORDSIZE == 32 +/* Register set for the floating-point registers. */ +typedef struct user_fpregs_struct elf_fpregset_t; + +/* Register set for the extended floating-point registers. Includes + the Pentium III SSE registers in addition to the classic + floating-point stuff. */ +typedef struct user_fpxregs_struct elf_fpxregset_t; +#else /* Register set for the extended floating-point registers. Includes the Pentium III SSE registers in addition to the classic floating-point stuff. */ typedef struct user_fpregs_struct elf_fpregset_t; +#endif /* Signal info. */ struct elf_siginfo @@ -94,8 +104,13 @@ struct elf_prpsinfo char pr_zomb; /* Zombie. */ char pr_nice; /* Nice val. */ unsigned long int pr_flag; /* Flags. */ +#if __WORDSIZE == 32 + unsigned short int pr_uid; + unsigned short int pr_gid; +#else unsigned int pr_uid; unsigned int pr_gid; +#endif int pr_pid, pr_ppid, pr_pgrp, pr_sid; /* Lots missing */ char pr_fname[16]; /* Filename of executable. */ diff --git a/sysdeps/unix/sysv/linux/x86_64/sys/user.h b/sysdeps/unix/sysv/linux/x86_64/sys/user.h index 0575fe51bf..ceadcf4788 100644 --- a/sysdeps/unix/sysv/linux/x86_64/sys/user.h +++ b/sysdeps/unix/sysv/linux/x86_64/sys/user.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2002, 2004 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 @@ -38,7 +38,7 @@ struct user_fpregs_struct __uint32_t mxcsr; __uint32_t mxcr_mask; __uint32_t st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ - __uint32_t xmm_space[64]; /* 16*16 bytes for each XMM-reg = 128 bytes */ + __uint32_t xmm_space[64]; /* 16*16 bytes for each XMM-reg = 256 bytes */ __uint32_t padding[24]; }; -- cgit v1.2.1