From: Chen Gang <gang.chen@asianux.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Tony Lindgren <tony@atomide.com>,
linux-omap@vger.kernel.org,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [Suggestion] ARM: allmodconfig: about cross compiling failure under i386 ubuntu.
Date: Fri, 23 Aug 2013 10:06:01 +0800 [thread overview]
Message-ID: <5216C389.9050605@asianux.com> (raw)
In-Reply-To: <5216BF16.2080006@asianux.com>
On 08/23/2013 09:47 AM, Chen Gang wrote:
> On 08/22/2013 06:22 PM, Russell King - ARM Linux wrote:
>> On Thu, Aug 22, 2013 at 12:45:24AM -0700, Tony Lindgren wrote:
>>> * Chen Gang <gang.chen@asianux.com> [130821 01:53]:
>>>> Hello Maintainers:
>>>>
>>>> When build arm with allmodconfig under ubuntu i386 with arm-linux-
>>>> gnueabi-gcc 4.7, as 2.22, it report the errors.
>>>>
>>>> Please help check, thanks (the related config file in attachment).
>>>
>>> It seems that some make flags may need to be specified separately
>>> in some makefiles. See the following for some examples:
>>>
>>> $ find arch/arm -name Makefile | xargs grep -i flags
>>>
>>> I'm getting different errors though, I'm getting:
>>>
>>> arch/arm/mach-zynq/hotplug.c:1: error: bad value (cortex-a9) for -mcpu= switch
>>>
>>> As probably my compiler does not support the cortex-a9 switch,
>>> I have gcc version 4.3.5 (Debian 4.3.5-4), tried with v3.11-rc5.
>>
>> The use of -mcpu with -march is not a good idea anyway - you either use
>> -mcpu= or you use -march and -mtune.
>>
>> -mcpu= sets the CPU type, which specifies the instruction architecture
>> (iow, which instructions can be used) and instruction scheduling behaviour.
>>
>> -march= sets the architecture only. -mtune= sets the instruction
>> scheduling behaviour only.
>>
>> So, that -mcpu= should probably be -mtune=, but if that fails due to
>> unrecognised instructions, the -march= parameter is wrong.
>>
>
> Hmm... firstly, the root cause is really "the -march= parameter is
> wrong": the correct value is "armv7-a", not "armv6k".
>
> But in my case:
>
> the correct command is "the use of -mcpu with -march ...", and not need "-mcpu= should probably be -mtune=, ..."
Oh, sorry, "-mcpu=cortex-a8" is added by myself manually during
analyzing, it will pass compiling whether have it or not (but suggest
not set it just like you have said).
> the incorrect command is "or you use -march and -mtune.", and also "-march= sets the architecture only. -mtun= ..."
>
>
> Please reference the related command below:
>
> Correct command (for vexpress_defconfig, can succeed compiling):
>
> arm-linux-gnueabi-gcc -Wp,-MD,arch/arm/mach-vexpress/.dcscb.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabi/4.7/include -I/root/linux-next/arch/arm/include -Iarch/arm/include/generated -Iinclude -I/root/linux-next/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/root/linux-next/include/uapi -Iinclude/generated/uapi -include /root/linux-next/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror=implicit-int -Werror=strict-prototypes -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -Wframe-larger-than=
1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/roo
t/linux-n
ex
> t/arch/arm/mach-vexpress/include -I/root/linux-next/arch/arm/plat-versatile/include -mcpu=cortex-a8 -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(dcscb)" -D"KBUILD_MODNAME=KBUILD_STR(dcscb)" -c -o arch/arm/mach-vexpress/dcscb.o arch/arm/mach-vexpress/dcscb.c
>
>
> Incorrect command (for allmodconfig which I originally sent with failure):
>
> arm-linux-gnueabi-gcc -Wp,-MD,arch/arm/mach-vexpress/.dcscb.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabi/4.7/include -I/root/linux-next/arch/arm/include -Iarch/arm/include/generated -Iinclude -I/root/linux-next/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/root/linux-next/include/uapi -Iinclude/generated/uapi -include /root/linux-next/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror=implicit-int -Werror=strict-prototypes -Os -Wno-maybe-uninitialized -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fstack-protector -mabi=aapcs-linux -mno-thumb-interwork -funwin
d-tables -marm -D__LINUX_ARM_ARCH__=6 -march=armv6k -mtune=arm1136j-s -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -Wno-unused-but-
set-varia
bl
> e -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -femit-struct-debug-baseonly -fno-var-tracking -pg -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/root/linux-next/arch/arm/mach-vexpress/include -I/root/linux-next/arch/arm/plat-versatile/include -W -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(dcscb)" -D"KBUILD_MODNAME=KBUILD_STR(dcscb)" -c -o arch/arm/mach-vexpress/.tmp_dcscb.o arch/arm/mach-vexpress/dcscb.c
>
>
>
>
>> Even so, if gcc 4.3.5 doesn't support cortex-a9 as a CPU type, and we
>> want to support that gcc version, the setting of -mtune needs to be
>> conditionalised. As it is only a scheduling hint, it's probably fine
>> for it to end up being omitted.
>>
>>
>
> It sounds a good idea.
>
> Hello Tony:
>
> What about your idea for it ?
>
>
> Thanks.
>
--
Chen Gang
WARNING: multiple messages have this Message-ID (diff)
From: gang.chen@asianux.com (Chen Gang)
To: linux-arm-kernel@lists.infradead.org
Subject: [Suggestion] ARM: allmodconfig: about cross compiling failure under i386 ubuntu.
Date: Fri, 23 Aug 2013 10:06:01 +0800 [thread overview]
Message-ID: <5216C389.9050605@asianux.com> (raw)
In-Reply-To: <5216BF16.2080006@asianux.com>
On 08/23/2013 09:47 AM, Chen Gang wrote:
> On 08/22/2013 06:22 PM, Russell King - ARM Linux wrote:
>> On Thu, Aug 22, 2013 at 12:45:24AM -0700, Tony Lindgren wrote:
>>> * Chen Gang <gang.chen@asianux.com> [130821 01:53]:
>>>> Hello Maintainers:
>>>>
>>>> When build arm with allmodconfig under ubuntu i386 with arm-linux-
>>>> gnueabi-gcc 4.7, as 2.22, it report the errors.
>>>>
>>>> Please help check, thanks (the related config file in attachment).
>>>
>>> It seems that some make flags may need to be specified separately
>>> in some makefiles. See the following for some examples:
>>>
>>> $ find arch/arm -name Makefile | xargs grep -i flags
>>>
>>> I'm getting different errors though, I'm getting:
>>>
>>> arch/arm/mach-zynq/hotplug.c:1: error: bad value (cortex-a9) for -mcpu= switch
>>>
>>> As probably my compiler does not support the cortex-a9 switch,
>>> I have gcc version 4.3.5 (Debian 4.3.5-4), tried with v3.11-rc5.
>>
>> The use of -mcpu with -march is not a good idea anyway - you either use
>> -mcpu= or you use -march and -mtune.
>>
>> -mcpu= sets the CPU type, which specifies the instruction architecture
>> (iow, which instructions can be used) and instruction scheduling behaviour.
>>
>> -march= sets the architecture only. -mtune= sets the instruction
>> scheduling behaviour only.
>>
>> So, that -mcpu= should probably be -mtune=, but if that fails due to
>> unrecognised instructions, the -march= parameter is wrong.
>>
>
> Hmm... firstly, the root cause is really "the -march= parameter is
> wrong": the correct value is "armv7-a", not "armv6k".
>
> But in my case:
>
> the correct command is "the use of -mcpu with -march ...", and not need "-mcpu= should probably be -mtune=, ..."
Oh, sorry, "-mcpu=cortex-a8" is added by myself manually during
analyzing, it will pass compiling whether have it or not (but suggest
not set it just like you have said).
> the incorrect command is "or you use -march and -mtune.", and also "-march= sets the architecture only. -mtun= ..."
>
>
> Please reference the related command below:
>
> Correct command (for vexpress_defconfig, can succeed compiling):
>
> arm-linux-gnueabi-gcc -Wp,-MD,arch/arm/mach-vexpress/.dcscb.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabi/4.7/include -I/root/linux-next/arch/arm/include -Iarch/arm/include/generated -Iinclude -I/root/linux-next/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/root/linux-next/include/uapi -Iinclude/generated/uapi -include /root/linux-next/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror=implicit-int -Werror=strict-prototypes -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/roo
t/linux-n
ex
> t/arch/arm/mach-vexpress/include -I/root/linux-next/arch/arm/plat-versatile/include -mcpu=cortex-a8 -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(dcscb)" -D"KBUILD_MODNAME=KBUILD_STR(dcscb)" -c -o arch/arm/mach-vexpress/dcscb.o arch/arm/mach-vexpress/dcscb.c
>
>
> Incorrect command (for allmodconfig which I originally sent with failure):
>
> arm-linux-gnueabi-gcc -Wp,-MD,arch/arm/mach-vexpress/.dcscb.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabi/4.7/include -I/root/linux-next/arch/arm/include -Iarch/arm/include/generated -Iinclude -I/root/linux-next/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/root/linux-next/include/uapi -Iinclude/generated/uapi -include /root/linux-next/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror=implicit-int -Werror=strict-prototypes -Os -Wno-maybe-uninitialized -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -fstack-protector -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=6 -march=armv6k -mtune=arm1136j-s -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -Wno-unused-but-
set-varia
bl
> e -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -femit-struct-debug-baseonly -fno-var-tracking -pg -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/root/linux-next/arch/arm/mach-vexpress/include -I/root/linux-next/arch/arm/plat-versatile/include -W -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(dcscb)" -D"KBUILD_MODNAME=KBUILD_STR(dcscb)" -c -o arch/arm/mach-vexpress/.tmp_dcscb.o arch/arm/mach-vexpress/dcscb.c
>
>
>
>
>> Even so, if gcc 4.3.5 doesn't support cortex-a9 as a CPU type, and we
>> want to support that gcc version, the setting of -mtune needs to be
>> conditionalised. As it is only a scheduling hint, it's probably fine
>> for it to end up being omitted.
>>
>>
>
> It sounds a good idea.
>
> Hello Tony:
>
> What about your idea for it ?
>
>
> Thanks.
>
--
Chen Gang
next prev parent reply other threads:[~2013-08-23 2:07 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-21 8:26 [PATCH] ARM: OMAP2: add type cast from 'unsigned' to 'signed' Chen Gang
2013-08-21 8:26 ` Chen Gang
2013-08-21 8:31 ` [PATCH] ARM: OMAP2: remove useless variable 'ret' Chen Gang
2013-08-21 8:31 ` Chen Gang
2013-08-22 7:17 ` Tony Lindgren
2013-08-22 7:17 ` Tony Lindgren
2013-08-22 7:24 ` Chen Gang
2013-08-22 7:24 ` Chen Gang
[not found] ` <52147E12.4060401@asianux.com>
2013-08-22 7:45 ` [Suggestion] ARM: allmodconfig: about cross compiling failure under i386 ubuntu Tony Lindgren
2013-08-22 7:45 ` Tony Lindgren
2013-08-22 9:19 ` Chen Gang
2013-08-22 9:19 ` Chen Gang
2013-08-22 10:15 ` Chen Gang
2013-08-22 10:15 ` Chen Gang
2013-08-22 10:22 ` Russell King - ARM Linux
2013-08-22 10:22 ` Russell King - ARM Linux
2013-08-23 1:47 ` Chen Gang
2013-08-23 1:47 ` Chen Gang
2013-08-23 2:06 ` Chen Gang [this message]
2013-08-23 2:06 ` Chen Gang
2013-08-23 3:04 ` [PATCH] ARM: VExpress: Kconfig: avoid arm6 compatible for ARCH_VEXPRESS Chen Gang
2013-08-23 3:04 ` Chen Gang
2013-08-23 3:12 ` Chen Gang
2013-08-23 3:12 ` Chen Gang
2013-08-23 5:51 ` Tony Lindgren
2013-08-23 5:51 ` Tony Lindgren
2013-08-23 7:02 ` Chen Gang
2013-08-23 7:02 ` Chen Gang
2013-08-23 7:15 ` Chen Gang
2013-08-23 7:15 ` Chen Gang
2013-08-23 8:02 ` [PATCH v2] ARM: VExpress: Makefile: add armv7 flags for inline assmembly code compiling Chen Gang
2013-08-23 8:02 ` Chen Gang
2013-08-23 8:12 ` Chen Gang
2013-08-23 8:12 ` Chen Gang
2013-09-23 1:50 ` [PATCH v3] " Chen Gang
2013-09-23 1:50 ` Chen Gang
2013-08-22 7:14 ` [PATCH] ARM: OMAP2: add type cast from 'unsigned' to 'signed' Tony Lindgren
2013-08-22 7:14 ` Tony Lindgren
2013-08-22 7:43 ` Chen Gang
2013-08-22 7:43 ` Chen Gang
2013-08-22 7:47 ` [PATCH v2] ARM: OMAP2: use 'int' instead of 'unsigned' for variable 'gpmc_irq_start' Chen Gang
2013-08-22 7:47 ` Chen Gang
2013-08-22 7:57 ` Tony Lindgren
2013-08-22 7:57 ` Tony Lindgren
2013-08-22 8:01 ` Chen Gang
2013-08-22 8:01 ` Chen Gang
2013-08-22 8:32 ` Tony Lindgren
2013-08-22 8:32 ` Tony Lindgren
2013-08-22 8:59 ` Chen Gang F T
2013-08-22 8:59 ` Chen Gang F T
2013-08-23 5:48 ` Tony Lindgren
2013-08-23 5:48 ` Tony Lindgren
2013-08-23 6:14 ` Chen Gang
2013-08-23 6:14 ` 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=5216C389.9050605@asianux.com \
--to=gang.chen@asianux.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=tony@atomide.com \
/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 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.