> > I believe that we were talking about a problem in in glibc's use > > of __canonicalize_funcptr_for_compare with a gcc 3.3 compiled kernel. > > Quoting an earlier mail: > > IAOQ = 10351b7c > > Func: __canonicalize_funcptr_for_compare, Off: 38, Addr: 0x10351b7c > > 10351b70: 2a 6b 50 00 addil 56800,r19,%r1 > > 10351b74: 48 21 0c a8 ldw 654(r1),r1 > > 10351b78: d4 60 1c 1e depwi 0,31,2,r3 > > 10351b7c: 0c 60 10 94 ldw 0(sr0,r3),r20 > > > > GR0 = 00000000 > > > > GR1 = 103eee50 > > Func: _GLOBAL_OFFSET_TABLE_, Off: 0, Addr: 0x103eee50 > > > > GR2 = 101342f8 > > Func: do_sigaction, Off: a8, Addr: 0x101342f8 > > 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. Dave -- J. David Anglin dave.anglin@nrc-cnrc.gc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6602) - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html