Opened 4 years ago
Last modified 3 years ago
#60747 assigned defect
perl5.28: build fails with 8 parallel jobs on Tiger i386
Reported by: | programmingkidx | Owned by: | mojca (Mojca Miklavec) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | tiger | Cc: | programmingkidx |
Port: | perl5.28 |
Description
perl5.28 fails to build on Mac OS 10.4.11 (intel). This is the only info I could find:
:info:build Updating 'mktables.lst' :info:build Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_perl5/perl5.28/work/perl-5.28.3" && /usr/bin/make -j8 -w all :info:build Exit code: 2 :error:build Failed to build perl5.28: command execution failed :debug:build Error code: CHILDSTATUS 14924 2 :debug:build Backtrace: command execution failed :debug:build while executing :debug:build "system {*}$notty {*}$callback {*}$nice $fullcmdstring" :debug:build invoked from within :debug:build "command_exec -callback portprogress::target_progress_callback build" :debug:build (procedure "portbuild::build_main" line 8) :debug:build invoked from within :debug:build "$procedure $targetname" :error:build See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_perl5/perl5.28/main.log for details.
Attachments (1)
Change History (19)
comment:1 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Owner: | set to mojca |
---|---|
Status: | new → assigned |
comment:3 Changed 4 years ago by programmingkidx
Hi Ken, I did see the ticket. I didn't see this kind of failure take place on my system.
I was trying to install the re2c port when I saw this error. perl5.28.3 was trying to be installed. Thing is I already have perl5.28.2 installed. I think a simple fix to this problem is to go back to using perl5.28.2. I think if I edit the perl5 portfile I can go back to version 5.28.2.
comment:4 Changed 4 years ago by kencu (Ken)
before you do that, please show us the log. It needs to be fixed for you, although holding back the version is a temporary step.
You will have to let normal processes work out sometimes for resolving these issues if you expect Ryan and others to look at these tickets and try to help you. Finding the right balance is the key.
So attach your log from the failed build so we can see it, please...
Changed 4 years ago by programmingkidx
comment:6 Changed 4 years ago by kencu (Ken)
Thanks. it is a bit of a strange error you're seeing, but then there are not too many people building Tiger software on an 8 core machine (not even me).
538 :info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_perl5/perl5.28/work/perl-5.28.3/ext/Devel-Peek' 539 :info:build make: *** read jobs pipe: Resource temporarily unavailable. Stop. 540 :info:build make: *** Waiting for unfinished jobs....
At first blush, I'm not exactly sure what this error is. To factor it, we're going to simplify things to remove some variables.
One common thing that happens is race conditions, where one part of the software build is looking for something, but it hasn't been finished being built yet by another part of the build. These are hard to debug, but easy to find once you think of them -- just disable that.
In your Portfile, put
use_parallel_build no
or, alternatively, you can set it perhaps more easily in /opt/local/etc/macports/macports.conf
where you find line that specs the build jobs and set it to "1".
Once that is done, you should clean, and then try the build again:
sudo port clean perl5.28 sudo port -v build perl5.28
if it fails the same way again, then you know it's not that issue.
The next most common thing is the old /usr/bin/make
on Tiger causes lots of problems. To fix that, install gmake
(probably is installed} and then set the build to use it. In the portfile, put
build.cmd gmake
and then clean and try your build again.
If neither of those things gets past your error, put up a new log with the results of those mods, and we'll take a look.
I doubt you will be able to complete a build anyway, due to 60740 but at least you should be able to get to that error (which we have a fix for, just deciding how best to implement it).
comment:7 Changed 4 years ago by programmingkidx
It built! I just added "use_parallel_build no" to the portfile. Then did a clean and a build using the commands above.
Here are the last lines of the build:
Storable: determining recursion limit: 22784 too big, try less 22784 ... MAX_DEPTH = 22783 Storable: determining recursion limit: 8000 passed, try more 8000 ... MAX_DEPTH_HASH = 8000 make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_perl5/perl5.28/work/perl-5.28.3/dist/Storable' test -d lib/Storable || mkdir lib/Storable cp dist/Storable/lib/Storable/Limit.pm lib/Storable/Limit.pm Everything is up to date. Type '/usr/bin/make test' to run test suite. make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_perl5/perl5.28/work/perl-5.28.3' ---> Patching Config_heavy.pl: s/-arch [a-z0-9_]+//g
I'm not 100% sure it installed. Here is the output of 'port installed | grep perl5.28'
git @2.27.0_0+credential_osxkeychain+diff_highlight+doc+pcre+perl5_28 (active) ossp-uuid @1.6.2_11+perl5_28 (active) perl5 @5.26.1_0+perl5_28 (active) perl5.28 @5.28.2_2 (active)
Why does it still say 5.28.2_2 when 5.28.3 just finished installing?
comment:8 Changed 4 years ago by kencu (Ken)
yep, you got it. Glad that worked. Now then, what the heck is 60740 going to turn out to be? I'm more confused now...
Edit: now I'm not sure, actually. It should be perl5.28.3 right?
$ port -v installed perl5.28 The following ports are currently installed: perl5.28 @5.28.3_0+universal (active) platform='darwin 10' archs='i386 x86_64' date='2020-06-18T13:13:47-0700'
so I don't know what you built (as you edited the version in the portfile??). There's the downside of hacking -- sometimes, you don't know where you are :>
You will need to get yourself to a fresh perl5.28 Portfile, add your use_universal_build no
and see if it builds perl5.28 @5.28.3
.
comment:9 Changed 4 years ago by programmingkidx
I just ran your command "port -v installed perl5.28" and saw that perl5.28.3 is installed:
$ port -v installed perl5.28 The following ports are currently installed: perl5.28 @5.28.2_2 platform='darwin 8' archs='i386' date='2020-05-24T11:03:58-0400' perl5.28 @5.28.3_0 (active) platform='darwin 8' archs='i386' date='2020-07-01T20:12:17-0400'
comment:10 Changed 4 years ago by programmingkidx
As for #60740 if you want me to try anything please let me know. Thank you.
comment:11 Changed 4 years ago by programmingkidx
Cc: | programmingkidx added |
---|
comment:12 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | tiger added |
---|---|
Summary: | perl5.28 fails to build → perl5.28: build fails with 8 parallel jobs on Tiger i386 |
comment:13 Changed 4 years ago by kencu (Ken)
I have found that many ports don't build parallel on Tiger that do build parallel on newer systems, and as nobody will care enough to try to fix whatever is causing that (if it can be fixed) I just set my build jobs to "1" on all my Tiger machines in macports.conf, and never see these errors any longer.
comment:14 Changed 3 years ago by khepler
Just hit this on Leopard/ppc with both perl5.26 @5.26.3_6 and perl5.28 @5.28.3_0. Running the make manually with parallel jobs completed fine and in the case of 5.28 passed all but one of make test
. But resuming the port operation failed in the same way even after that.
The make error was not at all informative, and I spent a lot of time trying to figure this out on my PowerMac G5 and Xserves. What tipped me off was that it built on my Powerbook G4. I’m not accustomed to parallel build failures with Macports.
comment:15 Changed 3 years ago by mascguy (Christopher Nielsen)
Is there a chance this could be due to the outdated Make, provided on older macOS releases?
It might be worth testing with our GMake port: Add a build dep on port:gmake
, along with the following to use it:
build.cmd ${prefix}/bin/gmake
comment:16 Changed 3 years ago by mascguy (Christopher Nielsen)
Cc: | mascguy added |
---|
comment:17 Changed 3 years ago by kencu (Ken)
that's a good thought, Chris -- I think I tried that in years gone by, but always worth another attempt.
for a while some years ago I replaced the system gmake with a statically-built new one, but then I was rebuilding newer kernels on Tiger and the build failed; turned out the newer gmake was at fault.
comment:18 Changed 3 years ago by mascguy (Christopher Nielsen)
Cc: | mascguy removed |
---|
Please attach the main.log file so that we can see what happened.