> On Sun, 23 Dec 2001 12:06:04 -0500, 
> Benjamin LaHaise <bcrl@redhat.com> wrote:
> 
>>On Sun, Dec 23, 2001 at 04:10:21PM +1100, Keith Owens wrote:
>>
>>>I'm glad somebody understands the code :).
>>>
>>There are two directions of binary compatibility: forwads and backwards.  
>>Your patch breaks forwards compatibility if used outside the main tree.  Try 
>>to understand this.
>>
> 
> Too vague, give me an example with real code and effects.
Well, I'm not going to mess with code, but here's the example.  Say you 
start at syscall 240 for dynamic registration.  Someone then submits a patch 
to Linus that he accepts and which uses syscalls 240 and 241.  Now, you can 
modify the base of your patch, but if it has been accepted into any real 
kernels anywhere, then someone could inadvertently end up running a user 
space app compiled against Linus' new kernel and that uses the newly 
allocated syscalls 240 and 241.  If that's run on an older kernel with your 
patch, then you call into the wrong syscalls with the wrong data.  That's 
how forward compatibility is broken.  Ben's point is that you can move the 
numbers up as high as you want, move them around as often as you want, but 
unless either A) Linus grants your dynamic range as an *official* set of 
syscall numbers or B) you get rid of the numbers entirely, it is never 
guaranteed to be compatible with binaries compiled against newer kernels.
--Doug Ledford <dledford@redhat.com> http://people.redhat.com/dledford Please check my web site for aic7xxx updates/answers before e-mailing me about problems
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/