public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH} H8/300 update (2/9) ldscripts fix
@ 2004-05-11 16:36 Yoshinori Sato
  2004-05-12  0:10 ` Andrew Morton
  2004-05-12  0:51 ` Andrew Morton
  0 siblings, 2 replies; 4+ messages in thread
From: Yoshinori Sato @ 2004-05-11 16:36 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux kernel Mailing List

- symbol prefix (use h8300 and v850) support
- include headers

-- 
Yoshinori Sato
<ysato@users.sourceforge.jp>

diff -Nru linux-2.6.6/arch/h8300/kernel/vmlinux.lds.S linux-2.6.6-h8300/arch/h8300/kernel/vmlinux.lds.S
--- linux-2.6.6/arch/h8300/kernel/vmlinux.lds.S	2004-05-11 14:30:44.000000000 +0900
+++ linux-2.6.6-h8300/arch/h8300/kernel/vmlinux.lds.S	2004-05-11 21:04:14.000000000 +0900
@@ -1,3 +1,5 @@
+#include <asm-generic/vmlinux.lds.h>
+#include <asm/thread_info.h>
 #include <linux/config.h>
 
 #ifdef CONFIG_H8300H_GENERIC
diff -Nru linux-2.6.6/include/asm-generic/vmlinux.lds.h linux-2.6.6-h8300/include/asm-generic/vmlinux.lds.h
--- linux-2.6.6/include/asm-generic/vmlinux.lds.h	2004-05-11 14:30:47.000000000 +0900
+++ linux-2.6.6-h8300/include/asm-generic/vmlinux.lds.h	2004-05-11 23:03:42.000000000 +0900
@@ -1,7 +1,15 @@
+#include <linux/config.h>
+
 #ifndef LOAD_OFFSET
 #define LOAD_OFFSET 0
 #endif
 
+#if defined(CONFIG_H8300) || defined(CONFIG_V850)
+#define SYMBOL(_sym_) _##_sym_
+#else
+#define SYMBOL(_sym_) _sym_
+#endif
+
 #define RODATA								\
 	.rodata           : AT(ADDR(.rodata) - LOAD_OFFSET) {		\
 		*(.rodata) *(.rodata.*)					\
@@ -14,30 +22,30 @@
 									\
 	/* Kernel symbol table: Normal symbols */			\
 	__ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {		\
-		__start___ksymtab = .;					\
+		SYMBOL(__start___ksymtab) = .;				\
 		*(__ksymtab)						\
-		__stop___ksymtab = .;					\
+		SYMBOL(__stop___ksymtab) = .;				\
 	}								\
 									\
 	/* Kernel symbol table: GPL-only symbols */			\
 	__ksymtab_gpl     : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) {	\
-		__start___ksymtab_gpl = .;				\
+		SYMBOL(__start___ksymtab_gpl) = .;			\
 		*(__ksymtab_gpl)					\
-		__stop___ksymtab_gpl = .;				\
+		SYMBOL(__stop___ksymtab_gpl) = .;			\
 	}								\
 									\
 	/* Kernel symbol table: Normal symbols */			\
 	__kcrctab         : AT(ADDR(__kcrctab) - LOAD_OFFSET) {		\
-		__start___kcrctab = .;					\
+		SYMBOL(__start___kcrctab) = .;				\
 		*(__kcrctab)						\
-		__stop___kcrctab = .;					\
+		SYMBOL(__stop___kcrctab) = .;				\
 	}								\
 									\
 	/* Kernel symbol table: GPL-only symbols */			\
 	__kcrctab_gpl     : AT(ADDR(__kcrctab_gpl) - LOAD_OFFSET) {	\
-		__start___kcrctab_gpl = .;				\
+		SYMBOL(__start___kcrctab_gpl) = .;			\
 		*(__kcrctab_gpl)					\
-		__stop___kcrctab_gpl = .;				\
+		SYMBOL(__stop___kcrctab_gpl) = .;			\
 	}								\
 									\
 	/* Kernel symbol table: strings */				\
@@ -47,12 +55,12 @@
 
 #define SECURITY_INIT							\
 	.security_initcall.init : {					\
-		__security_initcall_start = .;				\
+		SYMBOL(__security_initcall_start) = .;			\
 		*(.security_initcall.init) 				\
 		__security_initcall_end = .;				\
 	}
 
 #define SCHED_TEXT							\
-		__scheduling_functions_start_here = .;			\
+		SYMBOL(__scheduling_functions_start_here) = .;		\
 		*(.sched.text)						\
-		__scheduling_functions_end_here = .;
+		SYMBOL(__scheduling_functions_end_here) = .;

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

* Re: [PATCH} H8/300 update (2/9) ldscripts fix
  2004-05-11 16:36 [PATCH} H8/300 update (2/9) ldscripts fix Yoshinori Sato
@ 2004-05-12  0:10 ` Andrew Morton
  2004-05-12  0:51 ` Andrew Morton
  1 sibling, 0 replies; 4+ messages in thread
From: Andrew Morton @ 2004-05-12  0:10 UTC (permalink / raw)
  To: Yoshinori Sato; +Cc: torvalds, linux-kernel

Yoshinori Sato <ysato@users.sourceforge.jp> wrote:
>
> - symbol prefix (use h8300 and v850) support
> - include headers

This generates a reject agaisnt Linus's current
include/asm-generic/vmlinux.lds.h due to post-2.6.6 changes.

I fixed it up as below.

But I am wondering about this:

  #define SECURITY_INIT							\
  	.security_initcall.init : {					\
+ 		SYMBOL(__security_initcall_start) = .;			\
  		*(.security_initcall.init) 				\
  		__security_initcall_end = .;				\
  	}

Shouldn't __security_initcall_end also have a SYMBOL() wrapper?




From: Yoshinori Sato <ysato@users.sourceforge.jp>

- symbol prefix (use h8300 and v850) support
- include headers


---

 25-akpm/arch/h8300/kernel/vmlinux.lds.S   |    2 ++
 25-akpm/include/asm-generic/vmlinux.lds.h |   30 +++++++++++++++++++-----------
 2 files changed, 21 insertions(+), 11 deletions(-)

diff -puN arch/h8300/kernel/vmlinux.lds.S~h8-300-update-2-9-ldscripts-fix arch/h8300/kernel/vmlinux.lds.S
--- 25/arch/h8300/kernel/vmlinux.lds.S~h8-300-update-2-9-ldscripts-fix	Tue May 11 17:06:30 2004
+++ 25-akpm/arch/h8300/kernel/vmlinux.lds.S	Tue May 11 17:06:30 2004
@@ -1,3 +1,5 @@
+#include <asm-generic/vmlinux.lds.h>
+#include <asm/thread_info.h>
 #include <linux/config.h>
 
 #ifdef CONFIG_H8300H_GENERIC
diff -puN include/asm-generic/vmlinux.lds.h~h8-300-update-2-9-ldscripts-fix include/asm-generic/vmlinux.lds.h
--- 25/include/asm-generic/vmlinux.lds.h~h8-300-update-2-9-ldscripts-fix	Tue May 11 17:06:30 2004
+++ 25-akpm/include/asm-generic/vmlinux.lds.h	Tue May 11 17:08:18 2004
@@ -1,7 +1,15 @@
+#include <linux/config.h>
+
 #ifndef LOAD_OFFSET
 #define LOAD_OFFSET 0
 #endif
 
+#if defined(CONFIG_H8300) || defined(CONFIG_V850)
+#define SYMBOL(_sym_) _##_sym_
+#else
+#define SYMBOL(_sym_) _sym_
+#endif
+
 #define RODATA								\
 	.rodata           : AT(ADDR(.rodata) - LOAD_OFFSET) {		\
 		*(.rodata) *(.rodata.*)					\
@@ -14,30 +22,30 @@
 									\
 	/* Kernel symbol table: Normal symbols */			\
 	__ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {		\
-		__start___ksymtab = .;					\
+		SYMBOL(__start___ksymtab) = .;				\
 		*(__ksymtab)						\
-		__stop___ksymtab = .;					\
+		SYMBOL(__stop___ksymtab) = .;				\
 	}								\
 									\
 	/* Kernel symbol table: GPL-only symbols */			\
 	__ksymtab_gpl     : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) {	\
-		__start___ksymtab_gpl = .;				\
+		SYMBOL(__start___ksymtab_gpl) = .;			\
 		*(__ksymtab_gpl)					\
-		__stop___ksymtab_gpl = .;				\
+		SYMBOL(__stop___ksymtab_gpl) = .;			\
 	}								\
 									\
 	/* Kernel symbol table: Normal symbols */			\
 	__kcrctab         : AT(ADDR(__kcrctab) - LOAD_OFFSET) {		\
-		__start___kcrctab = .;					\
+		SYMBOL(__start___kcrctab) = .;				\
 		*(__kcrctab)						\
-		__stop___kcrctab = .;					\
+		SYMBOL(__stop___kcrctab) = .;				\
 	}								\
 									\
 	/* Kernel symbol table: GPL-only symbols */			\
 	__kcrctab_gpl     : AT(ADDR(__kcrctab_gpl) - LOAD_OFFSET) {	\
-		__start___kcrctab_gpl = .;				\
+		SYMBOL(__start___kcrctab_gpl) = .;			\
 		*(__kcrctab_gpl)					\
-		__stop___kcrctab_gpl = .;				\
+		SYMBOL(__stop___kcrctab_gpl) = .;			\
 	}								\
 									\
 	/* Kernel symbol table: strings */				\
@@ -47,12 +55,12 @@
 
 #define SECURITY_INIT							\
 	.security_initcall.init : {					\
-		__security_initcall_start = .;				\
+		SYMBOL(__security_initcall_start) = .;			\
 		*(.security_initcall.init) 				\
 		__security_initcall_end = .;				\
 	}
 
 #define SCHED_TEXT							\
-		__sched_text_start = .;					\
+		SYMBOL(__sched_text_start) = .;				\
 		*(.sched.text)						\
-		__sched_text_end = .;
+		SYMBOL(__sched_text_end) = .;

_


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

* Re: [PATCH} H8/300 update (2/9) ldscripts fix
  2004-05-11 16:36 [PATCH} H8/300 update (2/9) ldscripts fix Yoshinori Sato
  2004-05-12  0:10 ` Andrew Morton
@ 2004-05-12  0:51 ` Andrew Morton
  2004-05-12 14:19   ` Yoshinori Sato
  1 sibling, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2004-05-12  0:51 UTC (permalink / raw)
  To: Yoshinori Sato; +Cc: torvalds, linux-kernel

Yoshinori Sato <ysato@users.sourceforge.jp> wrote:
>
> +#if defined(CONFIG_H8300) || defined(CONFIG_V850)
> +#define SYMBOL(_sym_) _##_sym_
> +#else
> +#define SYMBOL(_sym_) _sym_
> +#endif
> +

Adding arch-specific stuff to an include/asm-generic/ header file is
not nice.

However, having to create an arch-specific version of the header
just becasue you need this wrapper is also not nice.

And "SYMBOL" is a too generic identifier: it may clash with other things.


Could I suggest that you change asm-generic/vmlinux.lds.h to do:

#ifndef VMLINUX_SYMBOL
#define VMLINUX_SYMBOL(_sym_) _sym_
#endif

	...

-		__start___ksymtab = .;					\
+		VMLINUX_SYMBOL(__start___ksymtab) = .;			\


Then, in some h8300-specific file, do:

	#define VMLINUX_SYMBOL(_sym_) _##_sym_
	#include <asm-generic/vmlinux.lds.h>

and include that file instead of asm-generic/vmlinux.lds.h?

(I am unable to find where h8300 actually includes vmlinux.lds.h. 
Confused).


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

* Re: [PATCH} H8/300 update (2/9) ldscripts fix
  2004-05-12  0:51 ` Andrew Morton
@ 2004-05-12 14:19   ` Yoshinori Sato
  0 siblings, 0 replies; 4+ messages in thread
From: Yoshinori Sato @ 2004-05-12 14:19 UTC (permalink / raw)
  To: Andrew Morton; +Cc: torvalds, linux-kernel

I corrected it.

-- 
Yoshinori Sato
<ysato@users.sourceforge.jp>

diff -Nru linux-2.6.6/arch/h8300/kernel/vmlinux.lds.S linux-2.6.6-h8300/arch/h8300/kernel/vmlinux.lds.S
--- linux-2.6.6/arch/h8300/kernel/vmlinux.lds.S	11 May 2004 02:16:05 -0000
+++ linux-2.6.6-h8300/arch/h8300/kernel/vmlinux.lds.S	12 May 2004 12:30:04 -0000
@@ -1,3 +1,6 @@
+#define VMLINUX_SYMBOL(_sym_) _##_sym_
+#include <asm-generic/vmlinux.lds.h>
+#include <asm/thread_info.h>
 #include <linux/config.h>
 
 #ifdef CONFIG_H8300H_GENERIC
diff -Nru linux-2.6.6/arch/v850/kernel/vmlinux.lds.S linux-2.6.6-h8300/arch/v850/kernel/vmlinux.lds.S
--- linux-2.6.6/arch/v850/kernel/vmlinux.lds.S	11 May 2004 02:16:06 -0000
+++ linux-2.6.6-h8300/arch/v850/kernel/vmlinux.lds.S	12 May 2004 12:30:15 -0000
@@ -12,6 +12,7 @@
  */
 
 #include <linux/config.h>
+#define VMLINUX_SYMBOL(_sym_) _##_sym_
 #include <asm-generic/vmlinux.lds.h>
 
 /* For most platforms, this will define useful things like RAM addr/size.  */
diff -Nru linux-2.6.6/include/asm-generic/vmlinux.lds.h linux-2.6.6-h8300/include/asm-generic/vmlinux.lds.h
--- linux-2.6.6/include/asm-generic/vmlinux.lds.h	11 May 2004 02:16:29 -0000
+++ linux-2.6.6-h8300/include/asm-generic/vmlinux.lds.h	12 May 2004 12:29:44 -0000
@@ -2,6 +2,10 @@
 #define LOAD_OFFSET 0
 #endif
 
+#ifndef VMLINUX_SYMBOL
+#define VMLINUX_SYMBOL(_sym_) _sym_
+#endif
+
 #define RODATA								\
 	.rodata           : AT(ADDR(.rodata) - LOAD_OFFSET) {		\
 		*(.rodata) *(.rodata.*)					\
@@ -14,30 +18,30 @@
 									\
 	/* Kernel symbol table: Normal symbols */			\
 	__ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {		\
-		__start___ksymtab = .;					\
+		VMLINUX_SYMBOL(__start___ksymtab) = .;			\
 		*(__ksymtab)						\
-		__stop___ksymtab = .;					\
+		VMLINUX_SYMBOL(__stop___ksymtab) = .;			\
 	}								\
 									\
 	/* Kernel symbol table: GPL-only symbols */			\
 	__ksymtab_gpl     : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) {	\
-		__start___ksymtab_gpl = .;				\
+		VMLINUX_SYMBOL(__start___ksymtab_gpl) = .;		\
 		*(__ksymtab_gpl)					\
-		__stop___ksymtab_gpl = .;				\
+		VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .;		\
 	}								\
 									\
 	/* Kernel symbol table: Normal symbols */			\
 	__kcrctab         : AT(ADDR(__kcrctab) - LOAD_OFFSET) {		\
-		__start___kcrctab = .;					\
+		VMLINUX_SYMBOL(__start___kcrctab) = .;			\
 		*(__kcrctab)						\
-		__stop___kcrctab = .;					\
+		VMLINUX_SYMBOL(__stop___kcrctab) = .;			\
 	}								\
 									\
 	/* Kernel symbol table: GPL-only symbols */			\
 	__kcrctab_gpl     : AT(ADDR(__kcrctab_gpl) - LOAD_OFFSET) {	\
-		__start___kcrctab_gpl = .;				\
+		VMLINUX_SYMBOL(__start___kcrctab_gpl) = .;		\
 		*(__kcrctab_gpl)					\
-		__stop___kcrctab_gpl = .;				\
+		VMLINUX_SYMBOL(__stop___kcrctab_gpl) = .;		\
 	}								\
 									\
 	/* Kernel symbol table: strings */				\
@@ -47,12 +51,12 @@
 
 #define SECURITY_INIT							\
 	.security_initcall.init : {					\
-		__security_initcall_start = .;				\
+		VMLINUX_SYMBOL(__security_initcall_start) = .;		\
 		*(.security_initcall.init) 				\
-		__security_initcall_end = .;				\
+		VMLINUX_SYMBOL(__security_initcall_end) = .;		\
 	}
 
 #define SCHED_TEXT							\
-		__sched_text_start = .;					\
+		VMLINUX_SYMBOL(__sched_text_start) = .;			\
 		*(.sched.text)						\
-		__sched_text_end = .;
+		VMLINUX_SYMBOL(__sched_text_end) = .;

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

end of thread, other threads:[~2004-05-12 14:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-05-11 16:36 [PATCH} H8/300 update (2/9) ldscripts fix Yoshinori Sato
2004-05-12  0:10 ` Andrew Morton
2004-05-12  0:51 ` Andrew Morton
2004-05-12 14:19   ` Yoshinori Sato

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox