Closed Bug 1427344 Opened 6 years ago Closed 6 years ago

Adjust GCC to reduce differences when landing bug 1399679

Categories

(Firefox Build System :: General, enhancement)

enhancement
Not set
normal

Tracking

(firefox59 fixed)

RESOLVED FIXED
mozilla59
Tracking Status
firefox59 --- fixed

People

(Reporter: glandium, Assigned: glandium)

References

Details

Attachments

(2 files)

This is, hopefully, the final step before actually going forward with bug 1399679.

This is going to generate massive differences in the binaries, which is why they are a separate preparatory step, but mostly because of offset differences.
Comment on attachment 8940948 [details]
Bug 1427344 - Build GCC without --disable-initfini-array.

https://reviewboard.mozilla.org/r/211230/#review217124

Yay modern options!
Attachment #8940948 - Flags: review+
Comment on attachment 8940949 [details]
Bug 1427344 - Add Debian CRT objects to GCC.

https://reviewboard.mozilla.org/r/211232/#review217130

Looks reasonable.  One thing to fix, and assuming that I have correctly understood the purpose of this code in the comment below, r=me.  The question about not removing this code after bug 13799679 lands does not have to be resolved before landing this patch.

::: commit-message-6c964:21
(Diff revision 1)
> +AFAICT, this is only an hypothetical problem anyways, even such systems
> +with Gtk+3 should be able to run those builds. Plus, this is a change
> +that will happen anyways when switching to Debian-based build images,
> +since they would be using the CRT objects from there. We're merely
> +making it happen earlier so that the differences from switching to
> +Debian-based build images are more tractables.

Nit: "...more tractable."

::: commit-message-6c964:23
(Diff revision 1)
> +Note we only do this when building GCC on Debian, allowing to roll back
> +to CentOS-based toolchains by just switching back the toolchain jobs to
> +use the desktop-build docker image again.
> +
> +Also note this is meant to be backed out after bug 1399679 lands.

Just to make sure I understand here: we have a lot of differences in the generated binaries when building Firefox on Debian vs. building Firefox on CentOS.  In order to minimize those differences for the purposes of debugging *actual* differences, we are going to ensure that our GCC toolchain is using a consistent set of CRT objects.  So whether we're using that GCC toolchain on Debian or CentOS, we will be using a consistent set of CRT objects--and libc files, it looks like.  And this will make a number of issues go away.

But once we switch to Debian everywhere, we don't care about the differences (because we'll be building on a single platform again), so we're going to nuke this code at that point.

Is that a correct summary of what we're doing here and why?  Do we want to *always* copy in the CRT objects to minimize differences for future upgrades?
Attachment #8940949 - Flags: review+
Attachment #8940948 - Flags: review?(core-build-config-reviews) → review+
Attachment #8940949 - Flags: review?(core-build-config-reviews) → review+
(In reply to Nathan Froyd [:froydnj] from comment #4)
> Is that a correct summary of what we're doing here and why?

Yes

> Do we want to *always* copy in the CRT objects to minimize differences for future upgrades?

Mmmm that's a good question. Maybe decide next time we need this?
Depends on: 1427340
Attachment #8940948 - Flags: review?(core-build-config-reviews)
Attachment #8940949 - Flags: review?(core-build-config-reviews)
Pushed by mh@glandium.org:
https://hg.mozilla.org/integration/mozilla-inbound/rev/6e4c1669b6ba
Build GCC without --disable-initfini-array. r=nfroyd
https://hg.mozilla.org/integration/mozilla-inbound/rev/7c92680e18db
Add Debian CRT objects to GCC. r=nfroyd
https://hg.mozilla.org/mozilla-central/rev/6e4c1669b6ba
https://hg.mozilla.org/mozilla-central/rev/7c92680e18db
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla59
Blocks: 1431251
Depends on: 1432391
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: