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

perl.exp (AIX)

H.Merijn Brand
November 28, 2017 11:45
perl.exp (AIX)
Message ID:

 → ../cpan/ExtUtils-MakeMaker/t/03-xsstatic.t....FAILED →

 # xlc -q32 -L/pro/local/lib -brtl -bdynamic -b32 -bmaxdata:0x80000000 \
    -bE:/pro/lib/perl5/5.27.7/aix/CORE/../../../../perl.exp Test.o -O \
    ./perlmain.o -o perl "blib/arch/auto/XS/Test/Test.a" \
    "../../../../libperl.a" `cat blib/arch/auto/XS/Test/extralibs.all` \
    -lpthread -lbind -lnsl -ldl -lld -lm -lcrypt -lc 
 # ld: 0706-004 Cannot find or read export file: /pro/lib/perl5/5.27.7/aix/CORE/../../../../perl.exp
 #  ld:accessx(): A file or directory in the path name does not exist.

jhi hinted me that it might be perl.exp is not yet installed at that
point in time. That is not correct, but it points to the real problem

EU::MM probably needs some sort of trigger to use the perl.exp created
in the build tree, instead of what Configure tells the toolchain:

  Configure:aix) ccdlflags="$ccdlflags -bE:$installarchlib/CORE/perl.exp" ;;

$installarchlib is not yet available by the time EU::MM is building in core
as it is put there by installperl much later:

  installperl: push(@corefiles,'perl.exp') if $^O eq 'aix';

And perl.exp is generated before that in Makefile.SH (and thus Makefile)

  Makefile.SH:$(MINIPERL) --sort-fold PLATFORM=aix CC_FLAGS="$(OPTIMIZE)"

So perl.exp is created by running using miniperl states in leading comments:

  # Needed by WIN32 and OS/2 for creating perl.dll,
  # and by AIX for creating libperl.a when -Duseshrplib is in effect,
  # and by VMS for creating perlshr.exe.

and looking back, I think that AIX needs it always, not only with -Duseshrplib

H.Merijn Brand   Perl Monger
using perl5.00307 .. 5.27   porting perl5 on HP-UX, AIX, and openSUSE Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About