Yep, that's the downside of syscalls only giving you a finite set of errors they can return, instead of being able to say "couldn't find DT_INTERP '/lib/ld.so.1'"
> ENOENT The file pathname or a script or ELF interpreter does not exist.
(Well, I just knew the answer in this case because I've hit this particular error a bunch of times, but that's not really the point.)
I actually agree with jmgao's point that this inscrutability is the downside of syscalls' limited error return; just pointing out the good as well as the bad.