From patchwork Tue Jan 16 17:31:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Eli Zaretskii X-Patchwork-Id: 25418 Received: (qmail 86745 invoked by alias); 16 Jan 2018 17:31:55 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 86728 invoked by uid 89); 16 Jan 2018 17:31:54 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=HContent-type:plain, H*r:4.82, HContent-type:charset, HContent-type:iso-8859-1 X-HELO: eggs.gnu.org Received: from eggs.gnu.org (HELO eggs.gnu.org) (208.118.235.92) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 16 Jan 2018 17:31:52 +0000 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ebV5P-0006FL-Ir for gdb-patches@sourceware.org; Tue, 16 Jan 2018 12:31:50 -0500 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:44634) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebV5P-0006FF-Fz for gdb-patches@sourceware.org; Tue, 16 Jan 2018 12:31:47 -0500 Received: from [176.228.60.248] (port=1421 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ebV5O-0004Hh-Vy for gdb-patches@sourceware.org; Tue, 16 Jan 2018 12:31:47 -0500 Date: Tue, 16 Jan 2018 19:31:37 +0200 Message-Id: <83h8rlyakm.fsf@gnu.org> From: Eli Zaretskii To: gdb-patches@sourceware.org In-reply-to: (message from Joel Brobecker on Fri, 5 Jan 2018 08:18:05 +0400 (+04)) Subject: Re: [ANNOUNCEMENT] GDB 8.1 release branch created! Reply-to: Eli Zaretskii References: MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-IsSubscribed: yes > From: Joel Brobecker > Date: Fri, 5 Jan 2018 08:18:05 +0400 (+04) > > A quick message to announce that the GDB 8.1 branch has just been created. > > The prerelease snapshots will be available at: > > ftp://sourceware.org/pub/gdb/snapshots/branch/gdb.tar.xz > ftp://sourceware.org/pub/gdb/snapshots/branch/gdb.tar.gz I've built this pre-release with mingw.org's MinGW, and found a few problems. The most serious one is the following compilation error: g++ -x c++ -O2 -gdwarf-4 -g3 -I. -I. -I./common -I./config -DLOCALEDIR="\"d:/usr/share/locale\"" -DHAVE_CONFIG_H -I./../include/opcode -I./../opcodes/.. -I./../readline/.. -I../bfd -I./../bfd -I./../include -I../libdecnumber -I./../libdecnumber -I./gnulib/import -Ibuild-gnulib/import -DTUI=1 -Id:/usr/include -Id:/usr/include/guile/2.0 -Id:/usr/include -Id:/usr/Python26/include -Id:/usr/Python26/include -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized -Wno-format -fno-strict-aliasing -DNDEBUG -fwrapv -c -o python/py-arch.o -MT python/py-arch.o -MMD -MP -MF python/.deps/py-arch.Tpo python/py-arch.c 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; ^~~~~ Makefile:1618: recipe for target `python/py-arch.o' failed Googling suggests the following solution; is it okay to push this (with the necessary logs and after doing the "paperwork" required for branch changes)? Or does someone have better ideas? (Does this work in MinGW64?) The other problems I saw are compilation warnings, see below. Some of them sound like GCC doesn't understand our TRY/CATCH blocks, but others seem like real problems, at least from the POV of a naïve reader such as myself. I wonder how come others don't see these warnings, and why weren't they fixed during development, when we use -Werror. Here are the warnings I saw: g++ -x c++ -O2 -gdwarf-4 -g3 -I. -I. -I./common -I./config -DLOCALEDIR="\"d:/usr/share/locale\"" -DHAVE_CONFIG_H -I./../include/opcode -I./../opcodes/.. -I./../readline/.. -I../bfd -I./../bfd -I./../include -I../libdecnumber -I./../libdecnumber -I./gnulib/import -Ibuild-gnulib/import -DTUI=1 -Id:/usr/include -Id:/usr/include/guile/2.0 -Id:/usr/include -Id:/usr/Python26/include -Id:/usr/Python26/include -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized -Wno-format -c -o cli/cli-cmds.o -MT cli/cli-cmds.o -MMD -MP -MF cli/.deps/cli-cmds.Tpo cli/cli-cmds.c cli/cli-cmds.c: In function 'void complete_command(const char*, int)': cli/cli-cmds.c:277:71: warning: 'word' may be used uninitialized in this function [-Wmaybe-uninitialized] = tracker->build_completion_result (word, word - arg, strlen (arg)); ^ cli/cli-cmds.c:277:71: warning: 'tracker' may be used uninitialized in this function [-Wmaybe-uninitialized] g++ -x c++ -O2 -gdwarf-4 -g3 -I. -I. -I./common -I./config -DLOCALEDIR="\"d:/usr/share/locale\"" -DHAVE_CONFIG_H -I./../include/opcode -I./../opcodes/.. -I./../readline/.. -I../bfd -I./../bfd -I./../include -I../libdecnumber -I./../libdecnumber -I./gnulib/import -Ibuild-gnulib/import -DTUI=1 -Id:/usr/include -Id:/usr/include/guile/2.0 -Id:/usr/include -Id:/usr/Python26/include -Id:/usr/Python26/include -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized -Wno-format -c -o breakpoint.o -MT breakpoint.o -MMD -MP -MF ./.deps/breakpoint.Tpo breakpoint.c breakpoint.c: In function 'void check_status_watchpoint(bpstat)': breakpoint.c:5079:4: warning: 'e' may be used uninitialized in this function [-Wmaybe-uninitialized] switch (e) ^~~~~~ breakpoint.c:5056:20: note: 'e' was declared here wp_check_result e; ^ g++ -x c++ -O2 -gdwarf-4 -g3 -I. -I. -I./common -I./config -DLOCALEDIR="\"d:/usr/share/locale\"" -DHAVE_CONFIG_H -I./../include/opcode -I./../opcodes/.. -I./../readline/.. -I../bfd -I./../bfd -I./../include -I../libdecnumber -I./../libdecnumber -I./gnulib/import -Ibuild-gnulib/import -DTUI=1 -Id:/usr/include -Id:/usr/include/guile/2.0 -Id:/usr/include -Id:/usr/Python26/include -Id:/usr/Python26/include -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized -Wno-format -c -o infrun.o -MT infrun.o -MMD -MP -MF ./.deps/infrun.Tpo infrun.c In file included from infrun.c:26:0: inferior.h: In function 'void handle_vfork_child_exec_or_exit(int)': inferior.h:537:39: warning: '*((void*)(& maybe_restore_inferior)+20).scoped_restore_current_inferior::m_saved_inf' may be used uninitialized in this function [-Wmaybe-uninitialized] { set_current_inferior (m_saved_inf); } ^ infrun.c:927:6: note: '*((void*)(& maybe_restore_inferior)+20).scoped_restore_current_inferior::m_saved_inf' was declared here maybe_restore_inferior; ^~~~~~~~~~~~~~~~~~~~~~ In file included from inferior.h:48:0, from infrun.c:26: progspace.h:285:47: warning: '*((void*)(& maybe_restore_inferior)+16).scoped_restore_current_program_space::m_saved_pspace' may be used uninitialized in this function [-Wmaybe-uninitialized] { set_current_program_space (m_saved_pspace); } ^ infrun.c:927:6: note: '*((void*)(& maybe_restore_inferior)+16).scoped_restore_current_program_space::m_saved_pspace' was declared here maybe_restore_inferior; ^~~~~~~~~~~~~~~~~~~~~~ g++ -x c++ -O2 -gdwarf-4 -g3 -I. -I. -I./common -I./config -DLOCALEDIR="\"d:/usr/share/locale\"" -DHAVE_CONFIG_H -I./../include/opcode -I./../opcodes/.. -I./../readline/.. -I../bfd -I./../bfd -I./../include -I../libdecnumber -I./../libdecnumber -I./gnulib/import -Ibuild-gnulib/import -DTUI=1 -Id:/usr/include -Id:/usr/include/guile/2.0 -Id:/usr/include -Id:/usr/Python26/include -Id:/usr/Python26/include -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized -Wno-format -c -o typeprint.o -MT typeprint.o -MMD -MP -MF ./.deps/ typeprint.Tpo typeprint.c typeprint.c: In function 'void whatis_exp(const char*, int)': typeprint.c:515:60: warning: 'val' may be used uninitialized in this function [-Wmaybe-uninitialized] real_type = value_rtti_type (val, &full, &top, &using_enc); ^ g++ -x c++ -O2 -gdwarf-4 -g3 -I. -I. -I./common -I./config -DLOCALEDIR="\"d:/usr/share/locale\"" -DHAVE_CONFIG_H -I./../include/opcode -I./../opcodes/.. -I./../readline/.. -I../bfd -I./../bfd -I./../include -I../libdecnumber -I./../libdecnumber -I./gnulib/import -Ibuild-gnulib/import -DTUI=1 -Id:/usr/include -Id:/usr/include/guile/2.0 -Id:/usr/include -Id:/usr/Python26/include -Id:/usr/Python26/include -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized -Wno-format -c -o compile/compile.o -MT compile/compile.o -MMD -MP -MF compile/.deps/compile.Tpo compile/compile.c compile/compile.c: In function 'void eval_compile_command(command_line*, const char*, compile_i_scope_types, void*)': compile/compile.c:549:20: warning: 'triplet_rx' may be used uninitialized in this function [-Wmaybe-uninitialized] argc, argv); ^ compile/compile.c:466:9: note: 'triplet_rx' was declared here char *triplet_rx; ^~~~~~~~~~ --- gdb/python/python-internal.h~0 2018-01-12 05:31:04.000000000 +0200 +++ gdb/python/python-internal.h 2018-01-16 08:56:10.717759900 +0200 @@ -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". */ +#if defined(__MINGW32__) && defined(__cplusplus) +# define _hypot hypot +#endif + /* Request clean size types from Python. */ #define PY_SSIZE_T_CLEAN