On Mon, Jun 02, 2008 at 01:50:13PM -0600, Bob Proulx wrote:
> Jim Meyering wrote:
> > Mike Frysinger wrote:
> > > for example, if you're running a recent version of glibc (say 2.7)
> > > compiled against recent kernel headers (say 2.6.25) but execute on
> > > an older kernel (say 2.6.18), then the resulting touch binary will
> > > attempt to use utimensat() which fails with ENOSYS.
> 
> Most common systems only support backward compatibility.  I have not
> heard of a system which supported forward compatibility.
> 
> In other words, compiling on a platform usually results in an
> executable that only runs on that version or later of components of
> the system and not usually older versions.  That has always been true
> of unix-like systems.  Sometimes it happens to work anyway simply by
> the happy chance that nothing in the call graph changed.  But it isn't
> generally possible when new interfaces are added to the system.

FYI, this is not how glibc handles kernel headers, and that's worked
fine for many years.  You compile against the newest version you would
like to take advantage of, and specify the oldest version to be
supported separately.

Mike, I thought the *at wrappers fell back to emulation if the
syscalls were missing.  Is that impossible for utimensat?

-- 
Daniel Jacobowitz
CodeSourcery


_______________________________________________
Bug-coreutils mailing list
Bug-coreutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-coreutils

Reply via email to