LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   FF-89.0 build question (https://www.linuxquestions.org/questions/slackware-14/ff-89-0-build-question-4175695863/)

3rensho 06-01-2021 05:46 AM

FF-89.0 build question
 
Running Slack64-current with all updates as of 1.6.21 (my time). Running the version 89.0 that Pat supplies and it works great. Wanted to build with pgo enabled so tried it after making the minor change (PGO=${PGO:-yes}) to the slackbuild. Build failed. Then ftp'd the build directory from my mirror and tried to build the completely stock version. Failed as well. From the build log using Eric's checkpkg.sh I see:

Code:

sh checkpkg.sh -l build.log
++ Checking logfile 'build.log' (no news is good news):
  188627:      firefox-89.0/dom/base/test/FAIL.html
  193412:      firefox-89.0/dom/html/test/forms/FAIL.html
  333367:        0:02.64 Error processing command. Ignoring because optional. (optional:packages.txt:comm/build/virtualenv_packages.txt)
  333400:        0:04.64 checking for ccache... not found
  333569:        0:13.35 checking for dump_syms... not found
  335441:      30:39.85 /tmp/firefox-89.0/third_party/libwebrtc/webrtc/common_video/h264/sps_parser.cc:22:9: warning: 'RETURN_EMPTY_ON_FAIL' macro redefined [-Wmacro-redefined]
  335442:      30:39.85 #define RETURN_EMPTY_ON_FAIL(x) \
  335445:      30:39.86 #define RETURN_EMPTY_ON_FAIL(x) \
  339998:      38:31.70 gmake[3]: *** [backend.mk:733: devtools/client/debugger/src/actions/.deps/node.stub.stub] Error 252
  339999:      38:31.70 gmake[3]: *** Waiting for unfinished jobs....
  340002:      38:31.76 gmake[3]: *** [backend.mk:743: devtools/client/debugger/src/actions/ast/.deps/node.stub.stub] Error 252
  340004:      38:31.78 gmake[3]: *** [backend.mk:710: devtools/client/debugger/src/.deps/node.stub.stub] Error 252
  340007:      38:31.87 gmake[3]: *** [backend.mk:756: devtools/client/debugger/src/actions/breakpoints/.deps/node.stub.stub] Error 252
  340008:      38:31.87 gmake[2]: *** [/tmp/firefox-89.0/config/recurse.mk:34: misc] Error 2
  340009:      38:31.87 gmake[1]: *** [/tmp/firefox-89.0/config/rules.mk:355: default] Error 2
  340010:      38:31.87 gmake: *** [client.mk:65: build] Error 2
  340013:        Config object not found by mach.
|install mawk).  For LFS: we put mktemp in /usr/bin not /bin, remove

From the last bits of the build log I see:

Code:

38:31.44 ./node.stub.stub
38:31.45 ./node.stub.stub
38:31.45 ./node.stub.stub
38:31.49 ./node.stub.stub
38:31.62 Executing "/tmp/mozilla-firefox-build-deps/usr/bin/node /tmp/firefox-89.0/devtools/client/shared/build/build.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/event-listeners.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/exceptions.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/expressions.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/file-search.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/index.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/navigation.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/preview.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/project-text-search.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/quick-open.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/source-actors.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/source-tree.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/tabs.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/toolbox.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/threads.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/ui.js /tmp/firefox-89.0/obj/dist/bin/browser/chrome/devtools/modules/devtools/client/debugger/src/actions"
38:31.66 ./node.stub.stub
38:31.68 b'\n\n#\n# Fatal error in , line 0\n# Check failed: !IsClassConstructor(function->shared()->kind()) implies *function_map == function->map().\n#\n#\n#\n#FailureMessage Object: 0x7ffd1e63b870'
38:31.69 Executing "/tmp/mozilla-firefox-build-deps/usr/bin/node /tmp/firefox-89.0/devtools/client/shared/build/build.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/ast/index.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/ast/setInScopeLines.js /tmp/firefox-89.0/obj/dist/bin/browser/chrome/devtools/modules/devtools/client/debugger/src/actions/ast"
38:31.70 gmake[3]: *** [backend.mk:733: devtools/client/debugger/src/actions/.deps/node.stub.stub] Error 252
38:31.70 gmake[3]: *** Waiting for unfinished jobs....
38:31.74 b'\n\n#\n# Fatal error in , line 0\n# Check failed: !IsClassConstructor(function->shared()->kind()) implies *function_map == function->map().\n#\n#\n#\n#FailureMessage Object: 0x7ffe5443b3c0'
38:31.74 Executing "/tmp/mozilla-firefox-build-deps/usr/bin/node /tmp/firefox-89.0/devtools/client/shared/build/build.js /tmp/firefox-89.0/devtools/client/debugger/src/main.js /tmp/firefox-89.0/devtools/client/debugger/src/vendors.js /tmp/firefox-89.0/obj/dist/bin/browser/chrome/devtools/modules/devtools/client/debugger/src"
38:31.76 gmake[3]: *** [backend.mk:743: devtools/client/debugger/src/actions/ast/.deps/node.stub.stub] Error 252
38:31.76 b'\n\n#\n# Fatal error in , line 0\n# Check failed: !IsClassConstructor(function->shared()->kind()) implies *function_map == function->map().\n#\n#\n#\n#FailureMessage Object: 0x7fff44af9a70'
38:31.78 gmake[3]: *** [backend.mk:710: devtools/client/debugger/src/.deps/node.stub.stub] Error 252
38:31.82 Executing "/tmp/mozilla-firefox-build-deps/usr/bin/node /tmp/firefox-89.0/devtools/client/shared/build/build.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/breakpoints/breakpointPositions.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/breakpoints/index.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/breakpoints/modify.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/breakpoints/remapLocations.js /tmp/firefox-89.0/devtools/client/debugger/src/actions/breakpoints/syncBreakpoint.js /tmp/firefox-89.0/obj/dist/bin/browser/chrome/devtools/modules/devtools/client/debugger/src/actions/breakpoints"
38:31.85 b'\n\n#\n# Fatal error in , line 0\n# Check failed: !IsClassConstructor(function->shared()->kind()) implies *function_map == function->map().\n#\n#\n#\n#FailureMessage Object: 0x7ffc0cc83920'
38:31.87 gmake[3]: *** [backend.mk:756: devtools/client/debugger/src/actions/breakpoints/.deps/node.stub.stub] Error 252
38:31.87 gmake[2]: *** [/tmp/firefox-89.0/config/recurse.mk:34: misc] Error 2
38:31.87 gmake[1]: *** [/tmp/firefox-89.0/config/rules.mk:355: default] Error 2
38:31.87 gmake: *** [client.mk:65: build] Error 2
38:31.89 124 compiler warnings present.
38:31.96 /usr/bin/notify-send --app-name=Mozilla Build System Mozilla Build System Build failed
 Config object not found by mach.
Configure complete!
Be sure to run |mach build| to pick up any changes

From these error messages can anyone fathom how my -current system differs from a plain -current?? Thanks in advance

TheRealGrogan 06-01-2021 03:08 PM

That is a somewhat old node.js in the firefox-build-deps directory. Try dropping in a newer one (e.g. 14.17.0 LTS... I'd stick with the latest LTS for that) or just unpack a binary and set a variable for it. I don't know if it's that, just that node.js is involved in the operations that are failing for you.

NODEJS=/path/to/unpackedtarball/bin/node

I also do this:

--disable-tests

There was a time in the past when the PGO was scripted in the tests but that's no longer the case. The tests are not needed for PGO or normal builds.

I have to say that I don't use a SlackBuild for this though. I use this in my .mozconfig and start it with ./mach build

You could try such a build and see if it works for you. To install such a build (to --prefix) after successful completion, cd into obj-x86_64-pc-linux-gnu and simply "make install"

This will use clang by default. I wouldn't try a PGO+LTO build with gcc anymore, I'd bet a million bucks on it failing.

Code:

. $topsrcdir/browser/config/mozconfig
 export CFLAGS="-mtune=nehalem"
 export CXXFLAGS="-mtune=nehalem"
 # needs to be exported on shell before running mach
 export MACH_USE_SYSTEM_PYTHON=1
mk_add_options MOZ_MAKE_FLAGS=-j6
ac_add_options MOZ_PGO=1
ac_add_options --enable-lto
ac_add_options --prefix=/opt/firefox
ac_add_options --enable-official-branding
ac_add_options --enable-release
ac_add_options --disable-tests
ac_add_options --enable-optimize
ac_add_options --enable-rust-simd
ac_add_options --enable-alsa
ac_add_options --enable-pulseaudio
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --enable-linker=lld
ac_add_options AR=/usr/bin/llvm-ar
ac_add_options NM=/usr/bin/llvm-nm
ac_add_options RANLIB=/usr/bin/llvm-ranlib
ac_add_options NODEJS=/storage2/shit/build/node/bin/node

There's a note in there for myself to remember to "export MACH_USE_SYSTEM_PYTHON=1" before I start. It's chicken before egg to put it in the .mozconfig (because mach doesn't get to run).

It should not be necessary to --disable-elfhack with lld at this time, but it's such a gotcha that many distro packagers just use it all the time so their builds won't fail. The elf hack reduces relocations... significant for their fat assed libxul

P.S. Needs autoconf 2.13 and cbindgen as well as node. The SlackBuild provides those for the build in firefox-build-deps

TheRealGrogan 06-01-2021 04:26 PM

I tried the mozilla-firefox.SlackBuild just for fun, and it bombed out on node.js. It compiled it, but the build didn't find it.

ERROR: could not find Node.js executable later than 10.23.1; ensure `node` or `nodejs` is in PATH or set NODEJS in environment to point to an executable.

That's bollocks. /tmp is hard coded for those, the subscripts are not honouring my TMP variable. I'll try again.

At least the node.js version there should be fine, according to mach.

P.S. Out of the box, mozilla-firefox.SlackBuild failed for me with the same errors as you. Back to the drawing board...

3rensho 06-01-2021 10:35 PM

Thanks for your response and suggestions. Have another build try running after incorporating your suggestions. Will let you know how it turns out.

TheRealGrogan 06-01-2021 10:52 PM

I can confirm that my PGO+LTO build method for firefox-89.0.source.tar.xz (the same tarball) still works on current slackware64-current, with cbindgen 0.19.0, node.js v14.17.0 LTS (and autoconf 2.13 built with --prefix=/usr/local --program-suffix=-2.13 so they can coexist and the build will find it)

I'm now going to try to find out why the mozilla-firefox.SlackBuild isn't working for us. I'm first going to try it with my versions of node.js and friends.

3rensho 06-02-2021 12:00 AM

Success!!! Thank you TheRealGrogan. I implemented the nodejs upgrade, --disable-testing and export MACH_USE_SYSTEM_PYTHON=1. Not sure which one or which ones are responsible but the package built fine with pgo enabled.

Edit: Upgraded to cbindgen-0.19.0 now and FF builds and runs fine.

TheRealGrogan 06-02-2021 01:04 AM

It would be the node.js, as that worked for me too. I dropped in the new tarballs for node and cbindgen and let the SlackBuild build and use them, and my build completed successfully. I think the SlackBuild was already doing --disable-testing for a non-PGO (normal) build and does export that variable.

perrin4869 06-22-2021 10:56 AM

Yup, everything else constant, using node 14 from slackbuilds.org instead of the one in the firefox slackbuild worked like charm


All times are GMT -5. The time now is 10:41 PM.