linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] FRV: Fix the extern declaration of kallsyms_num_syms [try #2]
@ 2007-11-13 16:53 David Howells
  2007-11-15 22:40 ` Andrew Morton
  2007-11-15 22:55 ` David Howells
  0 siblings, 2 replies; 4+ messages in thread
From: David Howells @ 2007-11-13 16:53 UTC (permalink / raw)
  To: torvalds, akpm; +Cc: linux-kernel, dhowells

From: David Howells <dhowells@redhat.com>

Fix the extern declaration of kallsyms_num_syms to indicate that the symbol
does not reside in the small-data storage space, and so may not be accessed
relative to the small data base register.

Signed-off-by: David Howells <dhowells@redhat.com>
---

 kernel/kallsyms.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
index 474219a..2fc2581 100644
--- a/kernel/kallsyms.c
+++ b/kernel/kallsyms.c
@@ -32,9 +32,14 @@
 
 /* These will be re-linked against their real values during the second link stage */
 extern const unsigned long kallsyms_addresses[] __attribute__((weak));
-extern const unsigned long kallsyms_num_syms __attribute__((weak));
 extern const u8 kallsyms_names[] __attribute__((weak));
 
+/* tell the compiler that the count isn't in the small data section if the arch
+ * has one (eg: FRV)
+ */
+extern const unsigned long kallsyms_num_syms
+__attribute__((weak, section(".rodata")));
+
 extern const u8 kallsyms_token_table[] __attribute__((weak));
 extern const u16 kallsyms_token_index[] __attribute__((weak));
 


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] FRV: Fix the extern declaration of kallsyms_num_syms [try #2]
  2007-11-13 16:53 [PATCH] FRV: Fix the extern declaration of kallsyms_num_syms [try #2] David Howells
@ 2007-11-15 22:40 ` Andrew Morton
  2007-11-15 22:44   ` Andrew Morton
  2007-11-15 22:55 ` David Howells
  1 sibling, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2007-11-15 22:40 UTC (permalink / raw)
  To: David Howells; +Cc: torvalds, linux-kernel, dhowells, Sam Ravnborg

On Tue, 13 Nov 2007 16:53:16 +0000
David Howells <dhowells@redhat.com> wrote:

> From: David Howells <dhowells@redhat.com>
> 
> Fix the extern declaration of kallsyms_num_syms to indicate that the symbol
> does not reside in the small-data storage space, and so may not be accessed
> relative to the small data base register.
> 
> Signed-off-by: David Howells <dhowells@redhat.com>
> ---
> 
>  kernel/kallsyms.c |    7 ++++++-
>  1 files changed, 6 insertions(+), 1 deletions(-)
> 
> diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
> index 474219a..2fc2581 100644
> --- a/kernel/kallsyms.c
> +++ b/kernel/kallsyms.c
> @@ -32,9 +32,14 @@
>  
>  /* These will be re-linked against their real values during the second link stage */
>  extern const unsigned long kallsyms_addresses[] __attribute__((weak));
> -extern const unsigned long kallsyms_num_syms __attribute__((weak));
>  extern const u8 kallsyms_names[] __attribute__((weak));
>  
> +/* tell the compiler that the count isn't in the small data section if the arch
> + * has one (eg: FRV)
> + */
> +extern const unsigned long kallsyms_num_syms
> +__attribute__((weak, section(".rodata")));
> +
>  extern const u8 kallsyms_token_table[] __attribute__((weak));
>  extern const u16 kallsyms_token_index[] __attribute__((weak));
>  

hm, OK, so it lines up with what scripts/kallsyms.c presently does.

But it all strikes me as a bit fragile and grotty.  Perhaps longer-term it
would be better if scripts/kallsyms.c were to also emit a header file which
declares all the things which that program emits the definitions of, no?

I guess that means that we'd need to run the program twice - once at the
start of compilation in generate-the-header-file mode and once at the end
of compilation in generate-the-symbols mode.

Or something like that.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] FRV: Fix the extern declaration of kallsyms_num_syms [try #2]
  2007-11-15 22:40 ` Andrew Morton
@ 2007-11-15 22:44   ` Andrew Morton
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Morton @ 2007-11-15 22:44 UTC (permalink / raw)
  To: dhowells, torvalds, linux-kernel, sam

On Thu, 15 Nov 2007 14:40:07 -0800
Andrew Morton <akpm@linux-foundation.org> wrote:

> But it all strikes me as a bit fragile and grotty.  Perhaps longer-term it
> would be better if scripts/kallsyms.c were to also emit a header file which
> declares all the things which that program emits the definitions of, no?
> 
> I guess that means that we'd need to run the program twice - once at the
> start of compilation in generate-the-header-file mode and once at the end
> of compilation in generate-the-symbols mode.

Although given that this header file will be the same each time that
program is run, we might as well just type the thing in.  And remember to
keep it in sync with changes to scritps/kallsyms output?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] FRV: Fix the extern declaration of kallsyms_num_syms [try #2]
  2007-11-13 16:53 [PATCH] FRV: Fix the extern declaration of kallsyms_num_syms [try #2] David Howells
  2007-11-15 22:40 ` Andrew Morton
@ 2007-11-15 22:55 ` David Howells
  1 sibling, 0 replies; 4+ messages in thread
From: David Howells @ 2007-11-15 22:55 UTC (permalink / raw)
  To: Andrew Morton; +Cc: dhowells, torvalds, linux-kernel, Sam Ravnborg

Andrew Morton <akpm@linux-foundation.org> wrote:

> hm, OK, so it lines up with what scripts/kallsyms.c presently does.

I'm sure there's a way to pass the kallsyms_num_syms value directly by way of
the linker rather than consigning it to a bit of memory.

The immediately obvious way is to declare it to be at an address that it the
symbol count value, and then C can do "&kallsyms_num_syms" to get at it.
Horrible, I know, but I'm not sure it's worse than some of the other stuff we
do.

David

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-11-15 22:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-11-13 16:53 [PATCH] FRV: Fix the extern declaration of kallsyms_num_syms [try #2] David Howells
2007-11-15 22:40 ` Andrew Morton
2007-11-15 22:44   ` Andrew Morton
2007-11-15 22:55 ` David Howells

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 NNTP newsgroup(s).