Opened 16 years ago

Closed 15 years ago

Last modified 15 years ago

#16499 closed enhancement (fixed)

speex, speex-devel: enable parallel build

Reported by: ryandesign (Ryan Carsten Schmidt) 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 (1)

speex-parallel.diff (654 bytes) - added by ryandesign (Ryan Carsten Schmidt) 16 years ago.

Download all attachments as: .zip

Change History (6)

Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: speex-parallel.diff added

comment:1 Changed 16 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 16 years ago by ryandesign (Ryan Carsten Schmidt)

Port: speex speex-devel added

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 15 years ago by (none)

Milestone: Port Enhancements

Milestone Port Enhancements deleted

comment:4 Changed 15 years ago by tobypeterson

Resolution: fixed
Status: newclosed

disabled parallel build in r55105

comment:5 Changed 15 years ago by ryandesign (Ryan Carsten Schmidt)

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.

Note: See TracTickets for help on using tickets.