Ticket #16499 (closed enhancement: fixed)
speex, speex-devel: enable parallel build
| Reported by: | ryandesign@… | Owned by: | billitch@… |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 1.6.0 |
| Keywords: | Cc: | ||
| Port: | speex, speex-devel |
Description
Do you have any objection to enabling the parallel build feature in the speex and speex-devel ports? This lets them build faster on multiprocessor systems.
Attachments
Change History
comment:1 Changed 5 years ago by billitch@…
actually, yes :
test -z "/opt/local/include/speex" || /opt/local/var/macports/build/_Users_billitch_dev_macports-trunk_dports_audio_speex-devel/work/speex-1.2rc1/install-sh -d "/opt/local/var/macports/build/_Users_billitch_dev_macports-trunk_dports_audio_speex-devel/work/destroot/opt/local/include/speex" mkdir: /opt/local/var/macports/build/_Users_billitch_dev_macports-trunk_dports_audio_speex-devel/work/destroot/opt/local/include/speex: File exists make[3]: *** [install-pkgincludeHEADERS] Error 1 make[3]: *** Waiting for unfinished jobs.... /usr/bin/install -m 644 'speex_config_types.h' '/opt/local/var/macports/build/_Users_billitch_dev_macports-trunk_dports_audio_speex-devel/work/destroot/opt/local/include/speex/speex_config_types.h' make[2]: *** [install-am] Error 2 make[1]: *** [install-recursive] Error 1 make: *** [install-recursive] Error 1 Warning: the following items did not execute (for speex-devel): org.macports.activate org.macports.destroot org.macports.install Error: Status 1 encountered during processing.
Running port install again is successful but I would not take it as an acceptable solution, it is more of a proof that parallel build is broken in the destroot phase of the Makefile/Portfile.
I successfully disabled the parallel build in the destroot phase and it works fine, so local fix is possible.
However I believe there is a possible problem resolution at a larger scale : is there a rationale for using multiple make jobs for the destroot and install phases ? These are not improved at all by CPU parallelism, and I guess this is the case for every phase except build. I think of parallel destroot/install as a factor of unstability for each and every port which has enabled parallel build, did not disable it for the destroot phase and uses make as build.cmd, which is the default.
comment:2 Changed 5 years ago by ryandesign@…
- Port set to speex, speex-devel
MacPorts trunk (what will be MacPorts 1.7) already only uses multiple jobs during the build phase and no longer does so during the destroot and test phases. (The install phase doesn't use make.) See:
http://lists.macosforge.org/pipermail/macports-dev/2008-May/005191.html
We can wait to enable the parallel build of speex and speex-devel until after MacPorts 1.7 is released.
comment:3 Changed 4 years ago by anonymous
- Milestone Port Enhancements deleted
Milestone Port Enhancements deleted
comment:4 Changed 4 years ago by toby@…
- Status changed from new to closed
- Resolution set to fixed
disabled parallel build in r55105
comment:5 Changed 4 years ago by ryandesign@…
But this request was to enable parallel building. :-) The only reason why it wasn't done sooner is that MacPorts 1.6 also tried to do "make install" in parallel, which caused a problem for speex. MacPorts 1.7 no longer tries to do "make install" in parallel so it should now be safe to enable it. Also, your commit did not address speex-devel.
I have enabled parallel building in speex and speex-devel in r55395. It worked fine for me with MacPorts 1.7.1 on an Intel Core 2 Duo machine with 3 parallel jobs. If you actually encountered a problem building these ports in parallel, let me know and we can turn it off again.

