This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Avoid compilation errors in MinGW native builds of GDB


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b2a426e2c5632644b6b8bc0dde4cd32d42d548e2

commit b2a426e2c5632644b6b8bc0dde4cd32d42d548e2
Author: Eli Zaretskii <eliz@gnu.org>
Date:   Sat Jan 27 18:34:46 2018 +0200

    Avoid compilation errors in MinGW native builds of GDB
    
    The error is triggered by including python-internal.h, and the
    error message is:
    
         In file included from d:\usr\lib\gcc\mingw32\6.3.0\include\c++\math.h:36:0,
    	      from build-gnulib/import/math.h:27,
    	      from d:/usr/Python26/include/pyport.h:235,
    	      from d:/usr/Python26/include/Python.h:58,
    	      from python/python-internal.h:94,
    	      from python/py-arch.c:24:
         d:\usr\lib\gcc\mingw32\6.3.0\include\c++\cmath:1157:11: error: '::hypot' has not been declared
            using ::hypot;
    	        ^~~~~
    
    This happens because Python headers define 'hypot' to expand to
    '_hypot' in the Windows builds.
    
    gdb/ChangeLog:
    2018-01-27  Eli Zaretskii  <eliz@gnu.org>
    
    	* python/python-internal.h (_hypot) [__MINGW32__]: Define back to
    	'hypoth'.  This avoids a compilation error.

Diff:
---
 gdb/ChangeLog                | 22 ++++++++++++++++++++++
 gdb/python/python-internal.h |  6 ++++++
 2 files changed, 28 insertions(+)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d232a72..5369e02 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,25 @@
+2018-01-27  Eli Zaretskii  <eliz@gnu.org>
+
+	Avoid compilation errors in MinGW native builds
+
+	The error is triggered by including python-internal.h, and the
+	error message is:
+
+	     In file included from d:\usr\lib\gcc\mingw32\6.3.0\include\c++\math.h:36:0,
+		      from build-gnulib/import/math.h:27,
+		      from d:/usr/Python26/include/pyport.h:235,
+		      from d:/usr/Python26/include/Python.h:58,
+		      from python/python-internal.h:94,
+		      from python/py-arch.c:24:
+	     d:\usr\lib\gcc\mingw32\6.3.0\include\c++\cmath:1157:11: error: '::hypot' has not been declared
+	using ::hypot;
+		^~~~~
+
+	This happens because Python headers define 'hypot' to expand t
+	'_hypot' in the Windows builds.
+	* python/python-internal.h (_hypot) [__MINGW32__]: Define back to
+	'hypoth'.  This avoids a compilation error.
+
 2018-01-26  Alan Hayward  <alan.hayward@arm.com>
 
 	* MAINTAINERS (Write After Approval): Fix ordering.
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
index f38f0b3..3f1c61f 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
@@ -85,6 +85,12 @@
 #define HAVE_SNPRINTF 1
 #endif
 
+/* Another kludge to avoid compilation errors because MinGW defines
+   'hypot' to '_hypot', but the C++ headers says "using ::hypot".  */
+#ifdef __MINGW32__
+# define _hypot hypot
+#endif
+
 /* Request clean size types from Python.  */
 #define PY_SSIZE_T_CLEAN


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]