In the following of last IRC meeting, here is a draft of a FAQ with what
was said. Comments are welcome.
Regards,
Jos� Fonseca
Binary compatibility
====================
1. What does binary compatibility means?
It means that that driver binaries made on previous releases
should work with newer versions.
2. Why is it so important?
To avoid potential havoc. For example:
- If a user installs that latest version of XFree86 -- they don't
always know they need a new kernel module too -- and end up running with
the older ones.
- A vendor has intelectual property they don't want to release.
Binary only components can be released, but they will need to support many
different flavors of release.
- For sake of our driver suite binary releases.
3. Binary compatibility in practice.
3.1 Of the DRM...
We have to maintain one direction of compatability in order to
stay in the Linux kernel release. This can be acomplished by:
- semantic change should create a new IOCTL and leave support for
the old semantics in the DRM module as well
- bumping the minor revision number to give a mechanism to know if
the new semantics were available
NOTE: Check for different versions and fail gracefully is not a
viable scenario acording to Linus.
NOTE: Even when we ignore this and break compatability completely
-- we have to use versioning properly or we don't even get warnings and
disabling. We get CRASHES!!!
3.2 In the SAREA...
Removing a field is generally a "no, no" as it will readily break
backward compatability.
3.2 Between the DDX and the GL driver...
These are less likely to get out of sync as the DRM module -- but
it's still possible. Again, having good revision checking can save a lot
of headaches later. If the versioning isn't accounted for we get hangs and
crashes with mismatches.
We need to account for older versions, but not necessarily fully
support -- we could fail gracefully --, although a driver suite supporter
could decide to support older versions of one module or the other -- at
their options. For example, let's say a hardware vendor released a binary
DDX module for a special video out mode, then it would be nice if the 3D
open source component worked with that module for as many versions as the
initial interface allowed. So, even though we did many updates and
releases, the old closed-source binary still worked.
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel