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

Re: cdrtools-2.01a22 ready



>From: Andy Polyakov <appro@fy.chalmers.se>

>> Cdda2wav (By Heiko Eißfeldt heiko@hexco.de):
>> 
>> -       Now using the major() macro for some Linux duties.
>> 
>>         WARNING to creators of Linux distributions:

>As such wording sounds very much as "political statement," I feel
>necessity to comment on following.

It is definitely not politocal but it tries to be so simple that even
the morons you typically meet on the LKML will understand it :-(


>>         It has _always_ been wrong to compile software only once for different
>>         kernel versions (e.g. for compile Linux-2.4 and later install a
>>         2.2 kernel on the so created system).

>I can't find the above statement to hold universally true. I would
>accept "it has always beed wrong to compile *cdrtools* only once for
>different kernel versions," but I refuse to accept formulation as broad
>as above. There is possibility that author's intention *was* to make
>statement about cdrtools in particular, in which case a clarification

Sorry, Linux-2.6 _did_ definitely change interfaces in an incomptible way.

>note would be appropriate. Meanwhile I can say that I disagree with the
>above statement in its current wording, because it's perfectly possible
>to design software for backward binary compatility and even for two-way
>compatibility. Moreover! Creators of Linux distributions *should*
>actually strive for at least backward compatibility in maximum possible
>extent, i.e. programs compiled under elder distribution should work and
>even be supported under newer release, unless there is stronger reason
>not to. I mean "it works in latest distribution if recompiled" per se

And this is definitely wrong!

Unfortunately, Linux-2.6 did change iterfaces in a way so it is impossible
to run all applications compiled under earlier releases.

This may be proved by looking at star: As the major()/minor() macro did 
change in an incompatible way, star just _cannot_ work correctly if you 
mix versions. Star compiled for pre-2.6 does not handle device nodes
correctly on 2.6 and this is _not_ caused by a bug in star.

As it has been prooven, that there are problems with at least one program,
what is wrong when I warn people that there might problems with other
programs also?


>>         Now that Linux-2.6 introduces incompatible changes to kernel/user
>>         interfaces, the resulting binaries will not work correctly anymore.

>The "political statement" appearence is strengthened by the fact that
>this issue has no apparent connection with context in which they're
>brought up, namely switching to major() macro in cdda2wav. I mean as far
>as calculation of major device number goes, at least 2.4 and 2.6 kernels
>are two-way binary compatible. Even binary compatibility with 2.2 (once
>again as far as calculation of major device number goes!) is rather libc
>issue than kernel one. A.

If you obviously cannot distinct between political statements and serious 
warnings about Linux kernel incompatibilities, please don't shout too loud....


I am just warning people that unless they did 100% prove that every single
aspect of a program will work correctly, if you run it on 2.6 vs. non 2.6
systems, it is more safe to assume that there is no binary compatibility.

Jörg

-- 
 EMail:joerg@schily.isdn.cs.tu-berlin.de (home) Jörg Schilling D-13353 Berlin
       js@cs.tu-berlin.de		(uni)  If you don't have iso-8859-1
       schilling@fokus.fraunhofer.de	(work) chars I am J"org Schilling
 URL:  http://www.fokus.fraunhofer.de/usr/schilling ftp://ftp.berlios.de/pub/schily



Reply to: