sim: switch to libiberty environ.h
authorMike Frysinger <vapier@gentoo.org>
Sat, 15 May 2021 12:43:36 +0000 (08:43 -0400)
committerMike Frysinger <vapier@gentoo.org>
Sat, 15 May 2021 14:59:19 +0000 (10:59 -0400)
Drop our compat code and assume environ exists to simplify.

sim/common/ChangeLog
sim/common/nrun.c
sim/cris/ChangeLog
sim/cris/sim-if.c

index b360ebdd759ad97440d0ab50281e70c90c6f401d..b221166212aa338534d6105801f9eecb285e7e08 100644 (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>
 
        * callback.c (os_lseek): Change return and 3rd arg to int64_t.
index 1ceb0837e2c21aa081043bf62cc3f53aae235bd5..8a1b3c19acc1e43bf8d6659e95dbc0b3bd198aa8 100644 (file)
@@ -27,16 +27,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "sim-main.h"
 
 #include "bfd.h"
+#include "environ.h"
 
 #ifndef HAVE_STRSIGNAL
 /* While libiberty provides a fallback, it doesn't provide a prototype.  */
 extern const char *strsignal (int);
 #endif
 
-#ifdef HAVE_ENVIRON
-extern char **environ;
-#endif
-
 #ifdef HAVE_UNISTD_H
 /* For chdir.  */
 #include <unistd.h>
@@ -133,11 +130,7 @@ main (int argc, char **argv)
     exit (1);
 
   /* Prepare the program for execution.  */
-#ifdef HAVE_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
      mustn't do this until BFD has opened the program, else we wouldn't
index 68cd0bfd52cfca5e28b32b46549219fbc9cc05a6..7dfc8873275fc07ce7dd551c66018aef057793f3 100644 (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>
 
        * traps.c (cris_break_13_handler): Delete 2nd arg to time callback.
index edd7885caf703bed88b57d32badb9989cb4bc371..388d1ef89627b3cce60773adaacb26029958b21d 100644 (file)
@@ -30,16 +30,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <errno.h>
 #include "sim-options.h"
 #include "dis-asm.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
+#include "environ.h"
 
 /* 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
@@ -747,7 +738,6 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
   if (abfd != NULL && !cris_bare_iron)
     {
       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
         simulator.  */
       USI envtop = 0x40000000;
@@ -764,8 +754,8 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
       bfd_byte buf[4];
 
       /* Count in the environment as well. */
-      for (envc = 0; my_environ[envc] != NULL; envc++)
-       len += strlen (my_environ[envc]) + 1;
+      for (envc = 0; environ[envc] != NULL; envc++)
+       len += strlen (environ[envc]) + 1;
 
       for (i = 0; prog_argv[i] != NULL; my_argc++, i++)
        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)
        {
-         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,
-                                    strln)
+         if (sim_core_write_buffer (sd, NULL, NULL_CIA, environ[i], epp, strln)
              != strln)
            goto abandon_chip;