Fix gnulib related build problem (RHBZ 1930528, Kevin Buettner).

This commit is contained in:
Kevin Buettner 2021-02-18 23:16:16 -07:00
parent ce991fb7c0
commit 23564f9afb
5 changed files with 64 additions and 2 deletions

View File

@ -403,3 +403,6 @@ Patch098: gdb-rhbz1905996-fix-off-by-one-error-in-ada_fold_name.patch
# (RH BZ 1912985).
Patch099: gdb-rhbz1912985-libstdc++-assert.patch
# Backport fix for rawhide build error (RH BZ 1930528).
Patch100: gdb-rhbz1930528-fix-gnulib-build-error.patch

View File

@ -97,3 +97,4 @@
%patch097 -p1
%patch098 -p1
%patch099 -p1
%patch100 -p1

View File

@ -97,3 +97,4 @@ gdb-vla-intel-fix-print-char-array.patch
gdb-rhbz1553104-s390x-arch12-test.patch
gdb-rhbz1905996-fix-off-by-one-error-in-ada_fold_name.patch
gdb-rhbz1912985-libstdc++-assert.patch
gdb-rhbz1930528-fix-gnulib-build-error.patch

View File

@ -0,0 +1,54 @@
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
From: Kevin Buettner <kevinb@redhat.com>
Date: Thu, 18 Feb 2021 23:04:29 -0700
Subject: gdb-rhbz1930528-fix-gnulib-build-error.patch
;; Backport fix for rawhide build error (RH BZ 1930528).
amd64-linux-siginfo.c: Adjust include order to avoid gnulib error
On Fedora rawhide, after updating to glibc-2.33, I'm seeing the
following build failure:
CXX nat/amd64-linux-siginfo.o
In file included from /usr/include/bits/sigstksz.h:24,
from /usr/include/signal.h:315,
from ../gnulib/import/signal.h:52,
from /ironwood1/sourceware-git/rawhide-gnulib/bld/../../worktree-gnulib/gdbserver/../gdb/nat/amd64-linux-siginfo.c:20:
../gnulib/import/unistd.h:663:3: error: #error "Please include config.h first."
663 | #error "Please include config.h first."
| ^~~~~
glibc-2.33 has changed signal.h to now include <bits/sigstksz.h> which,
in turn, includes <unistd.h>. For a gdb build, this causes the gnulib
version of unistd.h to be pulled in first. The build failure shown
above happens because gnulib's config.h has not been included before
the include of <signal.h>.
The fix is simple - we just rearrange the order of the header file
includes to make sure that gdbsupport/commondefs.h is included before
attempting to include signal.h. Note that gdbsupport/commondefs.h
includes <gnulib/config.h>.
Build and regression tested on Fedora 33. On Fedora rawhide, GDB
builds again.
gdb/ChangeLog:
* nat/amd64-linux-siginfo.c: Include "gdbsupport/common-defs.h"
(which in turn includes <gnulib/config.h>) before include
of <signal.h>.
diff --git a/gdb/nat/amd64-linux-siginfo.c b/gdb/nat/amd64-linux-siginfo.c
--- a/gdb/nat/amd64-linux-siginfo.c
+++ b/gdb/nat/amd64-linux-siginfo.c
@@ -17,8 +17,8 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include <signal.h>
#include "gdbsupport/common-defs.h"
+#include <signal.h>
#include "amd64-linux-siginfo.h"
#define GDB_SI_SIZE 128

View File

@ -37,7 +37,7 @@ Version: 10.1
# The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 6%{?dist}
Release: 7%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and LGPLv3+ and BSD and Public Domain and GFDL
# Do not provide URL for snapshots as the file lasts there only for 2 days.
@ -1195,7 +1195,10 @@ fi
%endif
%changelog
* Thu Feb 11 2021 Kevin Buettner <kevinb@redhat.com> - 10.1-6
* Thu Feb 18 2021 Kevin Buettner <kevinb@redhat.com> - 10.1-7
- Fix gnulib related build problem (RHBZ 1930528, Kevin Buettner).
* Wed Feb 17 2021 Kevin Buettner <kevinb@redhat.com> - 10.1-6
- Fix libstdc++ assert when performing tab completion; build must be made
with -D_GLIBCXX_DEBUG flag in order to trigger assert (RHBZ 1912985,
Kevin Buettner).