Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 718346

Summary: www-client/firefox-68.7.0 - build fails at clang probing even with USE="-clang"
Product: Gentoo Linux Reporter: ernsteiswuerfel <erhard_f>
Component: Current packagesAssignee: Mozilla Gentoo Team <mozilla>
Status: RESOLVED INVALID    
Severity: normal CC: flippynelle, jstein
Priority: Normal    
Version: unspecified   
Hardware: x86   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: emerge --info
build.log

Description ernsteiswuerfel archtester 2020-04-19 14:57:58 UTC
Created attachment 633716 [details]
emerge --info

# emerge firefox

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] www-client/firefox-68.7.0::gentoo  USE="custom-cflags dbus gmp-autoupdate hwaccel pulseaudio screenshot startup-notification system-av1 system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-sqlite system-webp -bindist -clang -custom-optimization -debug -eme-free -geckodriver -hardened -jack -lto (-pgo) (-selinux) -test -wayland -wifi" CPU_FLAGS_X86="-avx2" L10N="de -ach -af -an -ar -ast -az -be -bg -bn -br -bs -ca -cak -cs -cy -da -dsb -el -en-CA -en-GB -eo -es-AR -es-CL -es-ES -es-MX -et -eu -fa -ff -fi -fr -fy -ga -gd -gl -gn -gu -he -hi -hr -hsb -hu -hy -ia -id -is -it -ja -ka -kab -kk -km -kn -ko -lij -lt -lv -mk -mr -ms -my -nb -nl -nn -oc -pa -pl -pt-BR -pt-PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv -ta -te -th -tr -uk -ur -uz -vi -xh -zh-CN -zh-TW" 0 KiB


[...]
 0:45.91 checking for rustc... /usr/bin/rustc
 0:45.93 checking for cargo... /usr/bin/cargo
 0:49.47 checking rustc version... 1.41.1
 0:49.78 checking cargo version... 1.41.0
 0:51.79 checking for rust target triplet... i686-unknown-linux-gnu
 0:52.24 checking for rust host triplet... i686-unknown-linux-gnu
 0:52.26 checking for rustdoc... /usr/bin/rustdoc
 0:52.42 checking for cbindgen... /usr/bin/cbindgen
 0:52.43 checking for rustfmt... not found
 0:52.50 checking for llvm-config... /usr/lib/llvm/9/bin/llvm-config
 0:56.83 checking that libclang is new enough... yes
 0:57.31 DEBUG: Executing: `/usr/lib/llvm/9/bin/clang -E /var/tmp/portage/www-client/firefox-68.7.0/temp/conftest.SSgCmT.cpp`
 0:57.31 DEBUG: The command returned non-zero exit status 127.
 0:57.32 DEBUG: Its error output was:
 0:57.32 DEBUG: | /usr/lib/llvm/9/bin/clang: symbol lookup error: /usr/lib/llvm/9/bin/clang: undefined symbol: _ZN4llvm24DisableABIBreakingChecksE
 0:57.33 ERROR: Command `/usr/lib/llvm/9/bin/clang -E /var/tmp/portage/www-client/firefox-68.7.0/temp/conftest.SSgCmT.cpp` failed with exit status 127.
 0:57.49 *** Fix above errors and then restart with\
 0:57.50                "./mach build"
 0:57.50 gmake: *** [client.mk:115: configure] Error 1
 * ERROR: www-client/firefox-68.7.0::gentoo failed (configure phase):
 *   (no error message)
Comment 1 ernsteiswuerfel archtester 2020-04-19 14:59:11 UTC
Created attachment 633718 [details]
build.log
Comment 2 Thomas Deutschmann (RETIRED) gentoo-dev 2020-04-19 17:57:47 UTC
I am not sure how you hit this. I can only assume that you misinterpreted the existence of USE=clang and thought you could hack around PM and try without clang at all. But that doesn't work. Firefox always require clang for bindgen and the ebuild is enforcing that, see: https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/firefox/firefox-68.7.0.ebuild?id=00b314f5b85150726978be1bde94e13e5cdb0c85#n132

With USE=-clang you are just not building firefox itself using clang.
Comment 3 Jory A. Pratt gentoo-dev 2020-04-20 02:36:49 UTC
(In reply to ernsteiswuerfel from comment #0)
> Created attachment 633716 [details]
> emerge --info
> 
> # emerge firefox
> 
> These are the packages that would be merged, in order:
> 
> Calculating dependencies... done!
> [ebuild  N     ] www-client/firefox-68.7.0::gentoo  USE="custom-cflags dbus
> gmp-autoupdate hwaccel pulseaudio screenshot startup-notification system-av1
> system-harfbuzz system-icu system-jpeg system-libevent system-libvpx
> system-sqlite system-webp -bindist -clang -custom-optimization -debug
> -eme-free -geckodriver -hardened -jack -lto (-pgo) (-selinux) -test -wayland
> -wifi" CPU_FLAGS_X86="-avx2" L10N="de -ach -af -an -ar -ast -az -be -bg -bn
> -br -bs -ca -cak -cs -cy -da -dsb -el -en-CA -en-GB -eo -es-AR -es-CL -es-ES
> -es-MX -et -eu -fa -ff -fi -fr -fy -ga -gd -gl -gn -gu -he -hi -hr -hsb -hu
> -hy -ia -id -is -it -ja -ka -kab -kk -km -kn -ko -lij -lt -lv -mk -mr -ms
> -my -nb -nl -nn -oc -pa -pl -pt-BR -pt-PT -rm -ro -ru -si -sk -sl -son -sq
> -sr -sv -ta -te -th -tr -uk -ur -uz -vi -xh -zh-CN -zh-TW" 0 KiB
> 
> 
> [...]
>  0:45.91 checking for rustc... /usr/bin/rustc
>  0:45.93 checking for cargo... /usr/bin/cargo
>  0:49.47 checking rustc version... 1.41.1
>  0:49.78 checking cargo version... 1.41.0
>  0:51.79 checking for rust target triplet... i686-unknown-linux-gnu
>  0:52.24 checking for rust host triplet... i686-unknown-linux-gnu
>  0:52.26 checking for rustdoc... /usr/bin/rustdoc
>  0:52.42 checking for cbindgen... /usr/bin/cbindgen
>  0:52.43 checking for rustfmt... not found
>  0:52.50 checking for llvm-config... /usr/lib/llvm/9/bin/llvm-config
>  0:56.83 checking that libclang is new enough... yes
>  0:57.31 DEBUG: Executing: `/usr/lib/llvm/9/bin/clang -E
> /var/tmp/portage/www-client/firefox-68.7.0/temp/conftest.SSgCmT.cpp`
>  0:57.31 DEBUG: The command returned non-zero exit status 127.
>  0:57.32 DEBUG: Its error output was:
>  0:57.32 DEBUG: | /usr/lib/llvm/9/bin/clang: symbol lookup error:
> /usr/lib/llvm/9/bin/clang: undefined symbol:
> _ZN4llvm24DisableABIBreakingChecksE
>  0:57.33 ERROR: Command `/usr/lib/llvm/9/bin/clang -E
> /var/tmp/portage/www-client/firefox-68.7.0/temp/conftest.SSgCmT.cpp` failed
> with exit status 127.
>  0:57.49 *** Fix above errors and then restart with\
>  0:57.50                "./mach build"
>  0:57.50 gmake: *** [client.mk:115: configure] Error 1
>  * ERROR: www-client/firefox-68.7.0::gentoo failed (configure phase):
>  *   (no error message)

simple re-emerge llvm and clang to resolve the symbols and afterwards your firefox build will be successful.
Comment 4 ernsteiswuerfel archtester 2020-04-21 12:34:35 UTC
In the end the problem was a mismatch of USE='debug' in llvm and clang.

Meanwhile I built llvm with USE='debug' and forgot about that. clang remained installed with USE='-debug'. This led to the configure error firefox complained about (and led me to a wrong conclusion which Thomas correctly assumed ;) ).

After clang was rebuilt with USE='debug' and matched llvm's config again the firefox build also completed successfully.

Sorry for the noise guys!