[parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
Joel Soete
jsoe0708@tiscali.be
Thu, 20 Mar 2003 18:51:27 +0100
>>
>> these are definitely kernel addresses....
>
>Right. I see the code that's causing the problem in kernel/signal.c:
>
> if (k->sa.sa_handler == SIG_IGN
> || (k->sa.sa_handler == SIG_DFL
>
>
>You don't want to canonicalize k->sa.sa_handler here, so a cast to
>void * or something is needed. The PA is the only port that I am
>aware of that needs to canonicalize function pointers.
>
Well I try to test some:
--- signal.h.orig 2003-03-20 15:12:24.000000000 +0100
+++ signal.h 2003-03-20 15:11:47.000000000 +0100
@@ -106,9 +106,15 @@
#define SIG_UNBLOCK 1 /* for unblocking signals */
#define SIG_SETMASK 2 /* for setting the signal mask */
+#if __GNUC__ == 3 && __GNUC_MINOR__ >= 3 || __GNUC__ > 3
+#define SIG_DFL (0) /* default signal handling
*/
+#define SIG_IGN (1) /* ignore signal */
+#define SIG_ERR (-1) /* error return from signal
*/
+#else
#define SIG_DFL ((__sighandler_t)0) /* default signal handling
*/
#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
#define SIG_ERR ((__sighandler_t)-1) /* error return from signal
*/
+#endif
# ifndef __ASSEMBLY__
Unfortunaltely, I don't actualy know if it could help because I update kernel
src to pa31 and the problem move to:
IAOQ = 102f1e6c
Func: $lcfu_loop, Off: 0, Addr: 0x102f1e6c
102f1e60: 08 16 32 40 or,<> r22,r0,r0
102f1e64: 08 00 02 41 copy r0,r1
102f1e68: 00 01 58 20 mtsp r1,sr1
102f1e6c <$lcfu_loop>:
102f1e6c: 0f 22 50 21 ldb,ma 1(sr1,r25),r1
102f1e70: af 1f 3f ed addib,<> -1,r24,102f1e6c <$lcfu_loop>
GR0 = 00000000
GR1 = 000000dd
GR2 = 1016dd94
Func: copy_mount_options, Off: 70, Addr: 0x1016dd94
1016dd90: 08 04 02 58 copy r4,r24
1016dd94: 0b 84 04 04 sub r4,ret0,r4
1016dd98: 08 03 02 5a copy r3,r26
1016dd9c: 84 80 20 70 cmpib,= 0,r4,1016dddc <copy_mount_options+0xb8>
GR3 = 1ffb9000
GR4 = 00001000
GR5 = 1ffff005
GR6 = 00001000
GR7 = 107c8788
GR8 = 103ab810
Func: packet_init, Off: 3c, Addr: 0x103ab810
103ab810: 87 80 20 18 cmpib,= 0,ret0,103ab824 <packet_init+0x50>
103ab814: 22 72 12 06 ldil 10324800,r19
103ab818: 4a 74 09 48 ldw 4a4(r19),r20
103ab81c: 6b 80 00 68 stw r0,34(ret0)
GR9 = 103e0010
Func: Version_132116, Off: 0, Addr: 0x103e0010
GR10 = 10418010
Func: blkdevs, Off: 4e4, Addr: 0x10418010
GR11 = 102f8000
Func: ic_bootp_cookie, Off: 440, Addr: 0x102f8000
GR12 = 10340810
Func: syscall_names, Off: 49c, Addr: 0x10340810
GR13 = 10413810
Func: log_buf, Off: 79e4, Addr: 0x10413810
GR14 = 00000000
GR15 = f0400004
GR16 = f00008c4
GR17 = f000017c
GR18 = f0000174
GR19 = 107c8000
GR20 = bffd00d5
GR21 = f0047000
GR22 = 00000000
GR23 = 00000000
GR24 = 00000005
GR25 = 20000000
GR26 = 1ffb9ffb
GR27 = 10330010
Func: $global$, Off: 0, Addr: 0x10330010
GR28 = fffffff4
GR29 = 80dea173
GR30 = 107c8880
GR31 = 101563e4
Func: blkdev_put, Off: 1f4, Addr: 0x101563e4
101562bc: 86 60 22 50 cmpib,= 0,r19,101563ec <blkdev_put+0x1fc>
101563e0: 08 1f 02 42 copy r31,rp
101563e4: c9 1c 9d d5 movb,tr ret0,r8,101562d4 <blkdev_put+0xe4>
101563e8: 48 b3 00 30 ldw 18(r5),r19
101563ec: 08 05 02 5a copy r5,r26
Kernel symbols on the stack:
[<1016dd60>]: Func: copy_mount_options, Off: 3c, Addr: 0x1016dd60
[<1016e5e8>]: Func: sys_mount, Off: 30, Addr: 0x1016e5e8
[<101004b8>]: Func: prepare_namespace, Off: bc, Addr: 0x101004b8
[<10100240>]: Func: init, Off: 58, Addr: 0x10100240
[<10108c4c>]: Func: ret_from_kernel_thread, Off: 18, Addr: 0x10108c4c
[<10108cf4>]: Func: _switch_to_ret, Off: 0, Addr: 0x10108cf4
[<1012187c>]: Func: call_console_drivers, Off: b8, Addr: 0x1012187c
[<1012187c>]: Func: call_console_drivers, Off: b8, Addr: 0x1012187c
[<10121d2c>]: Func: release_console_sem, Off: 50, Addr: 0x10121d2c
[<10121b94>]: Func: printk, Off: 1f0, Addr: 0x10121b94
[<101001e8>]: Func: init, Off: 0, Addr: 0x101001e8
[<10126488>]: Func: it_real_fn, Off: 0, Addr: 0x10126488
Any other additional idea?
Thanks,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be