From: Chen Gang <gang.chen@asianux.com>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
James Hogan <james.hogan@imgtec.com>,
Takashi Iwai <tiwai@suse.de>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] kernel: Assembly: need add prefix for h8300 architecture.
Date: Tue, 27 Aug 2013 14:22:35 +0800 [thread overview]
Message-ID: <521C45AB.2020204@asianux.com> (raw)
In-Reply-To: <87txibbtt3.fsf@rustcorp.com.au>
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
next prev parent reply other threads:[~2013-08-27 6:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
2013-08-27 12:05 ` Chen Gang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=521C45AB.2020204@asianux.com \
--to=gang.chen@asianux.com \
--cc=geert@linux-m68k.org \
--cc=james.hogan@imgtec.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
--cc=tiwai@suse.de \
--cc=ysato@users.sourceforge.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox