public inbox for elfutils@sourceware.org
 help / color / mirror / Atom feed
From: Mark Wielaard <mark@klomp.org>
To: elfutils-devel@sourceware.org
Cc: Mark Wielaard <mark@klomp.org>
Subject: [COMMITTED] Include sys/ptrace.h as early as possible.
Date: Thu, 15 Feb 2018 14:58:00 -0000	[thread overview]
Message-ID: <1518705880-28552-1-git-send-email-mark@klomp.org> (raw)

On some systems, at least on Fedora 27 ppc64le with glibc 2.26-24 and
kernel 4.14.18-300, including sys/ptrace.h late (after signal.h or
sys/wait.h for example) will cause issues and produce errors like:

In file included from /usr/include/asm/sigcontext.h:12:0,
                 from /usr/include/bits/sigcontext.h:30,
                 from /usr/include/signal.h:287,
                 from /usr/include/sys/wait.h:36,
                 from linux-pid-attach.c:38:
/usr/include/sys/ptrace.h:73:3: error: expected identifier before numeric constant
   PTRACE_GETREGS = 12,
   ^

Swapping the include order fixes these issues.

Signed-off-by: Mark Wielaard <mark@klomp.org>
---
 backends/ChangeLog         | 4 ++++
 backends/ppc_initreg.c     | 5 +++--
 libdwfl/ChangeLog          | 4 ++++
 libdwfl/linux-pid-attach.c | 2 +-
 tests/ChangeLog            | 6 ++++++
 tests/backtrace-child.c    | 2 +-
 tests/backtrace-dwarf.c    | 4 ++--
 7 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/backends/ChangeLog b/backends/ChangeLog
index 098bed7..b525801 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,7 @@
+2018-02-15  Mark Wielaard  <mark@klomp.org>
+
+	* ppc_initreg.c: Include ptrace.h before system.h and sys/user.h.
+
 2018-02-09  Joshua Watt  <JPEWhacker@gmail.com>
 
 	* aarch64_retval.c (aarch64_return_value_location): Use FALLTHROUGH
diff --git a/backends/ppc_initreg.c b/backends/ppc_initreg.c
index 69d623b..3e4432f 100644
--- a/backends/ppc_initreg.c
+++ b/backends/ppc_initreg.c
@@ -30,13 +30,14 @@
 # include <config.h>
 #endif
 
-#include "system.h"
 #include <stdlib.h>
 #if defined(__powerpc__) && defined(__linux__)
-# include <sys/user.h>
 # include <sys/ptrace.h>
+# include <sys/user.h>
 #endif
 
+#include "system.h"
+
 #define BACKEND ppc_
 #include "libebl_CPU.h"
 
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 453f1d3..43fc151 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,7 @@
+2018-02-15  Mark Wielaard  <mark@klomp.org>
+
+	* linux-pid-attach.c: Include sys/wait.h after sys/ptrace.h.
+
 2018-02-09  Joshua Watt  <JPEWhacker@gmail.com>
 
 	* dwfl_report_elf.c (__libdwfl_elf_address_range): Use FALLTHROUGH
diff --git a/libdwfl/linux-pid-attach.c b/libdwfl/linux-pid-attach.c
index e6a5c41..2ab4109 100644
--- a/libdwfl/linux-pid-attach.c
+++ b/libdwfl/linux-pid-attach.c
@@ -35,7 +35,6 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
-#include <sys/wait.h>
 #include <dirent.h>
 #include <unistd.h>
 
@@ -43,6 +42,7 @@
 
 #include <sys/ptrace.h>
 #include <sys/syscall.h>
+#include <sys/wait.h>
 
 static bool
 linux_proc_pid_is_stopped (pid_t pid)
diff --git a/tests/ChangeLog b/tests/ChangeLog
index eb4576c..cfdd7f9 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,9 @@
+2018-02-15  Mark Wielaard  <mark@klomp.org>
+
+	* backtrace-child.c: Include signal.h after sys/ptrace.h.
+	* backtrace-dwarf.c: Include sys/wait.h and signal.h after
+	sys/ptrace.h.
+
 2018-01-25  Mark Wielaard  <mark@klomp.org>
 
 	* Makefile.am (check_PROGRAMS): Add dwarf-die-addr-die.
diff --git a/tests/backtrace-child.c b/tests/backtrace-child.c
index 2c27414..9c6ba94 100644
--- a/tests/backtrace-child.c
+++ b/tests/backtrace-child.c
@@ -81,7 +81,6 @@
 #include <config.h>
 #include <assert.h>
 #include <stdlib.h>
-#include <signal.h>
 #include <errno.h>
 #include <string.h>
 #include <pthread.h>
@@ -100,6 +99,7 @@ main (int argc __attribute__ ((unused)), char **argv)
 
 #else /* __linux__ */
 #include <sys/ptrace.h>
+#include <signal.h>
 
 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
 #define NOINLINE_NOCLONE __attribute__ ((noinline, noclone))
diff --git a/tests/backtrace-dwarf.c b/tests/backtrace-dwarf.c
index 2dc8a9a..7ff826c 100644
--- a/tests/backtrace-dwarf.c
+++ b/tests/backtrace-dwarf.c
@@ -17,7 +17,6 @@
 
 #include <config.h>
 #include <assert.h>
-#include <signal.h>
 #include <inttypes.h>
 #include <stdio_ext.h>
 #include <locale.h>
@@ -25,7 +24,6 @@
 #include <error.h>
 #include <unistd.h>
 #include <sys/types.h>
-#include <sys/wait.h>
 #include ELFUTILS_HEADER(dwfl)
 
 #ifndef __linux__
@@ -40,6 +38,8 @@ main (int argc __attribute__ ((unused)), char **argv)
 
 #else /* __linux__ */
 #include <sys/ptrace.h>
+#include <sys/wait.h>
+#include <signal.h>
 
 #define main cleanup_13_main
 #include "cleanup-13.c"
-- 
1.8.3.1

             reply	other threads:[~2018-02-15 14:58 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-15 14:58 Mark Wielaard [this message]
2018-02-15 15:22 ` Dmitry V. Levin
2018-02-15 15:29   ` Mark Wielaard

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=1518705880-28552-1-git-send-email-mark@klomp.org \
    --to=mark@klomp.org \
    --cc=elfutils-devel@sourceware.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).