From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17004 invoked by alias); 12 Jan 2015 17:46:10 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 16986 invoked by uid 89); 12 Jan 2015 17:46:09 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 12 Jan 2015 17:46:07 +0000 Received: from svr-orw-fem-06.mgc.mentorg.com ([147.34.97.120]) by relay1.mentorg.com with esmtp id 1YAj3z-0006VY-IW from Zach_Welch@mentor.com ; Mon, 12 Jan 2015 09:46:03 -0800 Received: from build4-lucid-cs (147.34.91.1) by SVR-ORW-FEM-06.mgc.mentorg.com (147.34.97.120) with Microsoft SMTP Server id 14.3.224.2; Mon, 12 Jan 2015 09:46:03 -0800 Received: by build4-lucid-cs (Postfix, from userid 49860) id BD43F40E81; Mon, 12 Jan 2015 09:46:02 -0800 (PST) From: Zachary T Welch To: Sergio Durigan Junior , CC: Zachary T Welch Subject: [PATCH v2] Fix gdbserver build with x86_64-w64-mingw32 -m32 Date: Mon, 12 Jan 2015 17:46:00 -0000 Message-ID: <1421084758-2096-1-git-send-email-zwelch@codesourcery.com> In-Reply-To: <874mrzu3cd.fsf@redhat.com> References: <874mrzu3cd.fsf@redhat.com> MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2015-01/txt/msg00308.txt.bz2 This patch allows a x86_64-w64-mingw32 toolchain to build a 32-bit gdbserver. Without it, gdbserver attempts to link to the 64-bit register files, resulting in undefined references. This version was regenerated with correct version of aclocal and rebased to the current HEAD. * configure.ac: Add check for -m32 on x86_64-*-mingw*. * configure.srv: If using -m32 on x86_64-*-mingw*, use i386 instead of amd64 registers. * configure: Regenerated. Signed-off-by: Zachary T Welch --- gdb/gdbserver/ChangeLog | 7 +++++++ gdb/gdbserver/configure | 29 +++++++++++++++++++++++++++++ gdb/gdbserver/configure.ac | 12 ++++++++++++ gdb/gdbserver/configure.srv | 3 +++ 4 files changed, 51 insertions(+) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index d126748..09912e1 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,10 @@ +2015-01-12 Zachary T Welch + + * configure.ac: Add check for -m32 on x86_64-*-mingw*. + * configure.srv: If using -m32 on x86_64-*-mingw*, use i386 + instead of amd64 registers. + * configure: Regenerated. + 2015-01-10 Joel Brobecker * i387-fp.c (i387_cache_to_xsave): In look over diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure index 45efc51..f9cc792 100755 --- a/gdb/gdbserver/configure +++ b/gdb/gdbserver/configure @@ -5535,6 +5535,35 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_m68k_is_coldfire" >&5 $as_echo "$gdb_cv_m68k_is_coldfire" >&6; } ;; + x86_64-*-mingw*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if building with -m32" >&5 +$as_echo_n "checking if building with -m32... " >&6; } +if test "${gdb_cv_x86_64_is_i386+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $CFLAGS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if ! __x86_64__ +got it +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "got it" >/dev/null 2>&1; then : + gdb_cv_w64_x86_64_is_i386=yes +else + gdb_cv_w64_x86_64_is_i386=no +fi +rm -f conftest* + + CPPFLAGS="$save_CPPFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_x86_64_is_i386" >&5 +$as_echo "$gdb_cv_x86_64_is_i386" >&6; } + ;; esac . ${srcdir}/configure.srv diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac index 02082cc..ff9e272 100644 --- a/gdb/gdbserver/configure.ac +++ b/gdb/gdbserver/configure.ac @@ -238,6 +238,18 @@ got it [gdb_cv_m68k_is_coldfire=no]) CPPFLAGS="$save_CPPFLAGS"]) ;; + x86_64-*-mingw*) + AC_CACHE_CHECK([if building with -m32], [gdb_cv_x86_64_is_i386], + [save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $CFLAGS" + AC_EGREP_CPP([got it], [ +#if ! __x86_64__ +got it +#endif + ], [gdb_cv_w64_x86_64_is_i386=yes], + [gdb_cv_w64_x86_64_is_i386=no]) + CPPFLAGS="$save_CPPFLAGS"]) + ;; esac . ${srcdir}/configure.srv diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv index 679fc9f..e0d5413 100644 --- a/gdb/gdbserver/configure.srv +++ b/gdb/gdbserver/configure.srv @@ -325,6 +325,9 @@ case "${target}" in ipa_obj="${ipa_amd64_linux_regobj} linux-amd64-ipa.o" ;; x86_64-*-mingw*) srv_regobj="$srv_amd64_regobj" + if test "$gdb_cv_w64_x86_64_is_i386" = yes ; then + srv_regobj="$srv_i386_regobj" + fi srv_tgtobj="x86-low.o x86-dregs.o i387-fp.o win32-low.o win32-i386-low.o" srv_xmlfiles="$srv_i386_xmlfiles $srv_amd64_xmlfiles" srv_mingw=yes -- 1.8.1.1