* Next Chromium release will require unreleased LLVM @ 2023-05-11 9:27 Alyssa Ross 2023-05-11 10:16 ` Neal Gompa 0 siblings, 1 reply; 6+ messages in thread From: Alyssa Ross @ 2023-05-11 9:27 UTC (permalink / raw) To: distributions; +Cc: primeos, Ryan Lahfa, Lorenz Brun [-- Attachment #1: Type: text/plain, Size: 527 bytes --] The Chromium 114 beta uses features from LLVM 17, but will release before LLVM 17 does. Currently, it looks like it wouldn't be too hard to patch to make it compatible with LLVM 16, but in general, we don't have any guarantee that Chromium will build with a released LLVM. So, how do you intend to handle this situation in your distribution? It seems like it will be a problem we'll all share, especially if it gets worse in future. Nixpkgs discussion: https://github.com/NixOS/nixpkgs/issues/213862#issuecomment-1542887001 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Next Chromium release will require unreleased LLVM 2023-05-11 9:27 Next Chromium release will require unreleased LLVM Alyssa Ross @ 2023-05-11 10:16 ` Neal Gompa 2023-05-11 11:35 ` Ryan Lahfa 0 siblings, 1 reply; 6+ messages in thread From: Neal Gompa @ 2023-05-11 10:16 UTC (permalink / raw) To: Alyssa Ross Cc: distributions, primeos, Ryan Lahfa, Lorenz Brun, Tom Callaway, Than Ngo On Thu, May 11, 2023 at 5:27 AM Alyssa Ross <hi@alyssa.is> wrote: > > The Chromium 114 beta uses features from LLVM 17, but will release > before LLVM 17 does. Currently, it looks like it wouldn't be too hard > to patch to make it compatible with LLVM 16, but in general, we don't > have any guarantee that Chromium will build with a released LLVM. > > So, how do you intend to handle this situation in your distribution? > It seems like it will be a problem we'll all share, especially if it > gets worse in future. > > Nixpkgs discussion: > https://github.com/NixOS/nixpkgs/issues/213862#issuecomment-1542887001 I suspect we in Fedora will do the same thing and revert/modify things to work with LLVM/Clang 16. It is, however, not out of the question for us to ship multiple versions of LLVM+Clang in Fedora, so once LLVM 17 is shipped in Fedora, we will probably switch Chromium to that. We only recently switched building Chromium from GCC to Clang. Switching back might be an option too, depending on what the compatibility looks like. I'm personally not a fan of the Clang/LLVM toolchain after having worked on building distributions entirely using it before. But alas, I'm in the minority. :/ -- Neal Gompa (FAS: ngompa) ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Next Chromium release will require unreleased LLVM 2023-05-11 10:16 ` Neal Gompa @ 2023-05-11 11:35 ` Ryan Lahfa 2023-05-11 11:43 ` Alyssa Ross 0 siblings, 1 reply; 6+ messages in thread From: Ryan Lahfa @ 2023-05-11 11:35 UTC (permalink / raw) To: Neal Gompa Cc: Alyssa Ross, distributions, primeos, Lorenz Brun, Tom Callaway, Than Ngo On Thu, May 11, 2023 at 06:16:03AM -0400, Neal Gompa wrote: > On Thu, May 11, 2023 at 5:27 AM Alyssa Ross <hi@alyssa.is> wrote: > > > > The Chromium 114 beta uses features from LLVM 17, but will release > > before LLVM 17 does. Currently, it looks like it wouldn't be too hard > > to patch to make it compatible with LLVM 16, but in general, we don't > > have any guarantee that Chromium will build with a released LLVM. > > > > So, how do you intend to handle this situation in your distribution? > > It seems like it will be a problem we'll all share, especially if it > > gets worse in future. > > > > Nixpkgs discussion: > > https://github.com/NixOS/nixpkgs/issues/213862#issuecomment-1542887001 > > I suspect we in Fedora will do the same thing and revert/modify things > to work with LLVM/Clang 16. It is, however, not out of the question > for us to ship multiple versions of LLVM+Clang in Fedora, so once LLVM > 17 is shipped in Fedora, we will probably switch Chromium to that. We already do the same in nixpkgs (from LLV5 to LLVM16 at the moment, but hopefully, we start dropping the oldest ones). > We only recently switched building Chromium from GCC to Clang. > Switching back might be an option too, depending on what the > compatibility looks like. I thought that Chromium was tightly coupled to Clang for compilation. > I'm personally not a fan of the Clang/LLVM toolchain after having > worked on building distributions entirely using it before. But alas, > I'm in the minority. :/ Curious about your pain points, but, probably off-topic. :) Kind regards, -- Ryan Lahfa ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Next Chromium release will require unreleased LLVM 2023-05-11 11:35 ` Ryan Lahfa @ 2023-05-11 11:43 ` Alyssa Ross 2023-05-12 7:20 ` alice 0 siblings, 1 reply; 6+ messages in thread From: Alyssa Ross @ 2023-05-11 11:43 UTC (permalink / raw) To: Ryan Lahfa Cc: Neal Gompa, distributions, primeos, Lorenz Brun, Tom Callaway, Than Ngo [-- Attachment #1: Type: text/plain, Size: 457 bytes --] On Thu, May 11, 2023 at 01:35:48PM +0200, Ryan Lahfa wrote: > On Thu, May 11, 2023 at 06:16:03AM -0400, Neal Gompa wrote: > > We only recently switched building Chromium from GCC to Clang. > > Switching back might be an option too, depending on what the > > compatibility looks like. > > I thought that Chromium was tightly coupled to Clang for compilation. Not quite: https://chromium.googlesource.com/chromium/src/+/main/docs/clang.md#Using-gcc-on-Linux [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Next Chromium release will require unreleased LLVM 2023-05-11 11:43 ` Alyssa Ross @ 2023-05-12 7:20 ` alice 2023-05-14 19:05 ` Ryan Lahfa 0 siblings, 1 reply; 6+ messages in thread From: alice @ 2023-05-12 7:20 UTC (permalink / raw) To: Alyssa Ross, Ryan Lahfa Cc: Neal Gompa, distributions, primeos, Lorenz Brun, Tom Callaway, Than Ngo On Thu May 11, 2023 at 1:43 PM CEST, Alyssa Ross wrote: > On Thu, May 11, 2023 at 01:35:48PM +0200, Ryan Lahfa wrote: > > On Thu, May 11, 2023 at 06:16:03AM -0400, Neal Gompa wrote: > > > We only recently switched building Chromium from GCC to Clang. > > > Switching back might be an option too, depending on what the > > > compatibility looks like. > > > > I thought that Chromium was tightly coupled to Clang for compilation. > > Not quite: > https://chromium.googlesource.com/chromium/src/+/main/docs/clang.md#Using-gcc-on-Linux the issues with building chromium with gcc are twofold: - skia (part of the chromium build dep tree) is significantly worse built with gcc than clang, see e.g. the skia docs https://skia.org/docs/user/build/ #supported-and-preferred-compilers. i'd also say that similarly, g++ is much worse as a c++ compiler for the chromium tree- it uses far more memory per TU, etc. (i'd say that for most c++ projects, but most things are not big enough that you're going to notice) - the gcc configuration generally requires even more patches to build compared to not using it. as noted, it's not tested, so pretty much every release there can be a small bug or two in the same fashion as this specific case requiring intervention. (and this is distinct from libstdc++ vs custom_libcxx, to be exact) overall, i think this is a little overblown. it's quite known that latest chromium needs whatever latest llvm toolchain to build- perhaps it's a bit new that in this instance the llvm toolchain is not even released yet, but i think that was inevitable given that chromium's llvm policy is that they bump to latest master every 2-4 weeks (see https://chromium.googlesource.com/chromium/src/+/main/docs/toolchain_support.md) so, it was a matter of time until an M release required unsupported flags in latest released llvm. but for distros this is nothing new. for instance when you happen to do a new llvm upgrade, you can generally unset chrome_pgo_phase=0 (the vendored pgo profile shipped with clang tarball requires latest llvm, so you don't need to set this if the stars align, but then you have to set it again when chrome's is too new), arch linux for instance have to patch their clang15 (https://github.com/archlinux/svntogit-packages/commit/410325df892f54322a6abb68569db639128a045d) to build it at all with older llvm, M113 rolled some libraries to latest(git) so the system ones don't work anymore (common occurence really, every other release has this happen), chromium doesn't (yet) support libstdc++13 without a bunch of patches (mostly cstdint includes), ... so, a patch like reverting the CL for llvm17-only ld.lld flags as linked here is nothing out of the ordinary (i think something identical even happened before, but i don't remember anymore). i'd imagine everyone would do exactly that, just like we all always have, a small trivial patch :) ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Next Chromium release will require unreleased LLVM 2023-05-12 7:20 ` alice @ 2023-05-14 19:05 ` Ryan Lahfa 0 siblings, 0 replies; 6+ messages in thread From: Ryan Lahfa @ 2023-05-14 19:05 UTC (permalink / raw) To: alice Cc: Alyssa Ross, Neal Gompa, distributions, primeos, Lorenz Brun, Tom Callaway, Than Ngo On Fri, May 12, 2023 at 09:20:05AM +0200, alice wrote: > On Thu May 11, 2023 at 1:43 PM CEST, Alyssa Ross wrote: > > On Thu, May 11, 2023 at 01:35:48PM +0200, Ryan Lahfa wrote: > > > On Thu, May 11, 2023 at 06:16:03AM -0400, Neal Gompa wrote: > > > > We only recently switched building Chromium from GCC to Clang. > > > > Switching back might be an option too, depending on what the > > > > compatibility looks like. > > > > > > I thought that Chromium was tightly coupled to Clang for compilation. > > > > Not quite: > > https://chromium.googlesource.com/chromium/src/+/main/docs/clang.md#Using-gcc-on-Linux > > overall, i think this is a little overblown. it's quite known that latest > chromium needs whatever latest llvm toolchain to build- perhaps it's a bit new > that in this instance the llvm toolchain is not even released yet, but i think > that was inevitable given that chromium's llvm policy is that they bump to > latest master every 2-4 weeks (see https://chromium.googlesource.com/chromium/src/+/main/docs/toolchain_support.md) > so, it was a matter of time until an M release required unsupported flags in > latest released llvm. > > but for distros this is nothing new. for instance when you happen to do a new > llvm upgrade, you can generally unset chrome_pgo_phase=0 (the vendored pgo > profile shipped with clang tarball requires latest llvm, so you don't need to > set this if the stars align, but then you have to set it again when chrome's is > too new), arch linux for instance have to patch their clang15 > (https://github.com/archlinux/svntogit-packages/commit/410325df892f54322a6abb68569db639128a045d) > to build it at all with older llvm, M113 rolled some libraries to latest(git) so > the system ones don't work anymore (common occurence really, every other release > has this happen), chromium doesn't (yet) support libstdc++13 without a bunch of > patches (mostly cstdint includes), ... > > so, a patch like reverting the CL for llvm17-only ld.lld flags as linked here is > nothing out of the ordinary (i think something identical even happened before, > but i don't remember anymore). i'd imagine everyone would do exactly that, just > like we all always have, a small trivial patch :) I was just wondering if there would be a day where it would be hard to revert the relevant patches from LLVM "git" for building Chromium, which would require a change in our strategy. Obviously, a trivial patch is not a big deal. Kind regards, -- Ryan Lahfa ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-05-14 19:05 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-05-11 9:27 Next Chromium release will require unreleased LLVM Alyssa Ross 2023-05-11 10:16 ` Neal Gompa 2023-05-11 11:35 ` Ryan Lahfa 2023-05-11 11:43 ` Alyssa Ross 2023-05-12 7:20 ` alice 2023-05-14 19:05 ` Ryan Lahfa
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.