Bug 1450755 - Firefox 53 - ppc64/le build failure
Summary: Firefox 53 - ppc64/le build failure
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: firefox
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Jan Horak
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: RejectedBlocker
Keywords:
Depends On:
Blocks: PPCTracker F26PPCBeta
TreeView+ depends on / blocked
 
Reported: 2017-05-15 06:44 UTC by Martin Stransky
Modified: 2017-06-09 19:23 UTC (History)
14 users (show)

(edit)
Clone Of: 1443938
(edit)
Last Closed: 2017-06-09 19:23:18 UTC


Attachments (Terms of Use)

Description Martin Stransky 2017-05-15 06:44:14 UTC
+++ This bug was initially created as a clone of Bug #1443938 +++

Description of problem:
Firefox 53 fails to build on second arches (ppc/arm).

--- Additional comment from Michel Normand on 2017-05-04 03:45:42 EDT ---

* extract of build log is reporting a missing def of RegTypeName
  https://kojipkgs.fedoraproject.org//work/tasks/1157/19231157/build.log
* as per upstream query this is defined in  Architecture-shared.h
  that should be included via Architecture-none.h
  assuming JS_CODEGEN_NONE is defined.
  https://dxr.mozilla.org/mozilla-central/source/js/src/jit/none/Architecture-none.h#14
* BUT in unpacked source on fedora this include is not present.
* Suggestion is to add the two patches identified below from upstream.
=== build.log extract:
/builddir/build/BUILD/firefox-53.0/firefox-53.0/js/src/jit/Registers.h:91:22: error: 'RegTypeName' does not name a type; did you mean 'typename'?
     static constexpr RegTypeName DefaultType = RegTypeName::GPR;
                      ^~~~~~~~~~~
                      typename
===
https://hg.mozilla.org/mozilla-central/rev/2c924fb664c1
https://hg.mozilla.org/mozilla-central/rev/97c45b13a165
===

--- Additional comment from Michel Normand on 2017-05-04 05:10:42 EDT ---

Note that even if correction of this include, then next failure 
is a rust related error as per scratchbuild (also for x86_64)
https://kojipkgs.fedoraproject.org//work/tasks/3829/19393829/build.log
===
...
     Running `/usr/bin/rustc --crate-name mp4parse_gtest /builddir/build/BUILD/firefox-53.0/firefox-53.0/dom/media/gtest/hello.rs --crate-type lib --emit=dep-info,link -C opt-level=2 -C panic=abort -C codegen-units=1 -C debuginfo=2 -C metadata=29cb3f043171d892 -C extra-filename=-29cb3f043171d892 --out-dir /builddir/build/BUILD/firefox-53.0/firefox-53.0/objdir/toolkit/library/gtest/rust/./x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -L dependency=/builddir/build/BUILD/firefox-53.0/firefox-53.0/objdir/toolkit/library/gtest/rust/./x86_64-unknown-linux-gnu/release/deps -L dependency=/builddir/build/BUILD/firefox-53.0/firefox-53.0/objdir/toolkit/library/gtest/rust/./release/deps`
error[E0463]: can't find crate for `cheddar`
 --> /builddir/build/BUILD/firefox-53.0/firefox-53.0/media/libstagefright/binding/mp4parse_capi/build.rs:1:1
  |
1 | extern crate cheddar;
  | ^^^^^^^^^^^^^^^^^^^^^ can't find crate
error: aborting due to previous error
Build failed, waiting for other jobs to finish...
error: Could not compile `mp4parse_capi`.
===

--- Additional comment from Dan Horák on 2017-05-04 05:12:14 EDT ---

the changelog contains

* Tue Apr 18 2017 Martin Stransky <stransky@redhat.com> - 53.0-1
 - Updated to 53.0 (B6)

so probably it's not the GA tarball (if B6 means Beta6), where these fixes would be included. If I see correctly in upstream mercurial repo, then these fixes landed 5 days after creating the FIREFOX_AURORA_53_BASE tag.

--- Additional comment from Michel Normand on 2017-05-04 06:05:49 EDT ---

Hello Martin
is it feasible to keep firefox 52 in f26, as long as 53 do not build ? this would avoid some openQA tests to fail because of missing firefox at install time.

--- Additional comment from Martin Stransky on 2017-05-05 03:15:24 EDT ---

(In reply to Michel Normand from comment #4)
> Hello Martin
> is it feasible to keep firefox 52 in f26, as long as 53 do not build ? this
> would avoid some openQA tests to fail because of missing firefox at install
> time.

I don't know how to do that - the builds are already in koji and updates I expect. Can rel-eng do it?

--- Additional comment from Martin Stransky on 2017-05-05 03:16:21 EDT ---

(In reply to Dan Horák from comment #3)
> the changelog contains
> 
> * Tue Apr 18 2017 Martin Stransky <stransky@redhat.com> - 53.0-1
>  - Updated to 53.0 (B6)
> 
> so probably it's not the GA tarball (if B6 means Beta6), where these fixes
> would be included. If I see correctly in upstream mercurial repo, then these
> fixes landed 5 days after creating the FIREFOX_AURORA_53_BASE tag.

B6 means Build6 as you see them on http://archive.mozilla.org/pub/firefox/candidates/53.0-candidates/

--- Additional comment from Paul Whalen on 2017-05-05 14:32:50 EDT ---

Proposing as a blocker for F26 Beta, firefox is the default browser on XFCE which is the release blocking desktop image on arm.

--- Additional comment from Martin Stransky on 2017-05-10 08:21:13 EDT ---

(In reply to Michel Normand from comment #2)
> Note that even if correction of this include, then next failure 
> is a rust related error as per scratchbuild (also for x86_64)
> https://kojipkgs.fedoraproject.org//work/tasks/3829/19393829/build.log
> ===
> ...
>      Running `/usr/bin/rustc --crate-name mp4parse_gtest
> /builddir/build/BUILD/firefox-53.0/firefox-53.0/dom/media/gtest/hello.rs
> --crate-type lib --emit=dep-info,link -C opt-level=2 -C panic=abort -C
> codegen-units=1 -C debuginfo=2 -C metadata=29cb3f043171d892 -C
> extra-filename=-29cb3f043171d892 --out-dir
> /builddir/build/BUILD/firefox-53.0/firefox-53.0/objdir/toolkit/library/gtest/
> rust/./x86_64-unknown-linux-gnu/release/deps --target
> x86_64-unknown-linux-gnu -L
> dependency=/builddir/build/BUILD/firefox-53.0/firefox-53.0/objdir/toolkit/
> library/gtest/rust/./x86_64-unknown-linux-gnu/release/deps -L
> dependency=/builddir/build/BUILD/firefox-53.0/firefox-53.0/objdir/toolkit/
> library/gtest/rust/./release/deps`
> error[E0463]: can't find crate for `cheddar`
>  -->
> /builddir/build/BUILD/firefox-53.0/firefox-53.0/media/libstagefright/binding/
> mp4parse_capi/build.rs:1:1
>   |
> 1 | extern crate cheddar;
>   | ^^^^^^^^^^^^^^^^^^^^^ can't find crate
> error: aborting due to previous error
> Build failed, waiting for other jobs to finish...
> error: Could not compile `mp4parse_capi`.
> ===

AFAIK we don't support Rust on arm now. Should work with disabled Rust, which I'm building now.

--- Additional comment from Martin Stransky on 2017-05-11 14:48:44 EDT ---

Arm builds are fixed now.

--- Additional comment from Martin Stransky on 2017-05-11 14:55:53 EDT ---

firefox-53.0.2-3.fc26 is built for ARM. Looks like we still have problems with F24/25 which will be fixed later.

--- Additional comment from Mike Ruckman on 2017-05-12 17:17:40 EDT ---

Discussed in the 2017-05-02 Blocker Review meeting [0]. This is rejected in favour of the alternative proposal #1448923 , which more precisely reflects the actual criteria violation. There was a long discussion on it during the meeting [1] as well as a mailing list discussion [2] to explain the rationale.

[0] Sorry for the late update on this.
[1] https://meetbot.fedoraproject.org/fedora-blocker-review/2017-05-08/f26-blocker-review.2017-05-08-16.00.log.html
[2] https://lists.fedoraproject.org/archives/list/test@lists.fedoraproject.org/thread/NNKH7V7S6XV673EG5YBQCG2MBO6LCUKP/

--- Additional comment from Martin Stransky on 2017-05-15 02:43:08 EDT ---

Let's mark this as Arm build failures and target ppc/s390/aarch64 in different bugs.

Michael, thanks for the patches in comment 1 - that really helped. Right now I work on F25/24 build failures, F26/rawhide seems to be fine.

Comment 1 Dan Horák 2017-05-17 11:59:57 UTC
ppc64le failure (https://koji.fedoraproject.org/koji/taskinfo?taskID=19586121)
...
/usr/bin/g++ -std=gnu++11 -o Unified_cpp_js_src12.o -c  -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/dist/system_wrappers -include /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DENABLE_SHARED_ARRAY_BUFFER -DEXPORT_JS_API -DJS_HAS_CTYPES '-DDLL_PREFIX="lib"' '-DDLL_SUFFIX=".so"' -DMOZ_HAS_MOZGLUE -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/js/src  -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/dist/include  -I/usr/include/nspr4        -fPIC  -DMOZILLA_CLIENT -include /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/js/src/js-confdefs.h -MD -MP -MF .deps/Unified_cpp_js_src12.o.pp  -Wall -Wc++11-compat -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++14-compat -Wc++1z-compat -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -fno-lifetime-dse -O2 -g -pipe -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mcpu=power8 -mtune=power8 -Wformat-security -Wformat -Werror=format-security -fno-delete-null-pointer-checks -fPIC -Wl,-z,relro -Wl,-z,now -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe  -g -g -O2 -fomit-frame-pointer  -Wno-shadow -Werror=format  /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/js/src/Unified_cpp_js_src12.cpp
In file included from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/js/src/Unified_cpp_js_src12.cpp:29:0:
/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/Ion.cpp: In member function 'void js::jit::JitCode::copyFrom(js::jit::MacroAssembler&)':
/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/Ion.cpp:778:30: error: no matching function for call to 'js::jit::MacroAssembler::executableCopy(uint8_t*&)'
     masm.executableCopy(code_);
                              ^
In file included from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/MacroAssembler.h:28:0,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/BaselineJIT.h:18,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/BaselineIC.h:20,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/MIR.h:22,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/AliasAnalysisShared.h:10,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/FlowAliasAnalysis.h:10,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/FlowAliasAnalysis.cpp:7,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/js/src/Unified_cpp_js_src12.cpp:2:
/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/none/MacroAssembler-none.h:199:10: note: candidate: void js::jit::MacroAssemblerNone::executableCopy(void*, bool)
     void executableCopy(void*, bool) { MOZ_CRASH(); }
          ^~~~~~~~~~~~~~
/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/none/MacroAssembler-none.h:199:10: note:   candidate expects 2 arguments, 1 provided
In file included from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jsapi.h:18:0,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/builtin/SIMD.h:10,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/MIR.h:20,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/AliasAnalysisShared.h:10,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/FlowAliasAnalysis.h:10,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/js/src/jit/FlowAliasAnalysis.cpp:7,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/js/src/Unified_cpp_js_src12.cpp:2:

Comment 2 Dan Horák 2017-05-17 12:02:07 UTC
ppc64 (and s390x) fails due lack of big endian support in the skia gpu library, skia has been made mandatory in FF 53 (https://koji.fedoraproject.org/koji/taskinfo?taskID=19586123)

...
/usr/bin/g++ -std=gnu++11 -o SkiaGLGlue.o -c -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/dist/stl_wrappers -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/dist/system_wrappers -include /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DOS_POSIX=1 -DOS_LINUX=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/gfx/gl -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/gfx/gl -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/ipc/ipdl/_ipdlheaders -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/ipc/chromium/src -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/ipc/glue -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/gfx/skia -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/gfx/skia/skia/include/config -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/gfx/skia/skia/include/core -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/gfx/skia/skia/include/gpu -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/gfx/skia/skia/include/utils -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/dist/include  -I/usr/include/nspr4 -I/usr/include/nss3       -fPIC  -DMOZILLA_CLIENT -include /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/mozilla-config.h -MD -MP -MF .deps/SkiaGLGlue.o.pp  -Wall -Wc++11-compat -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++14-compat -Wc++1z-compat -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -fno-lifetime-dse -O2 -g -pipe -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -Wformat-security -Wformat -Werror=format-security -fno-delete-null-pointer-checks -fPIC -Wl,-z,relro -Wl,-z,now -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe  -g -g -O2 -fomit-frame-pointer  -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/objdir/dist/include/cairo -I/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/widget/gtk/compat-gtk3 -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-3.0/unix-print -pthread -Wno-error=shadow  /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/gfx/gl/SkiaGLGlue.cpp
In file included from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/gfx/skia/skia/include/gpu/GrCaps.h:11:0,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/gfx/skia/skia/include/gpu/GrContext.h:11,
                 from /builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/gfx/gl/SkiaGLGlue.cpp:6:
/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/gfx/skia/skia/include/gpu/GrTypes.h:279:6: error: #error "Skia gpu currently assumes little endian"
     #error "Skia gpu currently assumes little endian"
      ^~~~~
/builddir/build/BUILD/firefox-53.0.2/firefox-53.0.2/gfx/skia/skia/include/gpu/GrTypes.h:288:6: error: #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format."
     #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format."
      ^~~~~

Comment 3 Ngo Than 2017-05-31 15:10:59 UTC
i have done some scratch builds of firefox-53.0.3-1 on ppc64 and ppc64le and s390x.

It now builds fine on ppc64 and ppc64le in f26. Please take a look at scratch build.

  https://koji.fedoraproject.org/koji/taskinfo?taskID=19793541

The s390x build for f27 is still running so i cannot tell if it builds.

Martin, i think we can now remove the ExcludeArch ppc64/ppc64le for f26 so that firefox can be built on these platform.

Thanks Jan Horak for great work to get firefox built on ppc64/ppc64le/s390x!

Comment 4 Ngo Than 2017-05-31 15:11:32 UTC
scratch build on s390x

https://koji.fedoraproject.org/koji/taskinfo?taskID=19793979

Comment 5 Ngo Than 2017-06-01 07:07:03 UTC
firefox-53.0.3-1 also builts fine on s390x.

Comment 6 Ngo Than 2017-06-01 09:29:50 UTC
I have done some basic testings in firefox on ppc64/s390x. It works fine so far.

sadly ppc64, ppc64le and s390x are still disable for fedora < 27.

%if 0%{?fedora} < 27
ExcludeArch: ppc64le ppc64 s390x
%endif

We need to drop the ExcludeArch for f26 please. Could you please remove it for next build?

Thanks

Comment 7 Jan Horak 2017-06-01 09:36:48 UTC
Should be already in progress in koji  now.

Comment 8 Ngo Than 2017-06-02 10:10:43 UTC
it's fixed in firefox-53.0.3-2
https://koji.fedoraproject.org/koji/buildinfo?buildID=899944

Jan, Could you please push it into f26 update? I can take care of it if you don't have time to do that.

Thanks
Than

Comment 9 Fedora Update System 2017-06-02 13:51:45 UTC
firefox-53.0.3-2.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-dca8cd31a5

Comment 10 Fedora Update System 2017-06-04 19:40:57 UTC
firefox-53.0.3-2.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-dca8cd31a5

Comment 11 Fedora Update System 2017-06-09 19:23:18 UTC
firefox-53.0.3-2.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.