From: Sergio Durigan Junior <sergiodj@redhat.com>
To: Zachary T Welch <zwelch@codesourcery.com>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH] Fix gdbserver build with x86_64-w64-mingw32 -m32
Date: Fri, 09 Jan 2015 20:05:00 -0000 [thread overview]
Message-ID: <874mrzu3cd.fsf@redhat.com> (raw)
In-Reply-To: <1420825778-8946-1-git-send-email-zwelch@codesourcery.com> (Zachary T. Welch's message of "Fri, 9 Jan 2015 09:49:38 -0800")
On Friday, January 09 2015, Zachary T. Welch wrote:
> 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.
Hey Zachary,
Thanks for the patch. I noticed you used a newer version of aclocal to
regenerate the files, which generated a lot of hunks that do not relate
to the patch itself.
The right version to use is 1.11.1 (not 1.13.1). Could you please
regenerate the files using the exact versions of autoconf, automake and
aclocal? This page might help you:
<https://sourceware.org/gdb/wiki/DeveloperTips#Editing_configure.ac>
To grab the exact versions of the packages, go to:
<ftp://ftp.gnu.org/gnu/>
Thanks,
> * 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.
> * aclocal.m4: Regenerated.
>
> Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
> ---
> gdb/gdbserver/ChangeLog | 8 ++++++++
> gdb/gdbserver/aclocal.m4 | 46 +++++++++++++++++++--------------------------
> gdb/gdbserver/configure | 34 +++++++++++++++++++++++++++++++--
> gdb/gdbserver/configure.ac | 12 ++++++++++++
> gdb/gdbserver/configure.srv | 3 +++
> 5 files changed, 74 insertions(+), 29 deletions(-)
>
> diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
> index 6937ec0..1e17544 100644
> --- a/gdb/gdbserver/ChangeLog
> +++ b/gdb/gdbserver/ChangeLog
> @@ -1,3 +1,11 @@
> +2015-01-05 Zachary T Welch <zwelch@codesourcery.com>
> +
> + * 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.
> + * aclocal.m4: Regenerated.
> +
> 2015-01-01 Joel Brobecker <brobecker@adacore.com>
>
> * gdbreplay.c (gdbreplay_version): Update copyright year to 2015.
> diff --git a/gdb/gdbserver/aclocal.m4 b/gdb/gdbserver/aclocal.m4
> index 7b546b7..0105e8e 100644
> --- a/gdb/gdbserver/aclocal.m4
> +++ b/gdb/gdbserver/aclocal.m4
> @@ -1,7 +1,7 @@
> -# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
> +# generated automatically by aclocal 1.13.1 -*- Autoconf -*-
> +
> +# Copyright (C) 1996-2012 Free Software Foundation, Inc.
>
> -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
> -# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
> # This file is free software; the Free Software Foundation
> # gives unlimited permission to copy and/or distribute it,
> # with or without modifications, as long as this notice is preserved.
> @@ -11,24 +11,22 @@
> # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
> # PARTICULAR PURPOSE.
>
> +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
> # AM_CONDITIONAL -*- Autoconf -*-
>
> -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
> -# Free Software Foundation, Inc.
> +# Copyright (C) 1997-2013 Free Software Foundation, Inc.
> #
> # This file is free software; the Free Software Foundation
> # gives unlimited permission to copy and/or distribute it,
> # with or without modifications, as long as this notice is preserved.
>
> -# serial 9
> -
> # AM_CONDITIONAL(NAME, SHELL-CONDITION)
> # -------------------------------------
> # Define a conditional.
> AC_DEFUN([AM_CONDITIONAL],
> -[AC_PREREQ(2.52)dnl
> - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
> - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
> +[AC_PREREQ([2.52])dnl
> + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
> + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
> AC_SUBST([$1_TRUE])dnl
> AC_SUBST([$1_FALSE])dnl
> _AM_SUBST_NOTMAKE([$1_TRUE])dnl
> @@ -50,20 +48,17 @@ fi])])
> # Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
> # From Jim Meyering
>
> -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
> -# Free Software Foundation, Inc.
> +# Copyright (C) 1996-2013 Free Software Foundation, Inc.
> #
> # This file is free software; the Free Software Foundation
> # gives unlimited permission to copy and/or distribute it,
> # with or without modifications, as long as this notice is preserved.
>
> -# serial 5
> -
> # AM_MAINTAINER_MODE([DEFAULT-MODE])
> # ----------------------------------
> # Control maintainer-specific portions of Makefiles.
> -# Default is to disable them, unless `enable' is passed literally.
> -# For symmetry, `disable' may be passed as well. Anyway, the user
> +# Default is to disable them, unless 'enable' is passed literally.
> +# For symmetry, 'disable' may be passed as well. Anyway, the user
> # can override the default with the --enable/--disable switch.
> AC_DEFUN([AM_MAINTAINER_MODE],
> [m4_case(m4_default([$1], [disable]),
> @@ -71,13 +66,14 @@ AC_DEFUN([AM_MAINTAINER_MODE],
> [disable], [m4_define([am_maintainer_other], [enable])],
> [m4_define([am_maintainer_other], [enable])
> m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
> -AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
> +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
> dnl maintainer-mode's default is 'disable' unless 'enable' is passed
> AC_ARG_ENABLE([maintainer-mode],
> -[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
> - (and sometimes confusing) to the casual installer],
> - [USE_MAINTAINER_MODE=$enableval],
> - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
> + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
> + am_maintainer_other[ make rules and dependencies not useful
> + (and sometimes confusing) to the casual installer])],
> + [USE_MAINTAINER_MODE=$enableval],
> + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
> AC_MSG_RESULT([$USE_MAINTAINER_MODE])
> AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
> MAINT=$MAINTAINER_MODE_TRUE
> @@ -85,16 +81,12 @@ AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of
> ]
> )
>
> -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
> -
> -# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
> +# Copyright (C) 2006-2013 Free Software Foundation, Inc.
> #
> # This file is free software; the Free Software Foundation
> # gives unlimited permission to copy and/or distribute it,
> # with or without modifications, as long as this notice is preserved.
>
> -# serial 2
> -
> # _AM_SUBST_NOTMAKE(VARIABLE)
> # ---------------------------
> # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
> @@ -102,7 +94,7 @@ AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
> AC_DEFUN([_AM_SUBST_NOTMAKE])
>
> # AM_SUBST_NOTMAKE(VARIABLE)
> -# ---------------------------
> +# --------------------------
> # Public sister of _AM_SUBST_NOTMAKE.
> AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
>
> diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure
> index 45efc51..8776a6f 100755
> --- a/gdb/gdbserver/configure
> +++ b/gdb/gdbserver/configure
> @@ -1325,8 +1325,9 @@ Optional Features:
> --disable-option-checking ignore unrecognized --enable/--with options
> --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
> --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
> - --enable-maintainer-mode enable make rules and dependencies not useful
> - (and sometimes confusing) to the casual installer
> + --enable-maintainer-mode
> + enable make rules and dependencies not useful (and
> + sometimes confusing) to the casual installer
> --disable-largefile omit support for large files
> --enable-libmcheck Try linking with -lmcheck if available
> --enable-werror treat compile warnings as errors
> @@ -5535,6 +5536,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
--
Sergio
GPG key ID: 0x65FC5E36
Please send encrypted e-mail if possible
http://sergiodj.net/
next prev parent reply other threads:[~2015-01-09 20:05 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-09 17:49 Zachary T Welch
2015-01-09 20:05 ` Sergio Durigan Junior [this message]
2015-01-12 17:46 ` [PATCH v2] " Zachary T Welch
2015-01-13 9:21 ` Joel Brobecker
2015-01-10 4:17 ` [PATCH] " Joel Brobecker
2015-01-12 17:54 ` Zach Welch
2015-01-13 9:17 ` Joel Brobecker
2015-01-13 16:59 ` Zach Welch
2015-01-15 4:46 ` Joel Brobecker
2015-01-13 17:42 ` Pedro Alves
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874mrzu3cd.fsf@redhat.com \
--to=sergiodj@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=zwelch@codesourcery.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox