Hi all,
After merging the final tree, today's linux-next build (sparc32 defconfig)
failed like this:
drivers/misc/kgdbts.c: In function 'check_and_rewind_pc':
drivers/misc/kgdbts.c:307: error: implicit declaration of function 'instruction_pointer_set'
Caused by commit 63ab25ebbc50 ("kgdbts: unify/generalize gdb breakpoint
adjustment") from Linus' tree.
Lots of architectures do not use asm-generic/ptrace.h where
instruction_pointer_set() is defined.
I have reverted that commit for today.
This error was detected in our builds of the mmotm tree on May 14
(see http://kisskb.ellerman.id.au/kisskb/buildresult/4161286/).
--
Cheers,
Stephen Rothwell [email protected]
http://www.canb.auug.org.au/~sfr/
On Fri, May 27, 2011 at 01:11, Stephen Rothwell wrote:
> After merging the final tree, today's linux-next build (sparc32 defconfig)
> failed like this:
>
> drivers/misc/kgdbts.c: In function 'check_and_rewind_pc':
> drivers/misc/kgdbts.c:307: error: implicit declaration of function 'instruction_pointer_set'
>
> Caused by commit 63ab25ebbc50 ("kgdbts: unify/generalize gdb breakpoint
> adjustment") from Linus' tree.
>
> Lots of architectures do not use asm-generic/ptrace.h where
> instruction_pointer_set() is defined.
yes, but lots of arches dont implement kgdb, so it doesnt matter :).
i thought i got all of them, but i must have missed some, or new
arches showed up since i wrote the patches. i'll take a look later
today and send out a fix.
-mike
The new instruction_pointer_set helper is defined for people who have
converted to asm-generic/ptrace.h, so don't use it generally unless
the arch needs it (in which case it has been converted). This should
fix building of kgdb tests for arches not yet converted.
Signed-off-by: Mike Frysinger <[email protected]>
---
drivers/misc/kgdbts.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
index b0c5631..8cebec5 100644
--- a/drivers/misc/kgdbts.c
+++ b/drivers/misc/kgdbts.c
@@ -304,7 +304,10 @@ static int check_and_rewind_pc(char *put_str, char *arg)
return 1;
}
/* Readjust the instruction pointer if needed */
- instruction_pointer_set(&kgdbts_regs, ip + offset);
+ ip += offset;
+#ifdef GDB_ADJUSTS_BREAK_OFFSET
+ instruction_pointer_set(&kgdbts_regs, ip);
+#endif
return 0;
}
--
1.7.5.rc3
Hello.
On 28-05-2011 18:04, Mike Frysinger wrote:
> The new instruction_pointer_set helper is defined for people who have
> converted to asm-generic/ptrace.h, so don't use it generally unless
> the arch needs it (in which case it has been converted). This should
> fix building of kgdb tests for arches not yet converted.
> Signed-off-by: Mike Frysinger<[email protected]>
> ---
> drivers/misc/kgdbts.c | 5 ++++-
> 1 files changed, 4 insertions(+), 1 deletions(-)
> diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
> index b0c5631..8cebec5 100644
> --- a/drivers/misc/kgdbts.c
> +++ b/drivers/misc/kgdbts.c
> @@ -304,7 +304,10 @@ static int check_and_rewind_pc(char *put_str, char *arg)
> return 1;
> }
> /* Readjust the instruction pointer if needed */
> - instruction_pointer_set(&kgdbts_regs, ip + offset);
> + ip += offset;
Since '?p' is local, incrementing it is pointless here unless you have
GDB_ADJUSTS_BREAK_OFFSET defined. Why not keep instruction_pointer_set() call
as is?
> +#ifdef GDB_ADJUSTS_BREAK_OFFSET
> + instruction_pointer_set(&kgdbts_regs, ip);
> +#endif
> return 0;
> }
>
WBR, Sergei
On Mon, May 30, 2011 at 05:51, Sergei Shtylyov wrote:
> On 28-05-2011 18:04, Mike Frysinger wrote:
>> The new instruction_pointer_set helper is defined for people who have
>> converted to asm-generic/ptrace.h, so don't use it generally unless
>> the arch needs it (in which case it has been converted). This should
>> fix building of kgdb tests for arches not yet converted.
>
>> --- a/drivers/misc/kgdbts.c
>> +++ b/drivers/misc/kgdbts.c
>> @@ -304,7 +304,10 @@ static int check_and_rewind_pc(char *put_str, char
>> *arg)
>> return 1;
>> }
>> /* Readjust the instruction pointer if needed */
>> - instruction_pointer_set(&kgdbts_regs, ip + offset);
>> + ip += offset;
>
> Since 'íp' is local, incrementing it is pointless here unless you have
> GDB_ADJUSTS_BREAK_OFFSET defined. Why not keep instruction_pointer_set()
> call as is?
i prefer to have as much outside of ifdefs as possible. gcc optimizes
the result away, so it isnt a code size problem.
-mike
On Mon, 30 May 2011 12:28:17 -0400 Mike Frysinger <[email protected]> wrote:
>
> i prefer to have as much outside of ifdefs as possible. gcc optimizes
> the result away, so it isnt a code size problem.
Can we just get a patch sent to Linus, please? His tree has now been
broken for powerpc and sparc32 for 5 days :-(
It would have been nice if the original patch had been in linux-next at
some point (especially given that I have a "kgdb" tree in linux-next).
/me just slightly annoyed.
Linus, the fix patch is below (I have applied it to linux-next today):
From: Mike Frysinger <[email protected]>
To: [email protected],
Jason Wessel <[email protected]>,
Andrew Morton <[email protected]>
Cc: [email protected], [email protected]
Subject: [PATCH] kgdbts: only use new asm-generic/ptrace.h api when needed
Date: Sat, 28 May 2011 10:04:25 -0400
The new instruction_pointer_set helper is defined for people who have
converted to asm-generic/ptrace.h, so don't use it generally unless
the arch needs it (in which case it has been converted). This should
fix building of kgdb tests for arches not yet converted.
Signed-off-by: Mike Frysinger <[email protected]>
---
drivers/misc/kgdbts.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
index b0c5631..8cebec5 100644
--- a/drivers/misc/kgdbts.c
+++ b/drivers/misc/kgdbts.c
@@ -304,7 +304,10 @@ static int check_and_rewind_pc(char *put_str, char *arg)
return 1;
}
/* Readjust the instruction pointer if needed */
- instruction_pointer_set(&kgdbts_regs, ip + offset);
+ ip += offset;
+#ifdef GDB_ADJUSTS_BREAK_OFFSET
+ instruction_pointer_set(&kgdbts_regs, ip);
+#endif
return 0;
}
--
1.7.5.rc3
--
Cheers,
Stephen Rothwell [email protected]
http://www.canb.auug.org.au/~sfr/
On Tue, May 31, 2011 at 20:11, Stephen Rothwell wrote:
> It would have been nice if the original patch had been in linux-next at
> some point (especially given that I have a "kgdb" tree in linux-next).
complain to akpm. the patches sat in his tree for some time with no complaints.
-mike