Mercurial > mxe-octave
changeset 5905:3ba599708f72
gdb: update to v11.1
* src/gdb.mk: update version, checksum
* src/gdb-1-gnulib.patch: removed
* dist-files.mk: remove ref to patch file
author | John Donoghue <john.donoghue@ieee.org> |
---|---|
date | Mon, 27 Sep 2021 10:24:28 -0400 |
parents | 19b3a5a0e015 |
children | ff6218f754ff |
files | dist-files.mk src/gdb-1-gnulib.patch src/gdb.mk |
diffstat | 3 files changed, 2 insertions(+), 284 deletions(-) [+] |
line wrap: on
line diff
--- a/dist-files.mk Mon Sep 27 10:24:27 2021 -0400 +++ b/dist-files.mk Mon Sep 27 10:24:28 2021 -0400 @@ -122,7 +122,6 @@ gd.mk \ gdal-1-gcc11.patch \ gdal.mk \ - gdb-1-gnulib.patch \ gdb.mk \ gdcm-1-nosecapi.patch \ gdcm-2-getopt.patch \
--- a/src/gdb-1-gnulib.patch Mon Sep 27 10:24:27 2021 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,281 +0,0 @@ -From 361cb219351d8b7e39e1962fe77f40aa80657b27 Mon Sep 17 00:00:00 2001 -From: Andrew Burgess <andrew.burgess@embecosm.com> -Date: Tue, 6 Oct 2020 10:09:06 +0100 -Subject: [PATCH] gnulib: Ensure all libraries are used when building - gdb/gdbserver - -An issue was reported here related to building GDB on MinGW: - - https://sourceware.org/pipermail/gdb/2020-September/048927.html - -It was suggested here: - - https://sourceware.org/pipermail/gdb/2020-September/048931.html - -that the solution might be to make use of $(LIB_GETRANDOM), a variable -defined in the gnulib makefile, when linking GDB. - -In fact I think the issue is bigger than just LIB_GETRANDOM. When -using the script binutils-gdb/gnulib/update-gnulib.sh to reimport -gnulib there is a lot of output from gnulib's gnulib-tool. Part of -that output is this: - - You may need to use the following makefile variables when linking. - Use them in <program>_LDADD when linking a program, or - in <library>_a_LDFLAGS or <library>_la_LDFLAGS when linking a library. - $(FREXPL_LIBM) - $(FREXP_LIBM) - $(INET_NTOP_LIB) - $(LIBTHREAD) - $(LIB_GETLOGIN) - $(LIB_GETRANDOM) - $(LIB_HARD_LOCALE) - $(LIB_MBRTOWC) - $(LIB_SETLOCALE_NULL) - $(LTLIBINTL) when linking with libtool, $(LIBINTL) otherwise - -What I think this is telling us is that we should be including the -value of all these variables on the link line for gdb and gdbserver. - -The problem though is that these variables are define in gnulib's -makefile, but are not (necessarily) defined in GDB's makefile. - -One solution would be to recreate the checks that gnulib performs in -order to recreate these variables in both gdb's and gdbserver's -makefile. Though this shouldn't be too hard, most (if not all) of -these checks are in the form macros defined in m4 files in the gnulib -tree, so we could just reference these as needed. However, in this -commit I propose a different solution. - -Currently, in the top level makefile, we give gdb and gdbserver a -dependency on gnulib. Once gnulib has finished building gdb and -gdbserver can start, these projects then have a hard coded (relative) -path to the compiled gnulib library in their makefiles. - -In this commit I extend the gnulib configure script to install a new -makefile fragment in the gnulib build directory. This new file will -have the usual variable substitutions applied to it, and so can -include the complete list (see above) of all the extra libraries that -are needed when linking against gnulib. - -In fact the new makefile fragment defines three variables, these are: - -LIBGNU: The path to the archive containing gnulib. Can be used as a - dependency as when this file changes gdb/gdbserver should be - relinked. - -LIBGNU_EXTRA_LIBS: A list of linker -l.... flags that should be - included in the link line of gdb/gdbserver. These are - libraries that $(LIBGNU) depends on. This list is taken from - the output of gnulib-tool, which is run by our - gnulib/update-gnulib.sh script. - -INCGNU: A list of -I.... include paths that should be passed to the - compiler, these are where the gnulib headers can be found. - -Now both gdb and gdbserver can include the makefile fragment and make -use of these variables. - -The makefile fragment relies on the variable GNULIB_BUILDDIR being -defined. This is checked for in the fragment, and was already defined -in the makefiles of gdb and gdbserver. - -gdb/ChangeLog: - - * Makefile.in: Include Makefile.gnulib.inc. Don't define LIBGNU - or INCGNU. Make use of LIBGNU_EXTRA_LIBS when linking. - -gdbserver/ChangeLog: - - * Makefile.in: Include Makefile.gnulib.inc. Don't define LIBGNU - or INCGNU. Make use of LIBGNU_EXTRA_LIBS when linking. - -gnulib/ChangeLog: - - * Makefile.gnulib.inc.in: New file. - * Makefile.in: Regenerate. - * configure: Regenerate. - * configure.ac: Install the new file. ---- - gdb/ChangeLog | 5 ++++ - gdb/Makefile.in | 5 ++-- - gdbserver/ChangeLog | 5 ++++ - gdbserver/Makefile.in | 11 ++++----- - gnulib/ChangeLog | 7 ++++++ - gnulib/Makefile.gnulib.inc.in | 44 +++++++++++++++++++++++++++++++++++ - gnulib/Makefile.in | 4 +++- - gnulib/configure | 4 ++++ - gnulib/configure.ac | 2 ++ - 9 files changed, 77 insertions(+), 10 deletions(-) - create mode 100644 gnulib/Makefile.gnulib.inc.in - -diff --git a/gdb/Makefile.in b/gdb/Makefile.in -index 80b788cdff9..5f92e8781e7 100644 ---- a/gdb/Makefile.in -+++ b/gdb/Makefile.in -@@ -243,8 +243,7 @@ GDBFLAGS = - - # Helper code from gnulib. - GNULIB_BUILDDIR = ../gnulib --LIBGNU = $(GNULIB_BUILDDIR)/import/libgnu.a --INCGNU = -I$(srcdir)/../gnulib/import -I$(GNULIB_BUILDDIR)/import -+include $(GNULIB_BUILDDIR)/Makefile.gnulib.inc - - SUPPORT = ../gdbsupport - LIBSUPPORT = $(SUPPORT)/libgdbsupport.a -@@ -632,7 +631,7 @@ CLIBS = $(SIM) $(READLINE) $(OPCODES) $(LIBCTF) $(BFD) $(ZLIB) \ - $(XM_CLIBS) $(GDBTKLIBS) \ - @LIBS@ @GUILE_LIBS@ @PYTHON_LIBS@ \ - $(LIBEXPAT) $(LIBLZMA) $(LIBBABELTRACE) $(LIBIPT) \ -- $(WIN32LIBS) $(LIBGNU) $(LIBICONV) \ -+ $(WIN32LIBS) $(LIBGNU) $(LIBGNU_EXTRA_LIBS) $(LIBICONV) \ - $(LIBMPFR) $(SRCHIGH_LIBS) $(LIBXXHASH) $(PTHREAD_LIBS) \ - $(DEBUGINFOD_LIBS) - CDEPS = $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE_DEPS) $(CTF_DEPS) \ -diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in -index c8cfed4819b..1969ed0ec37 100644 ---- a/gdbserver/Makefile.in -+++ b/gdbserver/Makefile.in -@@ -114,8 +114,7 @@ ustinc = @ustinc@ - - # gnulib - GNULIB_BUILDDIR = ../gnulib --LIBGNU = $(GNULIB_BUILDDIR)/import/libgnu.a --INCGNU = -I$(srcdir)/../gnulib/import -I$(GNULIB_BUILDDIR)/import -+include $(GNULIB_BUILDDIR)/Makefile.gnulib.inc - - # Where is the INTL library? Typically in ../intl. - INTL = @LIBINTL@ -@@ -360,8 +359,8 @@ gdbserver$(EXEEXT): $(sort $(OBS)) ${CDEPS} $(LIBGNU) $(LIBIBERTY) \ - $(ECHO_CXXLD) $(CC_LD) $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) \ - $(CXXFLAGS) \ - -o gdbserver$(EXEEXT) $(OBS) $(GDBSUPPORT) $(LIBGNU) \ -- $(LIBIBERTY) $(INTL) $(GDBSERVER_LIBS) $(XM_CLIBS) \ -- $(WIN32APILIBS) -+ $(LIBGNU_EXTRA_LIBS) $(LIBIBERTY) $(INTL) \ -+ $(GDBSERVER_LIBS) $(XM_CLIBS) $(WIN32APILIBS) - - gdbreplay$(EXEEXT): $(sort $(GDBREPLAY_OBS)) $(LIBGNU) $(LIBIBERTY) \ - $(INTL_DEPS) $(GDBSUPPORT) -@@ -369,8 +368,8 @@ gdbreplay$(EXEEXT): $(sort $(GDBREPLAY_OBS)) $(LIBGNU) $(LIBIBERTY) \ - $(ECHO_CXXLD) $(CC_LD) $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) \ - $(CXXFLAGS) \ - -o gdbreplay$(EXEEXT) $(GDBREPLAY_OBS) $(XM_CLIBS) \ -- $(GDBSUPPORT) $(LIBGNU) $(LIBIBERTY) $(INTL) \ -- $(WIN32APILIBS) -+ $(GDBSUPPORT) $(LIBGNU) $(LIBGNU_EXTRA_LIBS) \ -+ $(LIBIBERTY) $(INTL) $(WIN32APILIBS) - - IPA_OBJS = \ - alloc-ipa.o \ -diff --git a/gnulib/Makefile.gnulib.inc.in b/gnulib/Makefile.gnulib.inc.in -new file mode 100644 -index 00000000000..f3fd72b5781 ---- /dev/null -+++ b/gnulib/Makefile.gnulib.inc.in -@@ -0,0 +1,44 @@ -+# Copyright (C) 2020 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program. If not, see <http://www.gnu.org/licenses/>. -+ -+# A makefile snippet that lists all of the libraries that should be -+# pulled in when linking against gnulib. Both GDB and GDBSERVER will -+# include this snippet. -+# -+# The defined variables are: -+# -+# LIBGNU: The path to the archive containing gnulib. Can be used as a -+# dependency as when this file changes gdb/gdbserver should be -+# relinked. -+# -+# LIBGNU_EXTRA_LIBS: A list of linker -l.... flags that should be -+# included in the link line of gdb/gdbserver. These are -+# libraries that $(LIBGNU) depends on. This list is taken from -+# the output of gnulib-tool, which is run by our -+# gnulib/update-gnulib.sh script. -+# -+# INCGNU: A list of -I.... include paths that should be passed to the -+# compiler, these are where the gnulib headers can be found. -+ -+ifndef GNULIB_BUILDDIR -+$(error missing GNULIB_BUILDDIR) -+endif -+ -+LIBGNU = $(GNULIB_BUILDDIR)/import/libgnu.a -+LIBGNU_EXTRA_LIBS = @FREXPL_LIBM@ @FREXP_LIBM@ @INET_NTOP_LIB@ \ -+ @LIBTHREAD@ @LIB_GETLOGIN@ @LIB_GETRANDOM@ \ -+ @LIB_HARD_LOCALE@ @LIB_MBRTOWC@ \ -+ @LIB_SETLOCALE_NULL@ @LIBINTL@ -+INCGNU = -I$(srcdir)/../gnulib/import -I$(GNULIB_BUILDDIR)/import -diff --git a/gnulib/Makefile.in b/gnulib/Makefile.in -index bdd3c3f3fbc..c1c21680944 100644 ---- a/gnulib/Makefile.in -+++ b/gnulib/Makefile.in -@@ -277,7 +277,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno - mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs - CONFIG_HEADER = config.h --CONFIG_CLEAN_FILES = -+CONFIG_CLEAN_FILES = Makefile.gnulib.inc - CONFIG_CLEAN_VPATH_FILES = - AM_V_P = $(am__v_P_@AM_V@) - am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -@@ -1642,6 +1642,8 @@ $(srcdir)/config.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - - distclean-hdr: - -rm -f config.h stamp-h1 -+Makefile.gnulib.inc: $(top_builddir)/config.status $(srcdir)/Makefile.gnulib.inc.in -+ cd $(top_builddir) && $(SHELL) ./config.status $@ - - # This directory's subdirectories are mostly independent; you can cd - # into them and run 'make' without going through this Makefile. -diff --git a/gnulib/configure b/gnulib/configure -index 5c6add6e371..6c58a46e42e 100644 ---- a/gnulib/configure -+++ b/gnulib/configure -@@ -30802,6 +30802,9 @@ fi - # Checks for libraries. # - # ---------------------- # - -+ac_config_files="$ac_config_files Makefile.gnulib.inc" -+ -+ - ac_config_files="$ac_config_files Makefile import/Makefile" - - ac_config_commands="$ac_config_commands default" -@@ -31634,6 +31637,7 @@ do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;; - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; -+ "Makefile.gnulib.inc") CONFIG_FILES="$CONFIG_FILES Makefile.gnulib.inc" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "import/Makefile") CONFIG_FILES="$CONFIG_FILES import/Makefile" ;; - "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; -diff --git a/gnulib/configure.ac b/gnulib/configure.ac -index acc1b1a322e..052b8bd8dc5 100644 ---- a/gnulib/configure.ac -+++ b/gnulib/configure.ac -@@ -56,6 +56,8 @@ AC_CHECK_TOOL(AR, ar) - # Checks for libraries. # - # ---------------------- # - -+AC_CONFIG_FILES(Makefile.gnulib.inc) -+ - AC_OUTPUT(Makefile import/Makefile, - [ - case x$CONFIG_HEADERS in --- -2.27.0 - -
--- a/src/gdb.mk Mon Sep 27 10:24:27 2021 -0400 +++ b/src/gdb.mk Mon Sep 27 10:24:28 2021 -0400 @@ -2,8 +2,8 @@ # See index.html for further information. PKG := gdb -$(PKG)_VERSION := 10.2 -$(PKG)_CHECKSUM := 1056e2743a825ecce46ec9eec37f0b357831012b +$(PKG)_VERSION := 11.1 +$(PKG)_CHECKSUM := 6cb3361c7f2b22d6d2c25ab4992264aa41bc2471 $(PKG)_SUBDIR := gdb-$($(PKG)_VERSION) $(PKG)_FILE := gdb-$($(PKG)_VERSION).tar.xz $(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/$(PKG)/$($(PKG)_FILE)