On Sat, Aug 21, 1999 at 09:53:14AM +0200, Andreas Jaeger wrote:
> Linux 2.2.11 has in include/asm-mips/signal.h:
>
> #define SA_STACK 0x00000001
> #define SA_RESETHAND 0x00000002
> #define SA_RESTART 0x00000004
> #define SA_SIGINFO 0x00000008
> #define SA_NODEFER 0x00000010
> #define SA_NOCLDWAIT 0x00010000 /* Not supported yet */
> #define SA_NOCLDSTOP 0x00020000
>
> #define SA_NOMASK SA_NODEFER
> #define SA_ONESHOT SA_RESETHAND
>
> but Linux 2.0.x uses:
>
> #define SA_STACK 0x1
> #define SA_ONSTACK SA_STACK
> #define SA_RESTART 0x4
> #define SA_NOCLDSTOP 0x20000
> /* Non ABI signals */
> #define SA_INTERRUPT 0x01000000
> #define SA_NOMASK 0x02000000
> #define SA_ONESHOT 0x04000000
> #define SA_SHIRQ 0x08000000
>
> We now have different values for e.g.:
> SA_ONESHOT/SA_RESETHAND (0x04000000 or 0x00000002)
> SA_NOMASK/SA_NODEFER (0x02000000 or 0x00000010)
>
> Don't we have a compatibility problem here between Linux 2.0.x and
> 2.2.x? I've got to add these constants to glibc in a way that it
> works on both platforms :-(.
Hmm... I just checked through my system. The change happend in my
commit of 2.1.76. I think I made the change because I discovered
that glibc and the kernel had different values for this constant, so
if things were broken anyway I could just go ahead and use the ABI
constants. Something like that.
Shouldn't the SV_* constants have the same values as their SA_*
counterparts?
Ralf
|