is _X_INLINE still needed

Alan Coopersmith alan.coopersmith at oracle.com
Fri Feb 2 17:33:50 UTC 2024


On 2/2/24 03:42, Enrico Weigelt, metux IT consult wrote:
> On 01.02.24 19:29, Alan Coopersmith wrote:
> 
> Hi Alan,
> 
>>> Which ones are public ?
>>
>> For the Xorg server, the ones listed in
>> https://gitlab.freedesktop.org/xorg/xserver/-/blob/master/hw/xfree86/sdksyms.sh
> 
> is this script actually used somewhere ?
> 
> It looks like some test script - should we include it into some
> test stage in the build system ?

It's run as part of the build process in the branches that still build
with autoconf - looking now I see it seems to have been dropped in the
meson builds, and replaced by "xorg_c_args += '-DXORG_NO_SDKSYMS'".

In the stable branch, you can see it run in:
https://gitlab.freedesktop.org/xorg/xserver/-/blob/server-21.1-branch/hw/xfree86/Makefile.am?ref_type=heads

>> or which the one of the meson.build files installs to the $DESTDIR.
> 
> the stuff landing in $installdir/xorg ?

Yes.

>> I was mainly thinking of clients, but there are still a lot of out-of-tree
>> driver modules for Xorg, including a few outside of our control.
> 
> IIRC, the driver api/abi breaks some times, that's why distros have
> versioned dependencies.

Yes, in what used to be minor releases (1.n -> 1.n+1) and what are now
major releases (21.x -> 24.x).   But no one is planning on any such
releases for the Xorg server that I've seen.

> It seems we're carrying a lot of historically stuff / technical debt in
> here. Can we start some formal API definitions and start deprecating old
> stuff ? What I'd like to get out first is things that are pretty much
> libc wrappers like GenerateRandomData().
> 
> IMHO, at some point we have to choose between coninuous quality decaday
> or breaking extensions / drivers. Both are ugly, but I believe risking
> some (compile-time) breaks here and there are better than code rotting.
> 
> Maybe we could do some official announcement on *planning* some API
> deprecations and calling all external projects (eg. tigervnc) to join
> into the discussion what/when/how to do it. 

Theoretically, that is all possible.  Realistically though, none of it
is, because no one is working on a new release of the Xorg server, just
popping out the occasional security patch as necessary - with no maintainer
for Xorg, it's mostly frozen in place now.

 > In the long run, I'd really
 > prefer getting all drivers and extensions in-tree and declare the API
 > volatile - quite like we're doing it in the linux kernel.

That would guarantee we never release a new version of Xorg given how
many drivers just no longer compile at all.  We split the drivers out
because the release cycles for them were not aligned with the X servers
release cycle and we had no reason to tie them to it.

The Linux kernel can do this because it has active maintainers and a
regular release cycle.  Xorg has neither.

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



More information about the xorg-devel mailing list