summaryrefslogtreecommitdiff
path: root/sim/m32r
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2021-11-15 23:00:04 -0500
committerMike Frysinger <vapier@gentoo.org>2021-11-16 00:58:41 -0500
commit54f7a83a62c27d6da9ee66da1022572d6ea45d84 (patch)
treeeb0670d282c37c15e28f3f4b3344285d7581399d /sim/m32r
parent38f9e52086c8d513bc7ef713043c03752924df89 (diff)
downloadbinutils-gdb-54f7a83a62c27d6da9ee66da1022572d6ea45d84.tar.gz
sim: keep track of program environment strings
We've been passing the environment strings to sim_create_inferior, but most ports don't do anything with them. A few will use ad-hoc logic to stuff the stack for user-mode programs, but that's it. Let's formalize this across the board by storing the strings in the normal sim state. This will allow (in future commits) supporting more functionality in the run interface, and to unify some of the libgloss syscalls.
Diffstat (limited to 'sim/m32r')
-rw-r--r--sim/m32r/sim-if.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sim/m32r/sim-if.c b/sim/m32r/sim-if.c
index b2f7b4636e0..0cb49a1e4e1 100644
--- a/sim/m32r/sim-if.c
+++ b/sim/m32r/sim-if.c
@@ -145,7 +145,7 @@ sim_open (SIM_OPEN_KIND kind, host_callback *callback, struct bfd *abfd,
SIM_RC
sim_create_inferior (SIM_DESC sd, struct bfd *abfd, char * const *argv,
- char * const *envp)
+ char * const *env)
{
SIM_CPU *current_cpu = STATE_CPU (sd, 0);
SIM_ADDR addr;
@@ -174,6 +174,12 @@ sim_create_inferior (SIM_DESC sd, struct bfd *abfd, char * const *argv,
STATE_PROG_ARGV (sd) = dupargv (argv);
}
+ if (STATE_PROG_ENVP (sd) != env)
+ {
+ freeargv (STATE_PROG_ENVP (sd));
+ STATE_PROG_ENVP (sd) = dupargv (env);
+ }
+
return SIM_RC_OK;
}