AW: "Modern C" and the X.Org software

Alan Coopersmith alan.coopersmith at oracle.com
Wed Dec 13 20:07:24 UTC 2023


I think this covers most issues, but I only did this testing of modules we
still do releases of and which build on Solaris.  If there's something else
you care about, or something with a ton of platform-specific code, it's good
to check it yourself to be sure.  Of course, between Gentoo & Fedora's efforts
there's also good coverage on Linux, for the modules still shipped in those
distros.   (We already know a bunch of the ancient drivers no longer build,
see https://lists.x.org/archives/xorg-devel/2022-January/058800.html for a
list.)

	-alan-

On 12/13/23 06:03, Walter Harms wrote:
> Hi Alan,
> just for my understanding.
> You compiled everything and only these few thinks showed up.
> Or is more like an iceberg only the tip is there and we should do something ?
> 
> CU
> ________________________________________
> Von: xorg-devel <xorg-devel-bounces at lists.x.org> im Auftrag von Alan Coopersmith <alan.coopersmith at oracle.com>
> Gesendet: Montag, 11. Dezember 2023 23:29
> An: X.Org Development
> Betreff: "Modern C" and the X.Org software
> 
> As folks may have seen from https://lwn.net/Articles/954018/ or elsewhere,
> there's efforts underway to make more warnings into errors in gcc & clang,
> and as part of those, people are compiling their distros/packages with
> flags to turn warnings like this into errors:
> 
>     -Wimplicit-function-declaration
>     -Wimplicit-int
>     -Wint-conversion
>     -Wreturn-mismatch (new, previously part of -Wreturn-types)
>     -Wdeclaration-missing-parameter-type (new, previously unnamed)
>     -Wincompatible-pointer-types
> 
> Fortunately, we've had some of these in our default compiler flags from
> xorg-macros for over a decade, as long as the compiler seems to support
> them - both -Werror=implicit & -Werror=return-type.
> 
> Sam James from Gentoo filed bugs for 4 issues found in their testing
> over the past week.  I've added the flags and did my own test builds
> on Solaris 11.4 using the autoconf-2.72d beta that makes autoconf tests
> work with these flags, and found some more myself.  I've also looked
> through the Gentoo & Fedora lists at
> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/GKCRXZESHSCCEKED2N5GNQ7GH32VSK2X/
> https://bugs.gentoo.org/showdependencytree.cgi?id=870412&hide_resolved=1
> to see if they'd found any more, and I think we've found all the ones
> in the packages we maintain via X.Org.
> 
> 
> The fixes I've proposed for these are:
> 
> xkbwatch: Fix -Wincompatible-pointer-types warning (issue #2)
> https://gitlab.freedesktop.org/xorg/app/xkbutils/-/merge_requests/4
> 
> Fix -Wincompatible-pointer-types warning from gcc (issue #1)
> https://gitlab.freedesktop.org/xorg/app/xlsfonts/-/merge_requests/6
> 
> Fix -Wincompatible-pointer-types warning from gcc (issue #15)
> https://gitlab.freedesktop.org/xorg/app/xdm/-/merge_requests/18
> 
> Fix -Wincompatible-pointer-types warning (Issue #3)
> https://gitlab.freedesktop.org/xorg/util/imake/-/merge_requests/8
> 
> Multisink.c: Clear -Werror=incompatible-pointer-types error
> https://gitlab.freedesktop.org/xorg/lib/libxaw3d/-/merge_requests/10
> 
> 
> I also added -std=gnu23 to my build flags, which found one more issue
> due to C23 defining "true" as an rvalue, not an lvalue:
> 
> Fix C23 build by renaming variable 'true'
> https://gitlab.freedesktop.org/xorg/util/imake/-/merge_requests/8
> 
> 
> There were two that I've "fixed" by making the drivers simply not
> call xf86DisableRandR in ABI_VIDEODRV_VERSION 24 & later - which may
> mean that in the old-style manual rotation configurations attempts
> to use RandR will do awful things - but since there were no bugs filed
> about use of those config options making the drivers crash trying to
> call an unresolvable symbol, I'm guessing no one cares about that:
> 
> https://gitlab.freedesktop.org/xorg/driver/xf86-video-nv/-/merge_requests/9
> https://gitlab.freedesktop.org/xorg/driver/xf86-video-savage/-/merge_requests/6
> 
> (If I'm wrong, someone who does care can submit patches to fix it.)
> 
> 
> While I'll probably merge all of the above MR's into git before the holidays,
> I don't plan to make any new releases including them until after, so that they
> can be released with the final release of autoconf 2.72 (which is planned for
> release sometime in the week of Dec. 18 - 22), which has both the fixes for
> bugs in autoconf tests caused by these flags and the addition of support for
> 64-bit time_t in 32-bit programs which some distros/packagers may desire.
> 
> --
>           -Alan Coopersmith-                 alan.coopersmith at oracle.com
>            Oracle Solaris Engineering - https://blogs.oracle.com/solaris

-- 
         -Alan Coopersmith-                 alan.coopersmith at oracle.com
          Oracle Solaris Engineering - https://blogs.oracle.com/solaris



More information about the xorg-devel mailing list