diff mbox

build: Add include check on syscall.h

Message ID 145401341105.13283.6918542543924796946.stgit@localhost
State New
Headers show

Commit Message

Lluís Vilanova Jan. 28, 2016, 8:36 p.m. UTC
The LTTng tracing backend includes the system's "syscall.h", but QEMU
replaces it with its own for linux-user builds. This results in a double
include on some targets (when LTTng is enabled).

Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
---
 linux-user/aarch64/syscall.h  |    5 +++++
 linux-user/alpha/syscall.h    |    5 +++++
 linux-user/arm/syscall.h      |    4 ++++
 linux-user/i386/syscall.h     |    5 +++++
 linux-user/m68k/syscall.h     |    4 ++++
 linux-user/mips/syscall.h     |    4 ++++
 linux-user/mips64/syscall.h   |    4 ++++
 linux-user/openrisc/syscall.h |    5 +++++
 linux-user/ppc/syscall.h      |    5 +++++
 linux-user/s390x/syscall.h    |    5 +++++
 linux-user/sh4/syscall.h      |    5 +++++
 linux-user/sparc/syscall.h    |    5 +++++
 linux-user/sparc64/syscall.h  |    5 +++++
 linux-user/x86_64/syscall.h   |    5 +++++
 14 files changed, 66 insertions(+)

Comments

Peter Maydell Jan. 29, 2016, 10:52 a.m. UTC | #1
On 28 January 2016 at 20:36, Lluís Vilanova <vilanova@ac.upc.edu> wrote:
> The LTTng tracing backend includes the system's "syscall.h", but QEMU
> replaces it with its own for linux-user builds. This results in a double
> include on some targets (when LTTng is enabled).
>
> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>

Adding include guards is fine, but it sounds to me like what we
should actually do to fix this confusion is rename all the linux-user
local headers to target_syscall.h.

thanks
-- PMM
Lluís Vilanova Jan. 29, 2016, 1:30 p.m. UTC | #2
Peter Maydell writes:

> On 28 January 2016 at 20:36, Lluís Vilanova <vilanova@ac.upc.edu> wrote:
>> The LTTng tracing backend includes the system's "syscall.h", but QEMU
>> replaces it with its own for linux-user builds. This results in a double
>> include on some targets (when LTTng is enabled).
>> 
>> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>

> Adding include guards is fine, but it sounds to me like what we
> should actually do to fix this confusion is rename all the linux-user
> local headers to target_syscall.h.

Hmmm, I didn't know if using the same name was on purpose or not. If the
intention was *not* to override the system's syscall.h, then a rename is the
proper solution.

Can you or someone else confirm this?

Thanks,
  Lluis
Peter Maydell Jan. 29, 2016, 1:40 p.m. UTC | #3
On 29 January 2016 at 13:30, Lluís Vilanova <vilanova@ac.upc.edu> wrote:
> Peter Maydell writes:
>> Adding include guards is fine, but it sounds to me like what we
>> should actually do to fix this confusion is rename all the linux-user
>> local headers to target_syscall.h.
>
> Hmmm, I didn't know if using the same name was on purpose or not. If the
> intention was *not* to override the system's syscall.h, then a rename is the
> proper solution.


Yes, the intention is absolutely not to override any system header
(the constants defined are only relevant to the guest, and if the
header got included and overrode the host's syscall.h then nothing
would work and it probably wouldn't even compile). It just ended up
with the same name by accident.

thanks
-- PMM
Lluís Vilanova Jan. 29, 2016, 2 p.m. UTC | #4
Peter Maydell writes:

> On 29 January 2016 at 13:30, Lluís Vilanova <vilanova@ac.upc.edu> wrote:
>> Peter Maydell writes:
>>> Adding include guards is fine, but it sounds to me like what we
>>> should actually do to fix this confusion is rename all the linux-user
>>> local headers to target_syscall.h.
>> 
>> Hmmm, I didn't know if using the same name was on purpose or not. If the
>> intention was *not* to override the system's syscall.h, then a rename is the
>> proper solution.


> Yes, the intention is absolutely not to override any system header
> (the constants defined are only relevant to the guest, and if the
> header got included and overrode the host's syscall.h then nothing
> would work and it probably wouldn't even compile). It just ended up
> with the same name by accident.

Aha, then I'll resend with the filles renamed.

Cheers,
  Lluis
diff mbox

Patch

diff --git a/linux-user/aarch64/syscall.h b/linux-user/aarch64/syscall.h
index dc72a15..b2e63c0 100644
--- a/linux-user/aarch64/syscall.h
+++ b/linux-user/aarch64/syscall.h
@@ -1,3 +1,6 @@ 
+#ifndef SYSCALL_H
+#define SYSCALL_H
+
 struct target_pt_regs {
     uint64_t        regs[31];
     uint64_t        sp;
@@ -11,3 +14,5 @@  struct target_pt_regs {
 #define TARGET_MINSIGSTKSZ       2048
 #define TARGET_MLOCKALL_MCL_CURRENT 1
 #define TARGET_MLOCKALL_MCL_FUTURE  2
+
+#endif  /* SYSCALL_H */
diff --git a/linux-user/alpha/syscall.h b/linux-user/alpha/syscall.h
index 245cff2..f3f7ee8 100644
--- a/linux-user/alpha/syscall.h
+++ b/linux-user/alpha/syscall.h
@@ -1,3 +1,6 @@ 
+#ifndef SYSCALL_H
+#define SYSCALL_H
+
 /* default linux values for the selectors */
 #define __USER_DS	(1)
 
@@ -255,3 +258,5 @@  struct target_pt_regs {
 #define TARGET_MINSIGSTKSZ              4096
 #define TARGET_MLOCKALL_MCL_CURRENT     0x2000
 #define TARGET_MLOCKALL_MCL_FUTURE      0x4000
+
+#endif  /* SYSCALL_H */
diff --git a/linux-user/arm/syscall.h b/linux-user/arm/syscall.h
index 3844a96..795b99e 100644
--- a/linux-user/arm/syscall.h
+++ b/linux-user/arm/syscall.h
@@ -1,3 +1,5 @@ 
+#ifndef SYSCALL_H
+#define SYSCALL_H
 
 /* this struct defines the way the registers are stored on the
    stack during a system call. */
@@ -48,3 +50,5 @@  struct target_pt_regs {
 #define TARGET_MINSIGSTKSZ 2048
 #define TARGET_MLOCKALL_MCL_CURRENT 1
 #define TARGET_MLOCKALL_MCL_FUTURE  2
+
+#endif  /* SYSCALL_H */
diff --git a/linux-user/i386/syscall.h b/linux-user/i386/syscall.h
index 906aaac..527789b 100644
--- a/linux-user/i386/syscall.h
+++ b/linux-user/i386/syscall.h
@@ -1,3 +1,6 @@ 
+#ifndef SYSCALL_H
+#define SYSCALL_H
+
 /* default linux values for the selectors */
 #define __USER_CS	(0x23)
 #define __USER_DS	(0x2B)
@@ -150,3 +153,5 @@  struct target_vm86plus_struct {
 #define TARGET_MINSIGSTKSZ 2048
 #define TARGET_MLOCKALL_MCL_CURRENT 1
 #define TARGET_MLOCKALL_MCL_FUTURE  2
+
+#endif  /* SYSCALL_H */
diff --git a/linux-user/m68k/syscall.h b/linux-user/m68k/syscall.h
index 9218493..16db513 100644
--- a/linux-user/m68k/syscall.h
+++ b/linux-user/m68k/syscall.h
@@ -1,3 +1,5 @@ 
+#ifndef SYSCALL_H
+#define SYSCALL_H
 
 /* this struct defines the way the registers are stored on the
    stack during a system call. */
@@ -23,3 +25,5 @@  struct target_pt_regs {
 #define TARGET_MLOCKALL_MCL_FUTURE  2
 
 void do_m68k_simcall(CPUM68KState *, int);
+
+#endif  /* SYSCALL_H */
diff --git a/linux-user/mips/syscall.h b/linux-user/mips/syscall.h
index 35ca23b..3d66419 100644
--- a/linux-user/mips/syscall.h
+++ b/linux-user/mips/syscall.h
@@ -1,3 +1,5 @@ 
+#ifndef SYSCALL_H
+#define SYSCALL_H
 
 /* this struct defines the way the registers are stored on the
    stack during a system call. */
@@ -231,3 +233,5 @@  struct target_pt_regs {
 #define TARGET_MINSIGSTKSZ 2048
 #define TARGET_MLOCKALL_MCL_CURRENT 1
 #define TARGET_MLOCKALL_MCL_FUTURE  2
+
+#endif  /* SYSCALL_H */
diff --git a/linux-user/mips64/syscall.h b/linux-user/mips64/syscall.h
index 6733107..850900b 100644
--- a/linux-user/mips64/syscall.h
+++ b/linux-user/mips64/syscall.h
@@ -1,3 +1,5 @@ 
+#ifndef SYSCALL_H
+#define SYSCALL_H
 
 /* this struct defines the way the registers are stored on the
    stack during a system call. */
@@ -228,3 +230,5 @@  struct target_pt_regs {
 #define TARGET_MINSIGSTKSZ      2048
 #define TARGET_MLOCKALL_MCL_CURRENT 1
 #define TARGET_MLOCKALL_MCL_FUTURE  2
+
+#endif  /* SYSCALL_H */
diff --git a/linux-user/openrisc/syscall.h b/linux-user/openrisc/syscall.h
index 8ac0365..dedec50 100644
--- a/linux-user/openrisc/syscall.h
+++ b/linux-user/openrisc/syscall.h
@@ -1,3 +1,6 @@ 
+#ifndef SYSCALL_H
+#define SYSCALL_H
+
 struct target_pt_regs {
     union {
         struct {
@@ -27,3 +30,5 @@  struct target_pt_regs {
 #define TARGET_MINSIGSTKSZ 2048
 #define TARGET_MLOCKALL_MCL_CURRENT 1
 #define TARGET_MLOCKALL_MCL_FUTURE  2
+
+#endif  /* SYSCALL_H */
diff --git a/linux-user/ppc/syscall.h b/linux-user/ppc/syscall.h
index 0daf5cd..eec5a5f 100644
--- a/linux-user/ppc/syscall.h
+++ b/linux-user/ppc/syscall.h
@@ -17,6 +17,9 @@ 
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
+#ifndef SYSCALL_H
+#define SYSCALL_H
+
 /* XXX: ABSOLUTELY BUGGY:
  * for now, this is quite just a cut-and-paste from i386 target...
  */
@@ -73,3 +76,5 @@  struct target_revectored_struct {
 #define TARGET_MINSIGSTKSZ 2048
 #define TARGET_MLOCKALL_MCL_CURRENT 0x2000
 #define TARGET_MLOCKALL_MCL_FUTURE  0x4000
+
+#endif  /* SYSCALL_H */
diff --git a/linux-user/s390x/syscall.h b/linux-user/s390x/syscall.h
index 35f170a..5dfb4eb 100644
--- a/linux-user/s390x/syscall.h
+++ b/linux-user/s390x/syscall.h
@@ -1,3 +1,6 @@ 
+#ifndef SYSCALL_H
+#define SYSCALL_H
+
 /* this typedef defines how a Program Status Word looks like */
 typedef struct {
     abi_ulong mask;
@@ -27,3 +30,5 @@  struct target_pt_regs {
 #define TARGET_MINSIGSTKSZ        2048
 #define TARGET_MLOCKALL_MCL_CURRENT 1
 #define TARGET_MLOCKALL_MCL_FUTURE  2
+
+#endif  /* SYSCALL_H */
diff --git a/linux-user/sh4/syscall.h b/linux-user/sh4/syscall.h
index 7aa4f23..3079965 100644
--- a/linux-user/sh4/syscall.h
+++ b/linux-user/sh4/syscall.h
@@ -1,3 +1,6 @@ 
+#ifndef SYSCALL_H
+#define SYSCALL_H
+
 struct target_pt_regs {
         unsigned long regs[16];
         unsigned long pc;
@@ -15,3 +18,5 @@  struct target_pt_regs {
 #define TARGET_MINSIGSTKSZ 2048
 #define TARGET_MLOCKALL_MCL_CURRENT 1
 #define TARGET_MLOCKALL_MCL_FUTURE  2
+
+#endif  /* SYSCALL_H */
diff --git a/linux-user/sparc/syscall.h b/linux-user/sparc/syscall.h
index 58573b9..1dea395 100644
--- a/linux-user/sparc/syscall.h
+++ b/linux-user/sparc/syscall.h
@@ -1,3 +1,6 @@ 
+#ifndef SYSCALL_H
+#define SYSCALL_H
+
 struct target_pt_regs {
 	abi_ulong psr;
 	abi_ulong pc;
@@ -18,3 +21,5 @@  struct target_pt_regs {
 #define TARGET_MINSIGSTKSZ      4096
 #define TARGET_MLOCKALL_MCL_CURRENT 0x2000
 #define TARGET_MLOCKALL_MCL_FUTURE  0x4000
+
+#endif  /* SYSCALL_H */
diff --git a/linux-user/sparc64/syscall.h b/linux-user/sparc64/syscall.h
index 8398d3f..6b52c72 100644
--- a/linux-user/sparc64/syscall.h
+++ b/linux-user/sparc64/syscall.h
@@ -1,3 +1,6 @@ 
+#ifndef SYSCALL_H
+#define SYSCALL_H
+
 struct target_pt_regs {
 	abi_ulong u_regs[16];
 	abi_ulong tstate;
@@ -19,3 +22,5 @@  struct target_pt_regs {
 #define TARGET_MINSIGSTKSZ      4096
 #define TARGET_MLOCKALL_MCL_CURRENT 0x2000
 #define TARGET_MLOCKALL_MCL_FUTURE  0x4000
+
+#endif  /* SYSCALL_H */
diff --git a/linux-user/x86_64/syscall.h b/linux-user/x86_64/syscall.h
index 88b3c3f..7e6b83b 100644
--- a/linux-user/x86_64/syscall.h
+++ b/linux-user/x86_64/syscall.h
@@ -1,3 +1,6 @@ 
+#ifndef SYSCALL_H
+#define SYSCALL_H
+
 #define __USER_CS	(0x33)
 #define __USER_DS	(0x2B)
 
@@ -100,3 +103,5 @@  struct target_msqid64_ds {
 #define TARGET_MINSIGSTKSZ 2048
 #define TARGET_MLOCKALL_MCL_CURRENT 1
 #define TARGET_MLOCKALL_MCL_FUTURE  2
+
+#endif  /* SYSCALL_H */