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