[PATCH/committed] sim: v850: add pointer casts for execv on Windows

Mike Frysinger vapier@gentoo.org
Sat May 29 19:33:10 GMT 2021


The execv prototypes on Windows via mingw64 include extra const
markings on the argv/envp pointers than what POSIX specifies.
Cast them to void* as a hack to get it working on all platforms.
---
 sim/v850/ChangeLog | 4 ++++
 sim/v850/simops.c  | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/sim/v850/ChangeLog b/sim/v850/ChangeLog
index 02e6bbdc2158..29237d80c985 100644
--- a/sim/v850/ChangeLog
+++ b/sim/v850/ChangeLog
@@ -1,3 +1,7 @@
+2021-05-29  Mike Frysinger  <vapier@gentoo.org>
+
+	* simops.c (OP_10007E0): Add (void*) casts to argv & envp.
+
 2021-05-17  Mike Frysinger  <vapier@gentoo.org>
 
 	* sim-main.h (SIM_HAVE_COMMON_SIM_STATE): Delete.
diff --git a/sim/v850/simops.c b/sim/v850/simops.c
index 62a2bbcbb615..f0e2745dee93 100644
--- a/sim/v850/simops.c
+++ b/sim/v850/simops.c
@@ -1640,7 +1640,7 @@ OP_10007E0 (void)
 	    char *path = fetch_str (simulator, PARM1);
 	    char **argv = fetch_argv (simulator, PARM2);
 	    char **envp = fetch_argv (simulator, PARM3);
-	    RETVAL = execve (path, argv, envp);
+	    RETVAL = execve (path, (void *)argv, (void *)envp);
 	    free (path);
 	    freeargv (argv);
 	    freeargv (envp);
@@ -1656,7 +1656,7 @@ OP_10007E0 (void)
 	  {
 	    char *path = fetch_str (simulator, PARM1);
 	    char **argv = fetch_argv (simulator, PARM2);
-	    RETVAL = execv (path, argv);
+	    RETVAL = execv (path, (void *)argv);
 	    free (path);
 	    freeargv (argv);
 	    RETERR = errno;
-- 
2.31.1



More information about the Gdb-patches mailing list