ARM: OMAP2: add type cast from 'unsigned' to 'signed'
Subsystems (6)
PATCH 1/1 ARM: OMAP2: add type cast from 'unsigned' to 'signed'
Need add type cast, or can not notice the failure. The related warning (allmodconfig, "EXTRA_CFLAGS=-W"):
arch/arm/mach-omap2/gpmc.c:728:2: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
--- arch/arm/mach-omap2/gpmc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/gpmc.c +1 -1
@@ -725,7 +725,7 @@ static int gpmc_setup_irq(void)return -EINVAL ; gpmc_irq_start =irq_alloc_descs (-1 ,0 ,GPMC_NR_IRQ ,0 ); -if (gpmc_irq_start <0 ) { +if ((signed )gpmc_irq_start <0 ) {pr_err ("irq_alloc_descs failed\n" );return gpmc_irq_start; }
Signature · 1 line
1.7.7.6
PATCH 1/1 ARM: OMAP2: remove useless variable 'ret'
Remove useless variable 'ret', the related warning:
arch/arm/mach-omap2/board-am3517crane.c:113:6: warning: unused variable ?ret? [-Wunused-variable]
--- arch/arm/mach-omap2/board-am3517crane.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
arch/arm/mach-omap2/board-am3517crane.c +0 -2
@@ -110,8 +110,6 @@ static void __init am3517_crane_i2c_init(void)static void __init am3517_crane_init (void ) { -int ret; -omap3_mux_init (board_mux,OMAP_PACKAGE_CBB );omap_serial_init ();omap_sdrc_init (NULL ,NULL );
Signature · 1 line
1.7.7.6
Tony Lindgren
maintainerPATCH 1/1 ARM: OMAP2: remove useless variable 'ret'
Quoted 3 lines · Chen Gang
Remove useless variable 'ret', the related warning:
arch/arm/mach-omap2/board-am3517crane.c:113:6: warning: unused variable ?ret? [-Wunused-variable]
Thanks applying into omap-for-v3.12/fixes-non-critical.
Regards,
Tony
Quoted 20 lines
Signed-off-by Chen Gang <[email protected]>--- arch/arm/mach-omap2/board-am3517crane.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)arch/arm/mach-omap2/board-am3517crane.c +0
-2@@ -110,8 +110,6 @@ static void __init am3517_crane_i2c_init(void)static void __init am3517_crane_init (void ) { -int ret; -omap3_mux_init (board_mux,OMAP_PACKAGE_CBB );omap_serial_init ();omap_sdrc_init (NULL ,NULL );Signature · 1 line
1.7.7.6
PATCH 1/1 ARM: OMAP2: remove useless variable 'ret'
Quoted 7 lines · Tony Lindgren
Quoted 3 lines · Chen Gang
Remove useless variable 'ret', the related warning:
arch/arm/mach-omap2/board-am3517crane.c:113:6: warning: unused variable ?ret? [-Wunused-variable]Thanks applying into omap-for-v3.12/fixes-non-critical.
Thank you too.
Quoted 26 lines
Regards,
Tony
Quoted 20 lines
Signed-off-by Chen Gang <[email protected]>--- arch/arm/mach-omap2/board-am3517crane.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)arch/arm/mach-omap2/board-am3517crane.c +0
-2@@ -110,8 +110,6 @@ static void __init am3517_crane_i2c_init(void)static void __init am3517_crane_init (void ) { -int ret; -omap3_mux_init (board_mux,OMAP_PACKAGE_CBB );omap_serial_init ();omap_sdrc_init (NULL ,NULL );Signature · 1 line
1.7.7.6
Signature · 1 line
Chen Gang
A message that is not in the archive (sent off-list or not yet received): [email protected]
Tony Lindgren
maintainer[Suggestion] ARM: allmodconfig: about cross compiling failure under i386 ubuntu.
Quoted 6 lines · Chen Gang
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.
Regards,
Tony
[Suggestion] ARM: allmodconfig: about cross compiling failure under i386 ubuntu.
Quoted 11 lines · Tony Lindgren
Quoted 6 lines · Chen Gang
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:
Quoted 9 lines
$ find arch/arm -name Makefile | xargs grep -i flagsI'm getting different errors though, I'm getting:
arch/arm/mach-zynq/hotplug.c:1: error: bad value (cortex-a9) for -mcpu= switchAs 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.
Thank you for your valuable reply, I followed what you said above, and now it seems really related the compiler's flags.
I have passed compiling for the VEXPRESS with dcscb, I will compare the difference between the 2 building flags.
It seems we need add the related dependency for ARCH_VEXPRESS (I am just analyzing, may get final result today).
Thanks.
Quoted 5 lines
Regards,
Tony
Signature · 1 line
Chen Gang
[Suggestion] ARM: allmodconfig: about cross compiling failure under i386 ubuntu.
Quoted 14 lines · Chen Gang
Quoted 13 lines · Tony Lindgren
Quoted 6 lines · Chen Gang
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
Quoted 7 lines
Quoted 7 lines
I'm getting different errors though, I'm getting:
arch/arm/mach-zynq/hotplug.c:1: error: bad value (cortex-a9) for -mcpu= switchAs 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.
Maybe your case is different with my case (but may be the same solving ways).
After compare the 'flags', for my case, the root cause is:
"for allmodconfig, it will enable CPU_V6 which VEXPRESS doesn't support".
after disable CPU_V6 after allmodconfig, it can pass compiling:
("System type" -> "Multiple platform selection" -> "ARMv6 based platforms").Welcome any additional suggestions or completions, if no additional reply, I will try to send the related patch tomorrow. :-)
Thanks.
Quoted 21 lines
Thank you for your valuable reply, I followed what you said above, and now it seems really related the compiler's flags.
I have passed compiling for the VEXPRESS with dcscb, I will compare the difference between the 2 building flags.
It seems we need add the related dependency for
ARCH_VEXPRESS(I am just analyzing, may get final result today).Thanks.
Quoted 5 lines
Regards,
Tony
Signature · 4 lines
Chen Gang -- Chen Gang
[Suggestion] ARM: allmodconfig: about cross compiling failure under i386 ubuntu.
In reply to Tony LindgrenQuoted 11 lines · Tony Lindgren
Quoted 6 lines · Chen Gang
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:
Quoted 8 lines
$ find arch/arm -name Makefile | xargs grep -i flagsI'm getting different errors though, I'm getting:
arch/arm/mach-zynq/hotplug.c:1: error: bad value (cortex-a9) for -mcpu= switchAs 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.
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.
[Suggestion] ARM: allmodconfig: about cross compiling failure under i386 ubuntu.
Quoted 27 lines · Russell King - ARM Linux
Quoted 11 lines · Tony Lindgren
Quoted 6 lines · Chen Gang
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:
Quoted 8 lines
$ find arch/arm -name Makefile | xargs grep -i flagsI'm getting different errors though, I'm getting:
arch/arm/mach-zynq/hotplug.c:1: error: bad value (cortex-a9) for -mcpu= switchAs 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
(quoted diff) +0
-2-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.
Quoted 6 lines
-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=, ..." 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/root/
linux-nex
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-se
t-variabl
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
Quoted 6 lines
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.
Signature · 1 line
Chen Gang
[Suggestion] ARM: allmodconfig: about cross compiling failure under i386 ubuntu.
Quoted 38 lines · Chen Gang
Quoted 27 lines · Russell King - ARM Linux
Quoted 11 lines · Tony Lindgren
Quoted 6 lines · Chen Gang
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:
Quoted 8 lines
$ find arch/arm -name Makefile | xargs grep -i flagsI'm getting different errors though, I'm getting:
arch/arm/mach-zynq/hotplug.c:1: error: bad value (cortex-a9) for -mcpu= switchAs 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
(quoted diff) +0
-2-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.
Quoted 6 lines
-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".
Quoted 3 lines
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).
Quoted 8 lines
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
Quoted 6 lines
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.oarch/arm/mach-vexpress/dcscb.cIncorrect 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
Quoted 21 lines
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.oarch/arm/mach-vexpress/dcscb.cQuoted 6 lines
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.
Signature · 1 line
Chen Gang
PATCH 1/1 ARM: VExpress: Kconfig: avoid arm6 compatible for ARCH_VEXPRESS
ARCH_VEXPRESS isn't compatible with arm6 (not support "-march=armv6k"), so add dependency for it, or allmodconfig can not pass compiling.
The related command:
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-se
t-variabl
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
The related error:
/tmp/ccOMIprI.s: Assembler messages:
/tmp/ccOMIprI.s:507: Error: selected processor does not support ARM mode isb ' /tmp/ccOMIprI.s:513: Error: selected processor does not support ARM mode isb ' /tmp/ccOMIprI.s:514: Error: selected processor does not support ARM mode dsb ' /tmp/ccOMIprI.s:584: Error: selected processor does not support ARM mode isb ' /tmp/ccOMIprI.s:590: Error: selected processor does not support ARM mode isb ' /tmp/ccOMIprI.s:591: Error: selected processor does not support ARM mode dsb ' make[1]: *** [arch/arm/mach-vexpress/dcscb.o] Error 1
make: *** [arch/arm/mach-vexpress] Error 2
--- arch/arm/mach-vexpress/Kconfig | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
arch/arm/mach-vexpress/Kconfig +1 -1
@@ -1,5 +1,5 @@ config ARCH_VEXPRESS - bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7 + bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7 && !ARCH_MULTI_V6 && !CPU_V6 && !CPU_V6K select ARCH_REQUIRE_GPIOLIB select ARM_AMBA select ARM_GIC
Signature · 1 line
1.7.7.6
PATCH 1/1 ARM: VExpress: Kconfig: avoid arm6 compatible for ARCH_VEXPRESS
Quoted 6 lines · Chen Gang
ARCH_VEXPRESSisn't compatible with arm6 (not support "-march=armv6k"), so add dependency for it, or allmodconfig can not pass compiling.The related command:
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
Quoted 27 lines
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.oarch/arm/mach-vexpress/dcscb.cThe related error:
/tmp/ccOMIprI.s: Assembler messages:
/tmp/ccOMIprI.s:507: Error: selected processor does not support ARM modeisb ' /tmp/ccOMIprI.s:513: Error: selected processor does not support ARM modeisb '/tmp/ccOMIprI.s:514: Error: selected processor does not support ARM modedsb ' /tmp/ccOMIprI.s:584: Error: selected processor does not support ARM modeisb '/tmp/ccOMIprI.s:590: Error: selected processor does not support ARM modeisb ' /tmp/ccOMIprI.s:591: Error: selected processor does not support ARM modedsb ' make[1]: *** [arch/arm/mach-vexpress/dcscb.o] Error 1
make: *** [arch/arm/mach-vexpress] Error 2Signed-off-by Chen Gang <[email protected]>--- arch/arm/mach-vexpress/Kconfig | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)arch/arm/mach-vexpress/Kconfig +0
-0
arch/arm/mach-vexpress/Kconfig line 5
Quoted 6 lines
arch/arm/mach-vexpress/Kconfig +1
-1@@ -1,5 +1,5 @@ config ARCH_VEXPRESS - bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7 + bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7 && !ARCH_MULTI_V6 && !CPU_V6 && !CPU_V6K select ARCH_REQUIRE_GPIOLIB select ARM_AMBA select ARM_GIC
Oh, sorry, we do not need check ARCH_MULTI_V6, the new patch is in attachment.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-fixing.patch
Type: text/x-patch
Size: 2927 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130823/54cba7c7/attachment.bin>
Tony Lindgren
maintainerPATCH 1/1 ARM: VExpress: Kconfig: avoid arm6 compatible for ARCH_VEXPRESS
Quoted 23 lines · Chen Gang
The related error:
/tmp/ccOMIprI.s: Assembler messages:
/tmp/ccOMIprI.s:507: Error: selected processor does not support ARM modeisb ' /tmp/ccOMIprI.s:513: Error: selected processor does not support ARM modeisb '/tmp/ccOMIprI.s:514: Error: selected processor does not support ARM modedsb ' /tmp/ccOMIprI.s:584: Error: selected processor does not support ARM modeisb '/tmp/ccOMIprI.s:590: Error: selected processor does not support ARM modeisb ' /tmp/ccOMIprI.s:591: Error: selected processor does not support ARM modedsb ' make[1]: *** [arch/arm/mach-vexpress/dcscb.o] Error 1
make: *** [arch/arm/mach-vexpress] Error 2Signed-off-by Chen Gang <[email protected]>--- arch/arm/mach-vexpress/Kconfig | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)arch/arm/mach-vexpress/Kconfig +0
-0
arch/arm/mach-vexpress/Kconfig line 5
Quoted 6 lines
arch/arm/mach-vexpress/Kconfig +1
-1@@ -1,5 +1,5 @@ config ARCH_VEXPRESS - bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7 + bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7 && !CPU_V6 && !CPU_V6K select ARCH_REQUIRE_GPIOLIB select ARM_AMBA select ARM_GIC
We do support v6 and v7 in the same kernel. So instead of limiting what to select in Kconfig, just specify the v7 flags in the Makefile for the vexpress .c file with the inline assembly. Look for the find command I posted earlier in this thread for examples of specifying flags for a single object in a makefile.
Regards,
Tony
PATCH 1/1 ARM: VExpress: Kconfig: avoid arm6 compatible for ARCH_VEXPRESS
Quoted 28 lines · Tony Lindgren
Quoted 27 lines · Chen Gang
The related error:
/tmp/ccOMIprI.s: Assembler messages:
/tmp/ccOMIprI.s:507: Error: selected processor does not support ARM modeisb ' /tmp/ccOMIprI.s:513: Error: selected processor does not support ARM modeisb '/tmp/ccOMIprI.s:514: Error: selected processor does not support ARM modedsb ' /tmp/ccOMIprI.s:584: Error: selected processor does not support ARM modeisb '/tmp/ccOMIprI.s:590: Error: selected processor does not support ARM modeisb ' /tmp/ccOMIprI.s:591: Error: selected processor does not support ARM modedsb ' make[1]: *** [arch/arm/mach-vexpress/dcscb.o] Error 1
make: *** [arch/arm/mach-vexpress] Error 2Signed-off-by Chen Gang <[email protected]>--- arch/arm/mach-vexpress/Kconfig | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)arch/arm/mach-vexpress/Kconfig +1
-1@@ -1,5 +1,5 @@ config ARCH_VEXPRESS - bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7 + bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7 && !CPU_V6 && !CPU_V6K select ARCH_REQUIRE_GPIOLIB
Quoted 9 lines
arch/arm/mach-vexpress/Kconfig line 5
Quoted 2 lines
arch/arm/mach-vexpress/Kconfig +0
-0select ARM_AMBA select ARM_GICWe do support v6 and v7 in the same kernel. So instead of limiting what to select in
Kconfig, just specify the v7 flags in theMakefilefor the vexpress .c file with the inline assembly. Look for the find command I posted earlier in this thread for examples of specifying flags for a single object in a makefile.
I guess what your meaning is like the diff below:
--------------------------------diff begin------------------------------
arch/arm/mach-vexpress/Makefile +1 -1
@@ -2,7 +2,7 @@ # Makefile for the linux kernel. # ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \ - -I$(srctree)/arch/arm/plat-versatile/include + -I$(srctree)/arch/arm/plat-versatile/include -march=armv7-a obj-y := v2m.o obj-$(CONFIG_ARCH_VEXPRESS_CA9X4) += ct-ca9x4.o
--------------------------------diff end--------------------------------
If my above guess is correct, it can pass compiling without related warnings, but it will be like below (CONFIG_CPU_32v6 is enabled in allmodconfig):
"... -D__LINUX_ARM_ARCH__=6 -march=armv6k -mtune=arm1136j ... -march=armv7-a ..."
Is '-march=armv7-a' conflict with '-D__LINUX_ARM_ARCH__=6' ?
The related command is :
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-se
t-variabl
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 -march=armv7-a -W -D"KBUILD_STR(s)=#s" -D"KBUILD_BA
Thanks.
Signature · 1 line
Chen Gang
PATCH 1/1 ARM: VExpress: Kconfig: avoid arm6 compatible for ARCH_VEXPRESS
Quoted 59 lines · Chen Gang
Quoted 28 lines · Tony Lindgren
Quoted 27 lines · Chen Gang
The related error:
/tmp/ccOMIprI.s: Assembler messages:
/tmp/ccOMIprI.s:507: Error: selected processor does not support ARM modeisb ' /tmp/ccOMIprI.s:513: Error: selected processor does not support ARM modeisb '/tmp/ccOMIprI.s:514: Error: selected processor does not support ARM modedsb ' /tmp/ccOMIprI.s:584: Error: selected processor does not support ARM modeisb '/tmp/ccOMIprI.s:590: Error: selected processor does not support ARM modeisb ' /tmp/ccOMIprI.s:591: Error: selected processor does not support ARM modedsb ' make[1]: *** [arch/arm/mach-vexpress/dcscb.o] Error 1
make: *** [arch/arm/mach-vexpress] Error 2Signed-off-by Chen Gang <[email protected]>--- arch/arm/mach-vexpress/Kconfig | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)arch/arm/mach-vexpress/Kconfig +1
-1@@ -1,5 +1,5 @@ config ARCH_VEXPRESS - bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7 + bool "ARM Ltd. Versatile Express family" if ARCH_MULTI_V7 && !CPU_V6 && !CPU_V6K select ARCH_REQUIRE_GPIOLIBQuoted 9 lines
arch/arm/mach-vexpress/Kconfig line 5
Quoted 2 lines
arch/arm/mach-vexpress/Kconfig +0
-0select ARM_AMBA select ARM_GICWe do support v6 and v7 in the same kernel. So instead of limiting what to select in
Kconfig, just specify the v7 flags in theMakefilefor the vexpress .c file with the inline assembly. Look for the find command I posted earlier in this thread for examples of specifying flags for a single object in a makefile.I guess what your meaning is like the diff below:
--------------------------------diff begin------------------------------
arch/arm/mach-vexpress/Makefile +1
-2@@ -2,7 +2,7 @@ # Makefile for the linux kernel. # ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \ - -I$(srctree)/arch/arm/plat-versatile/include + -I$(srctree)/arch/arm/plat-versatile/include -march=armv7-a obj-y := v2m.o obj-$(CONFIG_ARCH_VEXPRESS_CA9X4) += ct-ca9x4.o --------------------------------diff end--------------------------------
Quoted 8 lines
If my above guess is correct, it can pass compiling without related warnings, but it will be like below (
CONFIG_CPU_32v6is enabled in allmodconfig):"... -D__LINUX_ARM_ARCH__=6 -march=armv6k -mtune=arm1136j ... -march=armv7-a ..."
Is '-march=armv7-a' conflict with '-D__LINUX_ARM_ARCH__=6' ?
Oh, sorry.
'-D__LINUX_ARM_ARCH__' is for C file, '-march' is for assembly file. for assembly file (or a C file has inline assemble code), need '-march=armv7-a' (just like you have already mentioned).
I will send patch v2 for it.
Thanks.
Quoted 4 lines
The related command is :
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
Quoted 6 lines
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 -march=armv7-a -W -D"KBUILD_STR(s)=#s" -D"KBUILD_BA
Thanks.
Signature · 1 line
Chen Gang
PATCH v2 1/1 ARM: VExpress: Makefile: add armv7 flags for inline assmembly code compiling
When vexpress kernel is compiled for v6, it still can support armv7 instructions (hardware still support), so need let compiler know about it for related inline assembly code, or compiling will fail.
The related failure command:
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-se
t-variabl
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
The related error:
/tmp/ccOMIprI.s: Assembler messages:
/tmp/ccOMIprI.s:507: Error: selected processor does not support ARM mode isb ' /tmp/ccOMIprI.s:513: Error: selected processor does not support ARM mode isb ' /tmp/ccOMIprI.s:514: Error: selected processor does not support ARM mode dsb ' /tmp/ccOMIprI.s:584: Error: selected processor does not support ARM mode isb ' /tmp/ccOMIprI.s:590: Error: selected processor does not support ARM mode isb ' /tmp/ccOMIprI.s:591: Error: selected processor does not support ARM mode dsb ' make[1]: *** [arch/arm/mach-vexpress/dcscb.o] Error 1
make: *** [arch/arm/mach-vexpress] Error 2
--- arch/arm/mach-vexpress/Makefile | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
arch/arm/mach-vexpress/Makefile +3 -0
@@ -10,3 +10,6 @@ obj-$(CONFIG_ARCH_VEXPRESS_DCSCB) += dcscb.o dcscb_setup.o obj-$(CONFIG_ARCH_VEXPRESS_TC2_PM) += tc2_pm.o spc.o obj-$(CONFIG_SMP) += platsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o + +CFLAGS_dcscb.o +=-march=armv7-a +CFLAGS_tc2_pm.o +=-march=armv7-a
Signature · 1 line
1.7.7.6
PATCH v2 1/1 ARM: VExpress: Makefile: add armv7 flags for inline assmembly code compiling
Quoted 4 lines · Chen Gang
When vexpress kernel is compiled for v6, it still can support armv7 instructions (hardware still support), so need let compiler know about it for related inline assembly code, or compiling will fail.
Hmm... need change "compiled for v6, it still can" to "compiled for both v6 and v7, it of cause can".
Thanks.
Quoted 3 lines
The related failure command:
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
Quoted 32 lines
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.oarch/arm/mach-vexpress/dcscb.cThe related error:
/tmp/ccOMIprI.s: Assembler messages:
/tmp/ccOMIprI.s:507: Error: selected processor does not support ARM modeisb ' /tmp/ccOMIprI.s:513: Error: selected processor does not support ARM modeisb '/tmp/ccOMIprI.s:514: Error: selected processor does not support ARM modedsb ' /tmp/ccOMIprI.s:584: Error: selected processor does not support ARM modeisb '/tmp/ccOMIprI.s:590: Error: selected processor does not support ARM modeisb ' /tmp/ccOMIprI.s:591: Error: selected processor does not support ARM modedsb ' make[1]: *** [arch/arm/mach-vexpress/dcscb.o] Error 1
make: *** [arch/arm/mach-vexpress] Error 2Signed-off-by Chen Gang <[email protected]>--- arch/arm/mach-vexpress/Makefile | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)arch/arm/mach-vexpress/Makefile +3
-0@@ -10,3 +10,6 @@ obj-$(CONFIG_ARCH_VEXPRESS_DCSCB) += dcscb.o dcscb_setup.o obj-$(CONFIG_ARCH_VEXPRESS_TC2_PM) += tc2_pm.o spc.o obj-$(CONFIG_SMP) += platsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o + +CFLAGS_dcscb.o +=-march=armv7-a +CFLAGS_tc2_pm.o +=-march=armv7-a
Signature · 1 line
Chen Gang
PATCH v3 1/1 ARM: VExpress: Makefile: add armv7 flags for inline assmembly code compiling
When 'vexpress' kernel is compiled for both v6 and v7, it can support armv7 instructions in lower level modules, so need let compiler know about it for related inline assembly code, or can not pass compiling.
The related failure command:
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-se
t-variabl
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
The related error:
/tmp/ccOMIprI.s: Assembler messages:
/tmp/ccOMIprI.s:507: Error: selected processor does not support ARM mode isb ' /tmp/ccOMIprI.s:513: Error: selected processor does not support ARM mode isb ' /tmp/ccOMIprI.s:514: Error: selected processor does not support ARM mode dsb ' /tmp/ccOMIprI.s:584: Error: selected processor does not support ARM mode isb ' /tmp/ccOMIprI.s:590: Error: selected processor does not support ARM mode isb ' /tmp/ccOMIprI.s:591: Error: selected processor does not support ARM mode dsb ' make[1]: *** [arch/arm/mach-vexpress/dcscb.o] Error 1
make: *** [arch/arm/mach-vexpress] Error 2
--- arch/arm/mach-vexpress/Makefile | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
arch/arm/mach-vexpress/Makefile +3 -0
@@ -10,3 +10,6 @@ obj-$(CONFIG_ARCH_VEXPRESS_DCSCB) += dcscb.o dcscb_setup.o obj-$(CONFIG_ARCH_VEXPRESS_TC2_PM) += tc2_pm.o spc.o obj-$(CONFIG_SMP) += platsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o + +CFLAGS_dcscb.o +=-march=armv7-a +CFLAGS_tc2_pm.o +=-march=armv7-a
Signature · 1 line
1.7.7.6
Tony Lindgren
maintainerPATCH 1/1 ARM: OMAP2: add type cast from 'unsigned' to 'signed'
In reply to Chen GangQuoted 16 lines · Chen Gang
Need add type cast, or can not notice the failure. The related warning (allmodconfig, "EXTRA_CFLAGS=-W"):
arch/arm/mach-omap2/gpmc.c:728:2: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]Signed-off-by Chen Gang <[email protected]>--- arch/arm/mach-omap2/gpmc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)arch/arm/mach-omap2/gpmc.c +0
-0
arch/arm/mach-omap2/gpmc.c static int gpmc_setup_irq(void) · line 731
Quoted 8 lines
arch/arm/mach-omap2/gpmc.c +1
-1@@ -725,7 +725,7 @@ static int gpmc_setup_irq(void)return -EINVAL ; gpmc_irq_start =irq_alloc_descs (-1 ,0 ,GPMC_NR_IRQ ,0 ); -if (gpmc_irq_start <0 ) { +if ((signed )gpmc_irq_start <0 ) {pr_err ("irq_alloc_descs failed\n" );return gpmc_irq_start; }
Hmm shouldn't we just have int gpmc_irq_start instead of unsigned gpmc_irq_start?
Regards,
Tony
PATCH 1/1 ARM: OMAP2: add type cast from 'unsigned' to 'signed'
Quoted 19 lines · Tony Lindgren
Quoted 18 lines · Chen Gang
Need add type cast, or can not notice the failure. The related warning (allmodconfig, "EXTRA_CFLAGS=-W"):
arch/arm/mach-omap2/gpmc.c:728:2: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]Signed-off-by Chen Gang <[email protected]>--- arch/arm/mach-omap2/gpmc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)arch/arm/mach-omap2/gpmc.c +0
-0@@ -725,7 +725,7 @@ static int gpmc_setup_irq(void)return -EINVAL ;
Quoted 10 lines
arch/arm/mach-omap2/gpmc.c static int gpmc_setup_irq(void) · line 731
Quoted 6 lines
arch/arm/mach-omap2/gpmc.c +1
-1gpmc_irq_start =irq_alloc_descs (-1 ,0 ,GPMC_NR_IRQ ,0 ); -if (gpmc_irq_start <0 ) { +if ((signed )gpmc_irq_start <0 ) {pr_err ("irq_alloc_descs failed\n" );return gpmc_irq_start; }Hmm shouldn't we just have int
gpmc_irq_startinstead of unsignedgpmc_irq_start?
Oh, thanks, that sounds reasonable to me, I will send patch v2.
Quoted 5 lines
Regards,
Tony
Thanks.
Signature · 1 line
Chen Gang
PATCH v2 1/1 ARM: OMAP2: use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'
'gpmc_irq_start' is mostly used as 'int', and for a variable, do not suggest to only use 'unsigned' as its type, so use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'.
Also it will fix the related issue (dummy the real world failure):
arch/arm/mach-omap2/gpmc.c:728:2: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
--- arch/arm/mach-omap2/gpmc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/gpmc.c +1 -1
@@ -149,7 +149,7 @@ struct omap3_gpmc_regs {static struct gpmc_client_irq gpmc_client_irq[GPMC_NR_IRQ ];static struct irq_chip gpmc_irq_chip; -static unsigned gpmc_irq_start; +static int gpmc_irq_start;static struct resource gpmc_mem_root;static struct resource gpmc_cs_mem[GPMC_CS_NUM ];
Signature · 1 line
1.7.7.6
Tony Lindgren
maintainerPATCH v2 1/1 ARM: OMAP2: use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'
Quoted 8 lines · Chen Gang
'
gpmc_irq_start' is mostly used as 'int', and for a variable, do not suggest to only use 'unsigned' as its type, so use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'.Also it will fix the related issue (dummy the real world failure):
arch/arm/mach-omap2/gpmc.c:728:2: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
Thanks applying into omap-for-v3.12/fixes-non-critical.
Tony
Quoted 20 lines
Signed-off-by Chen Gang <[email protected]>--- arch/arm/mach-omap2/gpmc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)arch/arm/mach-omap2/gpmc.c +1
-1@@ -149,7 +149,7 @@ struct omap3_gpmc_regs {static struct gpmc_client_irq gpmc_client_irq[GPMC_NR_IRQ ];static struct irq_chip gpmc_irq_chip; -static unsigned gpmc_irq_start; +static int gpmc_irq_start;static struct resource gpmc_mem_root;static struct resource gpmc_cs_mem[GPMC_CS_NUM ];Signature · 1 line
1.7.7.6
PATCH v2 1/1 ARM: OMAP2: use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'
Quoted 5 lines · Tony Lindgren
Quoted 4 lines · Chen Gang
'
gpmc_irq_start' is mostly used as 'int', and for a variable, do not suggest to only use 'unsigned' as its type, so use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'.
Quoted 7 lines
Quoted 4 lines
Also it will fix the related issue (dummy the real world failure):
arch/arm/mach-omap2/gpmc.c:728:2: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]Thanks applying into omap-for-v3.12/fixes-non-critical.
Thank you too.
Hmm... excuse me, I am not quite familiar with the omap version trees, so may have a doubt: "it seems this is a real bug, is it suitable to belong to fixes-none-critical tree ?"
Thanks.
Quoted 24 lines
Tony
Quoted 20 lines
Signed-off-by Chen Gang <[email protected]>--- arch/arm/mach-omap2/gpmc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)arch/arm/mach-omap2/gpmc.c +1
-1@@ -149,7 +149,7 @@ struct omap3_gpmc_regs {static struct gpmc_client_irq gpmc_client_irq[GPMC_NR_IRQ ];static struct irq_chip gpmc_irq_chip; -static unsigned gpmc_irq_start; +static int gpmc_irq_start;static struct resource gpmc_mem_root;static struct resource gpmc_cs_mem[GPMC_CS_NUM ];Signature · 1 line
1.7.7.6
Signature · 1 line
Chen Gang
Tony Lindgren
maintainerPATCH v2 1/1 ARM: OMAP2: use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'
Quoted 11 lines · Chen Gang
Quoted 10 lines · Tony Lindgren
Quoted 8 lines · Chen Gang
'
gpmc_irq_start' is mostly used as 'int', and for a variable, do not suggest to only use 'unsigned' as its type, so use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'.Also it will fix the related issue (dummy the real world failure):
arch/arm/mach-omap2/gpmc.c:728:2: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
Quoted 8 lines
Quoted 2 lines
Thanks applying into omap-for-v3.12/fixes-non-critical.
Thank you too.
Hmm... excuse me, I am not quite familiar with the omap version trees, so may have a doubt: "it seems this is a real bug, is it suitable to belong to fixes-none-critical tree ?"
For the -rc cycle we try to limit the patches to oopses and regressions, especially this close to v3.11 being tagged.
It seems the bug has been there for quite some time, and that we don't seem to have oopses or other failures reporting this. So it seems there's no reason for urgency to have it merged into the current -rc series.
If you (or somebody else) strongly feels that it should be in applied to the current -rc series as a fix instead of during the merge window, then please let me know the failing cases with logs showing what happens.
Regards,
Tony
PATCH v2 1/1 ARM: OMAP2: use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'
Quoted 15 lines · Tony Lindgren
Quoted 14 lines · Chen Gang
Quoted 12 lines · Tony Lindgren
Quoted 8 lines · Chen Gang
'
gpmc_irq_start' is mostly used as 'int', and for a variable, do not suggest to only use 'unsigned' as its type, so use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'.Also it will fix the related issue (dummy the real world failure):
arch/arm/mach-omap2/gpmc.c:728:2: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]Thanks applying into omap-for-v3.12/fixes-non-critical.
Quoted 9 lines
Quoted 5 lines
Thank you too.
Hmm... excuse me, I am not quite familiar with the omap version trees, so may have a doubt: "it seems this is a real bug, is it suitable to belong to fixes-none-critical tree ?"
For the -rc cycle we try to limit the patches to oopses and regressions, especially this close to v3.11 being tagged.
Really necessary.
Quoted 4 lines
It seems the bug has been there for quite some time, and that we don't seem to have oopses or other failures reporting this. So it seems there's no reason for urgency to have it merged into the current -rc series.
I guess so too (I only find it by compiling).
Quoted 5 lines
If you (or somebody else) strongly feels that it should be in applied to the current -rc series as a fix instead of during the merge window, then please let me know the failing cases with logs showing what happens.
Hmm... for urgent bugs, the reporters really need supply the failing cases with logs showing what happens.
Bugs can be sort of by urgent priority (e.g. this bug is not urgent). but for most of bugs may cause critical issue which depends on the using environments, and can be 'imagined' by us.
Hmm... I guess: for our case, what your meaning is "fixes-none-urgent", not "fixes-none-critical", is it correct ? :-)
Thanks.
Quoted 8 lines
Regards,
Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 1 line
Chen Gang
Tony Lindgren
maintainerPATCH v2 1/1 ARM: OMAP2: use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'
Quoted 2 lines · Chen Gang F T
Hmm... I guess: for our case, what your meaning is "fixes-none-urgent", not "fixes-none-critical", is it correct ? :-)
Right, that naming might be actually better :)
Tony
PATCH v2 1/1 ARM: OMAP2: use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'
Quoted 9 lines · Tony Lindgren
Quoted 2 lines · Chen Gang F T
Hmm... I guess: for our case, what your meaning is "fixes-none-urgent", not "fixes-none-critical", is it correct ? :-)
Right, that naming might be actually better :)
Tony
Thanks !
Signature · 1 line
Chen Gang