Skip Menu |

This queue is for tickets about the Compress-Bzip2 CPAN distribution.

Report information
The Basics
Id: 84434
Status: resolved
Priority: 0/
Queue: Compress-Bzip2

People
Owner: Nobody in particular
Requestors: MGI [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 2.13
Fixed in: (no value)



Subject: unknown type name 'sigjmp_buf' Solaris 10, gcc 4.7.2
Still installing on perl 5.16.3 built with GNU tools, among which gcc 4.7.2 Getting now (once passed the unknown type name 'off64_t' error): Compress-Bzip2-2.13> gcc -c -D_REENTRANT -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -O -DVERSION=\"2.13\" -DXS_VERSION=\"2.13\" -fPIC -I/vobs/cello/cade_A_tools_perl/lib/5.16.3/arch-thread-multi/CORE -I/usr/include -std=c89 Bzip2.c In file included from /vobs/cello/cade_A_tools_perl/lib/5.16.3/arch-thread-multi/CORE/perl.h:3447:0, from Bzip2.xs:4: /vobs/cello/cade_A_tools_perl/lib/5.16.3/arch-thread-multi/CORE/cop.h:34:5: error: unknown type name 'sigjmp_buf' Now, I cannot see what to do. Show quoted text
CORE> grep -l sigjmp_buf *
config.h uconfig.h Show quoted text
CORE> grep -nB2 sigjmp_buf config.h
2300-#define HAS_SIGSETJMP /**/ 2301-#ifdef HAS_SIGSETJMP 2302:#define Sigjmp_buf sigjmp_buf and the definition comes from /usr/include/setjmp.h #if defined(_LP64) || defined(_I32LPx) typedef long sigjmp_buf[_SIGJBLEN]; #else typedef int sigjmp_buf[_SIGJBLEN]; #endif There is a condition (even assuming __STDC__): #if !defined(_STRICT_STDC) || defined(__XOPEN_OR_POSIX) || \ defined(__EXTENSIONS__) Marc
I compiled with --save-temp to get a trace of the inclusions and #defines. Here is imho the relevant excerpt: # 670 "/vobs/cello/cade_A_tools_perl/lib/5.16.3/arch-thread-multi/CORE/perl.h" # 1 "/usr/include/setjmp.h" 1 3 4 # 16 "/usr/include/setjmp.h" 3 4 #pragma ident "@(#)setjmp.h 1.38 04/09/28 SMI" # 1 "/vobs/cello/cade_A_tools_gcc/lib/gcc/sparc-sun-solaris2.10/4.7.2/include-fixed/iso/setjmp_iso.h" 1 3 4 # 37 "/vobs/cello/cade_A_tools_gcc/lib/gcc/sparc-sun-solaris2.10/4.7.2/include-fixed/iso/setjmp_iso.h" 3 4 #pragma ident "@(#)setjmp_iso.h 1.2 04/09/28 SMI" # 78 "/vobs/cello/cade_A_tools_gcc/lib/gcc/sparc-sun-solaris2.10/4.7.2/include-fixed/iso/setjmp_iso.h" 3 4 typedef int jmp_buf[12]; [ only white space ] extern int setjmp(jmp_buf); #pragma unknown_control_flow(setjmp) extern int _setjmp(jmp_buf); #pragma unknown_control_flow(_setjmp) extern void longjmp(jmp_buf, int) __attribute__((__noreturn__)); extern void _longjmp(jmp_buf, int) __attribute__((__noreturn__)); # 19 "/usr/include/setjmp.h" 2 3 4 # 671 "/vobs/cello/cade_A_tools_perl/lib/5.16.3/arch-thread-multi/CORE/perl.h" 2 I.e. the portion defining sigjmp_buf is, under the given configuration, completely skipped!
Fixed in 2.14 -- Reini Urban
On Fri Apr 05 11:28:47 2013, RURBAN wrote: Show quoted text
> Fixed in 2.14
Acknowledged in 2.15 Thanks!