Linux 2.6.35/TIPC 2.0 ABI breaking changes [was: TIPC 2.0 and TIPC_SUB_SERVICE]

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Leandro Lucarella
Date: Monday, October 18, 2010 - 8:04 am

Jon Maloy, el  4 de octubre a las 11:08 me escribiste:

I thought the kernel usually went to great lengths to ensure old
userspace binaries work with newer kernels.

Since this, as you mention, is not hard to do, and does not impose
a penalty on new code, why not do it?


By the way, this doesn't work at all for the "bindings" I've done to the
D programming language. D is ABI compatible with C, but not source
compatible, so to add TIPC support to D, I had to write all the constant
values again, in a D source file[1].

This means D can't be used to write code that uses TIPC if you target
kernels >= 2.6.35 (unless they write their own bindings, or at least use
a custom TIPC_SUB_SERVICE constant). I could change the TIPC_SUB_SERVICE
value, but then people using older kernels will be screwed. Another
option is to use the version statement (kind of like C's #ifdef):

	version (TIPC_2_0)
		const TIPC_SUB_SERVICE = 0x00;
	else
		const TIPC_SUB_SERVICE = 0x02;

But then, *users* (I mean *end-users* not developers) will need to use
a compiler switch to select for which kernel they would like to compile
their applications, which I find unacceptable.

I think is really very harsh too to force people to recompile their
applications if they want to switch to a newer/older kernel to try
something out.

What I expected is to have something like 2 port names assigned to the
topology services instead of one, TIPC_TOP_SRV which is compatible with
TIPC 1 and marked as deprecated, and TIPC_TOP_SRV2 which only accepts
the TIPC 2.0 standard. Then, nothing of this would have happened.

And I think breaking changes should be discussed (or at least announced)
in this list more thoughtfully before including them in a Linux kernel
release. Is really a shame to be at a point where no matter what is
done, at least a couple of kernel releases will be binary incompatible
with old TIPC applications.


[1] http://www.dsource.org/projects/phobos/browser/trunk/phobos/std/c/linux/tipc.d

PS: Since this is David Miller's call, I'm Cc-ing him (and other kernel
    mailing lists), as it makes no sense to speculate about what he
    thinks if we can just ask him.

-- 
Leandro Lucarella (AKA luca)                     http://llucax.com.ar/
----------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------
I'll take a quiet life,
a handshake of carbon monoxide,
with no alarms and no surprises,
no alarms and no surprises.
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Linux 2.6.35/TIPC 2.0 ABI breaking changes [was: TIPC 2.0 ..., Leandro Lucarella, (Mon Oct 18, 8:04 am)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes [was: TIPC ..., Leandro Lucarella, (Mon Oct 18, 11:46 am)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, David Miller, (Mon Oct 18, 3:17 pm)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Paul Gortmaker, (Mon Oct 18, 4:11 pm)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Leandro Lucarella, (Mon Oct 18, 4:38 pm)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Neil Horman, (Mon Oct 18, 4:45 pm)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Alan Cox, (Mon Oct 18, 4:58 pm)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Leandro Lucarella, (Mon Oct 18, 7:16 pm)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Neil Horman, (Tue Oct 19, 4:04 am)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, David Miller, (Tue Oct 19, 4:06 am)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Leandro Lucarella, (Tue Oct 19, 6:19 am)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Neil Horman, (Tue Oct 19, 6:28 am)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Neil Horman, (Tue Oct 19, 1:18 pm)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Leandro Lucarella, (Tue Oct 19, 1:43 pm)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Leandro Lucarella, (Tue Oct 19, 3:03 pm)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Leandro Lucarella, (Wed Oct 20, 10:20 am)
RE: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Jon Maloy, (Wed Oct 20, 10:57 am)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Neil Horman, (Wed Oct 20, 10:57 am)
RE: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Jon Maloy, (Wed Oct 20, 11:10 am)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Leandro Lucarella, (Wed Oct 20, 11:24 am)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Leandro Lucarella, (Wed Oct 20, 11:28 am)
RE: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Jon Maloy, (Wed Oct 20, 11:37 am)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Leandro Lucarella, (Wed Oct 20, 11:44 am)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Leandro Lucarella, (Wed Oct 20, 12:23 pm)
Re: Linux 2.6.35/TIPC 2.0 ABI breaking changes, Leandro Lucarella, (Wed Oct 20, 3:59 pm)