On 01/05/18 19:56, Luc Van Oostenryck wrote: > On Tue, May 01, 2018 at 07:06:27PM +0100, Ramsay Jones wrote: >> On 01/05/18 15:18, Luc Van Oostenryck wrote: [snip] >> I was interested in these patches because of the introduction of >> the '_Float<n>' types in the last patch. While doing some testing >> of git, using various compiler(s) version(s) on various platform(s), >> I had noticed that sparse was practically useless on fedora-27. >> This was, in part, because the much newer version of gcc enabled >> the use of the _Float128 type which was causing sparse to choke: > > Interesting. > I saw some weeks ago on the git ML that you said that sparse was > useless for you on Fedora but without details. It made me curious > enough to install Fedora on a VM but I didn't saw anything wrong > while running sparse's testsuite and doing a kernel compile and > then I forgot about it. I should have done a selfcheck too ... ;-) I'm sure you already know this, but it just occurred to me that I wasn't very clear about how sparse 'choked' - I should have made it clear (for other people watching), that sparse errors out, like so: $ grep error sp-out1 | wc -l 2142 $ head sp-out1 SP abspath.c /usr/include/stdlib.h:133:8: warning: '_Float128' has implicit type /usr/include/stdlib.h:133:18: error: Expected ; at end of declaration /usr/include/stdlib.h:133:18: error: got strtof128 /usr/include/stdlib.h:190:35: error: Expected ) in function declarator /usr/include/stdlib.h:190:35: error: got __f /usr/include/stdlib.h:236:18: error: Expected ; at end of declaration /usr/include/stdlib.h:236:18: error: got strtof128_l SP advice.c /usr/include/stdlib.h:133:8: warning: '_Float128' has implicit type $ which is why, ... >> $ grep warning sp-out1 | sort | uniq -c >> 357 /usr/include/stdlib.h:133:8: warning: '_Float128' has implicit type >> 7 /usr/include/sys/sysmacros.h:79:1: warning: constant 0xfffff00000000000u is so big it is unsigned long >> 7 /usr/include/sys/sysmacros.h:80:1: warning: constant 0x00000ffffff00000u is so big it is unsigned long > [snip] >> Having applied these patches, we see a nice improvement: >> $ grep warning sp-out | sort | uniq -c >> 364 /usr/include/sys/sysmacros.h:79:1: warning: constant 0xfffff00000000000u is so big it is unsigned long >> 364 /usr/include/sys/sysmacros.h:80:1: warning: constant 0x00000ffffff00000u is so big it is unsigned long > ... having _more_ warnings (but _no_ errors) can be an improvement! > Yes, same here. Those are legit sparse warnings. indeed. (I saw this somewhere else recently ...). >> I had started to look into adding _Float128 to sparse, so now I >> don't need to! :-D Thanks! > > Hehe :) > Note that the support for those are very minimal. They are now > known to sparse and have the correct size & alignment, nothing more. > How they interact/are compatible with other types, I don't know. Yep, I was starting to look at what was necessary to get the front-end to support the semantics of the new types - type compatibility, conversion, etc. I had already decided that I would punt on the back-end work! ;-) Hmm, I might get back to that at a later date, but no promises! ATB, Ramsay Jones -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html