This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Do we need Linux/alpha and Linux/sparc versions of <bits/siginfo.h>?


>>>>> Jakub Jelinek writes:

 > On Mon, Jan 24, 2000 at 08:14:29AM +0100, Andreas Jaeger wrote:
>> 
>> Looking through the various asm-*/siginfo.h files in Linux 2.3.41pre2,
>> I've encountered only two platforms with problems: Alpha and Sparc.
>> Could the maintainers of these platforms please check the following
>> and take appropriate action?
>> 
>> Alpha defines:
>> #define SI_PAD_SIZE     ((SI_MAX_SIZE/sizeof(int)) - 4)
>> #define SIGEV_PAD_SIZE  ((SIGEV_MAX_SIZE/sizeof(int)) - 4)
>> 
>> but all other platforms have a 3 instead of a 4 for these two defines:
>> #define SI_PAD_SIZE     ((SI_MAX_SIZE/sizeof(int)) - 3)
>> #define SIGEV_PAD_SIZE  ((SIGEV_MAX_SIZE/sizeof(int)) - 3)
>> 
>> Sparc and Sparc64 additionally define the member _trapno for _sigfault
>> - and SIGEMT is also only used by Sparc*:
>> /* SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGEMT */
>> struct {
>> void *_addr;    /* faulting insn/memory ref. */
>> int  _trapno;   /* TRAP # which caused the signal */
>> } _sigfault;
>> 
>> 
>> Do we need Linux/alpha and Linux/sparc versions of <bits/siginfo.h>?

 > (Again, something which I had scheduled for today anyway).
Good that I didn't investigate more work into it;-).

Jakub, what do you think?  Are now (with your patch and Linux
2.3.41pre2) all siginfo problems fixed?  Is 32bit uid support complete
(apart from some cleaning up)?

 > IMHO, we need only separate version of sparc siginfo, plus use __WORDSIZE
 > in the generic linux version (I think ia64, ppc64, mips64 etc. could use it
 > as well):
MIPS has already a special version since some constants have different
values than the rest of the kernel :-(
 > [...]
New Sparc specific <bits/siginfo.h>:
 > +
 > +	/* SIGILL, SIGFPE, SIGSEGV, SIGBUS.  */
You didn't add SIGEMT in the comment - is this correct?
 > +	struct
 > +	  {
 > +	    void *si_addr;	/* Faulting insn/memory ref.  */
 > +	    int si_trapno;
 > +	  } _sigfault;

The rest looks fine.

Thanks,
Andreas
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.rhein-neckar.de

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]