tech-x11 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: xsrc libdrm update policy



> Date: Mon, 8 Jun 2026 14:20:24 +0200
> From: Robert Bagdan <kikadf.01%gmail.com@localhost>
> 
> > Generally, the rule for branches is no ABI breaks, and careful enough
> > that there is almost zero risk of trouble.
> >
> > So 2.4.125 might well be ok, assuming it's the micro it should be,
> > security fixes, etc.  A version with a new shlib major is basically out
> > of the question.  A version with the same shlib major and thus in theory
> > no ABI break, with significant new features is iffy.
> 
> Well, I don't read for ABI changes in the release notes from 2.4.125 to 2.4.134,
> except of the 2.4.128 release note, where is mentioned an ABI break fix
> what is introduced in earlier releases:
> https://lists.x.org/archives/xorg-announce/2025-November/003639.html
> So, who knows?

One tool we have to detect ABI changes or breakage is .expsym files.

1. Create an empty file src/external/mit/xorg/lib/libdrm/drm.expsym
   and make sure the build fails (you can just run `nbmake-$ARCH -C
   src/external/mit/xorg/lib/libdrm dependall' if you've already done
   a distribution build, no need to repeat the whole distribution
   build).

2. Fill the .expsym file with the `update-symbols' target.

3. Try updating libdrm itself, and rebuild it.  If the build fails,
   you can try `update-symbols' again.

At the end of step (3), you may get one of:

WARNING: Symbols added, minor bump required!
WARNING: Symbols deleted, major bump required!

The _absence_ of these warnings is not dispositive of ABI change or
ABI breakage: structures may have changed, signatures may have
changed, parameters may have been reordered, semantics may have been
changed in application-breaking ways that don't manifest in any formal
way, the xkcd.com/1172 spacebar change might have broken someone's
workflow, &c.

But the _presence_ of these warnings is dispositive of ABI change or
ABI breakage, so it's worth checking.


Home | Main Index | Thread Index | Old Index