2009-07-08 02:42:18

by Parag Warudkar

[permalink] [raw]
Subject: [PATCH] elfcore.h : Fix UML build breakage

Commit a65e7bfcd74e4c0939f235d2bf9f48ddb3a57991 breaks UML build with
below error -

In file included from fs/proc/kcore.c:17:
include/linux/elfcore.h: In function ?elf_core_copy_task_regs?:
include/linux/elfcore.h:129: error: implicit declaration of function
?task_pt_regs?

Fix this by restoring the previous behavior of returning 0 for all arches
like UML that don't define task_pt_regs.

Signed-off-by: Parag Warudkar <[email protected]>

diff --git a/include/linux/elfcore.h b/include/linux/elfcore.h
index 03ec167..28f722e 100644
--- a/include/linux/elfcore.h
+++ b/include/linux/elfcore.h
@@ -125,7 +125,7 @@ static inline int elf_core_copy_task_regs(struct task_struct *t, elf_gregset_t*
#ifdef ELF_CORE_COPY_TASK_REGS

return ELF_CORE_COPY_TASK_REGS(t, elfregs);
-#else
+#elif defined task_pt_regs
elf_core_copy_regs(elfregs, task_pt_regs(t));
#endif
return 0;


2009-07-08 04:28:49

by Cong Wang

[permalink] [raw]
Subject: Re: [PATCH] elfcore.h : Fix UML build breakage

On Tue, Jul 07, 2009 at 10:41:50PM -0400, Parag Warudkar wrote:
>Commit a65e7bfcd74e4c0939f235d2bf9f48ddb3a57991 breaks UML build with
>below error -
>
>In file included from fs/proc/kcore.c:17:
>include/linux/elfcore.h: In function ‘elf_core_copy_task_regs’:
>include/linux/elfcore.h:129: error: implicit declaration of function
>‘task_pt_regs’
>
>Fix this by restoring the previous behavior of returning 0 for all arches
>like UML that don't define task_pt_regs.

Good catch!

>
>Signed-off-by: Parag Warudkar <[email protected]>
>
>diff --git a/include/linux/elfcore.h b/include/linux/elfcore.h
>index 03ec167..28f722e 100644
>--- a/include/linux/elfcore.h
>+++ b/include/linux/elfcore.h
>@@ -125,7 +125,7 @@ static inline int elf_core_copy_task_regs(struct task_struct *t, elf_gregset_t*
> #ifdef ELF_CORE_COPY_TASK_REGS
>
> return ELF_CORE_COPY_TASK_REGS(t, elfregs);
>-#else
>+#elif defined task_pt_regs
> elf_core_copy_regs(elfregs, task_pt_regs(t));
> #endif
> return 0;

#elif defined doesn't match #ifdef well, how about:

#if defined (ELF_CORE_COPY_TASK_REGS)
...
#elif defined (task_pt_regs)
...
#endif

?

Thank you.

2009-07-08 15:52:08

by Parag Warudkar

[permalink] [raw]
Subject: Re: [PATCH] elfcore.h : Fix UML build breakage



On Wed, 8 Jul 2009, Amerigo Wang wrote:

> On Tue, Jul 07, 2009 at 10:41:50PM -0400, Parag Warudkar wrote:
> >Commit a65e7bfcd74e4c0939f235d2bf9f48ddb3a57991 breaks UML build with
> >below error -
> >
> >In file included from fs/proc/kcore.c:17:
> >include/linux/elfcore.h: In function ‘elf_core_copy_task_regs’:
> >include/linux/elfcore.h:129: error: implicit declaration of function
> >‘task_pt_regs’
> >
> >Fix this by restoring the previous behavior of returning 0 for all arches
> >like UML that don't define task_pt_regs.

> #elif defined doesn't match #ifdef well, how about:
>
> #if defined (ELF_CORE_COPY_TASK_REGS)
> ...
> #elif defined (task_pt_regs)
> ...
> #endif

Updated patch below -

Fix UML build breakage due to commit
a65e7bfcd74e4c0939f235d2bf9f48ddb3a57991.

Signed-off-by: Parag Warudkar <[email protected]>

diff --git a/include/linux/elfcore.h b/include/linux/elfcore.h
index 03ec167..00d6a68 100644
--- a/include/linux/elfcore.h
+++ b/include/linux/elfcore.h
@@ -122,10 +122,9 @@ static inline void elf_core_copy_kernel_regs(elf_gregset_t *elfregs, struct pt_r

static inline int elf_core_copy_task_regs(struct task_struct *t, elf_gregset_t* elfregs)
{
-#ifdef ELF_CORE_COPY_TASK_REGS
-
+#if defined (ELF_CORE_COPY_TASK_REGS)
return ELF_CORE_COPY_TASK_REGS(t, elfregs);
-#else
+#elif defined (task_pt_regs)
elf_core_copy_regs(elfregs, task_pt_regs(t));
#endif
return 0;

2009-07-09 05:57:01

by Cong Wang

[permalink] [raw]
Subject: Re: [PATCH] elfcore.h : Fix UML build breakage

On Wed, Jul 08, 2009 at 11:46:02AM -0400, Parag Warudkar wrote:
>
>
>On Wed, 8 Jul 2009, Amerigo Wang wrote:
>
>> On Tue, Jul 07, 2009 at 10:41:50PM -0400, Parag Warudkar wrote:
>> >Commit a65e7bfcd74e4c0939f235d2bf9f48ddb3a57991 breaks UML build with
>> >below error -
>> >
>> >In file included from fs/proc/kcore.c:17:
>> >include/linux/elfcore.h: In function ‘elf_core_copy_task_regs’:
>> >include/linux/elfcore.h:129: error: implicit declaration of function
>> >‘task_pt_regs’
>> >
>> >Fix this by restoring the previous behavior of returning 0 for all arches
>> >like UML that don't define task_pt_regs.
>
>> #elif defined doesn't match #ifdef well, how about:
>>
>> #if defined (ELF_CORE_COPY_TASK_REGS)
>> ...
>> #elif defined (task_pt_regs)
>> ...
>> #endif
>
>Updated patch below -
>
>Fix UML build breakage due to commit
>a65e7bfcd74e4c0939f235d2bf9f48ddb3a57991.
>
>Signed-off-by: Parag Warudkar <[email protected]>
>


ACK. Thank you!

It looks like Linus already merged this...


>diff --git a/include/linux/elfcore.h b/include/linux/elfcore.h
>index 03ec167..00d6a68 100644
>--- a/include/linux/elfcore.h
>+++ b/include/linux/elfcore.h
>@@ -122,10 +122,9 @@ static inline void elf_core_copy_kernel_regs(elf_gregset_t *elfregs, struct pt_r
>
> static inline int elf_core_copy_task_regs(struct task_struct *t, elf_gregset_t* elfregs)
> {
>-#ifdef ELF_CORE_COPY_TASK_REGS
>-
>+#if defined (ELF_CORE_COPY_TASK_REGS)
> return ELF_CORE_COPY_TASK_REGS(t, elfregs);
>-#else
>+#elif defined (task_pt_regs)
> elf_core_copy_regs(elfregs, task_pt_regs(t));
> #endif
> return 0;