• Re: [gentoo-user] Re: Firefox and clang

    From Wols Lists@21:1/5 to Michael on Mon Nov 4 08:30:01 2024
    On 01/11/2024 17:50, Michael wrote:
    Thanks! From what I read briefly, I understand clang is recommended upstream and therefore was set as a default flag. However, a rust Vs rust-bin version clash can occur and since FF patched their code to work with gcc, setting clang as the default compiler is no longer considered necessary - at least this is the present status.

    On my system, clang is explicitly disabled. This was thanks to Firefox
    and Thunderbird repeatedly failing to compile, which is apparently a
    problem with clang and older CPUs.

    Cheers,
    Wol

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Philip Webb@21:1/5 to All on Mon Nov 4 16:20:01 2024
    241104 Wols Lists wrote:
    On 01/11/2024 17:50, Michael wrote:
    ... I understand clang is recommended upstream
    and therefore was set as a default flag.
    However, a rust Vs rust-bin version clash can occur
    and since FF patched their code to work with gcc,
    setting clang as the default compiler is no longer considered necessary
    On my system, clang is explicitly disabled,
    thanks to Firefox and Thunderbird repeatedly failing to compile,
    which is apparently a problem with clang and older CPUs.

    I updated Firefox to 128.4.0 a few days ago & '-clang' was the default,
    so I left it alone & it took 32 min instead of the previous 26 min ;
    it's a fast machine.

    --
    ========================,,============================================
    SUPPORT ___________//___, Philip Webb
    ELECTRIC /] [] [] [] [] []| Cities Centre, University of Toronto
    TRANSIT `-O----------O---' purslowatcadotinterdotnet

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jack Ostroff@21:1/5 to Michael on Fri Nov 1 15:50:01 2024
    On 11/1/24 7:15 AM, Michael wrote:
    Any idea why clang was disabled in www-client/firefox-128.4.0:

    [ebuild U ] www-client/firefox-128.4.0:esr::gentoo [128.3.1:esr::gentoo] USE="X dbus gmp-autoupdate hwaccel jumbo-build openh264 system-av1 system- harfbuzz system-icu system-jpeg system-libevent system-libvpx system-webp telemetry wayland -clang* -debug -eme-free -gnome-shell -hardened -jack - libproxy -lto -pgo -pulseaudio (-selinux) -sndio -system-png -wifi" L10N="en- GB -ach -af -an -ar -ast -az -be -bg -bn -br -bs -ca -ca-valencia -cak -cs -cy
    -da -de -dsb -el -en-CA -eo -es-AR -es-CL -es-ES -es-MX -et -eu -fa -ff -fi - fr -fur -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 -ne -nl -nn -oc -pa -
    pl -pt-BR -pt-PT -rm -ro -ru -sc -sco -si -sk -skr -sl -son -sq -sr -sv -szl -
    ta -te -th -tl -tr -trs -uk -ur -uz -vi -xh -zh-CN -zh-TW" LLVM_SLOT="18 -17 (-19)" 546,124 KiB

    https://gitweb.gentoo.org/repo/gentoo.git/commit/? id=75c0bdfd0b02568466c14d81aa0027c873a76617
    Unless I miss something, I don't see evidence of that in the ebuilds. 
    It looks like IUSE has changed from +clang to just clang in the latest
    ebuilds in both slots.  Is it possible there is something else in your make.conf or packages.* which disables it? Actually, it might be that
    you need to explicitly add clang to packages.use, as not it is still
    allowed, but does not default to on.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael@21:1/5 to All on Fri Nov 1 16:41:25 2024
    On Friday 1 November 2024 14:43:17 GMT Jack Ostroff wrote:
    On 11/1/24 7:15 AM, Michael wrote:
    Any idea why clang was disabled in www-client/firefox-128.4.0:

    [ebuild U ] www-client/firefox-128.4.0:esr::gentoo [128.3.1:esr::gentoo] USE="X dbus gmp-autoupdate hwaccel jumbo-build openh264 system-av1 system- harfbuzz system-icu system-jpeg
    system-libevent system-libvpx system-webp telemetry wayland -clang*
    -debug -eme-free -gnome-shell -hardened -jack - libproxy -lto -pgo -pulseaudio (-selinux) -sndio -system-png -wifi" L10N="en- GB -ach -af
    -an -ar -ast -az -be -bg -bn -br -bs -ca -ca-valencia -cak -cs -cy -da
    -de -dsb -el -en-CA -eo -es-AR -es-CL -es-ES -es-MX -et -eu -fa -ff -fi - fr -fur -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 -ne -nl
    -nn -oc -pa - pl -pt-BR -pt-PT -rm -ro -ru -sc -sco -si -sk -skr -sl -son -sq -sr -sv -szl - ta -te -th -tl -tr -trs -uk -ur -uz -vi -xh -zh-CN -zh-TW" LLVM_SLOT="18 -17 (-19)" 546,124 KiB

    https://gitweb.gentoo.org/repo/gentoo.git/commit/? id=75c0bdfd0b02568466c14d81aa0027c873a76617

    Unless I miss something, I don't see evidence of that in the ebuilds.
    It looks like IUSE has changed from +clang to just clang in the latest ebuilds in both slots. Is it possible there is something else in your make.conf or packages.* which disables it? Actually, it might be that
    you need to explicitly add clang to packages.use, as not it is still
    allowed, but does not default to on.

    I've checked and I have no bespoke directives for USE="clang". Emerge will
    use whatever is the default setting for this flag.

    Without USE="clang" the emerge takes 12-18% longer, but I am not sure what is the recommended compiler for FF or why it was changed.

    PS. Also I do not understand the meaning of these notations:

    IUSE="foo"
    IUSE="+foo"
    IUSE+="foo"

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCAAdFiEEXqhvaVh2ERicA8Ceseqq9sKVZxkFAmclBLUACgkQseqq9sKV ZxmFqhAA0LafPYN7GXaTnRgBpvp0PbR91xR2WTmZdrhpHJTnLXgrVk9Dqvl8L+fo PBeT0TtJsPvUMvyahWU92CsI24zwK5YXs7anc4w6sM9gxChrFQfclrSkWr/IwDoi DHmPSvGqesqNbMjkPiISSn1Who99s8btZUtiIhnOCn+E/s6J/Jybz3CJg1EaqOdc JXtg7InpbZNy2YVK55MlBEjgmKY2XXuQ+2oHwkhCHxPTTHyLD/EalDcU8nr7Zncl GdV0Eolh7n042AlkB/irve1zli7xAqTtnZ/6j8ZL0F9ft2ggd65iXPRv9vTU5OCu 7s578FPDreRxqwe5epSISmoFt8HxlG35CpLyrpSa2hz3Lruoa7J7CfOs9to7zMUZ TKbCNtfyeWnw/n1f/bqlVPIiAW/5FUNi6Tdt/0cD+FISYqZsjfAEYLklMsiA67Q0 FY/mGeDiAGYH1bPsqGL9gehIq/NO2LHQTZuYtLSWct1fWMJacZdSPHC8nP3rC/B4 FJBTN2BTR6tbjikUjEVw/WufhWY+Cauul89vbwul/z6d2fB3xcGpPs+WbMfL8s/e 2ApiDMGq5LzPEKkyeXdM2ssovN34N/pxSzAD3kinam3vAiVt7pX6UnMvv7YZgyd9 TGbzD3+4Veclhxcq6K/1dwZ0KI/zD8GaoU7Sk9ER/jbQSrO0aGU=
    =wy63
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jack@21:1/5 to Michael on Fri Nov 1 19:10:02 2024
    On 2024.11.01 12:41, Michael wrote:
    On Friday 1 November 2024 14:43:17 GMT Jack Ostroff wrote:
    On 11/1/24 7:15 AM, Michael wrote:
    Any idea why clang was disabled in www-client/firefox-128.4.0:

    [ebuild U ] www-client/firefox-128.4.0:esr::gentoo [128.3.1:esr::gentoo] USE="X dbus gmp-autoupdate hwaccel
    jumbo-build
    openh264 system-av1 system- harfbuzz system-icu system-jpeg system-libevent system-libvpx system-webp telemetry wayland
    -clang*
    -debug -eme-free -gnome-shell -hardened -jack - libproxy -lto -pgo -pulseaudio (-selinux) -sndio -system-png -wifi" L10N="en- GB
    -ach -af
    -an -ar -ast -az -be -bg -bn -br -bs -ca -ca-valencia -cak -cs
    -cy -da
    -de -dsb -el -en-CA -eo -es-AR -es-CL -es-ES -es-MX -et -eu -fa
    -ff -fi -
    fr -fur -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
    -ne -nl
    -nn -oc -pa - pl -pt-BR -pt-PT -rm -ro -ru -sc -sco -si -sk -skr
    -sl -son
    -sq -sr -sv -szl - ta -te -th -tl -tr -trs -uk -ur -uz -vi -xh
    -zh-CN
    -zh-TW" LLVM_SLOT="18 -17 (-19)" 546,124 KiB

    https://gitweb.gentoo.org/repo/gentoo.git/commit/? id=75c0bdfd0b02568466c14d81aa0027c873a76617

    Unless I miss something, I don't see evidence of that in the
    ebuilds.
    It looks like IUSE has changed from +clang to just clang in the
    latest
    ebuilds in both slots. Is it possible there is something else in
    your
    make.conf or packages.* which disables it? Actually, it might be
    that
    you need to explicitly add clang to packages.use, as not it is still allowed, but does not default to on.

    I've checked and I have no bespoke directives for USE="clang".
    Emerge will
    use whatever is the default setting for this flag.
    Right, and since clang is not set by default in make.conf or your
    profile, it is not set for firefox, although the IUSE=+clang set it as
    the default in the prvious ebuild.

    Without USE="clang" the emerge takes 12-18% longer, but I am not sure
    what is
    the recommended compiler for FF or why it was changed.
    My inadequate understanding (from the wiki) is that clang works better
    with firefox's use of rust, compiling faster and giving better
    performance due to optimizations which don't happen with gcc. Without
    having read the git logs for the ebuild, I would assume the change is
    because the relative build and runtime performance using gcc vs. clang
    has changed.

    PS. Also I do not understand the meaning of these notations:

    IUSE="foo"
    This just says that the package responds to the use flag "foo"
    IUSE="+foo"
    This also says that the default value of "foo" for this package is on,
    unless explicitly unset in make.conf or package.use.
    IUSE+="foo"
    The "+=" (similar to use with ENV variables) appends the right hand
    string to the current value, allowing the full set of IUSE flags to be
    set over more than one line, where without the "+" a second "IUSE=xxx"
    line in an ebuild would just completely override a previous line.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael@21:1/5 to All on Fri Nov 1 17:50:08 2024
    On Friday 1 November 2024 17:00:20 GMT Marco Rebhan wrote:
    On Friday, 1 November 2024 17:41:25 CET Michael wrote:
    Without USE="clang" the emerge takes 12-18% longer, but I am not sure what is the recommended compiler for FF or why it was changed.

    Hi Michael,

    https://bugs.gentoo.org/941878 seems to be the relevant bug with discussion on why it was changed.

    Thanks! From what I read briefly, I understand clang is recommended upstream and therefore was set as a default flag. However, a rust Vs rust-bin version clash can occur and since FF patched their code to work with gcc, setting
    clang as the default compiler is no longer considered necessary - at least
    this is the present status.

    I don't know what the runtime performance impact may be of the current clang
    Vs gcc[1], but compilation times were longer on my systems, loosely comparing FF versions 128.3.1 to 128.4.0.

    [1] https://stackoverflow.com/questions/3187414/clang-vs-gcc-which-produces-faster-binaries


    PS. Also I do not understand the meaning of these notations:

    IUSE="foo"

    Everything outside the quotes is normal bash syntax, the variable contents are interpreted by Portage.

    This sets the ebuild to have USE flags "foo". (If IUSE was set before this line, it will clear out all the USE flags that were defined before.)

    IUSE="+foo"

    This sets the ebuild to have USE flags "foo", the preceding "+" on the USE flag means it is enabled by default.

    IUSE+="foo"

    This appends to the previous IUSE value. Equivalent to IUSE="${IUSE}foo" (note the missing space, hence why the Firefox ebuild uses IUSE+=" foo" instead).

    Cheers,
    Marco

    Thanks for this clear and succinct explanation! :-)

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCAAdFiEEXqhvaVh2ERicA8Ceseqq9sKVZxkFAmclFNAACgkQseqq9sKV ZxleNxAAgWi1dpOvOUrYFMjhI8YFW008SwtzAe+8Gu63VavFeKQMN6K9IOzs1liW BNWlRUUV8cKombcqXY4hhugW7MZqB2DrT3ahXZ4NGk4b3zEwrqrpabNttizrMrSD 7+Yx/z+WhT/4xuD6D3xzF+efhQUBILMr7U03CBFhczN+WAJTs5bVQuswQJ7pBtVe /E1WWbNPwilNpvBx31L0Xx/YlqSbSTZ8KC8rIM+DeORelbR6fhip+yanMdliiAxr VoOlZzApinZM2oLh5LMhTX1XXC9dV0e1eL+d3EAaP225eU8TPDFXW/TFabxqb5OA YX97/kg4VE6BfqZCX+wbiWO7AVkXRK2HEpGn21izACp7ocH1l11XZChaJSeVFuzN jz2ms5YWMeqwibe4vaUnP0t3MncJMW8Ko9yTsrU8vy5mpJInGUqLgikWlIgLflbd wqKyNfJgVtRIuSMIaRr/6has0wuR1H5O3bXtHdhbLmgkgIVJq762Q898BdfuamUT HgFaIW58+cv0/9aepXbBHMLxMRYsAXeLZlfBdgJ+wvz/qiYnpgBngOionDlq643Q DsTjeoGtjgGuvGdV6wuGUh7Kis6htEE8iCNT7/h9kiiwZzp5pACM+5CnIMiTDykc rGeedF53qTkeH4nu1At4C8IL9LeG84CYEbjXr/IlHaLdvSjGRR8=
    =EGQV
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)