* emultempl/spuelf.em (spu_elf_relink): Use pex_one in place

of execvp.
This commit is contained in:
Nick Clifton 2011-12-01 11:38:32 +00:00
parent fc0ae648aa
commit 87f1617a4f
2 changed files with 19 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2011-12-01 Nick Clifton <nickc@redhat.com>
* emultempl/spuelf.em (spu_elf_relink): Use pex_one in place
of execvp.
2011-11-25 John Tytgat <john@bass-software.com>
* emultempl/armelf.em: Update copyright to 2010 and 2011.

View File

@ -384,9 +384,13 @@ spu_elf_open_overlay_script (void)
return script;
}
#include <errno.h>
static void
spu_elf_relink (void)
{
const char *pex_return;
int status;
char **argv = xmalloc ((my_argc + 4) * sizeof (*argv));
memcpy (argv, my_argv, my_argc * sizeof (*argv));
@ -397,9 +401,16 @@ spu_elf_relink (void)
argv[my_argc++] = "-T";
argv[my_argc++] = auto_overlay_file;
argv[my_argc] = 0;
execvp (argv[0], (char *const *) argv);
perror (argv[0]);
_exit (127);
pex_return = pex_one (PEX_SEARCH | PEX_LAST, (const char *) argv[0],
(char * const *) argv, (const char *) argv[0],
NULL, NULL, & status, & errno);
if (pex_return != NULL)
{
perror (pex_return);
_exit (127);
}
exit (status);
}
/* Final emulation specific call. */