[Buildroot] [PATCH v2 00/30] Removal of BR2_GCC_TARGET_TUNE and other arch/ updates

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Tue Oct 21 20:26:47 UTC 2014


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 introduces a number of ARM architecture blind options:
   BR2_ARM_CPU_ARMV4, BR2_ARM_CPU_ARMV5, BR2_ARM_CPU_ARMV6,
   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 2 to 19 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 20 fixes the dhcpcd package as it uses the
   BR2_GCC_TARGET_ARCH value, which may not always exists on certain
   architectures.

 - PATCH 21 and 22 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 23 prepares ffmpeg for the removal of BR2_GCC_TARGET_TUNE by
   using BR2_GCC_TARGET_ARCH or BR2_GCC_TARGET_CPU instead.

 - PATCH 24 to 27 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 28 to 30 finally get rid of BR2_GCC_TARGET_TUNE entirely
   since it is no longer used.

Changes since v1:

 * Instead of having multiple BR2_ARM_CPU_ARMV{4,4T,5TE,etc.} per
   architecture level, use only one. All the follow-up patches have
   been fixed up following this.

 * Add a patch to take into account the bug noticed by Arnout about
   VFP enabling in the ffmpeg package.

 * Remove the two patches that have been merged.

 * Add Reviewed-by tags from Yann on a certain number of patches, as
   he gave them on the list.

Note that I haven't done any modification of the Thumb / Thumb-2
handling suggested by Yann. This is orthogonal to this series, and can
be done in a follow-up series.

Best regards,

Thomas

Thomas Petazzoni (30):
  arch/arm: add blind options to know the ARM architecture
  ffmpeg: use the new BR2_ARM_CPU_ARM* options
  ffmpeg: fix ARM condition for --{enable,disable}-vfp
  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                                 | 61 +++++++++++-----------
 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                        |  3 +-
 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                           |  3 +-
 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, 74 insertions(+), 132 deletions(-)

-- 
2.0.0



More information about the buildroot mailing list