Fernando de Oliveira wrote:
Sorry, *I was wrong* about telling as invalid the use ofmk_add_options MOZ_MAKE_FLAGS="-j$(getconf _NPROCESSORS_ONLN)" in mozconfig. More disscussed below. I. CHOWN II. Number of threads III. Make install analysis IV. Conclusions I. CHOWN After building as normal user: su root cd /tmp/mozilla-release make -f client.mk install INSTALL_SDK= Found *59 non-root* files. # find /usr/lib/firefox-36.0/ -not -user 0 | wc -l 59 II. Number of threads BTW, number of threads used is the same as for build (build was logged in another file): $ xzgrep 'make -j' firefox-36.0-blfs-2015.02.27-11h17m35s.log.xz make -j5 -C /tmp/mozilla-release/firefox-build-dir install III. Make install analysis This is understood by analysing the make install log: {{{ Adding client.mk options from /tmp/mozilla-release/mozconfig: MOZ_MAKE_FLAGS=-j5 }}} shows that MOZ_MAKE_FLAGS used is set previously (mozconfig, in this case). ... Further ahead, we have the actual install commands: 1) ../../config/nsinstall -D /usr/lib/firefox-36.0 2) (cd ../../dist/firefox && tar --exclude=precomplete --exclude=.mkdir.done -chf - .) | \ (cd /usr/lib/firefox-36.0 && tar -xf -) 3) ../../config/nsinstall -D /usr/bin 4) rm -f -f /usr/bin/firefox 5) ln -s /usr/lib/firefox-36.0/firefox /usr/bin First line creates 0:0 /usr/lib/firefox-36.0 - that is OK. Second line install files there, using tar to pack a stream.tar which is piped to another tar which unpacks into /usr/lib/firefox-36.0 - that is not OK. Third to fifth lines are trivial, removes, then creates a new 0:0 /usr/bin/firefox - that is OK. Problem is the Second line, because the packed then unpacked files were created by a *normal user*, as we always want to be done in BLFS. IV. Conclusions Conclusion 1: *chown is necessary* Sorry, *I was wrong* about telling as invalid the use of mk_add_options MOZ_MAKE_FLAGS="-j$(getconf _NPROCESSORS_ONLN)" in mozconfig. It does get the correct value. Probably, I forgot to save the mozconfig and it picked up the previously save value 4. However, I just found that *if it is not defined* (in mozconfig or anywhere else), it will work like mk_add_options MOZ_MAKE_FLAGS="-j$(getconf _NPROCESSORS_ONLN)" Conclusion 2: it is a good idea to define MOZ_MAKE_FLAGS somewhere, or it will default to the available threads (=MOZ_MAKE_FLAGS="-j$(getconf _NPROCESSORS_ONLN)". Conclusion 3: if MOZ_MAKE_FLAGS is not used in the make install line, it will use default or previously defined value. If you want a install with -j1, MOZ_MAKE_FLAGS=-j1 must be exported or defined in mozconfig or in the make install line.
Fernando, thank you for the detailed analysis. Other than timing issues for the book, do we really care how many threads are used during the build and install? Perhaps a note in the mozconfig is all that is needed.
-- Bruce -- http://lists.linuxfromscratch.org/listinfo/blfs-dev FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page
