2012-10-10 22:04:34

by Richard Weinberger

[permalink] [raw]
Subject: [PATCH] Include asm/siginfo.h in linux/coredump.h

commit 5ab1c30 (coredump: pass siginfo_t* to do_coredump() and below, not merely signr)
added siginfo_t to linux/coredump.h but forgot to include asm/siginfo.h.
This breaks the build for UML/i386.
(And any other arch where asm/siginfo.h is not magically preincluded...)

In file included from arch/x86/um/elfcore.c:2:0:
include/linux/coredump.h:15:25: error: unknown type name 'siginfo_t'
make[1]: *** [arch/x86/um/elfcore.o] Error 1

Cc: Denys Vlasenko <[email protected]>
Cc: Oleg Nesterov <[email protected]>
Cc: Amerigo Wang <[email protected]>
Cc: "Jonathan M. Foote" <[email protected]>
Cc: Roland McGrath <[email protected]>
Cc: Pedro Alves <[email protected]>
Cc: Fengguang Wu <[email protected]>
Cc: Stephen Rothwell <[email protected]>
Cc: Andrew Morton <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
---
include/linux/coredump.h | 1 +
1 file changed, 1 insertion(+)

diff --git a/include/linux/coredump.h b/include/linux/coredump.h
index 1775eb8..1d73993 100644
--- a/include/linux/coredump.h
+++ b/include/linux/coredump.h
@@ -4,6 +4,7 @@
#include <linux/types.h>
#include <linux/mm.h>
#include <linux/fs.h>
+#include <asm/siginfo.h>

/*
* These are the only things you should do on a core-file: use only these
--
1.7.12.1


2012-10-10 22:17:05

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] Include asm/siginfo.h in linux/coredump.h

On Thu, 11 Oct 2012 00:04:07 +0200
Richard Weinberger <[email protected]> wrote:

> commit 5ab1c30 (coredump: pass siginfo_t* to do_coredump() and below, not merely signr)
> added siginfo_t to linux/coredump.h but forgot to include asm/siginfo.h.
> This breaks the build for UML/i386.
> (And any other arch where asm/siginfo.h is not magically preincluded...)
>
> In file included from arch/x86/um/elfcore.c:2:0:
> include/linux/coredump.h:15:25: error: unknown type name 'siginfo_t'
> make[1]: *** [arch/x86/um/elfcore.o] Error 1
>
> Cc: Denys Vlasenko <[email protected]>
> Cc: Oleg Nesterov <[email protected]>
> Cc: Amerigo Wang <[email protected]>
> Cc: "Jonathan M. Foote" <[email protected]>
> Cc: Roland McGrath <[email protected]>
> Cc: Pedro Alves <[email protected]>
> Cc: Fengguang Wu <[email protected]>
> Cc: Stephen Rothwell <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Signed-off-by: Richard Weinberger <[email protected]>
> ---
> include/linux/coredump.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/include/linux/coredump.h b/include/linux/coredump.h
> index 1775eb8..1d73993 100644
> --- a/include/linux/coredump.h
> +++ b/include/linux/coredump.h
> @@ -4,6 +4,7 @@
> #include <linux/types.h>
> #include <linux/mm.h>
> #include <linux/fs.h>
> +#include <asm/siginfo.h>
>
> /*
> * These are the only things you should do on a core-file: use only these

hm, yes. It would be nice to jsut forward-declare the struct but we
can't do that because it's a pesky typedef.

I wonder if it would be cleaner to just include linux/signal.h? Diving
down into the arch layer is a bit unusual. Doesn't matter, I guess.

2012-10-10 22:21:11

by Richard Weinberger

[permalink] [raw]
Subject: Re: [PATCH] Include asm/siginfo.h in linux/coredump.h

Am Wed, 10 Oct 2012 15:16:59 -0700
schrieb Andrew Morton <[email protected]>:

> On Thu, 11 Oct 2012 00:04:07 +0200
> Richard Weinberger <[email protected]> wrote:
>
> > commit 5ab1c30 (coredump: pass siginfo_t* to do_coredump() and
> > below, not merely signr) added siginfo_t to linux/coredump.h but
> > forgot to include asm/siginfo.h. This breaks the build for UML/i386.
> > (And any other arch where asm/siginfo.h is not magically
> > preincluded...)
> >
> > In file included from arch/x86/um/elfcore.c:2:0:
> > include/linux/coredump.h:15:25: error: unknown type name 'siginfo_t'
> > make[1]: *** [arch/x86/um/elfcore.o] Error 1
> >
> > Cc: Denys Vlasenko <[email protected]>
> > Cc: Oleg Nesterov <[email protected]>
> > Cc: Amerigo Wang <[email protected]>
> > Cc: "Jonathan M. Foote" <[email protected]>
> > Cc: Roland McGrath <[email protected]>
> > Cc: Pedro Alves <[email protected]>
> > Cc: Fengguang Wu <[email protected]>
> > Cc: Stephen Rothwell <[email protected]>
> > Cc: Andrew Morton <[email protected]>
> > Signed-off-by: Richard Weinberger <[email protected]>
> > ---
> > include/linux/coredump.h | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/include/linux/coredump.h b/include/linux/coredump.h
> > index 1775eb8..1d73993 100644
> > --- a/include/linux/coredump.h
> > +++ b/include/linux/coredump.h
> > @@ -4,6 +4,7 @@
> > #include <linux/types.h>
> > #include <linux/mm.h>
> > #include <linux/fs.h>
> > +#include <asm/siginfo.h>
> >
> > /*
> > * These are the only things you should do on a core-file: use
> > only these
>
> hm, yes. It would be nice to jsut forward-declare the struct but we
> can't do that because it's a pesky typedef.

I know. :-\

> I wonder if it would be cleaner to just include linux/signal.h?
> Diving down into the arch layer is a bit unusual. Doesn't matter, I
> guess.

I chose asm/siginfo.h because other users of siginfo_t also just
include this file and linux/signal.h includes much more than we
actually need...

Thanks,
//richard

2012-10-10 22:34:53

by Roland McGrath

[permalink] [raw]
Subject: Re: [PATCH] Include asm/siginfo.h in linux/coredump.h

There are other cases that just forward declare 'struct siginfo' and use it
instead of the typedef names (e.g. linux/sched.h).