Removal of BR2_GCC_TARGET_TUNE and other arch/ updates
cover Removal of BR2_GCC_TARGET_TUNE and other arch/ updates
Hello,
As discussed during the Buildroot Developers meeting, this patch series implement a few changes to the handling of the BR2_GCC_TARGET_{ARCH,CPU,TUNE} options.
In sequence, this patch series:
- PATCH 1 and 2 fix some dangling architecture dependency and a typo on a NIOS 2 architecture dependency. They are really fixes for existing issues.
- PATCH 3 introduces a number of ARM architecture blind options:
BR2_ARM_CPU_ARMV4, BR2_ARM_CPU_ARMV4T, ..., BR2_ARM_CPU_ARMV7A. These options will allow to simplify testing against an ARM architecture (instead of using each individual ARM core), and also allow to remove tests against BR2_GCC_TARGET_ARCH on ARM, since we later get rid of all values for this variable on ARM as part of a later patch in this series.
- PATCH 4 to 20 make use of those new blind options to replace a number of dependencies/conditions on individual ARM cores by dependencies/conditions on ARM architecture levels.
- PATCH 21 fixes the dhcpcd package as it uses the BR2_GCC_TARGET_ARCH value, which may not always exists on certain architectures.
- PATCH 22 and 23 remove the BR2_GCC_TARGET_ARCH values from the ARM architecture, since they are causing conflicts with the BR2_GCC_TARGET_CPU values. We now only specify the -mcpu value (through BR2_GCC_TARGET_CPU), and let gcc derive the corresponding ARM architecture. This fixes a long standing bug report where Buildroot would pass conflicting -march and -mcpu values for certain versions of gcc.
- PATCH 24 prepares ffmpeg for the removal of BR2_GCC_TARGET_TUNE by using BR2_GCC_TARGET_ARCH or BR2_GCC_TARGET_CPU instead.
- PATCH 25 to 28 modifies the architecture definitions to no longer use BR2_GCC_TARGET_TUNE, and instead use BR2_GCC_TARGET_CPU or BR2_GCC_TARGET_ARCH as appropriate.
- PATCH 29 to 31 finally get rid of BR2_GCC_TARGET_TUNE entirely since it is no longer used.
Thomas
Thomas Petazzoni (31):
ffmpeg: remove dangling reference to BR2_arm10
libplayer: fix typo on BR2_nios2
arch/arm: add blind options to know the ARM architecture
ffmpeg: use the new BR2_ARM_CPU_ARM* options
gst-ffmpeg: use the new BR2_ARM_CPU_ARM* options
gst-ffmpeg: allow usage of ARMv6 optimizations on ARMv7 platforms
gst1-libav: use the new BR2_ARM_CPU_ARM* options
gst1-libav: allow usage of ARMv6 optimizations on ARMv7 platforms
mplayer: use BR2_ARM_CPU_ARM* options
libplayer: use BR2_ARM_CPU_ARM* option
nettle: use the BR2_ARM_CPU_ARM* options
nodejs: use BR2_ARM_CPU_ARM* options
qt5: use the BR2_ARM_CPU_ARM* options
speex: use BR2_ARM_CPU_ARM* options
vo-aacenc: use the BR2_ARM_CPU_ARM* options
webkit: use BR2_ARM_CPU_ARM* options
valgrind: use the BR2_ARM_CPU_ARM* options
x264: use the BR2_ARM_CPU_ARMV7A option
libnspr: use the BR2_ARM_CPU_ARMV7A option
toolchain-external: use BR2_ARM_CPU_ARM* options
dhcpcd: do not pass --target option
arch/arm: do not distinguish revisions of ARM1136JF-S arch/arm: remove BR2_GCC_TARGET_ARCH definitions on ARM
ffmpeg: use arch and cpu instead of tune
arch/x86: get rid of BR2_GCC_TARGET_TUNE
arch/sparc: get rid of BR2_GCC_TARGET_TUNE arch/powerpc: get rid of BR2_GCC_TARGET_TUNE arch/m68k: get rid of BR2_GCC_TARGET_TUNE
gcc: do not use BR2_GCC_TARGET_TUNE anymore
toolchain-external: do not use BR2_GCC_TARGET_TUNE anymore
arch: remove the BR2_GCC_TARGET_TUNE option
arch/Config.in | 3 - arch/Config.in.arm | 69 ++++++++++++---------- arch/Config.in.m68k | 8 --- arch/Config.in.powerpc | 2 +- arch/Config.in.sparc | 4 +- arch/Config.in.x86 | 32 +--------- package/dhcpcd/dhcpcd.mk | 1 - package/ffmpeg/ffmpeg.mk | 13 ++-- package/gcc/gcc.mk | 3 - package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk | 4 +- package/gstreamer1/gst1-libav/gst1-libav.mk | 4 +- package/libnspr/libnspr.mk | 2 +- package/libplayer/Config.in | 5 +- package/mplayer/Config.in | 3 +- package/mplayer/mplayer.mk | 4 +- package/nettle/nettle.mk | 2 +- package/nodejs/Config.in | 4 +- package/qt5/Config.in | 2 +- package/speex/Config.in | 2 +- package/valgrind/Config.in | 7 +-- package/valgrind/valgrind.mk | 4 +- package/vo-aacenc/vo-aacenc.mk | 2 +- package/webkit/Config.in | 2 +- package/x264/x264.mk | 2 +- toolchain/toolchain-external/Config.in | 14 ++--- .../toolchain-external/ext-toolchain-wrapper.c | 12 +--- toolchain/toolchain-external/toolchain-external.mk | 5 -- 27 files changed, 83 insertions(+), 132 deletions(-)
Signature · 1 line
2.0.0
PATCH 1/31 ffmpeg: remove dangling reference to BR2_arm10
BR2_arm10 has been removed in commit d60489a6e5e733a20d18b128646088981da57867 ("arch: remove BR2_arm10t"), so there is no point in keeping a reference to it in the ffmpeg package.
--- package/ffmpeg/ffmpeg.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/ffmpeg/ffmpeg.mk +1 -1
@@ -285,7 +285,7 @@ FFMPEG_CONF_OPTS += --enable-armv6 else FFMPEG_CONF_OPTS += --disable-armv6 --disable-armv6t2 endif -ifeq ($(BR2_arm10)$(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf_s)$(BR2_cortex_a5)$(BR2_cortex_a8)$(BR2_cortex_a9)$(BR2_cortex_a15),y) +ifeq ($(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf_s)$(BR2_cortex_a5)$(BR2_cortex_a8)$(BR2_cortex_a9)$(BR2_cortex_a15),y) FFMPEG_CONF_OPTS += --enable-vfp else FFMPEG_CONF_OPTS += --disable-vfp
Signature · 1 line
2.0.0
PATCH 1/31 ffmpeg: remove dangling reference to BR2_arm10
Thomas, All,
On 2014-10-19 22:07 +0200, Thomas Petazzoni spake thusly:
Quoted 6 lines
BR2_arm10has been removed in commitd60489a6e5e733a20d18b128646088981da57867("arch: removeBR2_arm10t"), so there is no point in keeping a reference to it in the ffmpeg package.Signed-off-by Thomas Petazzoni <[email protected]>
Regards,
Yann E. MORIN.
Quoted 24 lines
--- package/ffmpeg/ffmpeg.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)package/ffmpeg/ffmpeg.mk +1
-1@@ -285,7 +285,7 @@ FFMPEG_CONF_OPTS += --enable-armv6 else FFMPEG_CONF_OPTS += --disable-armv6 --disable-armv6t2 endif -ifeq ($(BR2_arm10)$(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf_s)$(BR2_cortex_a5)$(BR2_cortex_a8)$(BR2_cortex_a9)$(BR2_cortex_a15),y) +ifeq ($(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf_s)$(BR2_cortex_a5)$(BR2_cortex_a8)$(BR2_cortex_a9)$(BR2_cortex_a15),y) FFMPEG_CONF_OPTS += --enable-vfp else FFMPEG_CONF_OPTS += --disable-vfpSignature · 6 lines
2.0.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/31 ffmpeg: remove dangling reference to BR2_arm10
In reply to Thomas PetazzoniQuoted 6 lines · Thomas Petazzoni
BR2_arm10has been removed in commitd60489a6e5e733a20d18b128646088981da57867("arch: removeBR2_arm10t"), so there is no point in keeping a reference to it in the ffmpeg package.Signed-off-by Thomas Petazzoni <[email protected]>
Quoted 24 lines
--- package/ffmpeg/ffmpeg.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)package/ffmpeg/ffmpeg.mk +1
-2@@ -285,7 +285,7 @@ FFMPEG_CONF_OPTS += --enable-armv6 else FFMPEG_CONF_OPTS += --disable-armv6 --disable-armv6t2 endif -ifeq ($(BR2_arm10)$(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf_s)$(BR2_cortex_a5)$(BR2_cortex_a8)$(BR2_cortex_a9)$(BR2_cortex_a15),y) +ifeq ($(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf_s)$(BR2_cortex_a5)$(BR2_cortex_a8)$(BR2_cortex_a9)$(BR2_cortex_a15),y) FFMPEG_CONF_OPTS += --enable-vfp else FFMPEG_CONF_OPTS += --disable-vfp --2.0.0
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 1 line
Samuel
PATCH 1/31 ffmpeg: remove dangling reference to BR2_arm10
In reply to Thomas PetazzoniQuoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Thomas" == Thomas Petazzoni <[email protected]> writes:
BR2_arm10has been removed in commitd60489a6e5e733a20d18b128646088981da57867("arch: removeBR2_arm10t"), so there is no point in keeping a reference to it in the ffmpeg package.Signed-off-by Thomas Petazzoni <[email protected]>
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 2/31 libplayer: fix typo on BR2_nios2
In reply to Thomas Petazzonilibplayer is using BR2_nios, but it should be BR2_nios2.
--- package/libplayer/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/libplayer/Config.in +1 -1
@@ -14,7 +14,7 @@ config BR2_PACKAGE_LIBPLAYER_MPLAYER bool "mplayer backend" # mplayer depends on !(BR2_bfin || BR2_sh2a || BR2_sh4a || BR2_sh4aeb || \ - BR2_microblaze || BR2_aarch64 || BR2_nios) + BR2_microblaze || BR2_aarch64 || BR2_nios2) # mplayer depends on BR2_LARGEFILE # mplayer
Signature · 1 line
2.0.0
PATCH 2/31 libplayer: fix typo on BR2_nios2
Thomas, All,
On 2014-10-19 22:07 +0200, Thomas Petazzoni spake thusly:
Quoted 3 lines
libplayer is using
BR2_nios, but it should beBR2_nios2.Signed-off-by Thomas Petazzoni <[email protected]>
Regards,
Yann E. MORIN.
Quoted 24 lines
--- package/libplayer/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)package/libplayer/Config.in +1
-1@@ -14,7 +14,7 @@ config BR2_PACKAGE_LIBPLAYER_MPLAYER bool "mplayer backend" # mplayer depends on !(BR2_bfin || BR2_sh2a || BR2_sh4a || BR2_sh4aeb || \ - BR2_microblaze || BR2_aarch64 || BR2_nios) + BR2_microblaze || BR2_aarch64 || BR2_nios2) # mplayer depends on BR2_LARGEFILE # mplayerSignature · 6 lines
2.0.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 2/31 libplayer: fix typo on BR2_nios2
In reply to Thomas PetazzoniQuoted 3 lines · Thomas Petazzoni
libplayer is using
BR2_nios, but it should beBR2_nios2.Signed-off-by Thomas Petazzoni <[email protected]>
Quoted 24 lines
--- package/libplayer/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)package/libplayer/Config.in +1
-2@@ -14,7 +14,7 @@ config BR2_PACKAGE_LIBPLAYER_MPLAYER bool "mplayer backend" # mplayer depends on !(BR2_bfin || BR2_sh2a || BR2_sh4a || BR2_sh4aeb || \ - BR2_microblaze || BR2_aarch64 || BR2_nios) + BR2_microblaze || BR2_aarch64 || BR2_nios2) # mplayer depends on BR2_LARGEFILE # mplayer --2.0.0
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 1 line
Samuel
PATCH 2/31 libplayer: fix typo on BR2_nios2
In reply to Thomas PetazzoniQuoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Thomas" == Thomas Petazzoni <[email protected]> writes:
libplayer is using
BR2_nios, but it should beBR2_nios2.Signed-off-by Thomas Petazzoni <[email protected]>
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 3/31 arch/arm: add blind options to know the ARM architecture
In reply to Thomas PetazzoniIn preparation to the removal of BR2_GCC_TARGET_ARCH for ARM, this commit introduces a number of blind options for each ARM architecture, so that packages/toolchains that had dependencies using BR2_GCC_TARGET_ARCH can continue to express their dependencies. It can also be used to simplify package dependencies that were using the individual ARM core options.
--- arch/Config.in.arm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)
arch/Config.in.arm +39 -0
@@ -37,6 +37,27 @@ config BR2_ARM_CPU_HAS_THUMB config BR2_ARM_CPU_HAS_THUMB2 bool +config BR2_ARM_CPU_ARMV4 + bool + +config BR2_ARM_CPU_ARMV4T + bool + +config BR2_ARM_CPU_ARMV5TE + bool + +config BR2_ARM_CPU_ARMV5TEJ + bool + +config BR2_ARM_CPU_ARMV6J + bool + +config BR2_ARM_CPU_ARMV6ZK + bool + +config BR2_ARM_CPU_ARMV7A + bool + choice prompt "Target Architecture Variant" depends on BR2_arm || BR2_armeb
@@ -47,70 +68,88 @@ choice config BR2_arm920t bool "arm920t" select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV4T config BR2_arm922t bool "arm922t" select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV4T config BR2_arm926t bool "arm926t" select BR2_ARM_CPU_MAYBE_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV5TEJ config BR2_arm1136jf_s_r0 bool "arm1136jf_s rev0" select BR2_ARM_CPU_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV6J config BR2_arm1136jf_s_r1 bool "arm1136jf_s rev1" select BR2_ARM_CPU_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV6J config BR2_arm1176jz_s bool "arm1176jz-s" select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV6ZK config BR2_arm1176jzf_s bool "arm1176jzf-s" select BR2_ARM_CPU_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV6ZK config BR2_cortex_a5 bool "cortex-A5" select BR2_ARM_CPU_MAYBE_HAS_NEON select BR2_ARM_CPU_MAYBE_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A config BR2_cortex_a7 bool "cortex-A7" select BR2_ARM_CPU_HAS_NEON select BR2_ARM_CPU_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A config BR2_cortex_a8 bool "cortex-A8" select BR2_ARM_CPU_HAS_NEON select BR2_ARM_CPU_HAS_VFPV3 select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A config BR2_cortex_a9 bool "cortex-A9" select BR2_ARM_CPU_MAYBE_HAS_NEON select BR2_ARM_CPU_MAYBE_HAS_VFPV3 select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A config BR2_cortex_a12 bool "cortex-A12" select BR2_ARM_CPU_HAS_NEON select BR2_ARM_CPU_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A config BR2_cortex_a15 bool "cortex-A15" select BR2_ARM_CPU_HAS_NEON select BR2_ARM_CPU_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A config BR2_fa526 bool "fa526/626" + select BR2_ARM_CPU_ARMV4 config BR2_pj4 bool "pj4" select BR2_ARM_CPU_HAS_VFPV3 + select BR2_ARM_CPU_ARMV7A config BR2_strongarm bool "strongarm sa110/sa1100" + select BR2_ARM_CPU_ARMV4 config BR2_xscale bool "xscale" select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV5TE config BR2_iwmmxt bool "iwmmxt" + select BR2_ARM_CPU_ARMV5TE endchoice config BR2_arm1136jf_s
Signature · 1 line
2.0.0
PATCH 3/31 arch/arm: add blind options to know the ARM architecture
Thomas, All,
On 2014-10-19 22:07 +0200, Thomas Petazzoni spake thusly:
Quoted 17 lines
In preparation to the removal of
BR2_GCC_TARGET_ARCHfor ARM, this commit introduces a number of blind options for each ARM architecture, so that packages/toolchains that had dependencies usingBR2_GCC_TARGET_ARCHcan continue to express their dependencies. It can also be used to simplify package dependencies that were using the individual ARM core options.Signed-off-by Thomas Petazzoni <[email protected]>--- arch/Config.in.arm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)arch/Config.in.arm +0
-0
arch/Config.in.arm config BR2_ARM_CPU_HAS_THUMB · line 38
Quoted 2 lines
arch/Config.in.arm +0
-0@@ -37,6 +37,27 @@ config BR2_ARM_CPU_HAS_THUMB config BR2_ARM_CPU_HAS_THUMB2 bool
Indirectly related to your patch: HAS_THUMB2 should select HAS_THUMB, since Thumb-2 is a superset of Thumb.
Then, you could just have (for example) BR2_ARM_CPU_ARMV4 and ditch BR2_ARM_CPU_ARMV4T since it can be reconstructed from BR2_ARM_CPU_ARMV4 && HAS_THUMB.
The reasonning is that few package actually require knowing the exact variant, but rather the instruction set generation. Thus knowing about armv4t is equivalent to knowing about armv4 for most. Those few that actuallt require the Thumb isns would need to use the HAS_THUMB option, which very purpose is just that, telling whether thumb is supported or not (or HAS_THUMB2 for Thumb-2).
As for the J version, I wonder if we need to introduce a HAS_JAZELLE option. For armv6zk (Wikpedia refer to it as armv6kz), I also doubt we need to introduce a HAS_TRUSTZONE option either. For armv7a, I think we can just use armv7, since we will probably never support the R and M profiles in Buildroot.
Regards,
Yann E. MORIN.
Quoted 120 lines
arch/Config.in.arm +39
-0+config BR2_ARM_CPU_ARMV4 + bool + +config BR2_ARM_CPU_ARMV4T + bool + +config BR2_ARM_CPU_ARMV5TE + bool + +config BR2_ARM_CPU_ARMV5TEJ + bool + +config BR2_ARM_CPU_ARMV6J + bool + +config BR2_ARM_CPU_ARMV6ZK + bool + +config BR2_ARM_CPU_ARMV7A + bool + choice prompt "Target Architecture Variant" depends on BR2_arm || BR2_armeb@@ -47,70 +68,88 @@ choice config BR2_arm920t bool "arm920t" select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV4T config BR2_arm922t bool "arm922t" select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV4T config BR2_arm926t bool "arm926t" select BR2_ARM_CPU_MAYBE_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV5TEJ config BR2_arm1136jf_s_r0 bool "arm1136jf_s rev0" select BR2_ARM_CPU_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV6J config BR2_arm1136jf_s_r1 bool "arm1136jf_s rev1" select BR2_ARM_CPU_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV6J config BR2_arm1176jz_s bool "arm1176jz-s" select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV6ZK config BR2_arm1176jzf_s bool "arm1176jzf-s" select BR2_ARM_CPU_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV6ZK config BR2_cortex_a5 bool "cortex-A5" select BR2_ARM_CPU_MAYBE_HAS_NEON select BR2_ARM_CPU_MAYBE_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A config BR2_cortex_a7 bool "cortex-A7" select BR2_ARM_CPU_HAS_NEON select BR2_ARM_CPU_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A config BR2_cortex_a8 bool "cortex-A8" select BR2_ARM_CPU_HAS_NEON select BR2_ARM_CPU_HAS_VFPV3 select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A config BR2_cortex_a9 bool "cortex-A9" select BR2_ARM_CPU_MAYBE_HAS_NEON select BR2_ARM_CPU_MAYBE_HAS_VFPV3 select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A config BR2_cortex_a12 bool "cortex-A12" select BR2_ARM_CPU_HAS_NEON select BR2_ARM_CPU_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A config BR2_cortex_a15 bool "cortex-A15" select BR2_ARM_CPU_HAS_NEON select BR2_ARM_CPU_HAS_VFPV4 select BR2_ARM_CPU_HAS_THUMB2 + select BR2_ARM_CPU_ARMV7A config BR2_fa526 bool "fa526/626" + select BR2_ARM_CPU_ARMV4 config BR2_pj4 bool "pj4" select BR2_ARM_CPU_HAS_VFPV3 + select BR2_ARM_CPU_ARMV7A config BR2_strongarm bool "strongarm sa110/sa1100" + select BR2_ARM_CPU_ARMV4 config BR2_xscale bool "xscale" select BR2_ARM_CPU_HAS_THUMB + select BR2_ARM_CPU_ARMV5TE config BR2_iwmmxt bool "iwmmxt" + select BR2_ARM_CPU_ARMV5TE endchoice config BR2_arm1136jf_sSignature · 6 lines
2.0.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 3/31 arch/arm: add blind options to know the ARM architecture
Quoted 30 lines · Yann E. MORIN
Thomas, All,
On 2014-10-19 22:07 +0200, Thomas Petazzoni spake thusly:
Quoted 17 lines
In preparation to the removal of
BR2_GCC_TARGET_ARCHfor ARM, this commit introduces a number of blind options for each ARM architecture, so that packages/toolchains that had dependencies usingBR2_GCC_TARGET_ARCHcan continue to express their dependencies. It can also be used to simplify package dependencies that were using the individual ARM core options.Signed-off-by Thomas Petazzoni <[email protected]>--- arch/Config.in.arm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)arch/Config.in.arm +0
-0arch/Config.in.arm config BR2_ARM_CPU_HAS_THUMB · line 38
Quoted 2 lines
arch/Config.in.arm +0
-0@@ -37,6 +37,27 @@ config BR2_ARM_CPU_HAS_THUMB config BR2_ARM_CPU_HAS_THUMB2 boolIndirectly related to your patch:
HAS_THUMB2should selectHAS_THUMB, since Thumb-2 is a superset of Thumb.Then, you could just have (for example)
BR2_ARM_CPU_ARMV4and ditchBR2_ARM_CPU_ARMV4Tsince it can be reconstructed fromBR2_ARM_CPU_ARMV4&&HAS_THUMB.
Quoted 6 lines
The reasonning is that few package actually require knowing the exact variant, but rather the instruction set generation. Thus knowing about armv4t is equivalent to knowing about armv4 for most. Those few that actuallt require the Thumb isns would need to use the
HAS_THUMBoption, which very purpose is just that, telling whether thumb is supported or not (orHAS_THUMB2for Thumb-2).
+1 to this. I made the same reasoning.
Regards,
Arnout
Quoted 5 lines
As for the J version, I wonder if we need to introduce a
HAS_JAZELLEoption. For armv6zk (Wikpedia refer to it as armv6kz), I also doubt we need to introduce aHAS_TRUSTZONEoption either. For armv7a, I think we can just use armv7, since we will probably never support the R and M profiles in Buildroot.
[snip]
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 3/31 arch/arm: add blind options to know the ARM architecture
In reply to Yann E. MORINDear Yann E. MORIN,
Quoted 10 lines · Yann E. MORIN
arch/Config.in.arm config BR2_ARM_CPU_HAS_THUMB · line 38
Quoted 7 lines
arch/Config.in.arm +0
-0@@ -37,6 +37,27 @@ config BR2_ARM_CPU_HAS_THUMB config BR2_ARM_CPU_HAS_THUMB2 boolIndirectly related to your patch:
HAS_THUMB2should selectHAS_THUMB, since Thumb-2 is a superset of Thumb.
Right.
Quoted 11 lines
Then, you could just have (for example)
BR2_ARM_CPU_ARMV4and ditchBR2_ARM_CPU_ARMV4Tsince it can be reconstructed fromBR2_ARM_CPU_ARMV4&&HAS_THUMB.The reasonning is that few package actually require knowing the exact variant, but rather the instruction set generation. Thus knowing about armv4t is equivalent to knowing about armv4 for most. Those few that actuallt require the Thumb isns would need to use the
HAS_THUMBoption, which very purpose is just that, telling whether thumb is supported or not (orHAS_THUMB2for Thumb-2).
Quoted 3 lines
As for the J version, I wonder if we need to introduce a
HAS_JAZELLEoption. For armv6zk (Wikpedia refer to it as armv6kz), I also doubt we need to introduce aHAS_TRUSTZONEoption either.
Agreed with all of that.
Quoted 3 lines
For armv7a, I think we
can just use armv7, since we will probably never support the R and M profiles in Buildroot.
But not with that one: I now have a Cortex-M platform, and I hope to do something with it at some point. And since Cortex-M platforms don't have a MMU, it's significant difference between ARMv7-A and ARMv7-M.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 4/31 ffmpeg: use the new BR2_ARM_CPU_ARM* options
In reply to Thomas PetazzoniInstead of using the Config.in options for each individual ARM core, use the newly introduced BR2_ARM_CPU_ARM* options, which exist per ARM architecture.
--- package/ffmpeg/ffmpeg.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
package/ffmpeg/ffmpeg.mk +3 -3
@@ -277,15 +277,15 @@ endif # Explicitly disable everything that doesn't match for ARM # FFMPEG "autodetects" by compiling an extended instruction via AS # This works on compilers that aren't built for generic by default -ifeq ($(BR2_arm920t)$(BR2_arm922t)$(BR2_strongarm)$(BR2_fa526),y) +ifeq ($(BR2_ARM_CPU_ARMV4)$(BR2_ARM_CPU_ARMV4T),y) FFMPEG_CONF_OPTS += --disable-armv5te endif -ifeq ($(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf_s)$(BR2_cortex_a5)$(BR2_cortex_a8)$(BR2_cortex_a9)$(BR2_cortex_a15),y) +ifeq ($(BR2_ARM_CPU_ARMV6J)$(BR2_ARM_CPU_ARMV6ZK)$(BR2_ARM_CPU_ARMV7A),y) FFMPEG_CONF_OPTS += --enable-armv6 else FFMPEG_CONF_OPTS += --disable-armv6 --disable-armv6t2 endif -ifeq ($(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf_s)$(BR2_cortex_a5)$(BR2_cortex_a8)$(BR2_cortex_a9)$(BR2_cortex_a15),y) +ifeq ($(BR2_ARM_CPU_ARMV6J)$(BR2_ARM_CPU_ARMV6ZK)$(BR2_ARM_CPU_ARMV7A),y) FFMPEG_CONF_OPTS += --enable-vfp else FFMPEG_CONF_OPTS += --disable-vfp
Signature · 1 line
2.0.0
PATCH 4/31 ffmpeg: use the new BR2_ARM_CPU_ARM* options
Quoted 19 lines · Thomas Petazzoni
Instead of using the Config.in options for each individual ARM core, use the newly introduced BR2_ARM_CPU_ARM* options, which exist per ARM architecture.
Signed-off-by Thomas Petazzoni <[email protected]>--- package/ffmpeg/ffmpeg.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)package/ffmpeg/ffmpeg.mk +1
-1@@ -277,15 +277,15 @@ endif # Explicitly disable everything that doesn't match for ARM # FFMPEG "autodetects" by compiling an extended instruction via AS # This works on compilers that aren't built for generic by default -ifeq ($(BR2_arm920t)$(BR2_arm922t)$(BR2_strongarm)$(BR2_fa526),y) +ifeq ($(BR2_ARM_CPU_ARMV4)$(BR2_ARM_CPU_ARMV4T),y)
package/ffmpeg/ffmpeg.mk endif · line 288
Quoted 10 lines
package/ffmpeg/ffmpeg.mk +2
-2FFMPEG_CONF_OPTS += --disable-armv5te endif -ifeq ($(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf_s)$(BR2_cortex_a5)$(BR2_cortex_a8)$(BR2_cortex_a9)$(BR2_cortex_a15),y) +ifeq ($(BR2_ARM_CPU_ARMV6J)$(BR2_ARM_CPU_ARMV6ZK)$(BR2_ARM_CPU_ARMV7A),y) FFMPEG_CONF_OPTS += --enable-armv6 else FFMPEG_CONF_OPTS += --disable-armv6 --disable-armv6t2 endif -ifeq ($(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf_s)$(BR2_cortex_a5)$(BR2_cortex_a8)$(BR2_cortex_a9)$(BR2_cortex_a15),y) +ifeq ($(BR2_ARM_CPU_ARMV6J)$(BR2_ARM_CPU_ARMV6ZK)$(BR2_ARM_CPU_ARMV7A),y)
I think there was something wrong in the original, because arm1176jz-s doesn't
have VFP.
Also, there's a bunch of Cortex-A variants that were added after this selection
was merged and they all have VFP.
With that in mind, probably BR2_ARM_CPU_HAS_VFPV2 is more appropriate.
Regards,
Arnout
Quoted 4 lines
package/ffmpeg/ffmpeg.mk +0
-0FFMPEG_CONF_OPTS += --enable-vfp else FFMPEG_CONF_OPTS += --disable-vfp
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 5/31 gst-ffmpeg: use the new BR2_ARM_CPU_ARM* options
In reply to Thomas PetazzoniInstead of using the Config.in options for each individual ARM core, use the newly introduced BR2_ARM_CPU_ARM* options, which exist per ARM architecture.
--- package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk +2 -2
@@ -51,10 +51,10 @@ endif # Explicitly disable everything that doesn't match for ARM # FFMPEG "autodetects" by compiling an extended instruction via AS # This works on compilers that aren't built for generic by default -ifeq ($(BR2_arm920t)$(BR2_arm922t)$(BR2_strongarm)$(BR2_fa526),y) +ifeq ($(BR2_ARM_CPU_ARMV4)$(BR2_ARM_CPU_ARMV4T),y) GST_FFMPEG_CONF_EXTRA_OPTS += --disable-armv5te endif -ifeq ($(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf_s),y) +ifeq ($(BR2_ARM_CPU_ARMV6J)$(BR2_ARM_CPU_ARMV6ZK),y) GST_FFMPEG_CONF_EXTRA_OPTS += --enable-armv6 else GST_FFMPEG_CONF_EXTRA_OPTS += --disable-armv6 --disable-armv6t2
Signature · 1 line
2.0.0
PATCH 6/31 gst-ffmpeg: allow usage of ARMv6 optimizations on ARMv7 platforms
In reply to Thomas PetazzoniContrary to the ffmpeg package, the gst-ffmpeg package was only allowing ARMv6 optimizations on ARMv6 platforms. This commit also allows ARMv6 optimizations on ARMv7 platforms, like the ffmpeg package does.
--- package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk +1 -1
@@ -54,7 +54,7 @@ endif ifeq ($(BR2_ARM_CPU_ARMV4)$(BR2_ARM_CPU_ARMV4T),y) GST_FFMPEG_CONF_EXTRA_OPTS += --disable-armv5te endif -ifeq ($(BR2_ARM_CPU_ARMV6J)$(BR2_ARM_CPU_ARMV6ZK),y) +ifeq ($(BR2_ARM_CPU_ARMV6J)$(BR2_ARM_CPU_ARMV6ZK)$(BR2_ARM_CPU_ARMV7A),y) GST_FFMPEG_CONF_EXTRA_OPTS += --enable-armv6 else GST_FFMPEG_CONF_EXTRA_OPTS += --disable-armv6 --disable-armv6t2
Signature · 1 line
2.0.0
PATCH 7/31 gst1-libav: use the new BR2_ARM_CPU_ARM* options
In reply to Thomas PetazzoniInstead of using the Config.in options for each individual ARM core, use the newly introduced BR2_ARM_CPU_ARM* options, which exist per ARM architecture.
--- package/gstreamer1/gst1-libav/gst1-libav.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
package/gstreamer1/gst1-libav/gst1-libav.mk +2 -2
@@ -49,10 +49,10 @@ endif # Explicitly disable everything that doesn't match for ARM # FFMPEG "autodetects" by compiling an extended instruction via AS # This works on compilers that aren't built for generic by default -ifeq ($(BR2_arm920t)$(BR2_arm922t)$(BR2_strongarm)$(BR2_fa526),y) +ifeq ($(BR2_ARM_CPU_ARMV4)$(BR2_ARM_CPU_ARMV4T),y) GST1_LIBAV_CONF_EXTRA_OPTS += --disable-armv5te endif -ifeq ($(BR2_arm1136jf_s)$(BR2_arm1176jz_s)$(BR2_arm1176jzf_s),y) +ifeq ($(BR2_ARM_CPU_ARMV6J)$(BR2_ARM_CPU_ARMV6ZK),y) GST1_LIBAV_CONF_EXTRA_OPTS += --enable-armv6 else GST1_LIBAV_CONF_EXTRA_OPTS += --disable-armv6 --disable-armv6t2
Signature · 1 line
2.0.0
PATCH 8/31 gst1-libav: allow usage of ARMv6 optimizations on ARMv7 platforms
In reply to Thomas PetazzoniContrary to the ffmpeg package, the gst1-libav package was only allowing ARMv6 optimizations on ARMv6 platforms. This commit also allows ARMv6 optimizations on ARMv7 platforms, like the ffmpeg package does.
--- package/gstreamer1/gst1-libav/gst1-libav.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/gstreamer1/gst1-libav/gst1-libav.mk +1 -1
@@ -52,7 +52,7 @@ endif ifeq ($(BR2_ARM_CPU_ARMV4)$(BR2_ARM_CPU_ARMV4T),y) GST1_LIBAV_CONF_EXTRA_OPTS += --disable-armv5te endif -ifeq ($(BR2_ARM_CPU_ARMV6J)$(BR2_ARM_CPU_ARMV6ZK),y) +ifeq ($(BR2_ARM_CPU_ARMV6J)$(BR2_ARM_CPU_ARMV6ZK)$(BR2_ARM_CPU_ARMV7A),y) GST1_LIBAV_CONF_EXTRA_OPTS += --enable-armv6 else GST1_LIBAV_CONF_EXTRA_OPTS += --disable-armv6 --disable-armv6t2
Signature · 1 line
2.0.0
PATCH 9/31 mplayer: use BR2_ARM_CPU_ARM* options
In reply to Thomas Petazzoni--- package/mplayer/Config.in | 3 +-- package/mplayer/mplayer.mk | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-)
package/mplayer/Config.in +1 -2
@@ -4,8 +4,7 @@ config BR2_PACKAGE_MPLAYER depends on !(BR2_bfin || BR2_sh2a || BR2_sh4a || BR2_sh4aeb \ || BR2_microblaze || BR2_aarch64 || BR2_nios2) # Broken support for <ARMv5 - depends on !(BR2_arm920t || BR2_arm920t || BR2_arm922t || BR2_fa526 \ - || BR2_strongarm) + depends on !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV4T depends on BR2_LARGEFILE help MPlayer is a movie player which runs on many systems and supports
package/mplayer/mplayer.mk +2 -2
@@ -105,11 +105,11 @@ MPLAYER_DEPENDENCIES += $(if $(BR2_PACKAGE_XLIB_LIBX11),xlib_libX11) MPLAYER_DEPENDENCIES += $(if $(BR2_PACKAGE_XLIB_LIBXV),xlib_libXv) # ARM optimizations -ifeq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),armv5te) +ifeq ($(BR2_ARM_CPU_ARMV5TE),y) MPLAYER_CONF_OPTS += --enable-armv5te endif -ifeq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),armv6j) +ifeq ($(BR2_ARM_CPU_ARMV6J),y) MPLAYER_CONF_OPTS += --enable-armv6 endif
Signature · 1 line
2.0.0
PATCH 10/31 libplayer: use BR2_ARM_CPU_ARM* option
In reply to Thomas Petazzoni--- package/libplayer/Config.in | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
package/libplayer/Config.in +1 -2
@@ -19,8 +19,7 @@ config BR2_PACKAGE_LIBPLAYER_MPLAYER depends on BR2_LARGEFILE # mplayer # Broken support for <ARMv5 - depends on !(BR2_arm920t || BR2_arm920t || BR2_arm922t || BR2_fa526 \ - || BR2_strongarm) + depends on !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV4T select BR2_PACKAGE_MPLAYER config BR2_PACKAGE_LIBPLAYER_GSTREAMER
Signature · 1 line
2.0.0
PATCH 11/31 nettle: use the BR2_ARM_CPU_ARM* options
In reply to Thomas PetazzoniAdjust the nettle package to use the BR2_ARM_CPU_ARM* option to disable the usage of assembly code on ARMv4 and ARMv5.
--- package/nettle/nettle.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/nettle/nettle.mk +1 -1
@@ -15,7 +15,7 @@ NETTLE_LICENSE_FILES = COPYING.LIB NETTLE_CONF_OPTS = --disable-openssl # ARM assembly requires v6+ ISA -ifeq ($(BR2_arm920t)$(BR2_arm922t)$(BR2_arm926t)$(BR2_fa526)$(BR2_strongarm)$(BR2_xscale)$(BR2_iwmmxt),y) +ifeq ($(BR2_ARM_CPU_ARMV4)$(BR2_ARM_CPU_ARMV4T)$(BR2_ARM_CPU_ARMV5TE)$(BR2_ARM_CPU_ARMV5TEJ),y) NETTLE_CONF_OPTS += --disable-assembler endif
Signature · 1 line
2.0.0
PATCH 12/31 nodejs: use BR2_ARM_CPU_ARM* options
In reply to Thomas PetazzoniAdjust the nodejs Config.in dependencies to use the per ARM architecture BR2_ARM_CPU_ARM* options instead of the per ARM core options.
--- package/nodejs/Config.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
package/nodejs/Config.in +2 -2
@@ -7,7 +7,7 @@ config BR2_PACKAGE_NODEJS depends on BR2_arm || BR2_i386 || BR2_x86_64 || BR2_mipsel depends on !BR2_MIPS_SOFT_FLOAT # ARM needs BLX, so v5t+ - depends on !(BR2_arm920t || BR2_arm922t || BR2_fa526) + depends on !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV4T # uses fork() depends on BR2_USE_MMU select BR2_PACKAGE_ZLIB
@@ -19,7 +19,7 @@ config BR2_PACKAGE_NODEJS comment "nodejs needs a toolchain w/ C++, IPv6, largefile, threads" depends on BR2_USE_MMU depends on BR2_arm || BR2_i386 || BR2_x86_64 || BR2_mipsel - depends on !(BR2_arm920t || BR2_arm922t || BR2_fa526) + depends on !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV4T depends on !BR2_INSTALL_LIBSTDCPP || !BR2_LARGEFILE || \ !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INET_IPV6
Signature · 1 line
2.0.0
PATCH 13/31 qt5: use the BR2_ARM_CPU_ARM* options
In reply to Thomas Petazzoni--- package/qt5/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/qt5/Config.in +1 -1
@@ -8,7 +8,7 @@ config BR2_PACKAGE_QT5_JSCORE_AVAILABLE # Javascript engine is only available on certain architectures depends on BR2_arm || BR2_i386 || BR2_x86_64 || BR2_mipsel # ARM needs BLX, so v5t+ - depends on !(BR2_arm920t || BR2_arm922t || BR2_fa526) + depends on !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV4T default y comment "Qt5 needs a toolchain w/ wchar, IPv6, NPTL, C++"
Signature · 1 line
2.0.0
PATCH 14/31 speex: use BR2_ARM_CPU_ARM* options
In reply to Thomas Petazzoni--- package/speex/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/speex/Config.in +1 -1
@@ -13,7 +13,7 @@ if BR2_PACKAGE_SPEEX config BR2_PACKAGE_SPEEX_ARM4 bool default y - depends on BR2_arm920t || BR2_arm922t || BR2_strongarm || BR2_fa526 + depends on BR2_ARM_CPU_ARMV4 || BR2_ARM_CPU_ARMV4T config BR2_PACKAGE_SPEEX_ARM5E default y
Signature · 1 line
2.0.0
PATCH 15/31 vo-aacenc: use the BR2_ARM_CPU_ARM* options
In reply to Thomas PetazzoniThe vo-aacenc package has an option to enable ARMv5 optimizations. It was enabled based on per ARM core options, but now that we have per ARM architecture options, this commit switches to using them.
--- package/vo-aacenc/vo-aacenc.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/vo-aacenc/vo-aacenc.mk +1 -1
@@ -26,7 +26,7 @@ VO_AACENC_CFLAGS += -mfpu=neon else VO_AACENC_CONF_OPTS += --disable-armv7neon -ifeq ($(BR2_arm920t)$(BR2_arm922t)$(BR2_strongarm)$(BR2_fa526),) +ifeq ($(BR2_ARM_CPU_ARMV4)$(BR2_ARM_CPU_ARMV4T),) VO_AACENC_CONF_OPTS += --enable-armv5e else VO_AACENC_CONF_OPTS += --disable-armv5e
Signature · 1 line
2.0.0
PATCH 16/31 webkit: use BR2_ARM_CPU_ARM* options
In reply to Thomas PetazzoniThe webkit package is not available on ARM < v5, so this commit switches to using the newly introduced BR2_ARM_CPU_ARM* options instead of per ARM core options.
--- package/webkit/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/webkit/Config.in +1 -1
@@ -2,7 +2,7 @@ config BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS bool # ARM needs BLX, so v5t+ default y if (BR2_arm || BR2_armeb) && \ - !(BR2_arm920t || BR2_arm922t || BR2_fa526) + !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV4T default y if BR2_i386 || BR2_mips || BR2_mipsel || \ BR2_sparc || BR2_x86_64 depends on BR2_USE_MMU # libgail -> pango -> libglib2
Signature · 1 line
2.0.0
PATCH 17/31 valgrind: use the BR2_ARM_CPU_ARM* options
In reply to Thomas PetazzoniInstead of using the exhaustive list of Cortex-A ARM cores, use BR2_ARM_CPU_ARMV7A instead. We also fix a wrong comment that said the Valgrind package could only be selected for Cortex-A8 and Cortex-A9, which was true a long time ago, but was no longer true since it was also enabled for all the other Cortex-A platforms.
--- package/valgrind/Config.in | 7 +++---- package/valgrind/valgrind.mk | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-)
package/valgrind/Config.in +3 -4
@@ -1,9 +1,8 @@ config BR2_PACKAGE_VALGRIND bool "valgrind" - depends on BR2_i386 || BR2_x86_64 || BR2_cortex_a5 || \ - BR2_cortex_a7 || BR2_cortex_a8 || BR2_cortex_a9 || \ - BR2_cortex_a12 || BR2_cortex_a15 || BR2_powerpc || \ - BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el + depends on BR2_i386 || BR2_x86_64 || BR2_ARM_CPU_ARMV7A || \ + BR2_powerpc || BR2_mips || BR2_mipsel || BR2_mips64 || \ + BR2_mips64el help Tool for debugging and profiling Linux programs.
package/valgrind/valgrind.mk +2 -2
@@ -16,8 +16,8 @@ VALGRIND_AUTORECONF = YES # host tuple to determine whether it's being built for ARMv7 or # not. Therefore, we adjust the host tuple to specify we're on # ARMv7. The valgrind package is guaranteed, through Config.in, to -# only be selected on Cortex A8 and Cortex A9 platforms. -ifeq ($(BR2_cortex_a5)$(BR2_cortex_a7)$(BR2_cortex_a8)$(BR2_cortex_a9)$(BR2_cortex_a12)$(BR2_cortex_a15),y) +# only be selected on ARMv7-A platforms. +ifeq ($(BR2_ARM_CPU_ARMV7A),y) VALGRIND_CONF_OPTS += \ --host=$(patsubst arm-%,armv7-%,$(GNU_TARGET_NAME)) endif
Signature · 1 line
2.0.0
PATCH 18/31 x264: use the BR2_ARM_CPU_ARMV7A option
In reply to Thomas Petazzoni--- package/x264/x264.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/x264/x264.mk +1 -1
@@ -14,7 +14,7 @@ X264_INSTALL_STAGING = YES ifeq ($(BR2_i386)$(BR2_x86_64),y) X264_DEPENDENCIES += host-yasm -else ifeq ($(BR2_cortex_a5)$(BR2_cortex_a7)$(BR2_cortex_a8)$(BR2_cortex_a9)$(BR2_cortex_a12)$(BR2_cortex_a15),y) +else ifeq ($(BR2_ARM_CPU_ARMV7A),y) # We need to pass gcc as AS, because the ARM assembly files have to be # preprocessed X264_CONF_ENV += AS="$(TARGET_CC)"
Signature · 1 line
2.0.0
PATCH 19/31 libnspr: use the BR2_ARM_CPU_ARMV7A option
In reply to Thomas PetazzoniThe libnspr --enable-thumb2 option was only enabled on Cortex-A8 and Cortex-A9. This commit switches ot using BR2_ARM_CPU_ARMV7A instead, which will allow using Thumb2 for this package even with the other Cortex-A cores.
--- package/libnspr/libnspr.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/libnspr/libnspr.mk +1 -1
@@ -22,7 +22,7 @@ LIBNSPR_CONF_OPTS += --$(if $(BR2_ARCH_IS_64),en,dis)able-64bit LIBNSPR_CONF_OPTS += --$(if $(BR2_INET_IPV6),en,dis)able-ipv6 ifeq ($(BR2_arm),y) -ifeq ($(BR2_cortex_a8)$(BR2_cortex_a9),y) +ifeq ($(BR2_ARM_CPU_ARMV7A),y) LIBNSPR_CONF_OPTS += --enable-thumb2 else LIBNSPR_CONF_OPTS += --disable-thumb2
Signature · 1 line
2.0.0
PATCH 20/31 toolchain-external: use BR2_ARM_CPU_ARM* options
In reply to Thomas PetazzoniRefactor the toolchain-external Config.in file to use the BR2_ARM_CPU_ARM*. All of the changes are purely mechanical, except for the Arago ARMv5 toolchain: it had a 'depends on BR2_GCC_TARGET_ARCH != "armv5t"', but armv5t was not a possible value for BR2_GCC_TARGET_ARCH. Since the toolchain is ARMv5TE, the only ARM architectures we need to exclude are ARMv4 and ARMv4T.
--- toolchain/toolchain-external/Config.in | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-)
toolchain/toolchain-external/Config.in +6 -8
@@ -9,7 +9,7 @@ comment "(e)glibc toolchains only available with shared lib support" config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM bool "Linaro ARM 2014.08" depends on BR2_arm - depends on BR2_GCC_TARGET_ARCH = "armv7-a" + depends on BR2_ARM_CPU_ARMV7A depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on BR2_ARM_EABIHF depends on !BR2_PREFER_STATIC_LIB
@@ -29,13 +29,13 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM comment "Linaro toolchains available for Cortex-A + EABIhf" depends on BR2_arm - depends on BR2_GCC_TARGET_ARCH != "armv7-a" || !BR2_ARM_EABIHF + depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF depends on !BR2_PREFER_STATIC_LIB config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB bool "Linaro armeb 2014.08" depends on BR2_armeb - depends on BR2_GCC_TARGET_ARCH = "armv7-a" + depends on BR2_ARM_CPU_ARMV7A depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on BR2_ARM_EABIHF depends on !BR2_PREFER_STATIC_LIB
@@ -55,7 +55,7 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB comment "Linaro toolchains available for Cortex-A + EABIhf" depends on BR2_armeb - depends on BR2_GCC_TARGET_ARCH != "armv7-a" || !BR2_ARM_EABIHF + depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF depends on !BR2_PREFER_STATIC_LIB config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201405
@@ -151,7 +151,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_201109 bool "Arago ARMv7 2011.09" depends on BR2_arm depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" - depends on BR2_GCC_TARGET_ARCH = "armv7-a" + depends on BR2_ARM_CPU_ARMV7A depends on BR2_ARM_EABI depends on BR2_ARM_CPU_HAS_VFPV3 || BR2_ARM_CPU_MAYBE_HAS_VFPV3 depends on !BR2_PREFER_STATIC_LIB
@@ -174,9 +174,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109 bool "Arago ARMv5 2011.09" depends on BR2_arm depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" - depends on BR2_GCC_TARGET_ARCH != "armv4t" && \ - BR2_GCC_TARGET_ARCH != "armv4" && \ - BR2_GCC_TARGET_ARCH != "armv5t" + depends on !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV4T depends on BR2_ARM_EABI depends on !BR2_PREFER_STATIC_LIB select BR2_TOOLCHAIN_EXTERNAL_GLIBC
Signature · 1 line
2.0.0
PATCH 21/31 dhcpcd: do not pass --target option
In reply to Thomas Petazzonidhcpcd is using $(BR2_GCC_TARGET_ARCH) as the value of its --target option. However, depending on the architecture, this value might be empty.
After inspecting the dhcpcd configure script, it turns out that in fact the --target option has the following semantic:
--target=TARGET configure for building compilers for TARGET [HOST]
So it is very much like the --target option of regular, autoconf-based, configure scripts. Since dhcpcd is not a compiler, passing --target is pointless. Moreover, as long as --os=linux is passed, passing --host or --target is completely ignored by the configure script.
--- package/dhcpcd/dhcpcd.mk | 1 - 1 file changed, 1 deletion(-)
package/dhcpcd/dhcpcd.mk +0 -1
@@ -25,7 +25,6 @@ endif define DHCPCD_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_CONFIGURE_OPTS) ./configure \ - --target=$(BR2_GCC_TARGET_ARCH) \ --os=linux \ $(DHCPCD_CONFIG_OPTS) ) endef
Signature · 1 line
2.0.0
PATCH 22/31 arch/arm: do not distinguish revisions of ARM1136JF-S
In reply to Thomas PetazzoniIn commit 88cf3bb91792c9c04586e14f293d89a6e0c13e1d ("arch/Config.in.arm: Use armv6k for arm1136jf-s rev1"), Beno?t Th?baudeau added separate options for the revision 0 and revision 1 of the ARM1136JF-S processor, so that different -march values could be used (armv6j for revision 0, armv6k for revision 1).
However, this is preventing the removal of the BR2_GCC_TARGET_ARCH option, which we need to do to give only the CPU type to gcc, and let it decide the architecture variant that matches. This is because this story of revision 0 vs. revision 1 is the only case where -mcpu doesn't fully define the CPU.
Moreover, a quick test with gcc shows that -march=armv6j -mcpu=arm1136jf-s is accepted, while -march=armv6k -mcpu=arm1136jf-s makes gcc complain: " warning: switch -mcpu=arm1136jf-s conflicts with -march=armv6k switch".
In addition, gcc 5 will apparently no longer allow to pass all of --with-arch, --with-cpu and --with-tune, so we will anyway have to rely only on one of them.
As a consequence, this commit basically reverts 88cf3bb91792c9c04586e14f293d89a6e0c13e1d and provides only one option for ARM1136JF-S. If the two revisions are really different, then they should be supported in upstream gcc with different -mcpu values.
Note that the removal of the two options should not break existing full .config, since the hidden option BR2_arm1136jf_s becomes again a visible option to select the CPU.
--- arch/Config.in.arm | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-)
arch/Config.in.arm +3 -14
@@ -77,14 +77,8 @@ config BR2_arm926t bool "arm926t" select BR2_ARM_CPU_MAYBE_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB - select BR2_ARM_CPU_ARMV5TEJ -config BR2_arm1136jf_s_r0 - bool "arm1136jf_s rev0" - select BR2_ARM_CPU_HAS_VFPV2 - select BR2_ARM_CPU_HAS_THUMB - select BR2_ARM_CPU_ARMV6J -config BR2_arm1136jf_s_r1 - bool "arm1136jf_s rev1" +config BR2_arm1136jf_s + bool "arm1136jf-s" select BR2_ARM_CPU_HAS_VFPV2 select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_ARMV6J
@@ -152,10 +146,6 @@ config BR2_iwmmxt select BR2_ARM_CPU_ARMV5TE endchoice -config BR2_arm1136jf_s - bool - default BR2_arm1136jf_s_r0 || BR2_arm1136jf_s_r1 - choice prompt "Target ABI" depends on BR2_arm || BR2_armeb
@@ -403,8 +393,7 @@ config BR2_GCC_TARGET_ARCH default "armv4t" if BR2_arm920t default "armv4t" if BR2_arm922t default "armv5te" if BR2_arm926t - default "armv6j" if BR2_arm1136jf_s_r0 - default "armv6k" if BR2_arm1136jf_s_r1 + default "armv6j" if BR2_arm1136jf_s default "armv6zk" if BR2_arm1176jz_s default "armv6zk" if BR2_arm1176jzf_s default "armv7-a" if BR2_cortex_a5
Signature · 1 line
2.0.0
PATCH 23/31 arch/arm: remove BR2_GCC_TARGET_ARCH definitions on ARM
In reply to Thomas PetazzoniOn ARM, we were defining both the CPU type and the architecture variant. However, depending on the version of gcc, a given combination of (CPU, architecture) may not be the same. Since the architecture variant is implied by the CPU type, given the former is not necessary, and we can simply specify the latter.
From the gcc documentation:
This specifies the name of the target ARM processor. GCC uses this name to derive the name of the target ARM architecture (as if specified by -march) and the ARM processor type for which to tune for performance (as if specified by -mtune). Where this option is used in conjunction with -march or -mtune, those options take precedence over the appropriate part of this option.
Note that we verified that for all BR2_GCC_TARGET_ARCH value that existed, a proper BR2_GCC_TARGET_CPU value is defined.
--- arch/Config.in.arm | 19 ------------------- 1 file changed, 19 deletions(-)
arch/Config.in.arm +0 -19
@@ -389,25 +389,6 @@ config BR2_GCC_TARGET_CPU default "xscale" if BR2_xscale default "iwmmxt" if BR2_iwmmxt -config BR2_GCC_TARGET_ARCH - default "armv4t" if BR2_arm920t - default "armv4t" if BR2_arm922t - default "armv5te" if BR2_arm926t - default "armv6j" if BR2_arm1136jf_s - default "armv6zk" if BR2_arm1176jz_s - default "armv6zk" if BR2_arm1176jzf_s - default "armv7-a" if BR2_cortex_a5 - default "armv7-a" if BR2_cortex_a7 - default "armv7-a" if BR2_cortex_a8 - default "armv7-a" if BR2_cortex_a9 - default "armv7-a" if BR2_cortex_a12 - default "armv7-a" if BR2_cortex_a15 - default "armv4" if BR2_fa526 - default "armv7-a" if BR2_pj4 - default "armv4" if BR2_strongarm - default "armv5te" if BR2_xscale - default "iwmmxt" if BR2_iwmmxt - config BR2_GCC_TARGET_ABI default "aapcs-linux"
Signature · 1 line
2.0.0
PATCH 24/31 ffmpeg: use arch and cpu instead of tune
In reply to Thomas Petazzoniffmpeg currently uses BR2_GCC_TARGET_TUNE as the --cpu option value. However, there are multiple architectures for which BR2_GCC_TARGET_TUNE is not used. After inspecting the ffmpeg configure script, we concluded that using the BR2_GCC_TARGET_CPU value if available, or the BR2_GCC_TARGET_ARCH value as a fallback was the appropriate behavior.
This allows to remove the reference to BR2_GCC_TARGET_TUNE, which is one step towards the removal of this option.
--- package/ffmpeg/ffmpeg.mk | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
package/ffmpeg/ffmpeg.mk +6 -1
@@ -334,6 +334,12 @@ endif FFMPEG_CONF_OPTS += $(call qstrip,$(BR2_PACKAGE_FFMPEG_EXTRACONF)) +ifneq ($(call qstrip,$(BR2_GCC_TARGET_CPU)),) +FFMPEG_CONF_OPTS += --cpu=$(BR2_GCC_TARGET_CPU) +else ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH),) +FFMPEG_CONF_OPTS += --cpu=$(BR2_GCC_TARGET_ARCH) +endif + # Override FFMPEG_CONFIGURE_CMDS: FFmpeg does not support --target and others define FFMPEG_CONFIGURE_CMDS (cd $(FFMPEG_SRCDIR) && rm -rf config.cache && \
@@ -349,7 +355,6 @@ define FFMPEG_CONFIGURE_CMDS --target-os="linux" \ --disable-stripping \ --pkg-config="$(PKG_CONFIG_HOST_BINARY)" \ - $(if $(BR2_GCC_TARGET_TUNE),--cpu=$(BR2_GCC_TARGET_TUNE)) \ $(SHARED_STATIC_LIBS_OPTS) \ $(FFMPEG_CONF_OPTS) \ )
Signature · 1 line
2.0.0
PATCH 24/31 ffmpeg: use arch and cpu instead of tune
Thomas, All,
On 2014-10-19 22:07 +0200, Thomas Petazzoni spake thusly:
Quoted 11 lines
ffmpeg currently uses
BR2_GCC_TARGET_TUNEas the --cpu option value. However, there are multiple architectures for whichBR2_GCC_TARGET_TUNEis not used. After inspecting the ffmpeg configure script, we concluded that using theBR2_GCC_TARGET_CPUvalue if available, or theBR2_GCC_TARGET_ARCHvalue as a fallback was the appropriate behavior.This allows to remove the reference to
BR2_GCC_TARGET_TUNE, which is one step towards the removal of this option.Signed-off-by Thomas Petazzoni <[email protected]>
Regards,
Yann E. MORIN.
Quoted 36 lines
--- package/ffmpeg/ffmpeg.mk | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)package/ffmpeg/ffmpeg.mk +6
-1@@ -334,6 +334,12 @@ endif FFMPEG_CONF_OPTS += $(call qstrip,$(BR2_PACKAGE_FFMPEG_EXTRACONF)) +ifneq ($(call qstrip,$(BR2_GCC_TARGET_CPU)),) +FFMPEG_CONF_OPTS += --cpu=$(BR2_GCC_TARGET_CPU) +else ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH),) +FFMPEG_CONF_OPTS += --cpu=$(BR2_GCC_TARGET_ARCH) +endif + # Override FFMPEG_CONFIGURE_CMDS: FFmpeg does not support --target and others define FFMPEG_CONFIGURE_CMDS (cd $(FFMPEG_SRCDIR) && rm -rf config.cache && \@@ -349,7 +355,6 @@ define FFMPEG_CONFIGURE_CMDS --target-os="linux" \ --disable-stripping \ --pkg-config="$(PKG_CONFIG_HOST_BINARY)" \ - $(if $(BR2_GCC_TARGET_TUNE),--cpu=$(BR2_GCC_TARGET_TUNE)) \ $(SHARED_STATIC_LIBS_OPTS) \ $(FFMPEG_CONF_OPTS) \ )Signature · 6 lines
2.0.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 25/31 arch/x86: get rid of BR2_GCC_TARGET_TUNE
In reply to Thomas PetazzoniAccording to the gcc documentation, -march implies -mtune on x86, so defining both BR2_GCC_TARGET_ARCH and BR2_GCC_TARGET_TUNE is redundant. Therefore, this commit removes the definition of BR2_GCC_TARGET_TUNE on x86.
However, while doing so, it adds one new case for BR2_GCC_TARGET_ARCH:
using -march=generic when BR2_x86_generic is selected.
--- arch/Config.in.x86 | 32 +------------------------------- 1 file changed, 1 insertion(+), 31 deletions(-)
arch/Config.in.x86 +1 -31
@@ -205,37 +205,6 @@ config BR2_ENDIAN config BR2_ARCH_HAS_ATOMICS default y if !BR2_x86_i386 -config BR2_GCC_TARGET_TUNE - default "i386" if BR2_x86_i386 - default "i486" if BR2_x86_i486 - default "i586" if BR2_x86_i586 - default "pentium-mmx" if BR2_x86_pentium_mmx - default "i686" if BR2_x86_i686 - default "pentiumpro" if BR2_x86_pentiumpro - default "pentium-m" if BR2_x86_pentium_m - default "pentium2" if BR2_x86_pentium2 - default "pentium3" if BR2_x86_pentium3 - default "pentium4" if BR2_x86_pentium4 - default "prescott" if BR2_x86_prescott - default "nocona" if BR2_x86_nocona - default "core2" if BR2_x86_core2 - default "corei7" if BR2_x86_corei7 - default "atom" if BR2_x86_atom - default "k8" if BR2_x86_opteron - default "k8-sse3" if BR2_x86_opteron_sse3 - default "barcelona" if BR2_x86_barcelona - default "btver2" if BR2_x86_jaguar - default "k6" if BR2_x86_k6 - default "k6-2" if BR2_x86_k6_2 - default "athlon" if BR2_x86_athlon - default "athlon-4" if BR2_x86_athlon_4 - default "winchip-c6" if BR2_x86_winchip_c6 - default "winchip2" if BR2_x86_winchip2 - default "c3" if BR2_x86_c3 - default "c3-2" if BR2_x86_c32 - default "geode" if BR2_x86_geode - default "generic" if BR2_x86_generic - config BR2_GCC_TARGET_ARCH default "i386" if BR2_x86_i386 default "i486" if BR2_x86_i486
@@ -265,3 +234,4 @@ config BR2_GCC_TARGET_ARCH default "c3" if BR2_x86_c3 default "c3-2" if BR2_x86_c32 default "geode" if BR2_x86_geode + default "generic" if BR2_x86_generic
Signature · 1 line
2.0.0
PATCH 25/31 arch/x86: get rid of BR2_GCC_TARGET_TUNE
Thomas, All,
On 2014-10-19 22:07 +0200, Thomas Petazzoni spake thusly:
Quoted 9 lines
According to the gcc documentation, -march implies -mtune on x86, so defining both
BR2_GCC_TARGET_ARCHandBR2_GCC_TARGET_TUNEis redundant. Therefore, this commit removes the definition ofBR2_GCC_TARGET_TUNEon x86.However, while doing so, it adds one new case for
BR2_GCC_TARGET_ARCH:
using -march=generic whenBR2_x86_genericis selected.Signed-off-by Thomas Petazzoni <[email protected]>
Regards,
Yann E. MORIN.
Quoted 58 lines
--- arch/Config.in.x86 | 32 +------------------------------- 1 file changed, 1 insertion(+), 31 deletions(-)arch/Config.in.x86 +1
-31@@ -205,37 +205,6 @@ config BR2_ENDIAN config BR2_ARCH_HAS_ATOMICS default y if !BR2_x86_i386 -config BR2_GCC_TARGET_TUNE - default "i386" if BR2_x86_i386 - default "i486" if BR2_x86_i486 - default "i586" if BR2_x86_i586 - default "pentium-mmx" if BR2_x86_pentium_mmx - default "i686" if BR2_x86_i686 - default "pentiumpro" if BR2_x86_pentiumpro - default "pentium-m" if BR2_x86_pentium_m - default "pentium2" if BR2_x86_pentium2 - default "pentium3" if BR2_x86_pentium3 - default "pentium4" if BR2_x86_pentium4 - default "prescott" if BR2_x86_prescott - default "nocona" if BR2_x86_nocona - default "core2" if BR2_x86_core2 - default "corei7" if BR2_x86_corei7 - default "atom" if BR2_x86_atom - default "k8" if BR2_x86_opteron - default "k8-sse3" if BR2_x86_opteron_sse3 - default "barcelona" if BR2_x86_barcelona - default "btver2" if BR2_x86_jaguar - default "k6" if BR2_x86_k6 - default "k6-2" if BR2_x86_k6_2 - default "athlon" if BR2_x86_athlon - default "athlon-4" if BR2_x86_athlon_4 - default "winchip-c6" if BR2_x86_winchip_c6 - default "winchip2" if BR2_x86_winchip2 - default "c3" if BR2_x86_c3 - default "c3-2" if BR2_x86_c32 - default "geode" if BR2_x86_geode - default "generic" if BR2_x86_generic - config BR2_GCC_TARGET_ARCH default "i386" if BR2_x86_i386 default "i486" if BR2_x86_i486@@ -265,3 +234,4 @@ config BR2_GCC_TARGET_ARCH default "c3" if BR2_x86_c3 default "c3-2" if BR2_x86_c32 default "geode" if BR2_x86_geode + default "generic" if BR2_x86_genericSignature · 6 lines
2.0.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 26/31 arch/sparc: get rid of BR2_GCC_TARGET_TUNE
In reply to Thomas PetazzoniOn SPARC, BR2_GCC_TARGET_TUNE was only used for one specific case, the BR2_sparc_v8. There is actually no reason to not use BR2_GCC_TARGET_CPU instead for this, as all values supported for -mtune are also supported for -mcpu. Therefore, the only BR2_GCC_TARGET_TUNE case is moved as a BR2_GCC_TARGET_CPU case.
--- arch/Config.in.sparc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
arch/Config.in.sparc +1 -3
@@ -26,10 +26,8 @@ config BR2_ENDIAN config BR2_ARCH_HAS_ATOMICS default y -config BR2_GCC_TARGET_TUNE - default "v8" if BR2_sparc_v8 - config BR2_GCC_TARGET_CPU + default "v8" if BR2_sparc_v8 default "sparchfleon" if BR2_sparc_sparchfleon default "sparchfleonv8" if BR2_sparc_sparchfleonv8 default "sparcsfleon" if BR2_sparc_sparcsfleon
Signature · 1 line
2.0.0
PATCH 26/31 arch/sparc: get rid of BR2_GCC_TARGET_TUNE
Thomas, All,
On 2014-10-19 22:08 +0200, Thomas Petazzoni spake thusly:
Quoted 7 lines
On SPARC,
BR2_GCC_TARGET_TUNEwas only used for one specific case, theBR2_sparc_v8. There is actually no reason to not useBR2_GCC_TARGET_CPUinstead for this, as all values supported for -mtune are also supported for -mcpu. Therefore, the onlyBR2_GCC_TARGET_TUNEcase is moved as aBR2_GCC_TARGET_CPUcase.Signed-off-by Thomas Petazzoni <[email protected]>
Regards,
Yann E. MORIN.
Quoted 27 lines
--- arch/Config.in.sparc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)arch/Config.in.sparc +1
-3@@ -26,10 +26,8 @@ config BR2_ENDIAN config BR2_ARCH_HAS_ATOMICS default y -config BR2_GCC_TARGET_TUNE - default "v8" if BR2_sparc_v8 - config BR2_GCC_TARGET_CPU + default "v8" if BR2_sparc_v8 default "sparchfleon" if BR2_sparc_sparchfleon default "sparchfleonv8" if BR2_sparc_sparchfleonv8 default "sparcsfleon" if BR2_sparc_sparcsfleonSignature · 6 lines
2.0.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 27/31 arch/powerpc: get rid of BR2_GCC_TARGET_TUNE
In reply to Thomas PetazzoniAccording to the gcc documentation for PowerPC options:
'-mtune=CPU_TYPE'
Set the instruction scheduling parameters for machine type CPU_TYPE, but do not set the architecture type, register usage, or choice of mnemonics, as '-mcpu=CPU_TYPE' would. The same values for CPU_TYPE are used for '-mtune' as for '-mcpu'. If both are specified, the code generated will use the architecture, registers, and mnemonics set by '-mcpu', but the scheduling parameters set by '-mtune'.
In the case of Buildroot where we only target a specific system, using -mtune therefore doesn't make much sense, and using -mcpu would be more appropriate. As a consequence, this patch makes PowerPC use BR2_GCC_TARGET_CPU instead of BR2_GCC_TARGET_TUNE.
--- arch/Config.in.powerpc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/Config.in.powerpc +1 -1
@@ -160,7 +160,7 @@ config BR2_ENDIAN config BR2_ARCH_HAS_ATOMICS default y -config BR2_GCC_TARGET_TUNE +config BR2_GCC_TARGET_CPU default "401" if BR2_powerpc_401 default "403" if BR2_powerpc_403 default "405" if BR2_powerpc_405
Signature · 1 line
2.0.0
PATCH 27/31 arch/powerpc: get rid of BR2_GCC_TARGET_TUNE
Thomas, All,
On 2014-10-19 22:08 +0200, Thomas Petazzoni spake thusly:
Quoted 11 lines
According to the gcc documentation for PowerPC options:
'-mtune=CPU_TYPE'
Set the instruction scheduling parameters for machine typeCPU_TYPE, but do not set the architecture type, register usage, or choice of mnemonics, as '-mcpu=CPU_TYPE' would. The same values forCPU_TYPEare used for '-mtune' as for '-mcpu'. If both are specified, the code generated will use the architecture, registers, and mnemonics set by '-mcpu', but the scheduling parameters set by '-mtune'.
Quoted 6 lines
In the case of Buildroot where we only target a specific system, using -mtune therefore doesn't make much sense, and using -mcpu would be more appropriate. As a consequence, this patch makes PowerPC use
BR2_GCC_TARGET_CPUinstead ofBR2_GCC_TARGET_TUNE.Signed-off-by Thomas Petazzoni <[email protected]>
Regards,
Yann E. MORIN.
Quoted 24 lines
--- arch/Config.in.powerpc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/Config.in.powerpc +1
-1@@ -160,7 +160,7 @@ config BR2_ENDIAN config BR2_ARCH_HAS_ATOMICS default y -config BR2_GCC_TARGET_TUNE +config BR2_GCC_TARGET_CPU default "401" if BR2_powerpc_401 default "403" if BR2_powerpc_403 default "405" if BR2_powerpc_405Signature · 6 lines
2.0.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 28/31 arch/m68k: get rid of BR2_GCC_TARGET_TUNE
In reply to Thomas PetazzoniOn m68k, we are passing the exact same values of BR2_GCC_TARGET_ARCH and BR2_GCC_TARGET_TUNE, which is redundant. Therefore, this commit removes the usage of BR2_GCC_TARGET_TUNE on m68k.
--- arch/Config.in.m68k | 8 -------- 1 file changed, 8 deletions(-)
arch/Config.in.m68k +0 -8
@@ -7,14 +7,6 @@ config BR2_ENDIAN config BR2_ARCH_HAS_ATOMICS default y -config BR2_GCC_TARGET_TUNE - default "68000" if BR2_m68k_68000 - default "68010" if BR2_m68k_68010 - default "68020" if BR2_m68k_68020 - default "68030" if BR2_m68k_68030 - default "68040" if BR2_m68k_68040 - default "68060" if BR2_m68k_68060 - config BR2_GCC_TARGET_ARCH default "68000" if BR2_m68k_68000 default "68010" if BR2_m68k_68010
Signature · 1 line
2.0.0
PATCH 28/31 arch/m68k: get rid of BR2_GCC_TARGET_TUNE
Thomas, All,
On 2014-10-19 22:08 +0200, Thomas Petazzoni spake thusly:
Quoted 5 lines
On m68k, we are passing the exact same values of
BR2_GCC_TARGET_ARCHandBR2_GCC_TARGET_TUNE, which is redundant. Therefore, this commit removes the usage ofBR2_GCC_TARGET_TUNEon m68k.Signed-off-by Thomas Petazzoni <[email protected]>
Regards,
Yann E. MORIN.
Quoted 30 lines
--- arch/Config.in.m68k | 8 -------- 1 file changed, 8 deletions(-)arch/Config.in.m68k +0
-8@@ -7,14 +7,6 @@ config BR2_ENDIAN config BR2_ARCH_HAS_ATOMICS default y -config BR2_GCC_TARGET_TUNE - default "68000" if BR2_m68k_68000 - default "68010" if BR2_m68k_68010 - default "68020" if BR2_m68k_68020 - default "68030" if BR2_m68k_68030 - default "68040" if BR2_m68k_68040 - default "68060" if BR2_m68k_68060 - config BR2_GCC_TARGET_ARCH default "68000" if BR2_m68k_68000 default "68010" if BR2_m68k_68010Signature · 6 lines
2.0.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 29/31 gcc: do not use BR2_GCC_TARGET_TUNE anymore
In reply to Thomas PetazzoniSince the BR2_GCC_TARGET_TUNE value is always empty now, there is no longer a point in using it in the gcc package.
--- package/gcc/gcc.mk | 3 --- 1 file changed, 3 deletions(-)
package/gcc/gcc.mk +0 -3
@@ -174,9 +174,6 @@ endif ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),) HOST_GCC_COMMON_CONF_OPTS += --with-arch=$(BR2_GCC_TARGET_ARCH) endif -ifneq ($(call qstrip,$(BR2_GCC_TARGET_TUNE)),) -HOST_GCC_COMMON_CONF_OPTS += --with-tune=$(BR2_GCC_TARGET_TUNE) -endif ifneq ($(call qstrip,$(BR2_GCC_TARGET_ABI)),) HOST_GCC_COMMON_CONF_OPTS += --with-abi=$(BR2_GCC_TARGET_ABI) endif
Signature · 1 line
2.0.0
PATCH 29/31 gcc: do not use BR2_GCC_TARGET_TUNE anymore
Thomas, All,
On 2014-10-19 22:08 +0200, Thomas Petazzoni spake thusly:
Quoted 4 lines
Since the
BR2_GCC_TARGET_TUNEvalue is always empty now, there is no longer a point in using it in the gcc package.Signed-off-by Thomas Petazzoni <[email protected]>
Regards,
Yann E. MORIN.
Quoted 25 lines
--- package/gcc/gcc.mk | 3 --- 1 file changed, 3 deletions(-)package/gcc/gcc.mk +0
-3@@ -174,9 +174,6 @@ endif ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),) HOST_GCC_COMMON_CONF_OPTS += --with-arch=$(BR2_GCC_TARGET_ARCH) endif -ifneq ($(call qstrip,$(BR2_GCC_TARGET_TUNE)),) -HOST_GCC_COMMON_CONF_OPTS += --with-tune=$(BR2_GCC_TARGET_TUNE) -endif ifneq ($(call qstrip,$(BR2_GCC_TARGET_ABI)),) HOST_GCC_COMMON_CONF_OPTS += --with-abi=$(BR2_GCC_TARGET_ABI) endifSignature · 6 lines
2.0.0 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 30/31 toolchain-external: do not use BR2_GCC_TARGET_TUNE anymore
In reply to Thomas PetazzoniSince the BR2_GCC_TARGET_TUNE value is always empty now, there is no longer a point in using it in the external toolchain logic.
--- toolchain/toolchain-external/ext-toolchain-wrapper.c | 12 +++--------- toolchain/toolchain-external/toolchain-external.mk | 5 ----- 2 files changed, 3 insertions(+), 14 deletions(-)
toolchain/toolchain-external/ext-toolchain-wrapper.c +3 -9
@@ -33,10 +33,9 @@ static char sysroot[PATH_MAX];* Currently, we have: * -mfloat-abi= * -march= -* -mtune= * -mcpu= */ -#define EXCLUSIVE_ARGS 4 +#define EXCLUSIVE_ARGS 3static char *predef_args[] = { path,
@@ -154,14 +153,12 @@ int main(int argc, char **argv)#endif #if defined(BR_ARCH ) || \ - defined(BR_TUNE ) || \ defined(BR_CPU ) -/* Add our -march/cpu/tune/abi flags, but only if none are +/* Add our -march/cpu/abi flags, but only if none are * already specified on the commandline */ for (i =1 ; i < argc; i++) {if (!strncmp (argv[i],"-march=" ,strlen ("-march=" )) || - !strncmp (argv[i],"-mtune=" ,strlen ("-mtune=" )) || !strncmp (argv[i],"-mcpu=" ,strlen ("-mcpu=" )))break ; }
@@ -169,14 +166,11 @@ int main(int argc, char **argv)#ifdef BR_ARCH *cur++ ="-march=" BR_ARCH ;#endif -#ifdef BR_TUNE - *cur++ ="-mtune=" BR_TUNE ; -#endif #ifdef BR_CPU *cur++ ="-mcpu=" BR_CPU ; #endif } -#endif /* ARCH || TUNE || CPU */ +#endif /* ARCH || CPU */ /* append forward args */ memcpy (cur, &argv[1 ],sizeof (char *) * (argc -1 ));
toolchain/toolchain-external/toolchain-external.mk +0 -5
@@ -163,7 +163,6 @@ TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += \ -DBR_CROSS_PATH_REL='"$(TOOLCHAIN_EXTERNAL_BIN:$(HOST_DIR)/%=%)"' endif -CC_TARGET_TUNE_ := $(call qstrip,$(BR2_GCC_TARGET_TUNE)) ifeq ($(call qstrip,$(BR2_GCC_TARGET_CPU_REVISION)),) CC_TARGET_CPU_ := $(call qstrip,$(BR2_GCC_TARGET_CPU)) else
@@ -181,10 +180,6 @@ ifeq ($(BR2_x86_64),y) TOOLCHAIN_EXTERNAL_CFLAGS += -m64 TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_64 endif -ifneq ($(CC_TARGET_TUNE_),) -TOOLCHAIN_EXTERNAL_CFLAGS += -mtune=$(CC_TARGET_TUNE_) -TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_TUNE='"$(CC_TARGET_TUNE_)"' -endif ifneq ($(CC_TARGET_ARCH_),) TOOLCHAIN_EXTERNAL_CFLAGS += -march=$(CC_TARGET_ARCH_) TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_ARCH='"$(CC_TARGET_ARCH_)"'
Signature · 1 line
2.0.0
PATCH 31/31 arch: remove the BR2_GCC_TARGET_TUNE option
In reply to Thomas PetazzoniThe BR2_GCC_TARGET_TUNE option is now unused, so we can get rid of it.
--- arch/Config.in | 3 --- 1 file changed, 3 deletions(-)
arch/Config.in +0 -3
@@ -217,9 +217,6 @@ config BR2_ARCH config BR2_ENDIAN string -config BR2_GCC_TARGET_TUNE - string - config BR2_GCC_TARGET_ARCH string
Signature · 1 line
2.0.0