Closed
Bug 706129
Opened 14 years ago
Closed 14 years ago
patch our libstdc++ for c++11 conformance
Categories
(Release Engineering :: General, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: espindola, Assigned: rail)
References
Details
Attachments
(3 files, 1 obsolete file)
7.29 KB,
patch
|
rail
:
review+
espindola
:
checked-in+
|
Details | Diff | Splinter Review |
1.28 KB,
patch
|
rail
:
review+
rail
:
checked-in+
|
Details | Diff | Splinter Review |
529 bytes,
patch
|
ehsan.akhgari
:
review+
espindola
:
checked-in+
|
Details | Diff | Splinter Review |
We build firefox with c++11 on linux, but the old 4.5 libstdc++ is not valid c++11. This means that we only use c++11 with gcc 4.5, which incorrectly accepts it.
When our build system finds that c++11 is not supported, it falls back to c++03, but we already have test failures when using -fshort-wchar.
In particular, this patch lets us build with clang in c++11 mode on the bots.
This is a backport of r159628, r163231 and r171807 from upstream gcc.
Note that this patch includes patches, so the bugzilla "view patch" feature doesn't work correctly.
Attachment #577630 -
Flags: review?(rail)
Reporter | ||
Comment 1•14 years ago
|
||
ah, and the change to pr49911.diff is just to avoid it ending without a new line. Newer versions of patch+rpmubild complain about it.
Reporter | ||
Comment 2•14 years ago
|
||
This patch removes the old (unused) version of gcc and adds moz3 as the current testing one.
Comment 3•14 years ago
|
||
Comment on attachment 577636 [details] [diff] [review]
rotate the gcc version in the pupet file
removing it just from the manifest will leave it installed on old slaves. We should do an ensure => absent, imo.
Attachment #577636 -
Flags: feedback-
Assignee | ||
Comment 4•14 years ago
|
||
Comment on attachment 577630 [details] [diff] [review]
patch our libstdc++ for c++11 conformance
Review of attachment 577630 [details] [diff] [review]:
-----------------------------------------------------------------
::: gcc45/centos5-i686/gcc45.spec
@@ +6,2 @@
>
> +Name: gcc45_0moz3
I'd use "%define gcc_prefix /tools/gcc-4.5-test" and "Name: gcc45_test". This simplifies puppet manifests and you don't need to remove the previous package explicitly.
Attachment #577630 -
Flags: review?(rail) → review-
Reporter | ||
Comment 5•14 years ago
|
||
I just realized that the old gcc is used by branches that haven't merged from m-c yet. I updated the patch to just install the new one.
thanks!
Attachment #577636 -
Attachment is obsolete: true
Attachment #577636 -
Flags: review?(rail)
Attachment #577661 -
Flags: review?(rail)
Attachment #577661 -
Flags: feedback?(bugspam.Callek)
Reporter | ||
Comment 6•14 years ago
|
||
> I'd use "%define gcc_prefix /tools/gcc-4.5-test" and "Name: gcc45_test".
> This simplifies puppet manifests and you don't need to remove the previous
> package explicitly.
This is what was proposed in the first upgrade of gcc, but we decide to just use versions (the -moz suffix) as it plays much better with mozconfigs being in mercurial.
Reporter | ||
Updated•14 years ago
|
Attachment #577630 -
Flags: review- → review?(rail)
Assignee | ||
Updated•14 years ago
|
Attachment #577630 -
Flags: review?(rail) → review+
Assignee | ||
Comment 7•14 years ago
|
||
Comment on attachment 577661 [details] [diff] [review]
Install new gcc
I think, you need to remove the previous version.
Please remove gcc45_0moz2 from install_rpm and make sure that the package is removed, something like:
package {
"gcc45_0moz2":
driver => "rpm",
ensure => "absent";
}
Attachment #577661 -
Flags: review?(rail) → review-
Assignee | ||
Comment 8•14 years ago
|
||
Comment on attachment 577661 [details] [diff] [review]
Install new gcc
<espindola> rail, yes, m-c is using that (the previous version) until we change the mozconfigs
Attachment #577661 -
Flags: review- → review+
Comment 9•14 years ago
|
||
(In reply to Rail Aliiev [:rail] from comment #7)
> Comment on attachment 577661 [details] [diff] [review] [diff] [details] [review]
> Install new gcc
>
> I think, you need to remove the previous version.
You will want to remove the previous version, yes. *BUT* we can't remove it at the same time we're adding gcc45_0moz3, for a few simple reasons.
* Puppet on these slaves is run at boot, so will only install the new gcc after the slave reboots.
* Mozilla-Central right now uses 0moz2.
* Any branches that already merged the mozconfig change in also uses 0moz2
* We need a config change for m-c when we go to use 0moz3.
My recommendation, take this patch as is, and in a week or two remove 0moz2, and mention it to project-branches somehow so they can be sure they have the 0moz3 dependant code.
> Please remove gcc45_0moz2 from install_rpm and make sure that the package is
> removed, something like:
> package {
> "gcc45_0moz2":
> driver => "rpm",
> ensure => "absent";
> }
You actually don't want driver, but |provider => 'rpm',| driver is unknown here.
Reporter | ||
Updated•14 years ago
|
Attachment #577630 -
Flags: checked-in+
Reporter | ||
Comment 10•14 years ago
|
||
I am really sorry I missed this the first time. Only now has my clang bootstrap finished and I noticed the headers were not changed.
Attachment #577779 -
Flags: review?(rail)
Comment 11•14 years ago
|
||
Comment on attachment 577779 [details] [diff] [review]
actually apply the patch
If this patch is incorrect, you have the right to punch me in the face. :-)
Attachment #577779 -
Flags: review?(rail) → review+
Reporter | ||
Updated•14 years ago
|
Attachment #577779 -
Flags: checked-in+
Assignee | ||
Comment 12•14 years ago
|
||
BTW, you can try your toolchain using a similar workaround: https://hg.mozilla.org/try/rev/bcd2efa68c10
It may help us to minimize iterations and deployment time.
Updated•14 years ago
|
Attachment #577661 -
Flags: feedback?(bugspam.Callek)
Assignee | ||
Comment 14•14 years ago
|
||
Comment on attachment 577661 [details] [diff] [review]
Install new gcc
http://hg.mozilla.org/build/puppet-manifests/rev/24813ccf845c
Attachment #577661 -
Flags: checked-in+
Assignee | ||
Comment 15•14 years ago
|
||
Deployed this weekend.
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Updated•12 years ago
|
Product: mozilla.org → Release Engineering
You need to log in
before you can comment on or make changes to this bug.
Description
•