Moonchild wrote:What is {$objdir} in your case? does it carry across to your build script?
The flow is that values are calculated in the main "build" script, and exported as environmental variables, which are then picked up by the mozconfig file. Note that by default, there is no "customize" file. I use it only when building for non-native CPUs, e.g. building for my Atom inside a VM on my desktop. The build script includes the following 2 snippets...
Code: Select all
cpucount=`grep -c "^flags" /proc/cpuinfo`
(( cpucount++ ))
export cpucount
The number of cpu cores varies from machine to machine. I set the number of parallell jobs to core count plus 1.
In bash scripts ${PWD} is the
Present
Working
Directory. In my case ${PWD} is "/home/waltdnes/palemoon/tycho" and "${PWD}/pmbuild/" should be "/home/waltdnes/palemoon/tycho/pmbuild/".
For the 26.3.3 build, mozconfig.txt contains the lines...
Code: Select all
mk_add_options MOZ_MAKE_FLAGS="-j${cpucount}"
mk_add_options MOZ_OBJDIR=${objdir}
Here's the start of the buildlog in the failure case
0:00.86 /usr/bin/gmake -f client.mk MOZ_PARALLEL_BUILD=5 -s
0:01.32 client.mk:201: /home/waltdnes/palemoon/tycho/pmbuild/.mozconfig.mk: No such file or directory
0:01.79 Clobber not needed.
0:03.11 Adding client.mk options from /home/waltdnes/palemoon/tycho/pmsrc/.mozconfig:
0:03.11 AUTOCLOBBER=1
0:03.11 MOZ_CO_PROJECT=browser
0:03.11 MOZ_MAKE_FLAGS=-j5
0:03.11 MOZ_OBJDIR=/home/waltdnes/palemoon/tycho/pmbuild
0:03.11 OBJDIR=/home/waltdnes/palemoon/tycho/pmbuild
0:03.11 FOUND_MOZCONFIG=/home/waltdnes/palemoon/tycho/pmsrc/.mozconfig
0:03.50 cd /home/waltdnes/palemoon/tycho/pmbuild
0:03.50 /home/waltdnes/palemoon/tycho/pmsrc/configure
0:03.81 Adding configure options from /home/waltdnes/palemoon/tycho/pmsrc/.mozconfig
Note the lines...
0:03.11 MOZ_MAKE_FLAGS=-j5
0:03.11 MOZ_OBJDIR=/home/waltdnes/palemoon/tycho/pmbuild
0:03.11 FOUND_MOZCONFIG=/home/waltdnes/palemoon/tycho/pmsrc/.mozconfig
0:03.50 cd /home/waltdnes/palemoon/tycho/pmbuild
I have 4 cores on my current desktop. 4 + 1 = 5, so that is passed properly. It also gets MOZ_OBJDIR properly. In the file I attached with my initial message, it goes on quite happily, building jemalloc, libffi, and icu. But it eventually runs into a brick wall with...
0:20.39 js/src> checking for malloc_usable_size... (cached) yes
0:20.39 js/src> updating cache /home/waltdnes/palemoon/tycho/pmbuild/config.cache
0:20.39 js/src> creating ./config.status
0:20.67 Traceback (most recent call last):
0:20.67 File "./config.status", line 980, in <module>
0:20.67 config_status(**args)
0:20.67 File "/home/waltdnes/palemoon/tycho/pmsrc/python/mozbuild/mozbuild/config_status.py", line 135, in config_status
0:20.68 emitter = TreeMetadataEmitter(env)
0:20.68 File "/home/waltdnes/palemoon/tycho/pmsrc/python/mozbuild/mozbuild/frontend/emitter.py", line 93, in __init__
0:20.68 mozinfo.find_and_update_from_json(config.topobjdir)
0:20.68 File "/home/waltdnes/palemoon/tycho/pmsrc/testing/mozbase/mozinfo/mozinfo/mozinfo.py", line 164, in find_and_update_from_json
0:20.69 build = MozbuildObject.from_environment()
0:20.69 File "/home/waltdnes/palemoon/tycho/pmsrc/python/mozbuild/mozbuild/base.py", line 181, in from_environment
0:20.69 raise ObjdirMismatchException(topobjdir, _config_topobjdir)
0:20.69 mozbuild.base.ObjdirMismatchException: Objdir mismatch: /home/waltdnes/palemoon/tycho/pmbuild != /home/waltdnes/palemoon/tycho/pmsrc/js/src
0:20.71 *** Fix above errors and then restart with\
0:20.71 "/usr/bin/gmake -f client.mk build"
0:20.71 /home/waltdnes/palemoon/tycho/pmsrc/client.mk:361: recipe for target 'configure' failed
0:20.71 gmake[2]: *** [configure] Error 1
0:20.71 /home/waltdnes/palemoon/tycho/pmsrc/client.mk:375: recipe for target '/home/waltdnes/palemoon/tycho/pmbuild/Makefile' failed
0:20.71 gmake[1]: *** [/home/waltdnes/palemoon/tycho/pmbuild/Makefile] Error 2
0:20.71 client.mk:171: recipe for target 'build' failed
0:20.71 gmake: *** [build] Error 2
0:20.73 0 compiler warnings present.
See the attached file with the first post for the full details.