Perl 5.14 packaging underway

Dominic Hargreaves dom at earth.li
Wed Apr 27 22:23:42 UTC 2011


On Thu, Apr 28, 2011 at 12:13:52AM +0300, Niko Tyni wrote:
> On Wed, Apr 27, 2011 at 10:24:27PM +0300, Niko Tyni wrote:

> > Yes, I can reproduce it in an i386 chroot.
> > 
> > It only seems to happen through dpkg-buildpackage - calling 
> >  ./debian/rules perl.static
> > manually doesn't trigger it.
> 
> Got it. Summary: Building Perl 5.14.0-RC1 (but not 5.12.3) with CFLAGS
> set makes the above tests fail on i386 because -D_FILE_OFFSET_BITS=64
> is no longer passed to the preprocessor by ExtUtils::CBuilder.
> 
> In our case, it's dpkg-buildpackage setting CFLAGS to "-g -O2".
> 
> Without CFLAGS, it's
> 
> ./perl harness -v ../dist/ExtUtils-ParseXS/t/basic.t
> 1..10
> ok 1 - require ExtUtils::ParseXS;
> ok 2 - Test that output contains some text
> ok 3 - Create an output file
> cc -I/home/niko/tmp/perl-5.14 -fPIC -c -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -o XSTest.o XSTest.c
> ok 4
> ok 5 - Make sure XSTest.o exists
> cc -shared -O2 -g -L/usr/local/lib -fstack-protector -o XSTest.so XSTest.o
> ok 6
> ok 7 - Make sure XSTest.so exists
> ok 8
> ok 9
> ok 10
> 
> With CFLAGS="-g -O2" as per dpkg-buildpackage, we see
> 
> 1..10
> ok 1 - require ExtUtils::ParseXS;
> ok 2 - Test that output contains some text
> ok 3 - Create an output file
> cc -I/home/niko/tmp/perl-5.14 -fPIC -c -g -O2 -O2 -g -o XSTest.o XSTest.c
> ok 4
> ok 5 - Make sure XSTest.o exists
> cc -shared -O2 -g -L/usr/local/lib -fstack-protector -o XSTest.so XSTest.o
> ok 6
> ok 7 - Make sure XSTest.so exists
> 
> #   Failed test at t/basic.t line 53.
> not ok 8
> #          got: 'Not a CODE reference at /home/niko/tmp/perl-5.14/dist/ExtUtils-ParseXS/../../lib/DynaLoader.pm line 213.
> # END failed--call queue aborted at XSTest.pm line 213.
> # Compilation failed in require at t/basic.t line 52.
> # '
> #     expected: ''
> ok 9
> ok 10
> 
> Bisecting shows the crucial thing is -D_FILE_OFFSET_BITS=64.
> Don't know why.
> 
> It looks like this is a change in ExtUtils::CBuilder, probably
>  https://github.com/dagolden/extutils-cbuilder/commit/e653d24a
> 
> Somewhat surprisingly, while the same loss of gcc options happens
> with 5.12 and the separate libextutils-cbuilder-perl 0.280202-1
> package, it doesn't cause test failures there.
> 
> I doubt this is a blocker for 5.14.0, but I'll report it upstream next
> anyway. I'm able to reproduce it with a pristine upstream tarball and
>  export CFLAGS="-g -O2"
>  sh Configure -des -Dusethreads -Dprefix=/opt/p5.14  

Great work, thanks! (FWIW my i386 build environment is with an i386
kernel).

> I think we're going to have to patch ExtUtils::CBuilder for now.

-- 
Dominic Hargreaves | http://www.larted.org.uk/~dom/
PGP key 5178E2A5 from the.earth.li (keyserver,web,email)




More information about the Perl-maintainers mailing list