rschupp / PAR-Packer

(perl) Generate stand-alone executables, perl scripts and PAR files https://metacpan.org/pod/PAR::Packer
Other
48 stars 13 forks source link

rs6000_71 build CC #65

Closed GlennWood closed 2 years ago

GlennWood commented 2 years ago

While hacking on #62, a message flashed on my console that seems intriguing. This information might be enlightening regarding issue #64.

From the Makefile.PL step, we get:

Can't exec "cc": No such file or directory at //extsrc/perl/5.32.1d/rs6000_71/lib/5.32.1/ExtUtils/CBuilder/Base.pm line 342.
No compiler found, won't generate 'script/parl!

It spuns by so quickly that I only recently noticed it. And since the build proceeded all the way through, I figured it doesn't matter.

However, this is especially intriguing because it was a change in the CC compiler made by our DevOps that eventually led up to our conundrums with rs6000. DevOps changed the CC from cc (found on the PATH) to /opt/IBM/xlc/16.1.0/bin/xlc (not on the PATH, neither is cc on their new build-host), and we've had issues with it ever since.

In my hack on fix-pp-clean branch, I did add CC=/opt/IBM/xlc/16.1.0/bin/xlc to the Makefile.PL step. This message went away (but unfortunately the "Not a typewriter" remained).

I am going to incorporate the CC= into the CPANConfig.pm[makepl_arg] property and see what happens. Again, I expect the message to go away, but the failure to remain, but this might be enlightening vis-a-vis #64.

rschupp commented 2 years ago

From the Makefile.PL step, we get:

Can't exec "cc": No such file or directory at //extsrc/perl/5.32.1d/rs6000_71/lib/5.32.1/ExtUtils/CBuilder/Base.pm line 342.
No compiler found, won't generate 'script/parl!

Can you attach the full transcript (stdout and stderr) of a clean build of PAR::Packer, i.e.

In case you applied any patches after the unpack step, please post them as well.

GlennWood commented 2 years ago

attached log files withCC.log and withoutCC.log are the result of:

bash-4.4$ ( /extsrc/perl/5.32.1e/rs6000_71/bin/perl Makefile.PL INSTALL_BASE=$INSTALL_BASE CC=$CC && make manifest && make && make install && make dist ) >../withCC.log 2>&1
bash-4.4$ make clean
bash-4.4$ ( /extsrc/perl/5.32.1e/rs6000_71/bin/perl Makefile.PL INSTALL_BASE=$INSTALL_BASE && make manifest && make && make install && make dist ) >../withoutCC.log 2>&1

withCC.log withoutCC.log

GlennWood commented 2 years ago

Note that the make clean has a flaw:

        rm -f 110 110OBJECTS)
/bin/sh: syntax error at line 1 : `)' unexpected

PP-1.055-make-clean.log

rschupp commented 2 years ago

Note that the make clean has a flaw:

        rm -f 110 110OBJECTS)
/bin/sh: syntax error at line 1 : `)' unexpected

One line fix:

diff --git a/myldr/Makefile.PL b/myldr/Makefile.PL
index 60458d5..c2d4559 100644
--- a/myldr/Makefile.PL
+++ b/myldr/Makefile.PL
@@ -256,7 +256,7 @@ $res_section

 clean::
        -\$(RM_F) boot_embedded_files.c my_par_pl.c
-       -\$(RM_F) $(OBJECTS)
+       -\$(RM_F) \$(OBJECTS)
        -\$(RM_F) *.opt *.pdb perlxsi.c
        -\$(RM_F) usernamefrompwuid.h
        -\$(RM_F) $par_exe $boot_exe @parl_exes Dynamic.pm Static.pm

Thanks for the logs. Why do you make manifest and make dist? These targets are for me (to generate the release tarball for uploading to CPAN), but of no use for somone just building and installing PAR::Packer. But aside from copious output from xlc they look OK.

GlennWood commented 2 years ago

make manifest and make dist because we maintain our own cpansite with fully vetted packages.

GlennWood commented 2 years ago

I have incorporated a configured CC path into our build scripts and this is working fine now. You can close this "informational" issue now. Thank you, Roderich!

rschupp commented 2 years ago

make manifest and make dist because we maintain our own cpansite with fully vetted packages.

I see.

Thanks for following up.