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

Re: cdrtools-2.01a22 ready



>From lourens@rainbowdesert.net  Wed Jan  7 16:34:14 2004

>> If you unpack this on a Linux-2.6 system using a "star" binary
>> that has been compiled on Linux-2.4, you will extract a character
>> special with minor 88 instead of minor 7000.
>>
>> This proves that you cannot run binaries from Linux-2.4 on
>> Linux-2.6 correctly.

>Well, it proves that you cannot run _some_ binaries that were 
>compiled under linux 2.4 on linux 2.6 correctly.

Well as you may easily read frm the mail to this thread, most people
are unable to understand which programs would have such problems.
For this reason, I did use a general warning.

>> 3)	Interfaces that libc is not even aware of (like ioctl()
>> functions). If major()/minor()/makedev() are CPP macros and not
>> functions in libc, then they are part of this group of
>> interfaces.

>Not necessarily. If the macros only call functions in libc, then 
>they're in category 1. But I see your point.

Well, in Solaris this is true for at least 12 years:

....
#define OLDDEV 0        /* old device format */
#define NEWDEV 1        /* new device format */

#define makedev(maj, min)       (__makedev(NEWDEV, maj, min))
#define major(dev)              (__major(NEWDEV, dev))
#define minor(dev)              (__minor(NEWDEV, dev))
...

>> Star with respect to device major/minor handling is another one.
>>
>> There are most likely a lot more user land applications that will
>> observe incompatibilities from changes in the Linux kernel
>> interfaces.

>Ofcourse, but are they a majority? There aren't that many programs 
>that talk directly to hardware. There aren't that many programs 
>that create device files. This email program manages some files on 

Do you _really_ know if the major()/minor()/makedev() change introduced
the _only_ incompatibility?

>I could live with "Do not use cdrtools on a different kernel than it 
>was compiled against" or even "I don't recommend using software 
>with a different kernel than it was compiled under". Simply stating 
>that it will never work...well, try this:

>#include <stdio.h>

>int main()
>{
>	printf("Hello, world!\n");
>}

>Compile under 2.4, run under 2.6. I'm sure it'll work fine, because 
>it falls in your category 1 above.

There is a general rule that is many many years old:

If you like to run a binary on differen OS versions, compile on the oldest
and make decent tests to verify of there are problems.

As the program above calls ioctl() and other OS dependent interfaces, 
you cannot grant that it will work.

>Incidentally, your announcements are still a mess. I keep thinking 
>that the BerliOS Open Source center is a new feature of cdrtools 
>each time I read them. Advertisements should be at the bottom.

Well I could put the first line a bit lower, but I cannot understand that
people could take the sentence starting with "Please have a look..."
as an announcement for a new feature.

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: