Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Perl 5.24+ Configure loses hints script changes #15992

Open
p5pRT opened this issue May 31, 2017 · 24 comments
Open

Perl 5.24+ Configure loses hints script changes #15992

p5pRT opened this issue May 31, 2017 · 24 comments

Comments

@p5pRT
Copy link

p5pRT commented May 31, 2017

Migrated from rt.perl.org#131415 (status was 'open')

Searchable as RT131415$

@p5pRT
Copy link
Author

p5pRT commented May 31, 2017

From al.dunsmuir@sympatico.ca

This is a bug report for perl from al.dunsmuir@​sympatico.ca,
generated with the help of perlbug 1.40 running under perl 5.24.1.


My Perl 5 port for AIX 5.3 (built May 2016) is 5.22.1, for both 32
and 64bit. I'm using XL C (xlc_r).

I started the port of 5.26.0, and the first perl file build with
miniperl (which happens to be 64-bit) failed with​:

A check of the Configure output for 5.26.0 showed
Any additional cc flags? [-q64 -brtl -bdynamic -DNEED_PTHREAD_INIT]
I attempted the same build with 5.24.1 and it had the same output.

The correct Configure output for 5.22.1 showed
Any additional cc flags? [-q64 -brtl -bdynamic -D_ALL_SOURCE
  -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias
  -qlanglvl=extc99 -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT]

The ccflags value passed to Configure in all cases was
'-q64 -brtl -bdynamic' for the 64 bit build.

There have been some large changes to Configure since 5.22.1, so
my first pass at diagnosing the cause was to add "set -x" to the
start of the 5.22 and 5.26 Configure scripts.

In 5.22, the options are set by calling hints/aix.sh as expected.

In 5.26, the options are initially set by calling a copy of the
hints/aix.sh (as UU/config.sh) at line 3818. Immediately after
at line 3826, the updated options are reverted to the original
command line options by calling optfile.sh (which appears to have
been added in 5.24 for resetting options after some new test
compiles).

Removing that optfile.sh leaves the options set, but really is not
sufficient to generate a correct build.
1) The hints file needs to be processed before the optfile.sh
  file is generated, so that any new tests are done using the
  recommended options for the platform/compiler.
2) Care needs to be taken for any inline tests to ensure that
  they are bypassed, or fail correctly when the build compiler
  is not gcc.
3) There seems to be overlap between the new long float inline
  tests in Configure and those in hints/aix.sh - I suspect that
  it would be better to take these into account in Configure
  and minimize any new redundant tests.

I'm going to continue with my 5.26 port effort, starting by
removing the call at line 3826.

Any port relying on options from a hints script will likely fail.
A workaround would be to specify any flags/options that should have
been added by the hints script to the Configure invocation.

A Google search showed what appear to be related error report​:.
- http​://www.nntp.perl.org/group/perl.mvs/2017/04/msg2458.html
  shows an identical error for the os390 port, using the similar
  IBM z/OS XL C compiler).
 
  In my day job, I'm a z/OS C programmer, and was part of IBM's C/C++
  compiler team for a number of years. I suspect -qnoansialias
  missing is the main problem for both platforms.

- I saw another another 5.24 miniperl error reported for an old Sun
  OS system that sounds suspeciously related.

Al Dunsmuir

Reported from my Fedora F25 system. This is not relevant to the
bug, so I removed all the following info except the flags.



Flags​:
  category=core
  severity=medium


  Message-Id​: <5.24.1_6508_1496260882@​wallace.alba.lan>
Subject​: Perl 5.24+ Configure loses hints script changes
Reply-To​: al.dunsmuir@​sympatico.ca
From​: al.dunsmuir@​sympatico.ca
To​: perlbug@​perl.org

This is a bug report for perl from al.dunsmuir@​sympatico.ca,
generated with the help of perlbug 1.40 running under perl 5.24.1.


My Perl 5 port for AIX 5.3 (built May 2016) is 5.22.1, for both 32
and 64bit. I'm using XL C (xlc_r).

I started the port of 5.26.0, and the first perl file build with
miniperl (which happens to be 64-bit) failed with​:

A check of the Configure output for 5.26.0 showed
Any additional cc flags? [-q64 -brtl -bdynamic -DNEED_PTHREAD_INIT]
I attempted the same build with 5.24.1 and it had the same output.

The correct Configure output for 5.22.1 showed
Any additional cc flags? [-q64 -brtl -bdynamic -D_ALL_SOURCE
  -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias
  -qlanglvl=extc99 -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT]

The ccflags value passed to Configure in all cases was
'-q64 -brtl -bdynamic' for the 64 bit build.

There have been some large changes to Configure since 5.22.1, so
my first pass at diagnosing the cause was to add "set -x" to the
start of the 5.22 and 5.26 Configure scripts.

In 5.22, the options are set by calling hints/aix.sh as expected.

In 5.26, the options are initially set by calling a copy of the
hints/aix.sh (as UU/config.sh) at line 3818. Immediately after
at line 3826, the updated options are reverted to the original
command line options by calling optfile.sh (which appears to have
been added in 5.24 for resetting options after some new test
compiles).

Removing that optfile.sh leaves the options set, but really is not
sufficient to generate a correct build.
1) The hints file needs to be processed before the optfile.sh
  file is generated, so that any new tests are done using the
  recommended options for the platform/compiler.
2) Care needs to be taken for any inline tests to ensure that
  they are bypassed, or fail correctly when the build compiler
  is not gcc.
3) There seems to be overlap between the new long float inline
  tests in Configure and those in hints/aix.sh - I suspect that
  it would be better to take these into account in Configure
  and minimize any new redundant tests.

I'm going to continue with my 5.26 port effort, starting by
removing the call at line 3826.

Any port relying on options from a hints script will likely fail.
A workaround would be to specify any flags/options that should have
been added by the hints script to the Configure invocation.

A Google search showed what appear to be related error report​:.
- http​://www.nntp.perl.org/group/perl.mvs/2017/04/msg2458.html
  shows an identical error for the os390 port, using the similar
  IBM z/OS XL C compiler).
 
  In my day job, I'm a z/OS C programmer, and was part of IBM's C/C++
  compiler team for a number of years. I suspect -qnoansialias
  missing is the main problem for both platforms.

- I saw another another 5.24 miniperl error reported for an old Sun
  OS system that sounds suspeciously related.

Al Dunsmuir

Reported from my Fedora F25 system. This is not relevant to the
bug, so I removed all the following info except the flags.



Flags​:
  category=core
  severity=medium


@p5pRT
Copy link
Author

p5pRT commented May 31, 2017

From al.dunsmuir@sympatico.ca

Actual miniperl failure on AIX 5.3 follows. Same error as OS390 port.
--
Al Dunsmuir

xlc_r -q64 -c -DPERL_CORE -q64 -brtl -bdynamic -DNEED_PTHREAD_INIT -q64 -DUSE_64_BIT_ALL -q64 -O miniperlmain.c
xlc_r -q64 -o miniperl -q64 -s -Wl,-bmaxdata​:0x80000000 -L/opt/freeware/lib64 -L/usr/lib64 -L/opt/freeware/lib -L/usr/lib -b64 opmini.o perlmini.o gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro_core.o keywords.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o caretx.o dquote.o time64.o miniperlmain.o -lpthread -lbind -lnsl -ldl -lld -lm -lcrypt -lpthreads -lc
LIBPATH=/apps/rpmbuild/BUILD/perl-5.26.0-RC2/64bit ./miniperl -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1'
Invalid version object at dist/Exporter/lib/Exporter.pm line 3.
Compilation failed in require.
BEGIN failed--compilation aborted.
Failed to build miniperl. Please run make minitest
make​: *** [makefile​:385​: lib/buildcustomize.pl] Error 1

@p5pRT
Copy link
Author

p5pRT commented Jun 1, 2017

From @jkeenan

On Wed, 31 May 2017 21​:37​:46 GMT, al.dunsmuir@​sympatico.ca wrote​:

This is a bug report for perl from al.dunsmuir@​sympatico.ca,
generated with the help of perlbug 1.40 running under perl 5.24.1.

-----------------------------------------------------------------
My Perl 5 port for AIX 5.3 (built May 2016) is 5.22.1, for both 32
and 64bit. I'm using XL C (xlc_r).

I started the port of 5.26.0, and the first perl file build with
miniperl (which happens to be 64-bit) failed with​:

A check of the Configure output for 5.26.0 showed
Any additional cc flags? [-q64 -brtl -bdynamic -DNEED_PTHREAD_INIT]
I attempted the same build with 5.24.1 and it had the same output.

The correct Configure output for 5.22.1 showed
Any additional cc flags? [-q64 -brtl -bdynamic -D_ALL_SOURCE
-D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias
-qlanglvl=extc99 -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT]

The ccflags value passed to Configure in all cases was
'-q64 -brtl -bdynamic' for the 64 bit build.

Would you be able to attach 'config.sh' for each of 5.22.1 and 5.26.0?

Our Configure experts will probably get some insight from them.

Thank you very much.

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Jun 1, 2017

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jun 1, 2017

From al.dunsmuir@sympatico.ca

On Wed, 31 May 2017 19​:18​:38 -0700, jkeenan wrote​:

Would you be able to attach 'config.sh' for each of 5.22.1 and 5.26.0?

Our Configure experts will probably get some insight from them.

Thank you very much.

File 1 is perl-5.22.1 and file 2 is perl-5.26.0
--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 1, 2017

From al.dunsmuir@sympatico.ca

config.sh

@p5pRT
Copy link
Author

p5pRT commented Jun 1, 2017

From al.dunsmuir@sympatico.ca

Looks like this form gets confused when you attach 2 files with the same basename.
The last file (5.26.0 version) ended up being uploaded.

Now attaching the 5.22.1 version.

--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 1, 2017

From al.dunsmuir@sympatico.ca

config.sh

@p5pRT
Copy link
Author

p5pRT commented Jun 1, 2017

From [Unknown Contact. See original ticket]

Looks like this form gets confused when you attach 2 files with the same basename.
The last file (5.26.0 version) ended up being uploaded.

Now attaching the 5.22.1 version.

--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 2, 2017

From @Tux

On Thu, 01 Jun 2017 08​:26​:05 -0700, "Al Dunsmuir via RT"
<perlbug-followup@​perl.org> wrote​:

On Wed, 31 May 2017 19​:18​:38 -0700, jkeenan wrote​:

Would you be able to attach 'config.sh' for each of 5.22.1 and 5.26.0?

Our Configure experts will probably get some insight from them.

Thank you very much.

File 1 is perl-5.22.1 and file 2 is perl-5.26.0

I see just one file (without version in the name)

--
H.Merijn Brand http​://tux.nl Perl Monger http​://amsterdam.pm.org/
using perl5.00307 .. 5.25 porting perl5 on HP-UX, AIX, and openSUSE
http​://mirrors.develooper.com/hpux/ http​://www.test-smoke.org/
http​://qa.perl.org http​://www.goldmark.org/jeff/stupid-disclaimers/

@p5pRT
Copy link
Author

p5pRT commented Jun 2, 2017

From @jkeenan

On Thu, 01 Jun 2017 15​:32​:12 GMT, al.dunsmuir@​sympatico.ca wrote​:

Looks like this form gets confused when you attach 2 files with the
same basename.
The last file (5.26.0 version) ended up being uploaded.

Now attaching the 5.22.1 version.

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Jun 2, 2017

From @jkeenan

131415-5.22.1-config.sh

@p5pRT
Copy link
Author

p5pRT commented Jun 2, 2017

From @jkeenan

131415-5.26.0-config.sh

@p5pRT
Copy link
Author

p5pRT commented Jun 2, 2017

From @jkeenan

On Fri, 02 Jun 2017 10​:20​:55 GMT, jkeenan wrote​:

On Thu, 01 Jun 2017 15​:32​:12 GMT, al.dunsmuir@​sympatico.ca wrote​:

Looks like this form gets confused when you attach 2 files with the
same basename.
The last file (5.26.0 version) ended up being uploaded.

Now attaching the 5.22.1 version.

I have uploaded the two config.sh files, only now with names including their Perl version numbers.

I notice one peculiarity in 131415-5.26.0-config.sh. In the config_args you have​:

#####
-Dinc_version_list=5.26.1
#####

This must be a typo, as version 5.26.1 does not yet exist. Shouldn't it be​:

#####
-Dinc_version_list=5.26.0
#####

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Jun 2, 2017

From @doughera88

On Wed, May 31, 2017 at 02​:37​:47PM -0700, Al Dunsmuir wrote​:

# New Ticket Created by Al Dunsmuir
# Please include the string​: [perl #131415]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=131415 >

-----------------------------------------------------------------
My Perl 5 port for AIX 5.3 (built May 2016) is 5.22.1, for both 32
and 64bit. I'm using XL C (xlc_r).

I started the port of 5.26.0, and the first perl file build with
miniperl (which happens to be 64-bit) failed with​:

A check of the Configure output for 5.26.0 showed
Any additional cc flags? [-q64 -brtl -bdynamic -DNEED_PTHREAD_INIT]
I attempted the same build with 5.24.1 and it had the same output.

The correct Configure output for 5.22.1 showed
Any additional cc flags? [-q64 -brtl -bdynamic -D_ALL_SOURCE
-D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias
-qlanglvl=extc99 -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT]

The ccflags value passed to Configure in all cases was
'-q64 -brtl -bdynamic' for the 64 bit build.

There have been some large changes to Configure since 5.22.1, so
my first pass at diagnosing the cause was to add "set -x" to the
start of the 5.22 and 5.26 Configure scripts.

In 5.22, the options are set by calling hints/aix.sh as expected.

In 5.26, the options are initially set by calling a copy of the
hints/aix.sh (as UU/config.sh) at line 3818. Immediately after
at line 3826, the updated options are reverted to the original
command line options by calling optfile.sh (which appears to have
been added in 5.24 for resetting options after some new test
compiles).

I suspect this is another unintended consequence of

  commit 41d7307
  Author​: Ivan Pozdeev <vano@​mail.mipt.ru>
  Date​: Wed Aug 12 20​:33​:12 2015 +0300

  Make -O behaviour the default

which, unforutnately, did not include an option to skip the -O behaviour.
If it had, using that option would have reverted to the old behavior,
and would probably fix at least this initial problem.

One solution might be to adjust the way you call Configure to use
-Accflags instead of -Dccflags. (Similarly, you probably should change
-Dldflags to -Aldflags.) I'd try that first.

If that fails, your workaround of deleting line 3826 in Configure
is a sensible path forward.

Once that is in hand, it can make sense to look at specific failing
Configure or hints checks. I haven't looked at any of the long float
stuff or at AIX in ages, so I'm unlikely to be of much help there.

--
  Andy Dougherty doughera@​lafayette.edu

@p5pRT
Copy link
Author

p5pRT commented Jun 2, 2017

From al.dunsmuir@sympatico.ca

On Fri, 02 Jun 2017 03​:23​:55 -0700, jkeenan wrote​:

On Fri, 02 Jun 2017 10​:20​:55 GMT, jkeenan wrote​:

On Thu, 01 Jun 2017 15​:32​:12 GMT, al.dunsmuir@​sympatico.ca wrote​:

Looks like this form gets confused when you attach 2 files with the
same basename.
The last file (5.26.0 version) ended up being uploaded.

Now attaching the 5.22.1 version.

I have uploaded the two config.sh files, only now with names including
their Perl version numbers.

I notice one peculiarity in 131415-5.26.0-config.sh. In the
config_args you have​:

#####
-Dinc_version_list=5.26.1
#####

This must be a typo, as version 5.26.1 does not yet exist. Shouldn't
it be​:

#####
-Dinc_version_list=5.26.0
#####

James,

Good catch! I'm modelling the AIX rpm spec file after Fedora. I it had
%define perlmodcompat 5.26.1
Provides​: perl(​:MODULE_COMPAT_5.26.1)

Since I already had a cpan_version %glocal symbol (so I could try building RC2),
I've changed both lines to use that value.

--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 2, 2017

From al.dunsmuir@sympatico.ca

On Fri, 02 Jun 2017 09​:16​:15 -0700, doughera wrote​:

On Wed, May 31, 2017 at 02​:37​:47PM -0700, Al Dunsmuir wrote​:

# New Ticket Created by Al Dunsmuir
# Please include the string​: [perl #131415]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=131415 >

-----------------------------------------------------------------
My Perl 5 port for AIX 5.3 (built May 2016) is 5.22.1, for both 32
and 64bit. I'm using XL C (xlc_r).

I started the port of 5.26.0, and the first perl file build with
miniperl (which happens to be 64-bit) failed with​:

A check of the Configure output for 5.26.0 showed
Any additional cc flags? [-q64 -brtl -bdynamic -DNEED_PTHREAD_INIT]
I attempted the same build with 5.24.1 and it had the same output.

The correct Configure output for 5.22.1 showed
Any additional cc flags? [-q64 -brtl -bdynamic -D_ALL_SOURCE
-D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias
-qlanglvl=extc99 -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT]

The ccflags value passed to Configure in all cases was
'-q64 -brtl -bdynamic' for the 64 bit build.

There have been some large changes to Configure since 5.22.1, so
my first pass at diagnosing the cause was to add "set -x" to the
start of the 5.22 and 5.26 Configure scripts.

In 5.22, the options are set by calling hints/aix.sh as expected.

In 5.26, the options are initially set by calling a copy of the
hints/aix.sh (as UU/config.sh) at line 3818. Immediately after
at line 3826, the updated options are reverted to the original
command line options by calling optfile.sh (which appears to have
been added in 5.24 for resetting options after some new test
compiles).

I suspect this is another unintended consequence of

commit 41d73075f0801c26794dadb1ff690f305d7e53a7
Author&#8203;: Ivan Pozdeev \<vano@&#8203;mail\.mipt\.ru>
Date&#8203;:   Wed Aug 12 20&#8203;:33&#8203;:12 2015 \+0300

Make \-O behaviour the default

which, unforutnately, did not include an option to skip the -O behaviour.
If it had, using that option would have reverted to the old behavior,
and would probably fix at least this initial problem.

One solution might be to adjust the way you call Configure to use
-Accflags instead of -Dccflags. (Similarly, you probably should change
-Dldflags to -Aldflags.) I'd try that first.

If that fails, your workaround of deleting line 3826 in Configure
is a sensible path forward.

Once that is in hand, it can make sense to look at specific failing
Configure or hints checks. I haven't looked at any of the long float
stuff or at AIX in ages, so I'm unlikely to be of much help there.

Andy,

The implementation of the change forcing optimization is definitely broken.

Without the options from the hints file, you don't have any chance of building
a working perl at all on some platforms, let alone a fast one. The hints file
should provide the default optimization for a platform/compiler, and assuming
that the required option is simply "-O" is broken.

The hints should be applied first, and form the starting point of adding any
additional options.

Now that you've confirmed my diagnosis, I'm going to start making some quick
local patches to confirm and fix (initially just deleting the option, then
trying the other config options, then fixing the real issues).

As to the long float support, I'll take a look at that later too. I worked
for IBM until 2002, and actually worked on the floating point emulation code
used by the XL C/C++ compiler for constant expression evaluation. It's been
a LONG time, but it will help me recall the basics. The AIX hints script
seems to do the right thing, so the later tests should trust those results.

By the way, I also have some major changes to ExtUtil​::CBuilder from my 5.22.1
work that need to be rolled forward to get 5.26.0 to work properly. Right now,
it is rather broken if you try to use anything other than gcc on AIX. That code
attempts to guess the C++ compiler name and options, and fails miserably if you
are not using gcc/g++. Looking at the code, I thought it would also affect other
platforms (like Windows) or attempting to use clang. I had a brief email
exchange with the author, but he indicated it had moved to the base and I'd have
to go through your group and work with the git repository. The CPAN search for
that function still shows the version before the one now included in 5.26.0, so
I'll open a separate perlbug for that once I get the changes updated and verified
for 5.26.0.

I created rpms for over 300 perl packages last year, and will be iterating those
for tge 5.26.0 release. I'm mostly a C programmer, and still a newbie with git
and GitHub. Please be patient 8^)

--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 7, 2017

From al.dunsmuir@sympatico.ca

On Wed, 31 May 2017 14​:37​:46 -0700, al.dunsmuir@​sympatico.ca wrote​:
sh as expected.

In 5.26, the options are initially set by calling a copy of the
hints/aix.sh (as UU/config.sh) at line 3818. Immediately after
at line 3826, the updated options are reverted to the original
command line options by calling optfile.sh (which appears to have
been added in 5.24 for resetting options after some new test
compiles).

I'm going to continue with my 5.26 port effort, starting by
removing the call at line 3826.

I've removed that line, and since the required option updates from the
hints/aix.sh script are retained both the 32-bit and 64-bit builds were
successful (without tests).

I reran with tests, and experienced the following
Failed 1 test out of 2446, 99.96% okay.
  ../cpan/ExtUtils-MakeMaker/t/02-xsdynamic.t

With multiple failures of the form​:
# make[1]​: *** No rule to make target 'Test.exp', needed by 'dynamic'. Stop.
# make[1]​: *** No rule to make target 'Test.exp', needed by 'static'. Stop.

There were a total of 5 tests of 66 failed.

This appears to be
#128902​: MakeMaker 02-xsdynamic.t failure in AIX 5.3 with blead be93048
(https://rt-archive.perl.org/perl5/Ticket/Display.html?id=128902)

Since dynamic linking on AIX requires platform-specific processing, the test
likely requires some work to make it fully functional on AIX.

I've updated that ticket with the failure output, and will dig into that failure
farther when I get a change (as I require dynamic modules working for my the
application I'm porting to AIX). All follow up on the test failures will be in
that ticket.

In any case, I think we've reached the point where Configure and the metaconfig
source can be updated, so that platforms that require the hints input can build
again.


Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 7, 2017

From [Unknown Contact. See original ticket]

On Wed, 31 May 2017 14​:37​:46 -0700, al.dunsmuir@​sympatico.ca wrote​:
sh as expected.

In 5.26, the options are initially set by calling a copy of the
hints/aix.sh (as UU/config.sh) at line 3818. Immediately after
at line 3826, the updated options are reverted to the original
command line options by calling optfile.sh (which appears to have
been added in 5.24 for resetting options after some new test
compiles).

I'm going to continue with my 5.26 port effort, starting by
removing the call at line 3826.

I've removed that line, and since the required option updates from the
hints/aix.sh script are retained both the 32-bit and 64-bit builds were
successful (without tests).

I reran with tests, and experienced the following
Failed 1 test out of 2446, 99.96% okay.
  ../cpan/ExtUtils-MakeMaker/t/02-xsdynamic.t

With multiple failures of the form​:
# make[1]​: *** No rule to make target 'Test.exp', needed by 'dynamic'. Stop.
# make[1]​: *** No rule to make target 'Test.exp', needed by 'static'. Stop.

There were a total of 5 tests of 66 failed.

This appears to be
#128902​: MakeMaker 02-xsdynamic.t failure in AIX 5.3 with blead be93048
(https://rt-archive.perl.org/perl5/Ticket/Display.html?id=128902)

Since dynamic linking on AIX requires platform-specific processing, the test
likely requires some work to make it fully functional on AIX.

I've updated that ticket with the failure output, and will dig into that failure
farther when I get a change (as I require dynamic modules working for my the
application I'm porting to AIX). All follow up on the test failures will be in
that ticket.

In any case, I think we've reached the point where Configure and the metaconfig
source can be updated, so that platforms that require the hints input can build
again.


Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 7, 2017

From al.dunsmuir@sympatico.ca

On Wed, 07 Jun 2017 11​:56​:36 -0700, al.dunsmuir@​sympatico.ca wrote​:

In any case, I think we've reached the point where Configure and the
metaconfig source can be updated, so that platforms that require the
hints input can build again.

I forgot about 5.24 release. Is the policy for these fixes to only be
applied to the current (5.26) release, or would there be additional
fixes accumulated for the 5.24 release?

--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 7, 2017

From al.dunsmuir@sympatico.ca

On Wed, 07 Jun 2017 11​:56​:36 -0700, al.dunsmuir@​sympatico.ca wrote​:

I reran with tests, and experienced the following
Failed 1 test out of 2446, 99.96% okay.
../cpan/ExtUtils-MakeMaker/t/02-xsdynamic.t
* * *

This appears to be
#128902​: MakeMaker 02-xsdynamic.t failure in AIX 5.3 with blead
be93048
(https://rt-archive.perl.org/perl5/Ticket/Display.html?id=128902)

Since dynamic linking on AIX requires platform-specific processing,
the test likely requires some work to make it fully functional on AIX.

I've updated that ticket with the failure output, and will dig into
that failure farther when I get a change (as I require dynamic modules
working for my the application I'm porting to AIX). All follow up on
the test failures will be in that ticket.

LeonT has replied under that bug, and indicated that this issue is fixed
in ExtUtils​::MakeMaker 7.26 which missed the 5.26.0 cutoff.

I'll apply a local patch to bring that module in my AIX 5.26.0 package
up to that level.

Life is good!

--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 12, 2017

From al.dunsmuir@sympatico.ca

On Wed, 07 Jun 2017 15​:46​:04 -0700, al.dunsmuir@​sympatico.ca wrote​:

Life is good!

Life is NOT good.

This perl release is putting all of the arch-specific files in the wrong
directory, which is a MAJOR problem. I'm going to open a new perlbug,
as I view this a being a much higher severity error.

I suspect this is related to the -O override changes, as the specified
arch (ppc) is being advanced (to ppc-thread-multi-64all) according to
the Configure output, BUT the arch updates appear to have been lost.

--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 12, 2017

From al.dunsmuir@sympatico.ca

On Mon, 12 Jun 2017 06​:28​:28 -0700, al.dunsmuir@​sympatico.ca wrote​:

On Wed, 07 Jun 2017 15​:46​:04 -0700, al.dunsmuir@​sympatico.ca wrote​:

Life is good!

Life is NOT good.

This perl release is putting all of the arch-specific files in the wrong
directory, which is a MAJOR problem. I'm going to open a new perlbug,
as I view this a being a much higher severity error.

I suspect this is related to the -O override changes, as the specified
arch (ppc) is being advanced (to ppc-thread-multi-64all) according to
the Configure output, BUT the arch updates appear to have been lost.

A test 5.26.0 build of perl-Variable-Magic completed the perl-specific build and
test successfully, but failed during the rpm install/packaging related portion.
"/opt/freeware/bin/perl" -MExtUtils​::Command​::MM -e 'cp_nonempty' -- Magic.bs blib/arch/auto/Variable/Magic/Magic.bs 644
Manifying 1 pod document
Files found in blib/arch​: installing files in blib/lib into architecture dependent library tree
Installing /apps/rpmbuild/BUILDROOT/opt/freeware/lib/perl5/vendor_perl/5.26.0/auto/Variable/Magic/Magic.so
Installing /apps/rpmbuild/BUILDROOT/opt/freeware/lib/perl5/vendor_perl/5.26.0/Variable/Magic.pm
Installing /apps/rpmbuild/BUILDROOT/opt/freeware/man/man3/Variable​::Magic.3
+ /opt/freeware/bin/find /apps/rpmbuild/BUILDROOT -type f -name *.bs -empty -exec rm -f {} ;
+ /opt/freeware/bin/find /apps/rpmbuild/BUILDROOT -type d -depth -exec rmdir {} ;
+ 2> /dev/null
+ chmod -R u+w /apps/rpmbuild/BUILDROOT/opt
+ exit 0
Processing files​: perl-Variable-Magic-0.61-1
File not found by glob​: /apps/rpmbuild/BUILDROOT/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-thread-multi/auto/*
File not found by glob​: /apps/rpmbuild/BUILDROOT/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-thread-multi/Variable*

Before substitution, the commands used to build and install were​:
%{__perl} Makefile.PL INSTALLDIRS=vendor INSTALLVENDORLIB=%{perl_vendorlib} INSTALLVENDORMAN3DIR=%{_mandir}/man3 NO_PACKLIST=1 OPTIMIZE="%{optflags}"
make pure_install DESTDIR=${RPM_BUILD_ROOT}

The issue is that the files are not being installed under the correct directory.
They were installed in /opt/freeware/lib/perl5/vendor_perl/5.26.0
which is NOT in the expected arch-specific directory.

The 5.26.0 perl has perl -V values of​:
archlib='archlib='/opt/freeware/lib/perl5/5.26.0/ppc-thread-multi';
installvendorarch='/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-thread-multi';

My previous 5.22.1 perl has perl -V values of​:
archlib='archlib='/opt/freeware/lib/perl5/5.22.1/ppc-thread-multi';
installvendorarch='/opt/freeware/lib/perl5/vendor_perl/5.22.1/ppc-thread-multi';

So nominally perl 5.26.0 agrees with 5.22.1 as to where the arch files should go.

The AIX perl is normally built with both 32-bit and 64-bit directories, so this
would cause the arch-specific files to collide.

The same failure occurs for all arch-specific packages.
--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 12, 2017

From al.dunsmuir@sympatico.ca

On Mon, 12 Jun 2017 11​:20​:44 -0700, al.dunsmuir@​sympatico.ca wrote​:

The issue is that the files are not being installed under the correct
directory. They were installed in /opt/freeware/lib/perl5/vendor_perl/5.26.0
which is NOT in the expected arch-specific directory.

I've opened a separate perlbug for this issue, since it is unclear if this
is caused by further Configure issues or a new ExtUtils​::MakeMaker problem.
  #131559​: ExtUtils​::Command​::MM not installing files in vendor arch-specific directories
  https://rt-archive.perl.org/perl5/Ticket/Display.html?id=131559
--
Al Dunsmuir

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants