amd64-linux-siginfo.c: Adjust include order to avoid gnulib error
authorKevin Buettner <kevinb@redhat.com>
Fri, 19 Feb 2021 05:46:58 +0000 (22:46 -0700)
committerKevin Buettner <kevinb@redhat.com>
Fri, 19 Feb 2021 05:56:56 +0000 (22:56 -0700)
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>.

gdb/ChangeLog
gdb/nat/amd64-linux-siginfo.c

index f608d9e4ee0a76c8147e29ece429c164ea26b4d2..beee6135347da9ba43bbd3e1297d20624e2deea3 100644 (file)
@@ -1,3 +1,9 @@
+2021-02-19  Kevin Buettner  <kevinb@redhat.com>
+
+       * nat/amd64-linux-siginfo.c: Include "gdbsupport/common-defs.h"
+       (which in turn includes <gnulib/config.h>) before include
+       of <signal.h>.
+
 2021-02-19  Nelson Chu  <nelson.chu@sifive.com>
 
        PR 27158
index 0c932814ec83dd6323f6ce7a1c195ecfea8a7219..e2d2db6e11248be2c1267035b6fcc538e952d289 100644 (file)
@@ -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