All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] kernel: Assembly: need add prefix for h8300 architecture.
@ 2013-08-26 10:42 Chen Gang
  2013-08-26 10:46 ` Chen Gang
  0 siblings, 1 reply; 8+ messages in thread
From: Chen Gang @ 2013-08-26 10:42 UTC (permalink / raw)
  To: Geert Uytterhoeven, Yoshinori Sato, James Hogan, Rusty Russell,
	Takashi Iwai
  Cc: linux-kernel

Need add related prefix for h8300, or can not pass compiling by the
latest linker.

The related error (allmodconfig for h8300):

  /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `usr/initramfs_data.o' is incompatible with h8300h output
  /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `kernel/modsign_certificate.o' is incompatible with h8300h output

The cross-compiler's information:

  [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-ld -v
  GNU ld (GNU Binutils) 2.22
  [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-as -v
  GNU assembler version 2.22 (h8300-gchen-elf) using BFD version (GNU Binutils) 2.22
  
  [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-gcc -v
  Using built-in specs.
  COLLECT_GCC=/usr/local/bin/h8300-gchen-elf-gcc
  COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/h8300-gchen-elf/4.8.0/lto-wrapper
  Target: h8300-gchen-elf
  Configured with: ../gcc-4.8.0/configure --target=h8300-gchen-elf --without-header --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no
  Thread model: single
  gcc version 4.8.0 (GCC) 


Signed-off-by: Chen Gang <gang.chen@asianux.com>
---
 kernel/modsign_certificate.S |    7 +++++++
 usr/initramfs_data.S         |    7 +++++++
 2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/kernel/modsign_certificate.S b/kernel/modsign_certificate.S
index 4a9a86d..d24acac 100644
--- a/kernel/modsign_certificate.S
+++ b/kernel/modsign_certificate.S
@@ -1,5 +1,12 @@
 #include <linux/export.h>
 
+#if defined(CONFIG_CPU_H8300H)
+	.h8300h
+#endif
+#if defined(CONFIG_CPU_H8S)
+	.h8300s
+#endif
+
 #define GLOBAL(name)	\
 	.globl VMLINUX_SYMBOL(name);	\
 	VMLINUX_SYMBOL(name):
diff --git a/usr/initramfs_data.S b/usr/initramfs_data.S
index c14322d..6a6c106 100644
--- a/usr/initramfs_data.S
+++ b/usr/initramfs_data.S
@@ -24,6 +24,13 @@
 #include <linux/stringify.h>
 #include <asm-generic/vmlinux.lds.h>
 
+#if defined(CONFIG_CPU_H8300H)
+	.h8300h
+#endif
+#if defined(CONFIG_CPU_H8S)
+	.h8300s
+#endif
+
 .section .init.ramfs,"a"
 __irf_start:
 .incbin __stringify(INITRAMFS_IMAGE)
-- 
1.7.7.6

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

* Re: [PATCH] kernel: Assembly: need add prefix for h8300 architecture.
  2013-08-26 10:42 [PATCH] kernel: Assembly: need add prefix for h8300 architecture Chen Gang
@ 2013-08-26 10:46 ` Chen Gang
  2013-08-27  2:14   ` Chen Gang
  2013-08-27  5:12   ` [PATCH] kernel: Assembly: need add prefix for h8300 architecture Rusty Russell
  0 siblings, 2 replies; 8+ messages in thread
From: Chen Gang @ 2013-08-26 10:46 UTC (permalink / raw)
  To: Geert Uytterhoeven, Yoshinori Sato, James Hogan, Rusty Russell,
	Takashi Iwai
  Cc: linux-kernel


If this implementation is correct, the implementation still can be
improved (at least, it is not quite well to hard code the architecture
related code in "kernel/" and "usr/" sub-directory).

But it seems, I have no right to add or move files, so welcome any
members help do it.

And welcome any additional suggestions or completions.

Thanks.

On 08/26/2013 06:42 PM, Chen Gang wrote:
> Need add related prefix for h8300, or can not pass compiling by the
> latest linker.
> 
> The related error (allmodconfig for h8300):
> 
>   /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `usr/initramfs_data.o' is incompatible with h8300h output
>   /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `kernel/modsign_certificate.o' is incompatible with h8300h output
> 
> The cross-compiler's information:
> 
>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-ld -v
>   GNU ld (GNU Binutils) 2.22
>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-as -v
>   GNU assembler version 2.22 (h8300-gchen-elf) using BFD version (GNU Binutils) 2.22
>   
>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-gcc -v
>   Using built-in specs.
>   COLLECT_GCC=/usr/local/bin/h8300-gchen-elf-gcc
>   COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/h8300-gchen-elf/4.8.0/lto-wrapper
>   Target: h8300-gchen-elf
>   Configured with: ../gcc-4.8.0/configure --target=h8300-gchen-elf --without-header --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no
>   Thread model: single
>   gcc version 4.8.0 (GCC) 
> 
> 
> Signed-off-by: Chen Gang <gang.chen@asianux.com>
> ---
>  kernel/modsign_certificate.S |    7 +++++++
>  usr/initramfs_data.S         |    7 +++++++
>  2 files changed, 14 insertions(+), 0 deletions(-)
> 
> diff --git a/kernel/modsign_certificate.S b/kernel/modsign_certificate.S
> index 4a9a86d..d24acac 100644
> --- a/kernel/modsign_certificate.S
> +++ b/kernel/modsign_certificate.S
> @@ -1,5 +1,12 @@
>  #include <linux/export.h>
>  
> +#if defined(CONFIG_CPU_H8300H)
> +	.h8300h
> +#endif
> +#if defined(CONFIG_CPU_H8S)
> +	.h8300s
> +#endif
> +
>  #define GLOBAL(name)	\
>  	.globl VMLINUX_SYMBOL(name);	\
>  	VMLINUX_SYMBOL(name):
> diff --git a/usr/initramfs_data.S b/usr/initramfs_data.S
> index c14322d..6a6c106 100644
> --- a/usr/initramfs_data.S
> +++ b/usr/initramfs_data.S
> @@ -24,6 +24,13 @@
>  #include <linux/stringify.h>
>  #include <asm-generic/vmlinux.lds.h>
>  
> +#if defined(CONFIG_CPU_H8300H)
> +	.h8300h
> +#endif
> +#if defined(CONFIG_CPU_H8S)
> +	.h8300s
> +#endif
> +
>  .section .init.ramfs,"a"
>  __irf_start:
>  .incbin __stringify(INITRAMFS_IMAGE)
> 


-- 
Chen Gang

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

* Re: [PATCH] kernel: Assembly: need add prefix for h8300 architecture.
  2013-08-26 10:46 ` Chen Gang
@ 2013-08-27  2:14   ` Chen Gang
  2013-08-27  5:24     ` Chen Gang
  2013-08-27  5:12   ` [PATCH] kernel: Assembly: need add prefix for h8300 architecture Rusty Russell
  1 sibling, 1 reply; 8+ messages in thread
From: Chen Gang @ 2013-08-27  2:14 UTC (permalink / raw)
  To: Geert Uytterhoeven, Yoshinori Sato, James Hogan, Rusty Russell,
	Takashi Iwai
  Cc: linux-kernel

On 08/26/2013 06:46 PM, Chen Gang wrote:
> 
> If this implementation is correct, the implementation still can be
> improved (at least, it is not quite well to hard code the architecture
> related code in "kernel/" and "usr/" sub-directory).
> 
> But it seems, I have no right to add or move files, so welcome any
> members help do it.
> 

Sorry, what I said above ("...have no right...") is not quite precise:

  it is only my current feelings, maybe misunderstand something.
  also maybe can find better fixing ways more than "add or move files".


Thanks.

> And welcome any additional suggestions or completions.
> 
> Thanks.
> 
> On 08/26/2013 06:42 PM, Chen Gang wrote:
>> Need add related prefix for h8300, or can not pass compiling by the
>> latest linker.
>>
>> The related error (allmodconfig for h8300):
>>
>>   /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `usr/initramfs_data.o' is incompatible with h8300h output
>>   /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `kernel/modsign_certificate.o' is incompatible with h8300h output
>>
>> The cross-compiler's information:
>>
>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-ld -v
>>   GNU ld (GNU Binutils) 2.22
>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-as -v
>>   GNU assembler version 2.22 (h8300-gchen-elf) using BFD version (GNU Binutils) 2.22
>>   
>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-gcc -v
>>   Using built-in specs.
>>   COLLECT_GCC=/usr/local/bin/h8300-gchen-elf-gcc
>>   COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/h8300-gchen-elf/4.8.0/lto-wrapper
>>   Target: h8300-gchen-elf
>>   Configured with: ../gcc-4.8.0/configure --target=h8300-gchen-elf --without-header --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no
>>   Thread model: single
>>   gcc version 4.8.0 (GCC) 
>>
>>
>> Signed-off-by: Chen Gang <gang.chen@asianux.com>
>> ---
>>  kernel/modsign_certificate.S |    7 +++++++
>>  usr/initramfs_data.S         |    7 +++++++
>>  2 files changed, 14 insertions(+), 0 deletions(-)
>>
>> diff --git a/kernel/modsign_certificate.S b/kernel/modsign_certificate.S
>> index 4a9a86d..d24acac 100644
>> --- a/kernel/modsign_certificate.S
>> +++ b/kernel/modsign_certificate.S
>> @@ -1,5 +1,12 @@
>>  #include <linux/export.h>
>>  
>> +#if defined(CONFIG_CPU_H8300H)
>> +	.h8300h
>> +#endif
>> +#if defined(CONFIG_CPU_H8S)
>> +	.h8300s
>> +#endif
>> +
>>  #define GLOBAL(name)	\
>>  	.globl VMLINUX_SYMBOL(name);	\
>>  	VMLINUX_SYMBOL(name):
>> diff --git a/usr/initramfs_data.S b/usr/initramfs_data.S
>> index c14322d..6a6c106 100644
>> --- a/usr/initramfs_data.S
>> +++ b/usr/initramfs_data.S
>> @@ -24,6 +24,13 @@
>>  #include <linux/stringify.h>
>>  #include <asm-generic/vmlinux.lds.h>
>>  
>> +#if defined(CONFIG_CPU_H8300H)
>> +	.h8300h
>> +#endif
>> +#if defined(CONFIG_CPU_H8S)
>> +	.h8300s
>> +#endif
>> +
>>  .section .init.ramfs,"a"
>>  __irf_start:
>>  .incbin __stringify(INITRAMFS_IMAGE)
>>
> 
> 


-- 
Chen Gang

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

* Re: [PATCH] kernel: Assembly: need add prefix for h8300 architecture.
  2013-08-26 10:46 ` Chen Gang
  2013-08-27  2:14   ` Chen Gang
@ 2013-08-27  5:12   ` Rusty Russell
  2013-08-27  6:22     ` Chen Gang
  1 sibling, 1 reply; 8+ messages in thread
From: Rusty Russell @ 2013-08-27  5:12 UTC (permalink / raw)
  To: Chen Gang, Geert Uytterhoeven, Yoshinori Sato, James Hogan, Takashi Iwai
  Cc: linux-kernel

Chen Gang <gang.chen@asianux.com> writes:
> If this implementation is correct, the implementation still can be
> improved (at least, it is not quite well to hard code the architecture
> related code in "kernel/" and "usr/" sub-directory).
>
> But it seems, I have no right to add or move files, so welcome any
> members help do it.
>
> And welcome any additional suggestions or completions.

Hmm, how about something like:

#ifdef CONFIG_ARCH_ASM_INCBIN_NEEDS_PREFIX
#include <asm/incbin_prefix.h>
        ASM_INCBIN_PREFIX
#endif /* ARCH_ASM_INCBIN_NEEDS_PREFIX */

Then h8300 can define ARCH_ASM_INCBIN_NEEDS_PREFIX in Kconfig and define
ASM_INCBIN_PREFIX in arch/h8300/include/asm/incbin_prefix.h?

Cheers,
Rusty.

> On 08/26/2013 06:42 PM, Chen Gang wrote:
>> Need add related prefix for h8300, or can not pass compiling by the
>> latest linker.
>> 
>> The related error (allmodconfig for h8300):
>> 
>>   /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `usr/initramfs_data.o' is incompatible with h8300h output
>>   /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `kernel/modsign_certificate.o' is incompatible with h8300h output
>> 
>> The cross-compiler's information:
>> 
>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-ld -v
>>   GNU ld (GNU Binutils) 2.22
>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-as -v
>>   GNU assembler version 2.22 (h8300-gchen-elf) using BFD version (GNU Binutils) 2.22
>>   
>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-gcc -v
>>   Using built-in specs.
>>   COLLECT_GCC=/usr/local/bin/h8300-gchen-elf-gcc
>>   COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/h8300-gchen-elf/4.8.0/lto-wrapper
>>   Target: h8300-gchen-elf
>>   Configured with: ../gcc-4.8.0/configure --target=h8300-gchen-elf --without-header --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no
>>   Thread model: single
>>   gcc version 4.8.0 (GCC) 
>> 
>> 
>> Signed-off-by: Chen Gang <gang.chen@asianux.com>
>> ---
>>  kernel/modsign_certificate.S |    7 +++++++
>>  usr/initramfs_data.S         |    7 +++++++
>>  2 files changed, 14 insertions(+), 0 deletions(-)
>> 
>> diff --git a/kernel/modsign_certificate.S b/kernel/modsign_certificate.S
>> index 4a9a86d..d24acac 100644
>> --- a/kernel/modsign_certificate.S
>> +++ b/kernel/modsign_certificate.S
>> @@ -1,5 +1,12 @@
>>  #include <linux/export.h>
>>  
>> +#if defined(CONFIG_CPU_H8300H)
>> +	.h8300h
>> +#endif
>> +#if defined(CONFIG_CPU_H8S)
>> +	.h8300s
>> +#endif
>> +
>>  #define GLOBAL(name)	\
>>  	.globl VMLINUX_SYMBOL(name);	\
>>  	VMLINUX_SYMBOL(name):
>> diff --git a/usr/initramfs_data.S b/usr/initramfs_data.S
>> index c14322d..6a6c106 100644
>> --- a/usr/initramfs_data.S
>> +++ b/usr/initramfs_data.S
>> @@ -24,6 +24,13 @@
>>  #include <linux/stringify.h>
>>  #include <asm-generic/vmlinux.lds.h>
>>  
>> +#if defined(CONFIG_CPU_H8300H)
>> +	.h8300h
>> +#endif
>> +#if defined(CONFIG_CPU_H8S)
>> +	.h8300s
>> +#endif
>> +
>>  .section .init.ramfs,"a"
>>  __irf_start:
>>  .incbin __stringify(INITRAMFS_IMAGE)
>> 
>
>
> -- 
> Chen Gang

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

* Re: [PATCH] kernel: Assembly: need add prefix for h8300 architecture.
  2013-08-27  2:14   ` Chen Gang
@ 2013-08-27  5:24     ` Chen Gang
  2013-08-27  5:35       ` [PATCH v2] h8300: Makefile: add "-no-warn-mismatch" to linker to avoid linking error Chen Gang
  0 siblings, 1 reply; 8+ messages in thread
From: Chen Gang @ 2013-08-27  5:24 UTC (permalink / raw)
  To: Geert Uytterhoeven, Yoshinori Sato, James Hogan, Rusty Russell,
	Takashi Iwai
  Cc: linux-kernel



After check binutils-2.22 source code, can pass "-no-warn-mismatch" to
'ld' to avoid this error.

I will send patch v2 for it.

:-)

On 08/27/2013 10:14 AM, Chen Gang wrote:
> On 08/26/2013 06:46 PM, Chen Gang wrote:
>>
>> If this implementation is correct, the implementation still can be
>> improved (at least, it is not quite well to hard code the architecture
>> related code in "kernel/" and "usr/" sub-directory).
>>
>> But it seems, I have no right to add or move files, so welcome any
>> members help do it.
>>
> 
> Sorry, what I said above ("...have no right...") is not quite precise:
> 
>   it is only my current feelings, maybe misunderstand something.
>   also maybe can find better fixing ways more than "add or move files".
> 
> 
> Thanks.
> 
>> And welcome any additional suggestions or completions.
>>
>> Thanks.
>>
>> On 08/26/2013 06:42 PM, Chen Gang wrote:
>>> Need add related prefix for h8300, or can not pass compiling by the
>>> latest linker.
>>>
>>> The related error (allmodconfig for h8300):
>>>
>>>   /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `usr/initramfs_data.o' is incompatible with h8300h output
>>>   /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `kernel/modsign_certificate.o' is incompatible with h8300h output
>>>
>>> The cross-compiler's information:
>>>
>>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-ld -v
>>>   GNU ld (GNU Binutils) 2.22
>>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-as -v
>>>   GNU assembler version 2.22 (h8300-gchen-elf) using BFD version (GNU Binutils) 2.22
>>>   
>>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-gcc -v
>>>   Using built-in specs.
>>>   COLLECT_GCC=/usr/local/bin/h8300-gchen-elf-gcc
>>>   COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/h8300-gchen-elf/4.8.0/lto-wrapper
>>>   Target: h8300-gchen-elf
>>>   Configured with: ../gcc-4.8.0/configure --target=h8300-gchen-elf --without-header --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no
>>>   Thread model: single
>>>   gcc version 4.8.0 (GCC) 
>>>
>>>
>>> Signed-off-by: Chen Gang <gang.chen@asianux.com>
>>> ---
>>>  kernel/modsign_certificate.S |    7 +++++++
>>>  usr/initramfs_data.S         |    7 +++++++
>>>  2 files changed, 14 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/kernel/modsign_certificate.S b/kernel/modsign_certificate.S
>>> index 4a9a86d..d24acac 100644
>>> --- a/kernel/modsign_certificate.S
>>> +++ b/kernel/modsign_certificate.S
>>> @@ -1,5 +1,12 @@
>>>  #include <linux/export.h>
>>>  
>>> +#if defined(CONFIG_CPU_H8300H)
>>> +	.h8300h
>>> +#endif
>>> +#if defined(CONFIG_CPU_H8S)
>>> +	.h8300s
>>> +#endif
>>> +
>>>  #define GLOBAL(name)	\
>>>  	.globl VMLINUX_SYMBOL(name);	\
>>>  	VMLINUX_SYMBOL(name):
>>> diff --git a/usr/initramfs_data.S b/usr/initramfs_data.S
>>> index c14322d..6a6c106 100644
>>> --- a/usr/initramfs_data.S
>>> +++ b/usr/initramfs_data.S
>>> @@ -24,6 +24,13 @@
>>>  #include <linux/stringify.h>
>>>  #include <asm-generic/vmlinux.lds.h>
>>>  
>>> +#if defined(CONFIG_CPU_H8300H)
>>> +	.h8300h
>>> +#endif
>>> +#if defined(CONFIG_CPU_H8S)
>>> +	.h8300s
>>> +#endif
>>> +
>>>  .section .init.ramfs,"a"
>>>  __irf_start:
>>>  .incbin __stringify(INITRAMFS_IMAGE)
>>>
>>
>>
> 
> 


-- 
Chen Gang

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

* [PATCH v2] h8300: Makefile: add "-no-warn-mismatch" to linker to avoid linking error.
  2013-08-27  5:24     ` Chen Gang
@ 2013-08-27  5:35       ` Chen Gang
  0 siblings, 0 replies; 8+ messages in thread
From: Chen Gang @ 2013-08-27  5:35 UTC (permalink / raw)
  To: Geert Uytterhoeven, Yoshinori Sato, James Hogan, Rusty Russell,
	Takashi Iwai
  Cc: linux-kernel

Need add "-no-warn-mismatch" to avoid the linking error, or assembly
files which are outside of the "arch/h8300" can not pass compiling.

The related error (allmodconfig for h8300):

  /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `usr/initramfs_data.o' is incompatible with h8300h output
  /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `kernel/modsign_certificate.o' is incompatible with h8300h output

The cross-compiler's information:

  [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-ld -v
  GNU ld (GNU Binutils) 2.22
  [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-as -v
  GNU assembler version 2.22 (h8300-gchen-elf) using BFD version (GNU Binutils) 2.22

  [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-gcc -v
  Using built-in specs.
  COLLECT_GCC=/usr/local/bin/h8300-gchen-elf-gcc
  COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/h8300-gchen-elf/4.8.0/lto-wrapper
  Target: h8300-gchen-elf
  Configured with: ../gcc-4.8.0/configure --target=h8300-gchen-elf --without-header --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no
  Thread model: single
  gcc version 4.8.0 (GCC)


Signed-off-by: Chen Gang <gang.chen@asianux.com>
---
 arch/h8300/Makefile |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/h8300/Makefile b/arch/h8300/Makefile
index a556447..3ad1369 100644
--- a/arch/h8300/Makefile
+++ b/arch/h8300/Makefile
@@ -26,7 +26,7 @@ model-$(CONFIG_ROMKERNEL)	:= rom
 MODEL := $(model-y)
 
 cflags-$(CONFIG_CPU_H8300H)	:= -mh
-ldflags-$(CONFIG_CPU_H8300H)	:= -mh8300helf
+ldflags-$(CONFIG_CPU_H8300H)	:= -mh8300helf -no-warn-mismatch
 cflags-$(CONFIG_CPU_H8S)	:= -ms
 ldflags-$(CONFIG_CPU_H8S)	:= -mh8300self
 
-- 
1.7.7.6

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

* Re: [PATCH] kernel: Assembly: need add prefix for h8300 architecture.
  2013-08-27  5:12   ` [PATCH] kernel: Assembly: need add prefix for h8300 architecture Rusty Russell
@ 2013-08-27  6:22     ` Chen Gang
  2013-08-27 12:05       ` Chen Gang
  0 siblings, 1 reply; 8+ messages in thread
From: Chen Gang @ 2013-08-27  6:22 UTC (permalink / raw)
  To: Rusty Russell
  Cc: Geert Uytterhoeven, Yoshinori Sato, James Hogan, Takashi Iwai,
	linux-kernel

On 08/27/2013 01:12 PM, Rusty Russell wrote:
> Chen Gang <gang.chen@asianux.com> writes:
>> If this implementation is correct, the implementation still can be
>> improved (at least, it is not quite well to hard code the architecture
>> related code in "kernel/" and "usr/" sub-directory).
>>
>> But it seems, I have no right to add or move files, so welcome any
>> members help do it.
>>
>> And welcome any additional suggestions or completions.
> 
> Hmm, how about something like:
> 
> #ifdef CONFIG_ARCH_ASM_INCBIN_NEEDS_PREFIX
> #include <asm/incbin_prefix.h>
>         ASM_INCBIN_PREFIX
> #endif /* ARCH_ASM_INCBIN_NEEDS_PREFIX */
> 
> Then h8300 can define ARCH_ASM_INCBIN_NEEDS_PREFIX in Kconfig and define
> ASM_INCBIN_PREFIX in arch/h8300/include/asm/incbin_prefix.h?
> 

Thank you for your reply firstly, I think your way is OK (valuable to
continue think of the details implementation).

And excuse me, I continued replying multiple times for this thread (I
am just continue improving it).

Current status:

  after check the binutils-2.22 source code, we know if use "-no-warn-mismatch" for 'ld', it can avoid this issue.

  and also for another 'ld' issue (which I occurs but not send mail), need use "-accept-unknown-input-arch" for 'ld':
    "Relocatable linking with relocations from format elf32-h8300 (firmware/keyspan/mpr.fw.gen.o) to format elf32-h8300 (firmware/built-in.o) is not supported"

  ... maybe find more issues during compiling with 'allmodconfig'.


My opinion:

  if h8300 is still one of important architecture, we need try to "let our binary match 'ld'"
  else just use skipping parameters is OK.

  In my current feeling, h8300 is not one of important architecture, so I choose 2nd.


Welcome additional suggestion or completions.


Thanks.


> Cheers,
> Rusty.
> 
>> On 08/26/2013 06:42 PM, Chen Gang wrote:
>>> Need add related prefix for h8300, or can not pass compiling by the
>>> latest linker.
>>>
>>> The related error (allmodconfig for h8300):
>>>
>>>   /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `usr/initramfs_data.o' is incompatible with h8300h output
>>>   /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `kernel/modsign_certificate.o' is incompatible with h8300h output
>>>
>>> The cross-compiler's information:
>>>
>>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-ld -v
>>>   GNU ld (GNU Binutils) 2.22
>>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-as -v
>>>   GNU assembler version 2.22 (h8300-gchen-elf) using BFD version (GNU Binutils) 2.22
>>>   
>>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-gcc -v
>>>   Using built-in specs.
>>>   COLLECT_GCC=/usr/local/bin/h8300-gchen-elf-gcc
>>>   COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/h8300-gchen-elf/4.8.0/lto-wrapper
>>>   Target: h8300-gchen-elf
>>>   Configured with: ../gcc-4.8.0/configure --target=h8300-gchen-elf --without-header --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no
>>>   Thread model: single
>>>   gcc version 4.8.0 (GCC) 
>>>
>>>
>>> Signed-off-by: Chen Gang <gang.chen@asianux.com>
>>> ---
>>>  kernel/modsign_certificate.S |    7 +++++++
>>>  usr/initramfs_data.S         |    7 +++++++
>>>  2 files changed, 14 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/kernel/modsign_certificate.S b/kernel/modsign_certificate.S
>>> index 4a9a86d..d24acac 100644
>>> --- a/kernel/modsign_certificate.S
>>> +++ b/kernel/modsign_certificate.S
>>> @@ -1,5 +1,12 @@
>>>  #include <linux/export.h>
>>>  
>>> +#if defined(CONFIG_CPU_H8300H)
>>> +	.h8300h
>>> +#endif
>>> +#if defined(CONFIG_CPU_H8S)
>>> +	.h8300s
>>> +#endif
>>> +
>>>  #define GLOBAL(name)	\
>>>  	.globl VMLINUX_SYMBOL(name);	\
>>>  	VMLINUX_SYMBOL(name):
>>> diff --git a/usr/initramfs_data.S b/usr/initramfs_data.S
>>> index c14322d..6a6c106 100644
>>> --- a/usr/initramfs_data.S
>>> +++ b/usr/initramfs_data.S
>>> @@ -24,6 +24,13 @@
>>>  #include <linux/stringify.h>
>>>  #include <asm-generic/vmlinux.lds.h>
>>>  
>>> +#if defined(CONFIG_CPU_H8300H)
>>> +	.h8300h
>>> +#endif
>>> +#if defined(CONFIG_CPU_H8S)
>>> +	.h8300s
>>> +#endif
>>> +
>>>  .section .init.ramfs,"a"
>>>  __irf_start:
>>>  .incbin __stringify(INITRAMFS_IMAGE)
>>>
>>
>>
>> -- 
>> Chen Gang
> 
> 


-- 
Chen Gang

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

* Re: [PATCH] kernel: Assembly: need add prefix for h8300 architecture.
  2013-08-27  6:22     ` Chen Gang
@ 2013-08-27 12:05       ` Chen Gang
  0 siblings, 0 replies; 8+ messages in thread
From: Chen Gang @ 2013-08-27 12:05 UTC (permalink / raw)
  To: Rusty Russell
  Cc: Geert Uytterhoeven, Yoshinori Sato, James Hogan, Takashi Iwai,
	linux-kernel

On 08/27/2013 02:22 PM, Chen Gang wrote:
> On 08/27/2013 01:12 PM, Rusty Russell wrote:
>> Chen Gang <gang.chen@asianux.com> writes:
>>> If this implementation is correct, the implementation still can be
>>> improved (at least, it is not quite well to hard code the architecture
>>> related code in "kernel/" and "usr/" sub-directory).
>>>
>>> But it seems, I have no right to add or move files, so welcome any
>>> members help do it.
>>>
>>> And welcome any additional suggestions or completions.
>>
>> Hmm, how about something like:
>>
>> #ifdef CONFIG_ARCH_ASM_INCBIN_NEEDS_PREFIX
>> #include <asm/incbin_prefix.h>
>>         ASM_INCBIN_PREFIX
>> #endif /* ARCH_ASM_INCBIN_NEEDS_PREFIX */
>>
>> Then h8300 can define ARCH_ASM_INCBIN_NEEDS_PREFIX in Kconfig and define
>> ASM_INCBIN_PREFIX in arch/h8300/include/asm/incbin_prefix.h?
>>
> 
> Thank you for your reply firstly, I think your way is OK (valuable to
> continue think of the details implementation).
> 

The final result is: we have to use this way (mark 'h8300h' explicitly)
to fix this issue. (build-in.o requires "h8300h", but the default value
of the ".S" files are "h8300").

"-no-warn-mismatch" and "-accept-unknown-input-arch" have no effect with
the same issue under firmware sub-directory (after reading 'ld' code, we
know there are additional stricter checking for it).

After let 'h8300' pass allmodconfig, I will send patch v3 (may need some
days for waiting gcc issues).


Welcome any additional suggestions or completions (especially for
modifying the firmware files, I have no experience for it).


Thanks.


> And excuse me, I continued replying multiple times for this thread (I
> am just continue improving it).
> 
> Current status:
> 
>   after check the binutils-2.22 source code, we know if use "-no-warn-mismatch" for 'ld', it can avoid this issue.
> 
>   and also for another 'ld' issue (which I occurs but not send mail), need use "-accept-unknown-input-arch" for 'ld':
>     "Relocatable linking with relocations from format elf32-h8300 (firmware/keyspan/mpr.fw.gen.o) to format elf32-h8300 (firmware/built-in.o) is not supported"
> 
>   ... maybe find more issues during compiling with 'allmodconfig'.
> 
> 
> My opinion:
> 
>   if h8300 is still one of important architecture, we need try to "let our binary match 'ld'"
>   else just use skipping parameters is OK.
> 
>   In my current feeling, h8300 is not one of important architecture, so I choose 2nd.
> 
> 
> Welcome additional suggestion or completions.
> 
> 
> Thanks.
> 
> 
>> Cheers,
>> Rusty.
>>
>>> On 08/26/2013 06:42 PM, Chen Gang wrote:
>>>> Need add related prefix for h8300, or can not pass compiling by the
>>>> latest linker.
>>>>
>>>> The related error (allmodconfig for h8300):
>>>>
>>>>   /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `usr/initramfs_data.o' is incompatible with h8300h output
>>>>   /usr/local/bin/h8300-gchen-elf-ld: h8300 architecture of input file `kernel/modsign_certificate.o' is incompatible with h8300h output
>>>>
>>>> The cross-compiler's information:
>>>>
>>>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-ld -v
>>>>   GNU ld (GNU Binutils) 2.22
>>>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-as -v
>>>>   GNU assembler version 2.22 (h8300-gchen-elf) using BFD version (GNU Binutils) 2.22
>>>>   
>>>>   [root@dhcp122 linux-next]# /usr/local/bin/h8300-gchen-elf-gcc -v
>>>>   Using built-in specs.
>>>>   COLLECT_GCC=/usr/local/bin/h8300-gchen-elf-gcc
>>>>   COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/h8300-gchen-elf/4.8.0/lto-wrapper
>>>>   Target: h8300-gchen-elf
>>>>   Configured with: ../gcc-4.8.0/configure --target=h8300-gchen-elf --without-header --disable-nls --enable-language=c --disable-threads --disable-shared --enable-werror=no
>>>>   Thread model: single
>>>>   gcc version 4.8.0 (GCC) 
>>>>
>>>>
>>>> Signed-off-by: Chen Gang <gang.chen@asianux.com>
>>>> ---
>>>>  kernel/modsign_certificate.S |    7 +++++++
>>>>  usr/initramfs_data.S         |    7 +++++++
>>>>  2 files changed, 14 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/kernel/modsign_certificate.S b/kernel/modsign_certificate.S
>>>> index 4a9a86d..d24acac 100644
>>>> --- a/kernel/modsign_certificate.S
>>>> +++ b/kernel/modsign_certificate.S
>>>> @@ -1,5 +1,12 @@
>>>>  #include <linux/export.h>
>>>>  
>>>> +#if defined(CONFIG_CPU_H8300H)
>>>> +	.h8300h
>>>> +#endif
>>>> +#if defined(CONFIG_CPU_H8S)
>>>> +	.h8300s
>>>> +#endif
>>>> +
>>>>  #define GLOBAL(name)	\
>>>>  	.globl VMLINUX_SYMBOL(name);	\
>>>>  	VMLINUX_SYMBOL(name):
>>>> diff --git a/usr/initramfs_data.S b/usr/initramfs_data.S
>>>> index c14322d..6a6c106 100644
>>>> --- a/usr/initramfs_data.S
>>>> +++ b/usr/initramfs_data.S
>>>> @@ -24,6 +24,13 @@
>>>>  #include <linux/stringify.h>
>>>>  #include <asm-generic/vmlinux.lds.h>
>>>>  
>>>> +#if defined(CONFIG_CPU_H8300H)
>>>> +	.h8300h
>>>> +#endif
>>>> +#if defined(CONFIG_CPU_H8S)
>>>> +	.h8300s
>>>> +#endif
>>>> +
>>>>  .section .init.ramfs,"a"
>>>>  __irf_start:
>>>>  .incbin __stringify(INITRAMFS_IMAGE)
>>>>
>>>
>>>
>>> -- 
>>> Chen Gang
>>
>>
> 
> 


-- 
Chen Gang

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

end of thread, other threads:[~2013-08-27 12:06 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-26 10:42 [PATCH] kernel: Assembly: need add prefix for h8300 architecture Chen Gang
2013-08-26 10:46 ` Chen Gang
2013-08-27  2:14   ` Chen Gang
2013-08-27  5:24     ` Chen Gang
2013-08-27  5:35       ` [PATCH v2] h8300: Makefile: add "-no-warn-mismatch" to linker to avoid linking error Chen Gang
2013-08-27  5:12   ` [PATCH] kernel: Assembly: need add prefix for h8300 architecture Rusty Russell
2013-08-27  6:22     ` Chen Gang
2013-08-27 12:05       ` Chen Gang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.