execve() returns ENOENT when ld-linux.so isn't found

From: Olaf van der Spek
Date: Thu Mar 18 2010 - 10:42:39 EST


Hi,

When you try to execute an x86 binary on a x64 system, execve()
returns ENOENT when ld-linux.so isn't found
Wouldn't ENOEXEC be more appropriate?

> An executable is not in a recognized format, is for the wrong architecture, or has some other format error that means it cannot be executed.

This just doesn't make any sense:

$ ls -l
-rwxr-xr-x 1 olaf olaf 560165 2010-03-18 15:21 xwis
$ ./xwis
-bash: ./xwis: No such file or directory

Olaf
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/