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