On 9/28/11 5:39 PM, daysleeper wrote:
> Bash Version: 4.2
> Patch Level: 0
> Release Status: release
>
> Description:
> If you run a 64-bit executable on a 32-bit system via bash (which can
> happen by accident), it gives an "bash: ./fwupd: cannot execute binary
> file" error message. What seems to happen is that the execve() function in
> execute_cmd.c returns 8, and in this case bash only tests if the file is a
> script or binary. An ENOEXEC-like message of "An executable is not in a
> recognized format, or is for the wrong architecture" or at least the
> ENOEXEC string would be more helpful in determining the cause of the problem.
Posix (and history) require that bash attempt to run a command equivalent
to "bash foo" if executing "foo" returns -1/ENOEXEC. It's allowed to
bypass that exec if it can determine the file isn't a text file. That's
where the error message comes from. Maybe the text can be improved, but
there's also the danger of being too specific about a more general
condition.
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU [email protected] http://cnswww.cns.cwru.edu/~chet/