Skip Menu |

This queue is for tickets about the Devel-Declare CPAN distribution.

Report information
The Basics
Id: 75134
Status: resolved
Priority: 0/
Queue: Devel-Declare

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

Bug Information
Severity: Critical
Broken in: 0.006010
Fixed in: (no value)



Subject: Segfault with clang -O2
I'm using perlbrew with clang compiler and perl 5.14.2. Using the default build options causes Devel::Declare to segfault. Setting "OPTIMIZE = -O0" in the Makefile works fine. $ clang -v Debian clang version 3.0-5 (tags/RELEASE_30/final) (based on LLVM 3.0) Target: x86_64-pc-linux-gnu Thread model: posix Relevant test output: Failed 2/2 subtests Signal SEGV at /home/ioan/perl5/perlbrew/perls/perl- 5.14.2/lib/5.14.2/perl5db.pl line 7684. DB::diesignal('SEGV') called at t/debug.pl line 29 eval {...} called at t/debug.pl line 29 t/filter1.t .................... gdb (Devel::Declare compiled with with -g) (gdb) run Starting program: /home/ioan/perl5/perlbrew/perls/perl-5.14.2/bin/perl - Iblib/lib t/debug.pl [Thread debugging using libthread_db enabled] Program received signal SIGSEGV, Segmentation fault. 0x000000000043ed5b in Perl_filter_read () (gdb) bt #0 0x000000000043ed5b in Perl_filter_read () #1 0x00007ffff6480810 in dd_filter_realloc (my_perl=<optimized out>, idx=<optimized out>, sv=0x783d28, maxlen=0) at /home/ioan/Downloads/Devel-Declare-0.006010/Declare.xs:403 #2 0x000000000043dd75 in Perl_lex_next_chunk () #3 0x000000000044314c in Perl_yylex () #4 0x000000000045bc44 in Perl_yyparse () #5 0x0000000000433a97 in perl_parse () #6 0x000000000041cad0 in main ()
More info about my environment here, if you need it:

http://www.cpantesters.org/cpan/report/b9cb0908-51ee-11e1-81e0-b57f887bd19e
Subject: Re: [rt.cpan.org #75134] Segfault with clang -O2
Date: Wed, 22 Feb 2012 17:18:40 +0000
To: Ioan Rogers via RT <bug-Devel-Declare [...] rt.cpan.org>
From: Zefram <zefram [...] fysh.org>
Thanks for the report. This appears to be a clang compiler bug; D:D can be made to work by making should-be-insignificant changes in how the thread context pointer is handled. As it happens the easiest fix is a change in the thread context handling that we should have made anyway for performance reasons, so that's easy. New D:D will go to CPAN soon. On clang, I need to look a bit more closely, then I'll probably submit a bug report to the clang maintainers. -zefram
Should be worked around in Devel-Declare-0.006011, just uploaded to CPAN.