develooper Front page | perl.perl5.porters | Postings from September 2017

Configure changes from 5.24.1 to 5.26.1

Thread Next
From:
Philip Prindeville
Date:
September 26, 2017 02:12
Subject:
Configure changes from 5.24.1 to 5.26.1
Message ID:
CEE2B683-B197-4371-AEC9-B64619ED5E1B@cpan.org
Hi all,

I’ve not yet had a chance to diff the sources and I’m hoping that it’s a simpler problem than having to bisect the changes…

I’m one of the contributors to the LEDE project, and as such we do a lot of cross-compiling.

One thing that broke recently when I tried to go from 5.24.1 to 5.26.1 is the following:

make[3]: Entering directory '/home/philipp/bertram/lede/feeds/packages/lang/perl'
rm -f /home/philipp/bertram/lede/build_dir/target-x86_64_musl_powercode-bmu/perl/perl-5.26.1/.built
touch /home/philipp/bertram/lede/build_dir/target-x86_64_musl_powercode-bmu/perl/perl-5.26.1/.built_check
make  -C /home/philipp/bertram/lede/build_dir/target-x86_64_musl_powercode-bmu/perl/perl-5.26.1
make[4]: Entering directory '/home/philipp/bertram/lede/build_dir/target-x86_64_musl_powercode-bmu/perl/perl-5.26.1'
echo @`sh  cflags "optimize='-O2'" opmini.o` -fPIC -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB opmini.c
@x86_64-openwrt-linux-musl-gcc -c -DPERL_CORE -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -I/home/philipp/bertram/lede/staging_dir/target-x86_64_musl_powercode-bmu/usr/include -I/home/philipp/bertram/lede/staging_dir/target-x86_64_musl_powercode-bmu/include -I/home/philipp/bertram/lede/staging_dir/toolchain-x86_64_gcc-5.4.0_musl/usr/include -I/home/philipp/bertram/lede/staging_dir/toolchain-x86_64_gcc-5.4.0_musl/include/fortify -I/home/philipp/bertram/lede/staging_dir/toolchain-x86_64_gcc-5.4.0_musl/include -O2 -Wall -fPIC -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB opmini.c
In file included from perl.h:28:0,
                 from op.c:163:
config.h:1969:3: error: invalid preprocessing directive #LONG_DOUBLE_STYLE_IEEE
 # LONG_DOUBLE_STYLE_IEEE
   ^
config.h:1970:3: error: invalid preprocessing directive #LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE
 # LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE
   ^
config.h:1971:3: error: invalid preprocessing directive #LONG_DOUBLE_STYLE_IEEE_EXTENDED
 # LONG_DOUBLE_STYLE_IEEE_EXTENDED
   ^
config.h:1972:3: error: invalid preprocessing directive #LONG_DOUBLE_STYLE_IEEE_STD
 # LONG_DOUBLE_STYLE_IEEE_STD
   ^
config.h:1973:3: error: invalid preprocessing directive #LONG_DOUBLE_STYLE_VAX
 # LONG_DOUBLE_STYLE_VAX
   ^
In file included from perl.h:28:0,
                 from op.c:163:
config.h:2897:3: error: invalid preprocessing directive #HAS_GAI_STRERROR
 # HAS_GAI_STRERROR /**/
   ^
config.h:3276:3: error: invalid preprocessing directive #HAS_QUERYLOCALE
 # HAS_QUERYLOCALE /**/
   ^
config.h:3277:3: error: invalid preprocessing directive #I_XLOCALE
 # I_XLOCALE               /**/
   ^
config.h:3536:3: error: invalid preprocessing directive #HAS_STRERROR_L
 # HAS_STRERROR_L  /**/
   ^
config.h:3721:3: error: invalid preprocessing directive #DEFAULT_INC_EXCLUDES_DOT
 # DEFAULT_INC_EXCLUDES_DOT /**/
   ^
config.h:4055:3: error: invalid preprocessing directive #DOUBLE_HAS_INF
 # DOUBLE_HAS_INF
   ^
config.h:4056:3: error: invalid preprocessing directive #DOUBLE_HAS_NAN
 # DOUBLE_HAS_NAN
   ^
config.h:4057:3: error: invalid preprocessing directive #DOUBLE_HAS_NEGATIVE_ZERO
 # DOUBLE_HAS_NEGATIVE_ZERO
   ^
config.h:4058:3: error: invalid preprocessing directive #DOUBLE_HAS_SUBNORMALS
 # DOUBLE_HAS_SUBNORMALS
   ^
config.h:4059:3: error: invalid preprocessing directive #DOUBLE_STYLE_CRAY
 # DOUBLE_STYLE_CRAY
   ^
config.h:4060:3: error: invalid preprocessing directive #DOUBLE_STYLE_IBM
 # DOUBLE_STYLE_IBM
   ^
config.h:4061:3: error: invalid preprocessing directive #DOUBLE_STYLE_IEEE
 # DOUBLE_STYLE_IEEE
   ^
config.h:4062:3: error: invalid preprocessing directive #DOUBLE_STYLE_VAX
 # DOUBLE_STYLE_VAX
   ^
makefile:302: recipe for target 'opmini.o' failed
make[4]: *** [opmini.o] Error 1
make[4]: Leaving directory '/home/philipp/bertram/lede/build_dir/target-x86_64_musl_powercode-bmu/perl/perl-5.26.1'
Makefile:141: recipe for target '/home/philipp/bertram/lede/build_dir/target-x86_64_musl_powercode-bmu/perl/perl-5.26.1/.built' failed
make[3]: *** [/home/philipp/bertram/lede/build_dir/target-x86_64_musl_powercode-bmu/perl/perl-5.26.1/.built] Error 2
make[3]: Leaving directory '/home/philipp/bertram/lede/feeds/packages/lang/perl'
package/Makefile:109: recipe for target 'package/feeds/packages/perl/compile' failed
make[2]: *** [package/feeds/packages/perl/compile] Error 2



and from what I can tell, it looks like these lines in config_h.SH are at fault:

#$d_long_double_style_ieee LONG_DOUBLE_STYLE_IEEE
#$d_long_double_style_ieee_doubledouble LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE
#$d_long_double_style_ieee_extended LONG_DOUBLE_STYLE_IEEE_EXTENDED
#$d_long_double_style_ieee_std LONG_DOUBLE_STYLE_IEEE_STD

i.e. that “d_long_double_style_ieee” should be assigned ‘define’ or ‘undef’ but this is never happening.

Which is odd, because Configure contains:

d_long_double_style_ieee=$undef
d_long_double_style_ieee_std=$undef
d_long_double_style_ieee_extended=$undef
d_long_double_style_ieee_doubledouble=$undef

but maybe that’s on a conditional branch that’s not being taken.  Hard to tell when shell has little or no indentation.

We’re also using a canned set of config files:

https://github.com/openwrt/packages/tree/master/lang/perl/files

in this case, the list was:

files/version.config files/base.config files/x86_64.config files/architecture.config files/signal.config files/threads.config files/libc.config files/misc.config

does 5.26.1 have any new settings that I need to pre-defined in the case of cross-compilation?

Because x86_64.config contains:

doublekind=‘3'

which I thought was all that was necessary to derive the correct definitions for d_long_double_style_ieee* ...

Thanks,

-Philip

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