Closed Bug 1266366 Opened 8 years ago Closed 8 years ago

[ppc64] [ppc64le] 45.1.0 ESR build fails because class js::jit::MacroAssembler has no member named 'branch64'

Categories

(Core :: JavaScript Engine: JIT, defect)

45 Branch
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Tracking Status
firefox45 --- unaffected
firefox46 + fixed
firefox47 --- unaffected
firefox48 --- unaffected
firefox-esr38 --- unaffected
firefox-esr45 --- fixed

People

(Reporter: jhorak, Assigned: nbp)

References

Details

Attachments

(1 file)

We've hit following issue with Firefox 45.1.0 ESR build on ppc64 and ppc64le:

In file included from /builddir/build/BUILD/firefox-45.1.0/firefox-45.1.0esr/objdir/js/src/Unified_cpp_js_src13.cpp:2:0:
/builddir/build/BUILD/firefox-45.1.0/firefox-45.1.0esr/js/src/jit/IonCaches.cpp: In function 'void CheckDOMProxyExpandoDoesNotShadow(JSContext*, js::jit::MacroAssembler&, JSObject*, jsid, js::jit::Register, js::jit::Label*)':
/builddir/build/BUILD/firefox-45.1.0/firefox-45.1.0esr/js/src/jit/IonCaches.cpp:702:14: error: 'class js::jit::MacroAssembler' has no member named 'branch64'
         masm.branch64(Assembler::NotEqual,
              ^

It seems that it was cased by https://bugzilla.mozilla.org/show_bug.cgi?id=1246061 (this change http://hg.mozilla.org/mozilla-central/diff/967dcb05f347/js/src/jit/IonCaches.cpp#l703 ).

Firefox 45.0.2 ESR build under same conditions is fine.
This is a problem in the backported patch, which lacks definition of the branch64 function in the none macro assembler.  I will make a patch in a few minutes.
Attachment #8743851 - Flags: review?(hv1989) → review+
Comment on attachment 8743851 [details] [diff] [review]
Add branch64 functions to the none-backend MacroAssembler.

[Approval Request Comment]
If this is not a sec:{high,crit} bug, please state case for ESR consideration:
  Bug 1246061 caused a compilation issue on builds with disabled jit.
User impact if declined: Cannot compile.
Fix Landed on Version: N/A
Risk to taking this patch (and alternatives if risky): N/A
String or UUID changes made by this patch: N/A
Attachment #8743851 - Flags: approval-mozilla-esr45?
Attachment #8743851 - Flags: approval-mozilla-beta?
Assignee: nobody → nicolas.b.pierron
Comment on attachment 8743851 [details] [diff] [review]
Add branch64 functions to the none-backend MacroAssembler.

Taking it for 45.2.0.
It might be in 45.1.0 if we find a driver for a second build.

This missed 46 RC2, if we do a RC3, we could take it but this is Liz's call.
Attachment #8743851 - Flags: approval-mozilla-release?
Attachment #8743851 - Flags: approval-mozilla-esr45?
Attachment #8743851 - Flags: approval-mozilla-esr45+
Attachment #8743851 - Flags: approval-mozilla-beta?
Bah, sorry for missing these.  Backport was a little beastly here because of significant trunk code improvements, and as the trunk patch didn't (because of that) have none-arch changes, I didn't remember I needed to make them explicitly in backports.

I also didn't make these explicit changes in the ESR38 backport.  Is it necessary to fix that, or is ESR38 sufficiently Johnny-come-lately that the absence there won't hurt you?
Thanks guys for swift reaction!
I missed this on Friday; we did an rc3 but i don't think this is in it.
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #8)
> I missed this on Friday; we did an rc3 but i don't think this is in it.

It's not, fwiw.
(In reply to Nicolas B. Pierron [:nbp] from comment #1)
> This is a problem in the backported patch, which lacks definition of the
> branch64 function in the none macro assembler.  I will make a patch in a few
> minutes.

It doesn't look like the none macro assembler has a branch64 method in any branch (except esr45, now)
Flags: needinfo?(nicolas.b.pierron)
(In reply to Mike Hommey [:glandium] from comment #10)
> It doesn't look like the none macro assembler has a branch64 method in any
> branch (except esr45, now)

Yes, this issue is caused by the backported patches from Bug 1246061.  Newer branches are using the generic MacroAssembler, with the "PER_ARCH" macro which replaces the need for the none macro assembler.

The status flags are correct.
Flags: needinfo?(nicolas.b.pierron)
Do we need this on 46.0.1 desktop (planned for this coming week)  
Or are you aiming it at the next esr?
Flags: needinfo?(nicolas.b.pierron)
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #12)
> Do we need this on 46.0.1 desktop (planned for this coming week)  
> Or are you aiming it at the next esr?

It would be nice if it were fixed in both next esr and next point release. (is there a planned esr along 46.0.1?)
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #12)
> Do we need this on 46.0.1 desktop (planned for this coming week)  
> Or are you aiming it at the next esr?

As Sylvestre mention, this is a nice to have but not enough to make a new release on its own.

So, yes, we should take it.
Flags: needinfo?(nicolas.b.pierron)
Comment on attachment 8743851 [details] [diff] [review]
Add branch64 functions to the none-backend MacroAssembler.

Approved for m-r uplift so it will go into 46.0.1. Otherwise debian/redhat users can't build firefox
Attachment #8743851 - Flags: approval-mozilla-release? → approval-mozilla-release+
Fixed by landing on the release and esr branches.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: