patches/glibc/2.5.1/190-alpha-sigsuspend.patch
author Anthony Foiani <anthony.foiani@gmail.com>
Thu May 19 23:09:43 2011 +0200 (2011-05-19)
branch1.11
changeset 2465 5f98b7a90fbc
parent 744 4bf8448536d5
permissions -rw-r--r--
complibs/ppl: fix 0.11-0.11.2 to compile with --disable-shared

PPL 0.11 (through 0.11.2) had a small bug where it still tried to build
and test its Java interface even when shared libraries are disabled.
Since that's exactly what ct-ng does, it explodes.

This is the patch from the PPL authors (see final link below).

More information can be found in these messages/threads:

Anthony's initial report and analysis with Yann:
http://www.cygwin.com/ml/crossgcc/2011-05/msg00046.html

Ron Flory hit the same problem:
http://www.cygwin.com/ml/crossgcc/2011-05/msg00054.html

Anthony's report to the ppl-devel list:
http://www.cs.unipr.it/pipermail/ppl-devel/2011-May/017450.html

Roberto's reply with a link to the fix in the PPL git repo:
http://www.cs.unipr.it/pipermail/ppl-devel/2011-May/017455.html

Signed-Off-By: Anthony Foiani <anthony.foiani@gmail.com>
(transplanted from 139b85d70b623e51f7585e7c64ecb8c6a6cf4567)
     1 --- glibc-2.5/sysdeps/unix/sysv/linux/alpha/sigsuspend.S.orig	2006-10-22 22:17:01.000000000 +0200
     2 +++ glibc-2.5/sysdeps/unix/sysv/linux/alpha/sigsuspend.S	2006-10-22 22:18:05.000000000 +0200
     3 @@ -31,3 +31,21 @@
     4  libc_hidden_def (__sigsuspend)
     5  weak_alias (__sigsuspend, sigsuspend)
     6  strong_alias (__sigsuspend, __libc_sigsuspend)
     7 +
     8 +#ifndef NO_CANCELLATION
     9 +	.globl __sigsuspend_nocancel;
    10 +	.align 4;
    11 +	.type __sigsuspend_nocancel, @function;
    12 +	.usepv __sigsuspend_nocancel, std;
    13 +	cfi_startproc;
    14 +__LABEL(__sigsuspend_nocancel)
    15 +	ldgp    gp, 0(pv);
    16 +	PSEUDO_PROF;
    17 +	PSEUDO_PREPARE_ARGS
    18 +	lda     v0, SYS_ify(sigsuspend);
    19 +	call_pal PAL_callsys;
    20 +	bne     a3, SYSCALL_ERROR_LABEL;
    21 +	ret;
    22 +	cfi_endproc;
    23 +	.size __sigsuspend_nocancel, .-__sigsuspend_nocancel
    24 +#endif