This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] Fix build breakage on MinGW due to missing setenv
- From: Anton Kolesov <Anton dot Kolesov at synopsys dot com>
- To: gdb-patches at sourceware dot org
- Cc: Anton Kolesov <Anton dot Kolesov at synopsys dot com>, Francois Bedard <Francois dot Bedard at synopsys dot com>, Sergio Durigan Junior <sergiodj at redhat dot com>
- Date: Mon, 3 Jul 2017 13:02:58 +0300
- Subject: [PATCH] Fix build breakage on MinGW due to missing setenv
- Authentication-results: sourceware.org; auth=none
Patch [1] broke a build on MinGW hosts, because MinGW doesn't provide POSIX
functions setenv () and unsetenv (), instead there is a putenv () wrapper
around WinAPI function, although with a different signature.
[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=9a6c7d9c0
gdb/ChangeLog
yyyy-mm-dd Anton Kolesov <Anton.Kolesov@synopsys.com>
* unittests/environ-selftests.c (run_tests): Use putenv on MinGW.
---
gdb/unittests/environ-selftests.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/gdb/unittests/environ-selftests.c b/gdb/unittests/environ-selftests.c
index 28b16f8..8872bfa 100644
--- a/gdb/unittests/environ-selftests.c
+++ b/gdb/unittests/environ-selftests.c
@@ -30,7 +30,11 @@ run_tests ()
{
/* Set a test environment variable. This will be unset at the end
of this function. */
+#ifndef USE_WIN32API
if (setenv ("GDB_SELFTEST_ENVIRON", "1", 1) != 0)
+#else
+ if (putenv ("GDB_SELFTEST_ENVIRON=1") != 0)
+#endif
error (_("Could not set environment variable for testing."));
gdb_environ env;
@@ -90,7 +94,13 @@ run_tests ()
SELF_CHECK (num_found == 1);
/* Get rid of our test variable. */
+#ifndef USE_WIN32API
unsetenv ("GDB_SELFTEST_ENVIRON");
+#else
+ /* putenv ("var=") has the same meaning as unsetenv ("var"), unlike the
+ setenv ("var="), which would assign an empty value. */
+ putenv ("GDB_SELFTEST_ENVIRON=");
+#endif
/* Test the case when we set a variable A, then set a variable B,
then unset A, and make sure that we cannot find A in the environ
--
2.8.3