32-bit drinjectlib fails to launch a universal binary with 32-bit and 64-bit components
32-bit drinjectlib fails to launch a universal binary with 32-bit and 64-bit components for several reasons:
- it thinks it's for the wrong arch, b/c our code only returns one platform and we choose the one the kernel will pick;
- it looks for the wrong config file;
- it will execve the wrong arch.
To launch a 32-bit app on a 64-bit kernel when the app also contains a 64-bit binary, we have to use posix_spawn and POSIX_SPAWN_SETEXEC instead of straight-up exec.