Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 1942516

Summary: [armv7hl] Firefox 87.0 fails to build on Fedora due to 'out of memory'
Product: [Fedora] Fedora Reporter: Martin Stransky <stransky>
Component: firefoxAssignee: Gecko Maintainer <gecko-bugs-nobody>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: dan, erack, gecko-bugs-nobody, jhorak, kai-engert-fedora, pbrobinson, pjasicek, pwhalen, rhughes, rstrode, sandmann
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 245418    

Description Martin Stransky 2021-03-24 13:41:49 UTC
Description of problem:
Latest Firefox fails to build on all Fedoras (32 -> 35).

Builds are here:
https://koji.fedoraproject.org/koji/taskinfo?taskID=64409024
https://koji.fedoraproject.org/koji/taskinfo?taskID=64409029
https://koji.fedoraproject.org/koji/taskinfo?taskID=64408945
https://koji.fedoraproject.org/koji/taskinfo?taskID=64409052

Error message:

warning: cc1plus: out of memory allocating 8720 bytes after a total of 363249664 bytes
error: failed to run custom build command for `swgl v0.1.0 (/builddir/build/BUILD/firefox-87.0/gfx/wr/swgl)`
Caused by:
  process didn't exit successfully: `/builddir/build/BUILD/firefox-87.0/objdir/release/build/swgl-a28454d3c7c89483/build-script-build` (exit code: 1)
  --- stdout
  cargo:rerun-if-changed=/builddir/build/BUILD/firefox-87.0/gfx/wr/webrender/res/brush_blend.glsl
  cargo:rerun-if-changed=/builddir/build/BUILD/firefox-87.0/gfx/wr/webrender/res/shared.glsl
  cargo:rerun-if-changed=/builddir/build/BUILD/firefox-87.0/gfx/wr/webrender/res/base.glsl
  cargo:rerun-if-changed=/builddir/build/BUILD/firefox-87.0/gfx/wr/webrender/res/prim_shared.glsl
  cargo:rerun-if-changed=/builddir/build/BUILD/firefox-87.0/gfx/wr/webrender/res/rect.glsl
  cargo:rerun-if-changed=/builddir/build/BUILD/firefox-87.0/gfx/wr/webrender/res/render_task.glsl
  cargo:rerun-if-changed=/builddir/build/BUILD/firefox-87.0/gfx/wr/webrender/res/gpu_cache.glsl
  cargo:rerun-if-changed=/builddir/build/BUILD/firefox-87.0/gfx/wr/webrender/res/transform.glsl
  cargo:rerun-if-changed=/builddir/build/BUILD/firefox-87.0/gfx/wr/webrender/res/brush.glsl
  OPT_LEVEL = Some("2")
  TARGET = Some("armv7-unknown-linux-gnueabihf")
  HOST = Some("armv7-unknown-linux-gnueabihf")
  CC_armv7-unknown-linux-gnueabihf = None
  CC_armv7_unknown_linux_gnueabihf = Some("/usr/bin/gcc")
  CFLAGS_armv7-unknown-linux-gnueabihf = None
  CFLAGS_armv7_unknown_linux_gnueabihf = Some("-std=gnu99 -I/builddir/build/BUILD/firefox-87.0/objdir/dist/system_wrappers -include /builddir/build/BUILD/firefox-87.0/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-

Comment 1 Peter Robinson 2021-03-24 14:41:45 UTC
Is this with LTO enabled?

Comment 2 Dan Horák 2021-03-24 14:53:46 UTC
I suspect it's the same issue we see in our CI on all other platforms as well. After an update to the swgl component by FF upstream it requires an excessive amount of memory (and time too) for the rust -> g++ -> gas process tree (on ppc64le cc1plus tops at 8GB, gas needs additional 5GB).

Comment 3 Martin Stransky 2021-03-24 14:57:44 UTC
(In reply to Peter Robinson from comment #1)
> Is this with LTO enabled?

We build with PGO+LTO on Intel only.

Comment 4 Dan Horák 2021-04-02 07:52:52 UTC
I don't have a proof, but it looks to me that the excessive amount of memory isn't required for builds of trunk any more.