| From a9d3805d53468d5ac574df8b1cc1ce8d5518e613 Mon Sep 17 00:00:00 2001 |
| From: Kevin Buettner <kevinb@redhat.com> |
| Date: Thu, 18 Feb 2021 22:46:58 -0700 |
| Subject: [PATCH] amd64-linux-siginfo.c: Adjust include order to avoid gnulib |
| error |
| |
| On Fedora rawhide, after updating to glibc-2.34, 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>. |
| --- |
| gdb/nat/amd64-linux-siginfo.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/gdb/nat/amd64-linux-siginfo.c b/gdb/nat/amd64-linux-siginfo.c |
| index 8bcff454378..9721a1fd913 100644 |
| --- 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 |
| -- |
| 2.36.1 |
| |