https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113553
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://sourceware.org/bugz | |illa/show_bug.cgi?id=31068 --- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #6) > > Some playing around showed that this fixes the problem for me: > > > > diff --git a/libiberty/pex-unix.c b/libiberty/pex-unix.c > > index af98062a94c..a1d35820181 100644 > > --- a/libiberty/pex-unix.c > > +++ b/libiberty/pex-unix.c > > @@ -574,8 +574,8 @@ pex_unix_exec_child (struct pex_obj *obj > > ATTRIBUTE_UNUSED, > > { > > int ret; > > pid_t pid = -1; > > - posix_spawnattr_t attr; > > - posix_spawn_file_actions_t actions; > > + static posix_spawnattr_t attr; > > + static posix_spawn_file_actions_t actions; > > int attr_initialized = 0, actions_initialized = 0; > > > > *err = 0; > > Let me look that seems like an unitialized variable. If it is obvious one, I > will apply a patch. So I looked into pex-unix.c and the code does the right thing: ret = posix_spawnattr_init (&attr); ... ret = posix_spawn_file_actions_init (&actions); And looking into glibc we have just basically: memset (attr, '\0', sizeof (*attr)); //__posix_spawnattr_init memset (file_actions, '\0', sizeof (*file_actions)); // __posix_spawn_file_actions_init And that code has not changed in glibc for years (over 10) either. So maybe memset is not working correctly. oh look at this a memset issue on sparc glibc: https://sourceware.org/bugzilla/show_bug.cgi?id=31068 . -- You are receiving this mail because: You are on the CC list for the bug.