develooper Front page | perl.perl5.porters | Postings from May 2010

Re: 5.12: inplace sort <*> segfault (gcc 4.5.0 bug?)

Thread Previous | Thread Next
From:
Alex Hunsaker
Date:
May 11, 2010 08:29
Subject:
Re: 5.12: inplace sort <*> segfault (gcc 4.5.0 bug?)
Message ID:
AANLkTine--c4MPe8QRDZ5HCaagrTP4dSK85YfCgTL0j9@mail.gmail.com
On Tue, May 11, 2010 at 03:40, Nicholas Clark <nick@ccl4.org> wrote:
> On Mon, May 10, 2010 at 05:21:52PM -0600, Alex Hunsaker wrote:
>>
>> Hrm Ok seems like gcc decided oright can never be NULL and so took out
>> those checks.  If I do an optimize='-g' no -O2 it seems to work.  Any
>> ideas?
>
> I am confident that it's not a misplaced __attribute__nonnull__ on oright.
> (These have been a problem before). It's gcc that has decided that oright
> can't be NULL, rather than us telling it.
>
> Your analysis looks sound to me. I can reproduce it on blead with gcc 4.5.0,
> with -Dusemultiplicity (but not with other related Configure options).

Yeah, strange eh?  I do think a straight multiplicity (no threads)
build is fairly uncommon [ in fact after i fixed this, mod_perl
refuses to compile, it expects threads to be enabled if you use
multiplicity :-( ].  But I dont see any major differences in compile
options:

# nothreads
`sh  cflags "optimize='-O2'" op.o`  op.c
	  CCCMD =  cc -DPERL_CORE -c -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64  -std=c89 -O2  -Wall -ansi -W -Wextra
-Wdeclaration-after-statement -Wendif-labels -Wc++-compat

# +threads
`sh  cflags "optimize='-O2'" op.o`  op.c
	  CCCMD =  cc -DPERL_CORE -c -D_REENTRANT -D_GNU_SOURCE
-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2  -Wall -ansi
-W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About