sim: switch to libiberty environ.h

Drop our compat code and assume environ exists to simplify.
This commit is contained in:
Mike Frysinger
2021-05-15 08:43:36 -04:00
parent b9c0d70312
commit c5a2e0123b
4 changed files with 18 additions and 24 deletions

View File

@ -1,3 +1,9 @@
2021-05-15 Mike Frysinger <vapier@gentoo.org>
* nrun.c: Include environ.h.
(environ): Delete prototype.
(main): Delete HAVE_ENVIRON check.
2021-05-14 Mike Frysinger <vapier@gentoo.org> 2021-05-14 Mike Frysinger <vapier@gentoo.org>
* callback.c (os_lseek): Change return and 3rd arg to int64_t. * callback.c (os_lseek): Change return and 3rd arg to int64_t.

View File

@ -27,16 +27,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "sim-main.h" #include "sim-main.h"
#include "bfd.h" #include "bfd.h"
#include "environ.h"
#ifndef HAVE_STRSIGNAL #ifndef HAVE_STRSIGNAL
/* While libiberty provides a fallback, it doesn't provide a prototype. */ /* While libiberty provides a fallback, it doesn't provide a prototype. */
extern const char *strsignal (int); extern const char *strsignal (int);
#endif #endif
#ifdef HAVE_ENVIRON
extern char **environ;
#endif
#ifdef HAVE_UNISTD_H #ifdef HAVE_UNISTD_H
/* For chdir. */ /* For chdir. */
#include <unistd.h> #include <unistd.h>
@ -133,11 +130,7 @@ main (int argc, char **argv)
exit (1); exit (1);
/* Prepare the program for execution. */ /* Prepare the program for execution. */
#ifdef HAVE_ENVIRON
sim_create_inferior (sd, prog_bfd, prog_argv, environ); sim_create_inferior (sd, prog_bfd, prog_argv, environ);
#else
sim_create_inferior (sd, prog_bfd, prog_argv, NULL);
#endif
/* To accommodate relative file paths, chdir to sysroot now. We /* To accommodate relative file paths, chdir to sysroot now. We
mustn't do this until BFD has opened the program, else we wouldn't mustn't do this until BFD has opened the program, else we wouldn't

View File

@ -1,3 +1,9 @@
2021-05-15 Mike Frysinger <vapier@gentoo.org>
* sim-if.c: Include environ.h.
(environ, GET_ENVIRON): Delete.
(sim_open): Replace my_environ with environ.
2021-05-14 Mike Frysinger <vapier@gentoo.org> 2021-05-14 Mike Frysinger <vapier@gentoo.org>
* traps.c (cris_break_13_handler): Delete 2nd arg to time callback. * traps.c (cris_break_13_handler): Delete 2nd arg to time callback.

View File

@ -30,16 +30,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include <errno.h> #include <errno.h>
#include "sim-options.h" #include "sim-options.h"
#include "dis-asm.h" #include "dis-asm.h"
#include "environ.h"
/* Apparently the autoconf bits are missing (though HAVE_ENVIRON is used
in other dirs; also lacking there). Patch around it for major systems. */
#if defined (HAVE_ENVIRON) || defined (__GLIBC__)
extern char **environ;
#define GET_ENVIRON() environ
#else
char *missing_environ[] = { "SHELL=/bin/sh", "PATH=/bin:/usr/bin", NULL };
#define GET_ENVIRON() missing_environ
#endif
/* Used with get_progbounds to find out how much memory is needed for the /* Used with get_progbounds to find out how much memory is needed for the
program. We don't want to allocate more, since that could mask program. We don't want to allocate more, since that could mask
@ -747,7 +738,6 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
if (abfd != NULL && !cris_bare_iron) if (abfd != NULL && !cris_bare_iron)
{ {
const char *name = bfd_get_filename (abfd); const char *name = bfd_get_filename (abfd);
char **my_environ = GET_ENVIRON ();
/* We use these maps to give the same behavior as the old xsim /* We use these maps to give the same behavior as the old xsim
simulator. */ simulator. */
USI envtop = 0x40000000; USI envtop = 0x40000000;
@ -764,8 +754,8 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
bfd_byte buf[4]; bfd_byte buf[4];
/* Count in the environment as well. */ /* Count in the environment as well. */
for (envc = 0; my_environ[envc] != NULL; envc++) for (envc = 0; environ[envc] != NULL; envc++)
len += strlen (my_environ[envc]) + 1; len += strlen (environ[envc]) + 1;
for (i = 0; prog_argv[i] != NULL; my_argc++, i++) for (i = 0; prog_argv[i] != NULL; my_argc++, i++)
len += strlen (prog_argv[i]) + 1; len += strlen (prog_argv[i]) + 1;
@ -849,10 +839,9 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
for (i = 0; i < envc; i++, csp += 4) for (i = 0; i < envc; i++, csp += 4)
{ {
unsigned int strln = strlen (my_environ[i]) + 1; unsigned int strln = strlen (environ[i]) + 1;
if (sim_core_write_buffer (sd, NULL, NULL_CIA, my_environ[i], epp, if (sim_core_write_buffer (sd, NULL, NULL_CIA, environ[i], epp, strln)
strln)
!= strln) != strln)
goto abandon_chip; goto abandon_chip;