Open
Bug 1371159
Opened 7 years ago
Updated 2 years ago
Add a --disable-many-things build to automation
Categories
(Firefox Build System :: General, enhancement)
Firefox Build System
General
Tracking
(Not tracked)
NEW
People
(Reporter: n.nethercote, Unassigned)
References
(Depends on 1 open bug)
Details
It's easy to inadvertently break the build when features are disabled. It would be good to have a build on automation that disables lots of features. Ones off the top of my head:
* --disable-gecko-profiler (this option doesn't exist, but it should)
* --disable-webrtc
There are probably a lot more.
Jan and Petr, do you have any suggestions of other features to disable based on your experience of what things tend to break?
Flags: needinfo?(petr.sumbera)
Flags: needinfo?(jbeich)
Comment 1•7 years ago
|
||
Not really. At this moment for 52.1ESR we do disable followings:
--disable-updater
--disable-tests
--disable-crashreporter
These should be probably revised.
See: https://github.com/oracle/solaris-userland/blob/master/components/desktop/firefox/Makefile
For the trunk I don't disable anything. But I don't have it fully it working yet.
Flags: needinfo?(petr.sumbera)
Comment 2•7 years ago
|
||
I don't really think this is a worthwhile endeavor. I'd rather we just remove build options that tend to break a lot.
Comment 3•7 years ago
|
||
For example, in bug 1315896 we removed --disable-gamepad, and just made unsupported platforms build a stub gamepad backend.
Comment 4•7 years ago
|
||
(In reply to Ted Mielczarek [:ted.mielczarek] from comment #3)
> For example, in bug 1315896 we removed --disable-gamepad, and just made
> unsupported platforms build a stub gamepad backend.
... which might as well break.
Reporter | ||
Comment 5•7 years ago
|
||
(In reply to Ted Mielczarek [:ted.mielczarek] from comment #2)
> I don't really think this is a worthwhile endeavor. I'd rather we just
> remove build options that tend to break a lot.
What about the profiler? It's not supported on all platforms.
Comment 6•7 years ago
|
||
I'm sure Landry has an opinion here as well, see comment 0.
Flags: needinfo?(landry)
Comment 7•7 years ago
|
||
(In reply to Mike Hommey [:glandium] from comment #4)
> (In reply to Ted Mielczarek [:ted.mielczarek] from comment #3)
> > For example, in bug 1315896 we removed --disable-gamepad, and just made
> > unsupported platforms build a stub gamepad backend.
>
> ... which might as well break.
Sure. Anything that's not in our CI is likely to break. I don't think "make every possible build configuration Tier-1" is feasible, though.
Reporter | ||
Comment 8•7 years ago
|
||
> I don't think "make
> every possible build configuration Tier-1" is feasible, though.
That's a mischaracterization of what I want from this bug.
I'm interested in a single extra configuration that can test the disabling of a handful of components. The profiler is one I've had trouble with myself on multiple occasions. I suspect there are a small number of other components that regularly cause problems. One of my aims in filing this bug is to determine what those other components are.
Comment 9•7 years ago
|
||
If there are common build configurations used by packagers or Firefox developers, then I think it is worth having CI coverage for them so we cause as little disruption as possible. Very few things are worse than your build randomly breaking, especially when you find out about the breakage days or even months after it was caused and you've already paged out most knowledge around the changed thing that broke it, making a fix more time consuming. Of course, having N>>1 build configurations is an even worse problem. I'd rather we trend towards N-1 supported build configurations. But, yeah, that's hard.
Comment 10•7 years ago
|
||
NetBSD and OpenBSD implicitly use --disable-skia-gpu.
powerpc*, sparc*, etc. implicitly use --disable-ion.
Comment 11•7 years ago
|
||
As for the build options we use (for the distributed binaires) that could gain from 'upstream' coverage (besides being able to disable the profiler, because i think that's the single biggest cause of build breakage we had in the past years, that and mismatching types) would be building against systemwide libraries: nss, nspr, sqlite, bz2, hunspell, cairo, ffi, icu..
Flags: needinfo?(landry)
Comment 12•7 years ago
|
||
Just as we're talking about it, the build is broken again on platforms without the profiler, cf https://bugzilla.mozilla.org/show_bug.cgi?id=1335461#c50
Just a misplaced #if/#endif/closing brace.. but that's depressing. And would be caught by automation if there was a build without the profiler.
Comment 13•7 years ago
|
||
non profiler builds busted again, cf https://bugzilla.mozilla.org/show_bug.cgi?id=1375398 ..
Comment 14•7 years ago
|
||
I think we should have a build job that disable unified builds.
This would allow to immediately find the missing #include that keeps creeping up whenever the unified builds get tweaked.
I keeps popping up, and is typically a massive waste of time for everybody
Comment 15•7 years ago
|
||
(In reply to Jean-Yves Avenard [:jya] from comment #14)
> I think we should have a build job that disable unified builds.
>
> This would allow to immediately find the missing #include that keeps
> creeping up whenever the unified builds get tweaked.
>
> I keeps popping up, and is typically a massive waste of time for everybody
Tweaking unified builds is not something that happens frequently. See bug 1251181 anyways.
Comment 16•7 years ago
|
||
Tweaking the unified builds setting, maybe not.
Adding or removing new files however that could change how files are combined happens much more often and every time it has happened we had to rework the missing headers.
Updated•7 years ago
|
Product: Core → Firefox Build System
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•