Follow-up Comment #3, bug #63070 (project make): This is strange. I looked in the glibc bug tracker and couldn't find anything about this issue. I also looked at the actual implementation of glibc 2.17 and it doesn't seem to me like this should happen (although I'm not a glibc developer so I might have missed something). I was looking at the version for x86_64 Linux kernel though: Dmitry can you give more info about what system you were testing on that had this issue?
The patch does clear errno before invoking posix_spawn() so it's LIKELY that if errno is ENOEXEC after return then we had this issue, but it is true that the value of errno is not determinate if the function returns success. Unfortunately due to cross-compilation etc. it's not feasible to test the runtime behavior of posix_spawn() in configure and even if it were, that would only be relevant for the version of glibc used at compile time, which could well not be the same version used at runtime. So a configure check is problematic at best. I looked through the history of glibc and saw that posix_spawn() was completely rewritten in glibc 2.24. But, the issue might not be with posix_spawn() at all, it could be in fork() or vfork(). Dmitry can you modify the code in src/job.c to remove the POSIX_SPAWN_USEVFORK flag and see if you still see the problem with glibc 2.17? Maybe that will help narrow down where the problem actually is. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?63070> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/