Closed Bug 941689 Opened 11 years ago Closed 7 years ago

Collect errors during build and display them properly at the bottom of the build log

Categories

(Firefox Build System :: General, defect)

x86_64
Windows 7
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 1360764

People

(Reporter: mayhemer, Unassigned, Mentored)

Details

(Whiteboard: [lang=python])

Attachments

(1 file)

Attached file buildlog2.zip
# Options for client.mk.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/_obj-browser-debug
mk_add_options MOZ_MAKE_FLAGS=-j9

export MOZ_DEBUG_SYMBOLS=1

ac_add_options --enable-application=browser
ac_add_options --enable-debug
ac_add_options --disable-optimize
ac_add_options --enable-shared

ac_add_options --disable-static
ac_add_options --enable-tests
ac_add_options --enable-logging
ac_add_options --enable-backtrack
ac_add_options --disable-installer
ac_add_options --enable-chrome-format=flat
ac_add_options --enable-warnings-as-errors

ac_add_options --disable-crashreporter
ac_add_options --disable-directshow # 905592

export MOZ_PSEUDO_DERECURSE=no-pymake
 

Up to this date m-c, but few days ago I was getting the same error, so I updated back to 99084b22e38d cs and that works for me.  Using mozmake.exe.
Removing |export MOZ_PSEUDO_DERECURSE=no-pymake| doesn't help.

Help!
So, I had a typo in a cpp file.  But, that error is hidden somewhere in the middle of the whole log.  Searching for *** or 'error' helps catching that.

Converting this bug to something else.
Severity: blocker → major
Summary: /mozilla-central/config/recurse.mk:39: recipe for target 'compile' failed → "recurse.mk:39: recipe for target 'compile' failed" instead of an actual error at the bottom of the build log
Make has craptastic error reporting. If an error occurs, it prints it, then waits for all already-scheduled jobs to finish, then prints a generic failure message at the bottom. In the case of the 'compile' tier, we schedule hundreds of jobs, so your output is often lost hundreds of lines above.

I /think/ there is a bug somewhere to have mach capture errors and print them back out after make termination. If there isn't we should repurpose this bug.
Yep, this is not the first time I and others complain about (not) catching errors.  Just a note that it was a clobbered build after a pull/update.  ./mach build binaries are (among other good things!) great at reporting errors on the other hand.

I don't know about any bug that would be collecting errors.  Could the warnings collection code be reused?  I assume it's already platform/compiler dependent, so it should be possible to catch errors as well.

Should that be a mach feature?
Summary: "recurse.mk:39: recipe for target 'compile' failed" instead of an actual error at the bottom of the build log → Collect errors during build and display them properly at the bottom of the build log
There is code in python/mozbuild/mozbuild/controller/build.py for parsing build output. Search for "def on_line" for where it processes each line of output. That code is used by the BuildOutputManager class from python/mozbuild/mozbuild/mach_commands.py. BuildOutputManager is instantiated in the mach build command "def build(" from that same mach_commands.py file.

It's more complicated than it needs to be because it grew organically. But, you should be able to have BuildOutputManager write collected errors to a data structure and then have the |mach build| command dump those errors after building.

The one big gotcha here is l10n. I bet GNU make translates error messages. Perhaps we should just force LANG=C when building with mach: so much of the build is English only and we're moving away from make, so I view it as a marginal setback for the non-English speaker.
Whiteboard: [mentor=gps][lang=python]
As per the #Comment 5,  we need to refer "mach_commands.py" file but I buil my thunderbird from "make -f client.mk build_all" command.So which file I need to check so that I can generate or enable error log while building Thunderbird in separate file.
Mentor: gps
Whiteboard: [mentor=gps][lang=python] → [lang=python]
Severity: major → normal
Hi. I would like to work on this bug .
(In reply to Balaji from comment #7)
> Hi. I would like to work on this bug .

Hi, thanks for your interest!  Unfortunately this bug has already been fixed in bug 1360764.  Maybe you could find another bug on https://whatcanidoformozilla.org/ ?
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → DUPLICATE
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: