Note: There are a few cases of duplicates in user autocompletion which are being worked on.

Re-enable ANGLE and WebGL on Linux

RESOLVED FIXED

Status

()

Core
Canvas: WebGL
RESOLVED FIXED
7 years ago
6 years ago

People

(Reporter: vlad, Assigned: vlad)

Tracking

Trunk
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(blocking2.0 betaN+)

Details

Attachments

(2 attachments)

Bug 571172 will be checked in with shader validation not building on linux x86-64, because it exposed a problem in our buildslaves -- see bug 560894 comment 11.  We need to get the build problem fixed and this enabled; enabling this is a matter of reverting the changeset that disabled it for x86_64.
Depends on: 578880
Vlad, should this be beta3? Moving to betaN for now.
blocking2.0: beta2+ → betaN+
Assignee: nobody → vladimir
betaN is fine -- but note that there's no work to be done here other than reverting the commit; the actual issue that needs to be fixed is a releng issue in bug 578880.
Created attachment 478669 [details]
list of symbols

I'm not entirely sure this is a releng issue; fixing the build machines to run a build that still may not run for a large number of people isn't an ideal solution.

I pushed a re-enable ANGLE (and webgl) patch to try with the patches here:
http://hg.mozilla.org/users/dbaron_mozilla.com/patches/raw-file/4ab2b3400659/reenable-angle-linux-x86_64
http://hg.mozilla.org/users/dbaron_mozilla.com/patches/raw-file/4ab2b3400659/webgl-linux-x86_64

pulled down the build, and ran objdump -T on the resulting libxul.so.

This is the list of all symbols to be found in libstdc++; note that the offending one is:

_ZNSo9_M_insertIdEERSoT_

which c++filt says is:

std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<double>(double)
Right, see bug 560894 comment 11.  That symbol is versioned, presumably because of a bugfix or something that took place -- hence the explicit 3.4.9 version on it instead of 3.4.

The basic problem is that we're using a version of g++ (from our own tools/binary dir) that requires a minimum version of libstdc++, and we're just assuming that the libstc++ provided by the system will cover it.  If we want to use g++ 4.3.3, then we need to use a version of libstdc++ that 4.3.3 requires; I don't think there's really any way around that.

Comment 5

7 years ago
I mentioned this in bug 578880, I'll mention it here too. To avoid stdc++ fragility, we need to link with -static-libstdc++, but that requires recompiling the compiler with CXXFLAGS=-fPIC. Which we do for gcc 4.5, just a matter of Build/Release flipping that on now.
Is it possible the patch for bug 595112 will help this?
Don't think so -- different problem.  -static-libstdc++ would help, though (assuming we linked in the correct version of libstdc++!)

Updated

7 years ago
Blocks: 604395
We don't use ANGLE on any linux at all - morphing this bug.
Summary: re-enable ANGLE on Linux-x86_64 → re-enable ANGLE on Linux
Created attachment 499871 [details] [diff] [review]
re-enable

g++/stdlibc++ mismatch is fixed
Attachment #499871 - Flags: review+
http://hg.mozilla.org/mozilla-central/rev/e9aa8f38d75e
Status: NEW → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → FIXED

Comment 11

7 years ago
(In reply to comment #8)
> We don't use ANGLE on any linux at all - morphing this bug.

If ANGLE isn't used on Linux at all, the current summary doesn't seem to make sense either. Is it meant to be "Re-enable WebGL on Linux" instead?
no, joe misspoke.  we use the shader translator portion of ANGLE, but not the gl-d3d bridge.

Comment 13

7 years ago
The following is probably breaking compatibility with RHEL 5.X, see Bug 621704

0000000000000000      DF *UND*	00000000000002b2  GLIBCXX_3.4.9 _ZNSo9_M_insertIdEERSoT_
std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<double>(double)

Updated

7 years ago
Summary: re-enable ANGLE on Linux → Re-enable ANGLE and WebGL on Linux

Updated

7 years ago
Depends on: 622152
Depends on: 621699
No longer depends on: 622152
Depends on: 621704
Depends on: 579186

Updated

7 years ago
Depends on: 622294
Version: unspecified → Trunk
I didn't misspeak, someone misread! :) I changed it from "We don't use angle on x86_64 linux" to "we don't use angle on linux." :)

Updated

7 years ago
No longer depends on: 578880
Depends on: 578880
No longer depends on: 621699
Depends on: 624390

Comment 15

7 years ago
WebGL sill not working in 4.0b11. Check it out: http://learningwebgl.com/lessons/lesson01/index.html

Comment 16

7 years ago
please reopen the bug, with the nightly minefield i still cant see any webgl page on linux
@ Geza, Daniel, WebGL is enabled on Linux but only the NVIDIA binary driver is whitelisted. Run with the MOZ_GLX_IGNORE_BLACKLIST environment variable defined, if you want to un-block your driver, like this:

 MOZ_GLX_IGNORE_BLACKLIST=1 firefox

but then be ready for crashes.

I didn't realize until now that the release notes were linking to this bug, I will write to the release notes authors to change that.

Comment 18

7 years ago
Thanks Jacob!
I had tried it with some examples and it worked with the ATI fglrx driver without problem, even with the Google Body Browser.
That's great to hear. We're working on whitelisting more drivers for Firefox 5.
Depends on: 646110
You need to log in before you can comment on or make changes to this bug.