-
gitomat
[illumos-gate] 16935 Use gcc 14 as shadow compiler -- Robert Mustacchi <rm⊙fo>
-
rmustacc
Hi all, with this, the expected gcc shadow is going to be gcc14 per prior mail on this. Please reach out with any questions.
-
tsoome_
nice, thanks!
-
sommerfeld
Thanks to all (especially tsoome) for grinding through all the necessary changes to make this possible!
-
richlowe
awesome, thanks toomas and everyone
-
jclulow
yes, thank you!
-
yuripv
cool
-
danmcd_
Thanks tsoome_ and everyone!
-
yuripv
fwiw, just tried gcc14 as primary, it built and even booted :D
-
tsoome_
ofc it does boot:P
-
tsoome_
I have been running 14 built system as the last cleanups were done;)
-
jclulow
I think it's pretty rare that it won't boot if it works as a shadow, FWIW
-
jclulow
The sadness tends to be more around new miscompilation or weird new anti-debugging features :P
-
tsoome_
in which case it is fortunate I and yuripv used it as primary;)
-
jclulow
Yes, thank you!
-
jclulow
Have you noticed any performance differences?
-
kebe
Double-check your outside-gate software... gcc14 breaks more than a few older-software's `configure` feature checks.
-
tsoome_
not obviously noticeable ones, but I really havent done serious performance related tests.
-
tsoome_
right now the effort has been to make those builds possible and so people can start to work on testing and improving....
-
jclulow
tsoome_: Yes, definitely makes sense!
-
yuripv
tsoome_: i just remember the switch to gcc10 in our fork, where some code would build by gcc10 shadow, but fail to link or load (kernel modules) when built by gcc10 primary
-
tsoome_
yep, I think we had something with 14 too
-
jclulow
I guess 10 did that COMDAT change
-
jclulow
maybe?
-
yuripv
i think it was the multiply-defined symbols, among other issues
-
tsoome_
16867 gcc 14 needs to use -gstrict-dwarf afterall -- this was one
-
jclulow
yuripv: Yeah I think that was the COMDAT thing where they stopped deduping stuff
-
yuripv
jclulow: ah okay, wasn't sure if it's the same issue
-
jclulow
I remember it being obscure haha
-
jclulow
but honestly who can even remember breakfast
-
tsoome_
but otherwise yes, we do depend on compiler and not all what we do get is pure gold:)
-
tsoome_
but then again, there is also unbelievable amount of bad code around too.
-
richlowe
tsoome_: have you seen gcc 14 be more agressive about dead code elimination?
-
tsoome_
I'm not sure about that. hm, I guess some wsdiffs on proto trees would be in order:D
-
tsoome_
but otherwise.. I still have about 90 commits in my smatch cleanup branch and still have to find why my zfs patch branch does get one multilist empty while it should not be... ;)
-
richlowe
wsdiff of a compiler change is usually unreadable
-
richlowe
but I noticed that some code of mine got more thoroughily eliminated, and made me fix (now) unused libs
-
tsoome_
yea, would need "approximate" diff for wsdiff...
-
tsoome_
where is that AI when one needs it...
-
nomad
It's off in the back woods, hallucinating.
-
tsoome_
probably checking function sizes may give some hints.
-
richlowe
in this case, I could check for entire symbols disappearing for the thing that actually tripped me
-
richlowe
but I'm not sure there's an easy automatic way to find things that don't remove whole symbols, beyond what you suggest :\
-
tsoome_
lost public symbols should be discovered via linker maps, but local ones...
-
richlowe
but as you said, there's lots of bad code
-
richlowe
I'm just wondering if I should get a head start on finding it :)