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.28.0 fails to compile on AIX #16726

Closed
p5pRT opened this issue Oct 16, 2018 · 9 comments
Closed

Perl 5.28.0 fails to compile on AIX #16726

p5pRT opened this issue Oct 16, 2018 · 9 comments

Comments

@p5pRT
Copy link

p5pRT commented Oct 16, 2018

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

Searchable as RT133596$

@p5pRT
Copy link
Author

p5pRT commented Oct 16, 2018

From daniele.silvestre@atos.net

Hello,

I use the same configure flags to build perl 5.28 on AIX than with 5.26.1
5.26.1 builds succesfully, 5.28.0 fails.

Failure occurs in ext/B directory compilation
with 5.28.0 version , an additional -bE​:B.exp is given on the gcc command uses to generate B.so
on AIX, all parameters given as arguments on the gcc command that are meaningul for the loader and then passed to ld must be prefixed with " -Wl,"

hints/aix.sh ligne 350 and later
  ccflags="`echo $ccflags | sed -e 's@​ -b@​ -Wl,-b@​g'`"
  ldflags="`echo ' '$ldflags | sed -e 's@​ -b@​ -Wl,-b@​g'`"
  lddlflags="`echo ' '$lddlflags | sed -e 's@​ -b@​ -Wl,-b@​g'`"
  lddlflags="`echo ' '$lddlflags | sed -e 's@​ -G @​ -Wl,-G @​g'`"
correctly modifies [cc/ld/lsdl}flags for the upper level Makefile

I suppose that seamlessly an additional ext/B/hints/aix.sh has to be added to fix/modify the generated ext/B/Makefile
but I didn't suceed to correctly write it

Thanks for your help

=====================BUILDING REPORT : FAILURE on 5.28.0 =========================================================================================
makefile​:602​: update target 'lib/auto/B/B.so' due to​: miniperl lib/buildcustomiz
e.pl preplibrary makeppport DynaLoader.o FORCE libperl.a
LIBPATH=/opt/freeware/src/packages/BUILD/perl-5.28.0/32bit​:/opt/freeware/src/pac
kages/BUILD/perl-5.28.0/32bit ./miniperl -Ilib make_ext.pl lib/auto/B/B.so MAKE
="gmake" LIBPERL_A=libperl.a LINKTYPE=dynamic
Generating a Unix-style Makefile
Writing Makefile for B
gmake[1]​: Entering directory '/opt/freeware/src/packages/BUILD/perl-5.28.0/32bit
/ext/B'
Makefile​:403​: update target '../../lib/auto/B/.exists' due to​: Makefile.PL
/opt/freeware/src/packages/BUILD/perl-5.28.0/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Command -e 'mkpath' -- ../../lib/auto/B
chmod 755 ../../lib/auto/B
touch ../../lib/auto/B/.exists
Makefile​:408​: update target '../../lib/auto/B/.exists' due to​: Makefile.PL
/opt/freeware/src/packages/BUILD/perl-5.28.0/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Command -e 'mkpath' -- ../../lib/auto/B
chmod 755 ../../lib/auto/B
touch ../../lib/auto/B/.exists
Makefile​:413​: update target 'blib/bin/.exists' due to​: Makefile.PL
/opt/freeware/src/packages/BUILD/perl-5.28.0/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Command -e 'mkpath' -- blib/bin
chmod 755 blib/bin
touch blib/bin/.exists
Makefile​:418​: update target 'blib/script/.exists' due to​: Makefile.PL
/opt/freeware/src/packages/BUILD/perl-5.28.0/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Command -e 'mkpath' -- blib/script
chmod 755 blib/script
touch blib/script/.exists
Makefile​:423​: update target 'blib/man1/.exists' due to​: Makefile.PL
/opt/freeware/src/packages/BUILD/perl-5.28.0/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Command -e 'mkpath' -- blib/man1
chmod 755 blib/man1
touch blib/man1/.exists
Makefile​:428​: update target 'blib/man3/.exists' due to​: Makefile.PL
Makefile​:386​: update target 'blibdirs' due to​: ../../lib/.exists ../../lib/auto/
B/.exists blib/bin/.exists blib/script/.exists blib/man1/.exists blib/man3/.exis
ts
true
Makefile​:378​: update target 'config' due to​: Makefile blibdirs
true
Makefile​:1031​: target 'config' does not exist
true
Makefile​:1009​: update target 'pm_to_blib' due to​: Makefile B.pm B/Concise.pm B/S
howlex.pm B/Terse.pm B/Xref.pm O.pm
/opt/freeware/src/packages/BUILD/perl-5.28.0/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Install -e 'pm_to_blib({@​ARGV}, '\''../../lib/auto'\'', q[], '
\''755'\'')' -- \
  'B.pm' '../../lib/B.pm' \
  'B/Concise.pm' '../../lib/B/Concise.pm' \
  'B/Showlex.pm' '../../lib/B/Showlex.pm' \
  'B/Terse.pm' '../../lib/B/Terse.pm' \
  'B/Xref.pm' '../../lib/B/Xref.pm' \
  'O.pm' '../../lib/O.pm'
touch pm_to_blib
Makefile​:375​: target 'subdirs' does not exist
true
Makefile​:454​: update target 'B.bs' due to​: Makefile
echo "Running Mkbootstrap for B ()"
Running Mkbootstrap for B ()
"../../miniperl" "-I../../lib" \
  "-MExtUtils​::Mkbootstrap" \
  -e "Mkbootstrap('B','');"
touch "B.bs"
chmod 644 "B.bs"
Makefile​:462​: update target '../../lib/auto/B/B.bs' due to​: B.bs ../../lib/auto/
B/.exists
rm -rf ../../lib/auto/B/B.bs
/opt/freeware/src/packages/BUILD/perl-5.28.0/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Command​::MM -e 'cp_nonempty' -- B.bs ../../lib/auto/B/B.bs 644
Makefile​:354​: update target 'B.c' due to​: B.xs ../../lib/ExtUtils/typemap typema
p ../../lib/ExtUtils/xsubpp
"../../miniperl" "-I../../lib" "../../lib/ExtUtils/xsubpp" -typemap '/opt/freew
are/src/packages/BUILD/perl-5.28.0/32bit/ext/B/../../lib/ExtUtils/typemap' -type
map '/opt/freeware/src/packages/BUILD/perl-5.28.0/32bit/ext/B/typemap' B.xs > B
.xsc
Makefile​:336​: update target 'B.o' due to​: B.c ../../EXTERN.h ../../INTERN.h ../.
./XSUB.h ../../av.h ../../bitcount.h ../../charclass_invlists.h ../../config.h .
./../cop.h ../../cv.h ../../dosish.h ../../dquote_inline.h ../../ebcdic_tables.h
../../embed.h ../../embedvar.h ../../fakesdio.h ../../feature.h ../../form.h ..
/../git_version.h ../../gv.h ../../handy.h ../../hv.h ../../hv_func.h ../../hv_m
acro.h ../../inline.h ../../intrpvar.h ../../invlist_inline.h ../../iperlsys.h .
./../keywords.h ../../l1_char_class_tab.h ../../malloc_ctl.h ../../metaconfig.h
../../mg.h ../../mg_data.h ../../mg_raw.h ../../mg_vtable.h ../../mydtrace.h ../
../nostdio.h ../../op.h ../../op_reg_common.h ../../opcode.h ../../opnames.h ../
../overload.h ../../pad.h ../../parser.h ../../patchlevel.h ../../perl.h ../../p
erl_inc_macro.h ../../perl_langinfo.h ../../perlapi.h ../../perlio.h ../../perli
ol.h ../../perlsdio.h ../../perlvars.h ../../perly.h ../../pp.h ../../pp_proto.h
../../proto.h ../../reentr.h ../../regcharclass.h ../../regcomp.h ../../regexp.
h ../../regnodes.h ../../sbox32_hash.h ../../scope.h ../../stadtx_hash.h ../../s
v.h ../../thread.h ../../time64.h ../../time64_config.h ../../uconfig.h ../../un
i_keywords.h ../../unicode_constants.h ../../unixish.h ../../utf8.h ../../utfebc
dic.h ../../util.h ../../uudmap.h ../../vutil.h ../../warnings.h ../../zaphod32_
hash.h Makefile
gcc -maix32 -c -D_THREAD_SAFE -maix32 -L/opt/freeware/lib -L/usr/lib -D_ALL_SO
URCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -I
/opt/freeware/include -D_LARGE_FILES -DNEED_PTHREAD_INIT -fwrapv -fno-strict-ali
asing -pipe -D_LARGE_FILES -D_FORTIFY_SOURCE=2 -Wall -Werror=declaration-after-s
tatement -Werror=pointer-arith -Wextra -Wc++-compat -Wwrite-strings -O -DVERSI
ON=\"1.74\" -DXS_VERSION=\"1.74\" "-I../.." B.c
Makefile​:443​: update target 'B.exp' due to​: Makefile.PL
"../../miniperl" "-I../../lib" -MExtUtils​::Mksymlists \
  -e "Mksymlists('NAME'=>\"B\", 'DLBASE' => 'B', 'DL_FUNCS' => { }, 'FUNCLIS
T' => [], 'IMPORTS' => { }, 'DL_VARS' => []);"
Makefile​:481​: update target '../../lib/auto/B/B.so' due to​: B.o ../../lib/auto/B
/.exists B.exp
rm -f ../../lib/auto/B/B.so
gcc -maix32 -Wl,-bhalt​:4 -Wl,-bM​:SRE -Wl,-bI​:../../perl.exp -Wl,-bnoentry -lpt
hreads -L/usr/lib -bE​:B.exp B.o -o ../../lib/auto/B/B.so \
  \

gcc​: error​: unrecognized command line option '-bE​:B.exp'
Makefile​:481​: recipe for target '../../lib/auto/B/B.so' failed
gmake[1]​: *** [../../lib/auto/B/B.so] Error 1
gmake[1]​: Leaving directory '/opt/freeware/src/packages/BUILD/perl-5.28.0/32bit/
ext/B'

=====================BUILDING REPORT : SUCESS on 5.26.0 =========================================================================================
Generating a Unix-style Makefile
Writing Makefile for B
gmake[1]​: Entering directory '/opt/freeware/src/packages/BUILD/perl-5.26.2/32bit
/ext/B'
Makefile​:403​: update target '../../lib/auto/B/.exists' due to​: Makefile.PL
/opt/freeware/src/packages/BUILD/perl-5.26.2/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Command -e 'mkpath' -- ../../lib/auto/B
chmod 755 ../../lib/auto/B
touch ../../lib/auto/B/.exists
Makefile​:408​: update target '../../lib/auto/B/.exists' due to​: Makefile.PL
/opt/freeware/src/packages/BUILD/perl-5.26.2/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Command -e 'mkpath' -- ../../lib/auto/B
chmod 755 ../../lib/auto/B
touch ../../lib/auto/B/.exists
Makefile​:413​: update target 'blib/bin/.exists' due to​: Makefile.PL
/opt/freeware/src/packages/BUILD/perl-5.26.2/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Command -e 'mkpath' -- blib/bin
chmod 755 blib/bin
touch blib/bin/.exists
Makefile​:418​: update target 'blib/script/.exists' due to​: Makefile.PL
/opt/freeware/src/packages/BUILD/perl-5.26.2/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Command -e 'mkpath' -- blib/script
chmod 755 blib/script
touch blib/script/.exists
Makefile​:423​: update target 'blib/man1/.exists' due to​: Makefile.PL
/opt/freeware/src/packages/BUILD/perl-5.26.2/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Command -e 'mkpath' -- blib/man1
chmod 755 blib/man1
touch blib/man1/.exists
Makefile​:428​: update target 'blib/man3/.exists' due to​: Makefile.PL
/opt/freeware/src/packages/BUILD/perl-5.26.2/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Command -e 'mkpath' -- blib/man3
chmod 755 blib/man3
touch blib/man3/.exists
Makefile​:386​: update target 'blibdirs' due to​: ../../lib/.exists ../../lib/auto/
B/.exists blib/bin/.exists blib/script/.exists blib/man1/.exists blib/man3/.exis
ts
true
Makefile​:386​: update target 'blibdirs' due to​: ../../lib/.exists ../../lib/auto/
B/.exists blib/bin/.exists blib/script/.exists blib/man1/.exists blib/man3/.exis
ts
true
Makefile​:378​: update target 'config' due to​: Makefile blibdirs
true
Makefile​:1032​: target 'config' does not exist
true
Makefile​:1010​: update target 'pm_to_blib' due to​: Makefile B.pm B/Concise.pm B/S
howlex.pm B/Terse.pm B/Xref.pm O.pm
/opt/freeware/src/packages/BUILD/perl-5.26.2/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Install -e 'pm_to_blib({@​ARGV}, '\''../../lib/auto'\'', q[], '
\''755'\'')' -- \
  'B.pm' '../../lib/B.pm' \
  'B/Concise.pm' '../../lib/B/Concise.pm' \
  'B/Showlex.pm' '../../lib/B/Showlex.pm' \
  'B/Terse.pm' '../../lib/B/Terse.pm' \
  'B/Xref.pm' '../../lib/B/Xref.pm' \
  'O.pm' '../../lib/O.pm'
touch pm_to_blib
Makefile​:375​: target 'subdirs' does not exist
true
Makefile​:451​: update target 'B.exp' due to​: Makefile.PL
"../../miniperl" "-I../../lib" -MExtUtils​::Mksymlists \
  -e "Mksymlists('NAME'=>\"B\", 'DLBASE' => 'B', 'DL_FUNCS' => { }, 'FUNCLIS
T' => [], 'IMPORTS' => { }, 'DL_VARS' => []);"
Makefile​:462​: update target 'B.bs' due to​: Makefile
echo "Running Mkbootstrap for B ()"
Running Mkbootstrap for B ()
"../../miniperl" "-I../../lib" \
  "-MExtUtils​::Mkbootstrap" \
  -e "Mkbootstrap('B','');"
touch "B.bs"
chmod 644 "B.bs"
Makefile​:470​: update target '../../lib/auto/B/B.bs' due to​: B.bs ../../lib/auto/
B/.exists
rm -rf ../../lib/auto/B/B.bs
/opt/freeware/src/packages/BUILD/perl-5.26.2/32bit/ext/B/../../miniperl "-I../..
/lib" -MExtUtils​::Command​::MM -e 'cp_nonempty' -- B.bs ../../lib/auto/B/B.bs 644
Makefile​:354​: update target 'B.c' due to​: B.xs ../../lib/ExtUtils/typemap typema
p ../../lib/ExtUtils/xsubpp
"../../miniperl" "-I../../lib" "../../lib/ExtUtils/xsubpp" -typemap '/opt/freew
are/src/packages/BUILD/perl-5.26.2/32bit/ext/B/../../lib/ExtUtils/typemap' -type
map '/opt/freeware/src/packages/BUILD/perl-5.26.2/32bit/ext/B/typemap' B.xs > B
.xsc
mv B.xsc B.c
Makefile​:336​: update target 'B.o' due to​: B.c ../../EXTERN.h ../../INTERN.h ../.
./XSUB.h ../../av.h ../../bitcount.h ../../charclass_invlists.h ../../config.h .
./../cop.h ../../cv.h ../../dosish.h ../../dquote_inline.h ../../ebcdic_tables.h
../../embed.h ../../embedvar.h ../../fakesdio.h ../../feature.h ../../form.h ..
/../git_version.h ../../gv.h ../../handy.h ../../hv.h ../../hv_func.h ../../inli
ne.h ../../intrpvar.h ../../invlist_inline.h ../../iperlsys.h ../../keywords.h .
./../l1_char_class_tab.h ../../malloc_ctl.h ../../metaconfig.h ../../mg.h ../../
mg_data.h ../../mg_raw.h ../../mg_vtable.h ../../mydtrace.h ../../nostdio.h ../.
./op.h ../../op_reg_common.h ../../opcode.h ../../opnames.h ../../overload.h ../
../pad.h ../../parser.h ../../patchlevel.h ../../perl.h ../../perlapi.h ../../pe
rlio.h ../../perliol.h ../../perlsdio.h ../../perlvars.h ../../perly.h ../../pp.
h ../../pp_proto.h ../../proto.h ../../reentr.h ../../regcharclass.h ../../regco
mp.h ../../regexp.h ../../regnodes.h ../../scope.h ../../sv.h ../../thread.h ../
../time64.h ../../time64_config.h ../../uconfig.h ../../unicode_constants.h ../.
./unixish.h ../../utf8.h ../../utfebcdic.h ../../util.h ../../uudmap.h ../../vut
il.h ../../warnings.h Makefile
gcc -maix32 -c -D_THREAD_SAFE -maix32 -L/opt/freeware/lib -L/usr/lib -D_ALL_SO
URCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -I
/opt/freeware/include -D_LARGE_FILES -DNEED_PTHREAD_INIT -fwrapv -fno-strict-ali
asing -pipe -D_LARGE_FILES -D_FORTIFY_SOURCE=2 -Wall -Werror=declaration-after-s
tatement -Wextra -Wc++-compat -Wwrite-strings -O -DVERSION=\"1.68\" -DXS_VERSI
ON=\"1.68\" "-I../.." B.c
Makefile​:489​: update target '../../lib/auto/B/B.so' due to​: B.o ../../lib/auto/B
/.exists
rm -f ../../lib/auto/B/B.so
gcc -maix32 -Wl,-bhalt​:4 -Wl,-bM​:SRE -Wl,-bI​:../../perl.exp -Wl,-bE​:B.exp -Wl,-
bnoentry -lpthreads -L/usr/lib B.o -o ../../lib/auto/B/B.so \
  \

chmod 755 ../../lib/auto/B/B.so
Makefile​:477​: update target 'dynamic' due to​: Makefile config ../../lib/auto/B/B
.bs ../../lib/auto/B/B.so
true
Makefile​:1029​: target 'dynamic' does not exist
true
Makefile​:437​: update target 'linkext' due to​: dynamic
true
Makefile​:370​: update target 'pure_all' due to​: config pm_to_blib subdirs linkext
true
true
Makefile​:520​: update target 'manifypods' due to​: pure_all config
true
Makefile​:367​: update target 'all' due to​: pure_all manifypods
true
gmake[1]​: Leaving directory '/opt/freeware/src/packages/BUILD/perl-5.26.2/32bit/
ext/B'

===============perl -V showing flags used on 5.26 version; same flags are used with 5.28 failing version==============
perl -V
Summary of my perl5 (revision 5 version 26 subversion 1) configuration​:

  Platform​:
  osname=aix
  osvers=6.1.0.0
  archname=ppc-aix-thread-multi-64all
  uname='aix erato1 1 6 00cab5924c00 powerpc aix '
  config_args='-des -Dprefix=/opt/freeware -Dversion=5.26.1 -Dmyhostname=aix60 -Darchname=ppc-aix -Doptimize=-O -Dcc=gcc -Dccflags=-maix64 -L/opt/freeware/lib64 -L/opt/freeware/lib -L/usr/lib -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -I/opt/freeware/include -D_LARGE_FILES -Dccflags_uselargefiles=-D_LARGE_FILES -Dld=/usr/bin/ld -Dldflags=-Wl,-s -Wl,-lpthreads -Wl,-brtl -Wl,-bdynamic -Wl,-b64 -Wl,-L/opt/freeware/lib64 -L/opt/freeware/lib -L/usr/lib -Wl,-blibpath​:/opt/freeware/lib/perl5/5.26.1/ppc-aix-thread-multi-64all/CORE​:/opt/freeware/lib64​:{_libdir}​:/usr/lib​:/lib -Duseshrplib -Dso=a -Dshrpldflags=-Wl,-H512 -Wl,-T512 -Wl,-bhalt​:4 -Wl,-bM​:SRE -Wl,-bE​:perl.exp -Dlddlflags=-Wl,-bhalt​:4 -Wl,-bM​:SRE -Wl,-bI​:$(PERL_INC)/perl.exp -Wl,-bE​:$(BASEEXT).exp -Wl,-bnoentry -lpthreads -Dlibperl=libperl.a -Dinstallprefix=/opt/freeware -Dvendorprefix=/opt/freeware -Dsiteprefix=/opt/freeware -Dar=/usr/bin/ar -X32_64 -Darflags=-X32_64 -Dnm=/usr/bin/nm -X32_64 -B -Dusethreads -Duseithreads -Duselargefiles -Dd_semctl_semun -Di_syslog -Dman3ext=3 -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dscriptdir=/opt/freeware/bin -Duse64bitint'
  hint=recommended
  useposix=true
  d_sigaction=define
  useithreads=define
  usemultiplicity=define
  use64bitint=define
  use64bitall=define
  uselongdouble=undef
  usemymalloc=n
  default_inc_excludes_dot=define
  bincompat5005=undef
  Compiler​:
  cc='gcc -maix64'
  ccflags ='-D_THREAD_SAFE -maix64 -L/opt/freeware/lib64 -L/opt/freeware/lib -L/usr/lib -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -I/opt/freeware/include -D_LARGE_FILES -DNEED_PTHREAD_INIT -fwrapv -maix64 -DUSE_64_BIT_ALL -D_FORTIFY_SOURCE=2'
  optimize='-O'
  cppflags='-D_THREAD_SAFE -maix64 -L/opt/freeware/lib64 -L/opt/freeware/lib -L/usr/lib -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -I/opt/freeware/include -D_LARGE_FILES -DNEED_PTHREAD_INIT -fwrapv'
  ccversion=''
  gccversion='6.4.0'
  gccosandvers=''
  intsize=4
  longsize=8
  ptrsize=8
  doublesize=8
  byteorder=87654321
  doublekind=4
  d_longlong=define
  longlongsize=8
  d_longdbl=define
  longdblsize=8
  longdblkind=0
  ivtype='long'
  ivsize=8
  nvtype='double'
  nvsize=8
  Off_t='off_t'
  lseeksize=8
  alignbytes=8
  prototype=define
  Linker and Libraries​:
  ld='gcc -maix64'
  ldflags =' -Wl,-s -Wl,-lpthreads -Wl,-brtl -Wl,-bdynamic -Wl,-b64 -Wl,-L/opt/freeware/lib64 -L/opt/freeware/lib -L/usr/lib -Wl,-blibpath​:/opt/freeware/lib/perl5/5.26.1/ppc-aix-thread-multi-64all/CORE​:/opt/freeware/lib64​:{_libdir}​:/usr/lib​:/lib -Wl,-b64'
  libpth=/opt/freeware/lib /opt/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/6.4.0/include-fixed /usr/lib /lib /usr/ccs/lib /usr/lib64
  libs=-lpthread -lbind -lnsl -lgdbm -ldbm -ldb -ldl -lld -lm -lcrypt -lpthreads -lc
  perllibs=-lpthread -lbind -lnsl -ldl -lld -lm -lcrypt -lpthreads -lc
  libc=
  so=a
  useshrplib=true
  libperl=libperl.a
  gnulibc_version=''
  Dynamic Linking​:
  dlsrc=dl_aix.xs
  dlext=so
  d_dlsymun=undef
  ccdlflags='-Xlinker -bE​:/opt/freeware/lib/perl5/5.26.1/ppc-aix-thread-multi-64all/CORE/perl.exp'
  cccdlflags=' '
  lddlflags=' -Wl,-b64 -Wl,-bhalt​:4 -Wl,-bM​:SRE -Wl,-bI​:$(PERL_INC)/perl.exp -Wl,-bE​:$(BASEEXT).exp -Wl,-bnoentry -lpthreads -L/opt/freeware/lib -L/usr/lib'

Characteristics of this binary (from libperl)​:
  Compile-time options​:
  HAS_TIMES
  MULTIPLICITY
  PERLIO_LAYERS
  PERL_COPY_ON_WRITE
  PERL_DONT_CREATE_GVSV
  PERL_IMPLICIT_CONTEXT
  PERL_MALLOC_WRAP
  PERL_OP_PARENT
  PERL_PRESERVE_IVUV
  USE_64_BIT_ALL
  USE_64_BIT_INT
  USE_ITHREADS
  USE_LARGE_FILES
  USE_LOCALE
  USE_LOCALE_COLLATE
  USE_LOCALE_CTYPE
  USE_LOCALE_NUMERIC
  USE_LOCALE_TIME
  USE_PERLIO
  USE_PERL_ATOF
  USE_REENTRANT_API
  Built under aix
  Compiled at May 25 2018 08​:37​:20
  @​INC​:
  /opt/freeware/lib/perl5/site_perl/5.26.1/ppc-aix-thread-multi-64all
  /opt/freeware/lib/perl5/site_perl/5.26.1
  /opt/freeware/lib/perl5/vendor_perl/5.26.1/ppc-aix-thread-multi-64all
  /opt/freeware/lib/perl5/vendor_perl/5.26.1
  /opt/freeware/lib/perl5/5.26.1/ppc-aix-thread-multi-64all
  /opt/freeware/lib/perl5/5.26.1
  /opt/freeware/lib/perl5/site_perl
  /opt/freeware/lib/perl5/vendor_perl
erato1​:/opt/freeware/src/packages/BUILD->unix_64​:root #

Cordialement,
____________________________________________________
Danièle SILVESTRE
ATOS Infrastructure & Data Management,
France

@p5pRT
Copy link
Author

p5pRT commented Nov 1, 2018

From @jkeenan

On Tue, 16 Oct 2018 17​:02​:33 GMT, daniele.silvestre@​atos.net wrote​:

Hello,

I use the same configure flags to build perl 5.28 on AIX than with
5.26.1
5.26.1 builds succesfully, 5.28.0 fails.

Failure occurs in ext/B directory compilation
with 5.28.0 version , an additional -bE​:B.exp is given on the gcc
command uses to generate B.so
on AIX, all parameters given as arguments on the gcc command that are
meaningul for the loader and then passed to ld must be prefixed with "
-Wl,"

hints/aix.sh ligne 350 and later
ccflags="`echo $ccflags | sed -e 's@​ -b@​ -Wl,-b@​g'`"
ldflags="`echo ' '$ldflags | sed -e 's@​ -b@​ -Wl,-
b@​g'`"
lddlflags="`echo ' '$lddlflags | sed -e 's@​ -b@​ -Wl,-
b@​g'`"
lddlflags="`echo ' '$lddlflags | sed -e 's@​ -G @​ -Wl,-
G @​g'`"
correctly modifies [cc/ld/lsdl}flags for the upper level Makefile

I suppose that seamlessly an additional ext/B/hints/aix.sh has to be
added to fix/modify the generated ext/B/Makefile
but I didn't suceed to correctly write it

Thanks for your help

[snip BUILDING REPORTs]

===============perl -V showing flags used on 5.26 version; same flags
are used with 5.28 failing version==============
perl -V
Summary of my perl5 (revision 5 version 26 subversion 1)
configuration​:

Platform​:
osname=aix
osvers=6.1.0.0
archname=ppc-aix-thread-multi-64all
uname='aix erato1 1 6 00cab5924c00 powerpc aix '
config_args='-des -Dprefix=/opt/freeware -Dversion=5.26.1
-Dmyhostname=aix60 -Darchname=ppc-aix -Doptimize=-O -Dcc=gcc
-Dccflags=-maix64 -L/opt/freeware/lib64 -L/opt/freeware/lib -L/usr/lib
-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN
-DNEED_PTHREAD_INIT -I/opt/freeware/include -D_LARGE_FILES
-Dccflags_uselargefiles=-D_LARGE_FILES -Dld=/usr/bin/ld -Dldflags=-
Wl,-s -Wl,-lpthreads -Wl,-brtl -Wl,-bdynamic -Wl,-b64 -Wl,-
L/opt/freeware/lib64 -L/opt/freeware/lib -L/usr/lib -Wl,-
blibpath​:/opt/freeware/lib/perl5/5.26.1/ppc-aix-thread-multi-
64all/CORE​:/opt/freeware/lib64​:{_libdir}​:/usr/lib​:/lib -Duseshrplib
-Dso=a -Dshrpldflags=-Wl,-H512 -Wl,-T512 -Wl,-bhalt​:4 -Wl,-bM​:SRE
-Wl,-bE​:perl.exp -Dlddlflags=-Wl,-bhalt​:4 -Wl,-bM​:SRE -Wl,-
bI​:$(PERL_INC)/perl.exp -Wl,-bE​:$(BASEEXT).exp -Wl,-bnoentry
-lpthreads -Dlibperl=libperl.a -Dinstallprefix=/opt/freeware
-Dvendorprefix=/opt/freeware -Dsiteprefix=/opt/freeware
-Dar=/usr/bin/ar -X32_64 -Darflags=-X32_64 -Dnm=/usr/bin/nm -X32_64 -B
-Dusethreads -Duseithreads -Duselargefiles -Dd_semctl_semun -Di_syslog
-Dman3ext=3 -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005
-Uversiononly -Dscriptdir=/opt/freeware/bin -Duse64bitint'

I do not have experience with AIX, so I cannot directly explore your problem.

However, I notice that when you compiled perl-5.26 on this machine, you used a very long list of configuration options. We should try to rule out the possibility that your inability to compile perl-5.28 might lie somewhere in that long list?

If you try to compile and build perl-5.28 with a simple configuration line like the following, do you succeed?

#####
sh ./Configure -des
#####

Thank you very much.

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

@p5pRT
Copy link
Author

p5pRT commented Nov 1, 2018

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

@p5pRT
Copy link
Author

p5pRT commented Nov 1, 2018

From @wilx

On 16. 10. 18 19​:02, SILVESTRE, DANIELE (via RT) wrote​:

Makefile​:481​: update target '../../lib/auto/B/B.so' due to​: B.o ../../lib/auto/B
/.exists B.exp

Isn't the issue due to some bad evaluation of some Perl expression? The
`/.exists B.exp` looks fishy.

--
VH

@p5pRT
Copy link
Author

p5pRT commented Dec 5, 2018

From @tonycoz

On Tue, 16 Oct 2018 10​:02​:33 -0700, daniele.silvestre@​atos.net wrote​:

Hello,

I use the same configure flags to build perl 5.28 on AIX than with
5.26.1
5.26.1 builds succesfully, 5.28.0 fails.

Failure occurs in ext/B directory compilation
with 5.28.0 version , an additional -bE​:B.exp is given on the gcc
command uses to generate B.so
on AIX, all parameters given as arguments on the gcc command that are
meaningul for the loader and then passed to ld must be prefixed with "
-Wl,"

I suspect this was broken by​:

Perl-Toolchain-Gang/ExtUtils-MakeMaker@982f991

Tony

@p5pRT
Copy link
Author

p5pRT commented Dec 5, 2018

From @tonycoz

On Wed, 05 Dec 2018 12​:35​:12 -0800, tonyc wrote​:

On Tue, 16 Oct 2018 10​:02​:33 -0700, daniele.silvestre@​atos.net wrote​:

Hello,

I use the same configure flags to build perl 5.28 on AIX than with
5.26.1
5.26.1 builds succesfully, 5.28.0 fails.

Failure occurs in ext/B directory compilation
with 5.28.0 version , an additional -bE​:B.exp is given on the gcc
command uses to generate B.so
on AIX, all parameters given as arguments on the gcc command that are
meaningul for the loader and then passed to ld must be prefixed with
"
-Wl,"

I suspect this was broken by​:

https://github.com/Perl-Toolchain-Gang/ExtUtils-
MakeMaker/commit/982f991c7f564f3e40e3f57c1f7090a5d1763611

In your build tree, try running​:

  ./miniperl -Ilib -V

As a workaround, try editing cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm

Search for "sub xs_dlsyms_arg" and change​:

  return qq{-bE​:${file}};

to

  return qq{-Wl,-bE​:${file}};

Please let us know if that helps.

Tony

@p5pRT
Copy link
Author

p5pRT commented Dec 11, 2018

From @tonycoz

Hi,

Are you able to try what I suggested below?

Tony

On Wed, 05 Dec 2018 13​:31​:34 -0800, tonyc wrote​:

On Wed, 05 Dec 2018 12​:35​:12 -0800, tonyc wrote​:

On Tue, 16 Oct 2018 10​:02​:33 -0700, daniele.silvestre@​atos.net wrote​:

Hello,

I use the same configure flags to build perl 5.28 on AIX than with
5.26.1
5.26.1 builds succesfully, 5.28.0 fails.

Failure occurs in ext/B directory compilation
with 5.28.0 version , an additional -bE​:B.exp is given on the gcc
command uses to generate B.so
on AIX, all parameters given as arguments on the gcc command that are
meaningul for the loader and then passed to ld must be prefixed with
"
-Wl,"

I suspect this was broken by​:

https://github.com/Perl-Toolchain-Gang/ExtUtils-
MakeMaker/commit/982f991c7f564f3e40e3f57c1f7090a5d1763611

In your build tree, try running​:

./miniperl -Ilib -V

As a workaround, try editing cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm

Search for "sub xs_dlsyms_arg" and change​:

return qq\{\-bE​:$\{file\}\};

to

return qq\{\-Wl\,\-bE​:$\{file\}\};

Please let us know if that helps.

Tony

@p5pRT
Copy link
Author

p5pRT commented Dec 12, 2018

From @tonycoz

On Wed, 05 Dec 2018 12​:35​:12 -0800, tonyc wrote​:

On Tue, 16 Oct 2018 10​:02​:33 -0700, daniele.silvestre@​atos.net wrote​:

Hello,

I use the same configure flags to build perl 5.28 on AIX than with
5.26.1
5.26.1 builds succesfully, 5.28.0 fails.

Failure occurs in ext/B directory compilation
with 5.28.0 version , an additional -bE​:B.exp is given on the gcc
command uses to generate B.so
on AIX, all parameters given as arguments on the gcc command that are
meaningul for the loader and then passed to ld must be prefixed with
"
-Wl,"

I suspect this was broken by​:

https://github.com/Perl-Toolchain-Gang/ExtUtils-
MakeMaker/commit/982f991c7f564f3e40e3f57c1f7090a5d1763611

Reported upstream as https://rt.cpan.org/Ticket/Display.html?id=128004

Tony

@xenu
Copy link
Member

xenu commented Oct 20, 2021

The linked EU::MM bug report is resolved and the author of the issue is unresponsive. Closing.

@xenu xenu closed this as completed Oct 20, 2021
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

2 participants