Closed Bug 1684584 Opened 3 years ago Closed 3 years ago

AUTOCLOBBER=1 in .mozconfig clobbers successfully but doesn't rebuild

Categories

(Firefox Build System :: General, defect)

defect

Tracking

(firefox86 fixed)

RESOLVED FIXED
86 Branch
Tracking Status
firefox86 --- fixed

People

(Reporter: gsvelto, Assigned: sheehan)

Details

Attachments

(3 files)

This has been happening for a while. If I set:

mk_add_options AUTOCLOBBER=1

in my .mozconfig file then when a clobber is needed the build directory gets wiped but then the following build fails. The output on my machine is the following:

 0:22.25 Automatically clobbering b'/home/gsvelto/projects/build/firefox'
 0:22.25 Successfully completed auto clobber.
 0:22.25 Adding make options from /home/gsvelto/projects/mozilla-central/.mozconfig
    MOZ_TELEMETRY_REPORTING=1
    AUTOCLOBBER=1
    MOZ_OBJDIR=/home/gsvelto/projects/build/firefox
    OBJDIR=/home/gsvelto/projects/build/firefox
    FOUND_MOZCONFIG=/home/gsvelto/projects/mozilla-central/.mozconfig
    export FOUND_MOZCONFIG
 0:22.26 /usr/bin/gmake -f client.mk -s
 0:22.30 gmake[1]: *** No targets specified and no makefile found.  Stop.
 0:22.30 gmake: *** [client.mk:89: build] Error 2
 0:22.30 1276 compiler warnings present.
Assignee: nobody → sheehan
Status: NEW → ASSIGNED

Since the printed value is a str anyways, this causes the converted bytes
to be printed to the terminal as b'/path/to/topobjdir'. Just print the str
version to the screen instead.

This function has a few code paths and has a slightly confusing return value.
Add a comment describing what it does and what the return value actually
means.

Depends on D100792

The AUTOCLOBBER mozconfig option is reliably causing builds to fail when
a clobber is triggered. When we auto-clobber a build we do so after running
configure but before running make client.mk. This means we destroy all
the gathered information from the configure step in the objdir and then
attempt to run make using the previously destroyed information.

This commit moves the call to _check_clobber to an earlier stage in the
build process, before configure is called, so any clobber that takes place
will happen before setting up the objdir via configure.

Depends on D100793

Pushed by cosheehan@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8964e05224e5
do not encode `topobjdir` before printing to screen during clobber r=firefox-build-system-reviewers,mhentges
https://hg.mozilla.org/integration/autoland/rev/621f4e47ba2c
add a comment describing what `_check_clobber` does r=firefox-build-system-reviewers,mhentges
https://hg.mozilla.org/integration/autoland/rev/38b1d7daf22c
move call to `_check_clobber` to `mach build` instead of running in `_run_client_mk` r=firefox-build-system-reviewers,mhentges
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 86 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: