In perl.git, the branch smoke-me/AIX-useshrplib-Makefile-deps has been updated
<http://perl5.git.perl.org/perl.git/commitdiff/c3e509b6c9b7f8bd1e19c2b6c65b921c74a355ff?hp=642ef7c1b91288be96b948fea0661bf371c74551> - Log ----------------------------------------------------------------- commit c3e509b6c9b7f8bd1e19c2b6c65b921c74a355ff Author: Nicholas Clark <[email protected]> Date: Fri Apr 27 22:20:10 2012 +0200 Fix a dependency issue when building a shared libperl on AIX. AIX requires a list of exported symbols in the file perl.exp, which is generated by makedef.pl. For the non-shared libperl case, the macro PERLEXPORT is set to this, and $(PERLEXPORT) is a pre-requisite for building dynamic extensions. However, historically, when building a shared libperl, Makefile.SH was not setting PERLEXPORT, and instead setting LIBPERLEXPORT. However, there was no dependency on this macro for building dynamic extensions. Hence the build can fail if make chooses to build dynamic extensions before perl.exp The simplest fix seems to be to use the same name, PERLEXPORT, in both cases. PERLEXPORT isn't referenced anywhere in the Makefile other than as pre-requisite for dynamic extensions and the main perl binary. The use of LIBPERLEXPORT dates back to commit 549a6b102c2ac8c4 in Jul 1999, "Fixed AIX dynamic loading and AIX shared Perl library." It's surprising that this problem hasn't bitten anyone previously. ----------------------------------------------------------------------- Summary of changes: Makefile.SH | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.SH b/Makefile.SH index ba5ab79..1a98656 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -711,7 +711,7 @@ $(MINIPERL_NONSHR): $(LIBPERL_NONSHR) miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) p MINIPERLEXP = $(MINIPERL_NONSHR) -LIBPERLEXPORT = perl.exp +PERLEXPORT = perl.exp !NO!SUBS! @@ -789,7 +789,7 @@ $(MINIDTRACE_O): perldtrace.d $(minindt_obj) perlmini$(OBJ_EXT) ;; esac $spitshell >>$Makefile <<'!NO!SUBS!' -$(LIBPERL): $& $(obj) $(DYNALOADER) $(LIBPERLEXPORT) +$(LIBPERL): $& $(obj) $(DYNALOADER) $(PERLEXPORT) !NO!SUBS! case "$useshrplib" in true) -- Perl5 Master Repository
