This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: alpha/nptl/linux fails in glibc-2.5+ due to sigsuspend updates


Jakub Jelinek a écrit :
On Sat, Oct 21, 2006 at 02:31:58AM -0400, Mike Frysinger wrote:
with the move to using XXX_nocancel() functions, alpha was left with a build failure ... the linux sigsuspend.c provides __sigsuspend_nocancel() when NO_CANCELLATION is defined, but the alpha hand coded asm sigsuspend.S does not ... i tried inserting some lame code like:
#ifndef NO_CANCELLATION
#include <sysdep.h>
PSEUDO(__sigsuspend_nocancel, sigsuspend, 1)
ret
PSUEDO_END(__sigsuspend_nocancel)
#endif
but of course that fails as sysdep.h and sysdep-cancel.h use the same asm names


so then i tried creating like sysdeps/unix/sysv/linux/alpha/sigsuspend_nocancel.S and using the above code, but NO_CANCELLATION is only set up by sysdep-cancel.h so ...

I think you either can just open code it in sigsuspend.S:


#ifndef NO_CANCELLATION
        .globl __sigsuspend_nocancel;
        .align 4;
        .type __sigsuspend_nocancel, @function;
        .usepv __sigsuspend_nocancel, std;
        cfi_startproc;
__LABEL(__sigsuspend_nocancel)
        ldgp    gp, 0(pv);
        PSEUDO_PROF;
        PSEUDO_PREPARE_ARGS
        lda     v0, SYS_ify(sigsuspend);
        call_pal PAL_callsys;
        bne     a3, SYSCALL_ERROR_LABEL;
        ret;
	cfi_endproc;
	.size __sigsuspend_nocancel, .-__sigsuspend_nocancel
#endif


I have tested your proposed code, and it works well. Could it be merged?


Bye,
Aurelien

--
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net


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