* emultempl/spuelf.em (spu_elf_relink): Use pex_one in place
of execvp.
This commit is contained in:
parent
fc0ae648aa
commit
87f1617a4f
|
@ -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>
|
2011-11-25 John Tytgat <john@bass-software.com>
|
||||||
|
|
||||||
* emultempl/armelf.em: Update copyright to 2010 and 2011.
|
* emultempl/armelf.em: Update copyright to 2010 and 2011.
|
||||||
|
|
|
@ -384,9 +384,13 @@ spu_elf_open_overlay_script (void)
|
||||||
return script;
|
return script;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
static void
|
static void
|
||||||
spu_elf_relink (void)
|
spu_elf_relink (void)
|
||||||
{
|
{
|
||||||
|
const char *pex_return;
|
||||||
|
int status;
|
||||||
char **argv = xmalloc ((my_argc + 4) * sizeof (*argv));
|
char **argv = xmalloc ((my_argc + 4) * sizeof (*argv));
|
||||||
|
|
||||||
memcpy (argv, my_argv, my_argc * sizeof (*argv));
|
memcpy (argv, my_argv, my_argc * sizeof (*argv));
|
||||||
|
@ -397,10 +401,17 @@ spu_elf_relink (void)
|
||||||
argv[my_argc++] = "-T";
|
argv[my_argc++] = "-T";
|
||||||
argv[my_argc++] = auto_overlay_file;
|
argv[my_argc++] = auto_overlay_file;
|
||||||
argv[my_argc] = 0;
|
argv[my_argc] = 0;
|
||||||
execvp (argv[0], (char *const *) argv);
|
|
||||||
perror (argv[0]);
|
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 (127);
|
||||||
}
|
}
|
||||||
|
exit (status);
|
||||||
|
}
|
||||||
|
|
||||||
/* Final emulation specific call. */
|
/* Final emulation specific call. */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue