arch/xtensa: allow specifying path to tarball file
authorYann E. MORIN <yann.morin.1998@free.fr>
Sun, 9 Jul 2017 12:21:56 +0000 (05:21 -0700)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 9 Jul 2017 13:41:51 +0000 (15:41 +0200)
currently, specifying a custom Xtrensa core is done with two variables:
  - the core name
  - the directory containing the overlay tarball

However, the core name only serves to construct the tarball name, and is
not used whatsoever to configure any of the toolchain components
(binutils, gcc or gdb), except through the files that are overlayed in
their respective source trees.

This has two main drawbacks:
  - the overlay file must be named after the core,
  - the tarball can not be compressed.

Furthermore, it also makes it extremely complex to implement a download
of that tarball.

So, those two variables can be squeezed into a single variable, that is
the complete path of the overlay tarball.

Update the qemu-xtensa defconfig accordingly.

Note: we do not add a legacy entry for BR2_XTENSA_CORE_NAME, since it
was previously a blind option in the last release, and there's been no
release since we removed BR2_XTENSA_CUSTOM_NAME. So, we just update the
legacy comments for BR2_XTENSA_CUSTOM_NAME, since that's all the user
could have seen in any of our releases so far.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Config.in.legacy
arch/Config.in.xtensa
arch/arch.mk.xtensa
configs/qemu_xtensa_lx60_defconfig
configs/qemu_xtensa_lx60_nommu_defconfig
package/binutils/binutils.mk
package/gcc/gcc-final/gcc-final.mk
package/gcc/gcc-initial/gcc-initial.mk
package/gdb/gdb.mk

index 3a283d9e7bcbc30a494421a2cae5cbcbeae9b976..d801573756960e2e7975403949b456764a03a7b6 100644 (file)
@@ -145,11 +145,23 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2017.08"
 
+config BR2_XTENSA_OVERLAY_DIR
+       string "The BR2_XTENSA_OVERLAY_DIR option has been removed"
+       help
+         The BR2_XTENSA_OVERLAY_DIR has been removed in favour of
+         BR2_XTENSA_OVERLAY_FILE. You must now pass the complete
+         path to the overlay file, not to the directory containing
+         it.
+
+config BR2_XTENSA_OVERLAY_DIR_WRAP
+       bool
+       default y if BR2_XTENSA_OVERLAY_DIR != ""
+       select BR2_LEGACY
+
 config BR2_XTENSA_CUSTOM_NAME
-       string "The BR2_XTENSA_CUSTOM_NAME option has been renamed"
+       string "The BR2_XTENSA_CUSTOM_NAME option has been removed"
        help
-         The BR2_XTENSA_CUSTOM_NAME option has been renamed
-         to BR2_XTENSA_CORE_NAME.
+         The BR2_XTENSA_CUSTOM_NAME option has been removed.
 
 config BR2_XTENSA_CUSTOM_NAME_WRAP
        bool
index 00b1f6853c94556718a64f29c305fa8a905bb2cb..5d5bcb48f99f6deb47af435025616bc84a52a0f5 100644 (file)
@@ -13,24 +13,21 @@ config BR2_xtensa_fsf
 
 endchoice
 
-config BR2_XTENSA_CORE_NAME
-       string "Custom Xtensa processor configuration name" if BR2_XTENSA_CUSTOM
-       default BR2_XTENSA_CUSTOM_NAME if BR2_XTENSA_CUSTOM_NAME != "" # legacy
-       help
-         Name given to a custom Xtensa processor configuration.
-
-config BR2_XTENSA_OVERLAY_DIR
-       string "Overlay directory for custom configuration"
+config BR2_XTENSA_OVERLAY_FILE
+       string "Overlay file for custom configuration"
        depends on BR2_XTENSA_CUSTOM
        help
-         Provide the directory path that contains the overlay file
-         for a custom processor configuration. The path is relative
-         to the top directory of buildroot.
+         Enter the path to the overlay tarball for a custom processor
+         configuration.
+
          These overlay files are tar packages with updated configuration
          files for various toolchain packages and Xtensa processor
          configurations. They are provided by the processor vendor or
          directly from Tensilica.
 
+         The path can be either absolute, or relative to the top directory
+         of buildroot.
+
 choice
        prompt "Target Architecture Endianness"
        depends on BR2_XTENSA_CUSTOM
index 2843333b58002fa87a2cb0110bfa180c1f1b605e..6d9fd63d124a04c330e552107efb5959eb4cb26b 100644 (file)
@@ -1,18 +1,15 @@
 ################################################################################
-# Those two variables can be used by packages that need to extract the overlay.
+# This variable can be used by packages that need to extract the overlay.
 #
-# ARCH_XTENSA_CORE_NAME   is the name of the Xtensa core; empty if none or the
-#                         standard 'fsf' core.
-# ARCH_XTENSA_OVERLAY_TAR is the path to the overlay tarball; only valid when
-#                         ARCH_XTENSA_CORE_NAME is not empty.
+# ARCH_XTENSA_OVERLAY_FILE is the path to the overlay tarball; empty if not
+#                          using any overlay
 #
 # Example:
-#   ifneq ($(ARCH_XTENSA_CORE_NAME),)
-#       tar xf $(ARCH_XTENSA_OVERLAY_TAR) -C $(@D) --strip-components=1 gcc
+#   ifneq ($(ARCH_XTENSA_OVERLAY_FILE),)
+#       tar xf $(ARCH_XTENSA_OVERLAY_FILE) -C $(@D) --strip-components=1 gcc
 #   endif
 ################################################################################
-ARCH_XTENSA_CORE_NAME = $(call qstrip,$(BR2_XTENSA_CORE_NAME))
-ARCH_XTENSA_OVERLAY_TAR = $(call qstrip,$(BR2_XTENSA_OVERLAY_DIR))/xtensa_$(ARCH_XTENSA_CORE_NAME).tar
+ARCH_XTENSA_OVERLAY_FILE = $(call qstrip,$(BR2_XTENSA_OVERLAY_FILE))
 
 ################################################################################
 # arch-xtensa-overlay-extract -- extract an extensa overlay
@@ -24,5 +21,5 @@ ARCH_XTENSA_OVERLAY_TAR = $(call qstrip,$(BR2_XTENSA_OVERLAY_DIR))/xtensa_$(ARCH
 #   $(call arch-xtensa-overlay-extract,/path/to/overlay.tar,$(@D),gcc)
 ################################################################################
 define arch-xtensa-overlay-extract
-       tar xf $(ARCH_XTENSA_OVERLAY_TAR) -C $(1) --strip-components=1 $(2)
+       tar xf $(ARCH_XTENSA_OVERLAY_FILE) -C $(1) --strip-components=1 $(2)
 endef
index ec0c1bac51be24474074d5680abe8f1acc950790..778c31aba01e509ba005ba0e3f130fb5ef4d2981 100644 (file)
@@ -1,8 +1,7 @@
 # Architecture
 BR2_xtensa=y
 BR2_XTENSA_CUSTOM=y
-BR2_XTENSA_CORE_NAME="dc233c"
-BR2_XTENSA_OVERLAY_DIR="board/qemu/xtensa-lx60"
+BR2_XTENSA_OVERLAY_FILE="board/qemu/xtensa-lx60/xtensa_dc233c.tar"
 
 # System
 BR2_SYSTEM_DHCP="eth0"
index d19bc5431b39cccb8c21dc48a4bbc4d7ef93eb40..63e0194fefeb76fc5fef5b202c57c84961169c56 100644 (file)
@@ -1,8 +1,7 @@
 # Architecture
 BR2_xtensa=y
 BR2_XTENSA_CUSTOM=y
-BR2_XTENSA_CORE_NAME="dc233c"
-BR2_XTENSA_OVERLAY_DIR="board/qemu/xtensa-lx60"
+BR2_XTENSA_OVERLAY_FILE="board/qemu/xtensa-lx60/xtensa_dc233c.tar"
 
 # Toolchain
 BR2_PACKAGE_HOST_ELF2FLT=y
index c64ec47292ecc7fd3927a7939a8dc5b6350305fd..8e26394fbf51ffa508bd3dcf0d0b12e5372096ff 100644 (file)
@@ -122,7 +122,7 @@ define BINUTILS_INSTALL_TARGET_CMDS
 endef
 endif
 
-ifneq ($(ARCH_XTENSA_CORE_NAME),)
+ifneq ($(ARCH_XTENSA_OVERLAY_FILE),)
 define BINUTILS_XTENSA_OVERLAY_EXTRACT
        $(call arch-xtensa-overlay-extract,$(@D),binutils)
 endef
index 78466fa4da405d69c83d37fbafea1f3f98d15ef2..f3bc72efc719b13b794b5f93d0dfbdda89deda36 100644 (file)
@@ -15,7 +15,7 @@ HOST_GCC_FINAL_DEPENDENCIES = \
 HOST_GCC_FINAL_EXCLUDES = $(HOST_GCC_EXCLUDES)
 HOST_GCC_FINAL_POST_EXTRACT_HOOKS += HOST_GCC_FAKE_TESTSUITE
 
-ifneq ($(ARCH_XTENSA_CORE_NAME),)
+ifneq ($(ARCH_XTENSA_OVERLAY_FILE),)
 HOST_GCC_FINAL_POST_EXTRACT_HOOKS += HOST_GCC_XTENSA_OVERLAY_EXTRACT
 endif
 
index e1a224164a20a86e44a6394e3f1e8471a4dfc427..dc7dff922818911b1452759258db09b7300c9dd7 100644 (file)
@@ -13,7 +13,7 @@ HOST_GCC_INITIAL_DEPENDENCIES = $(HOST_GCC_COMMON_DEPENDENCIES)
 HOST_GCC_INITIAL_EXCLUDES = $(HOST_GCC_EXCLUDES)
 HOST_GCC_INITIAL_POST_EXTRACT_HOOKS += HOST_GCC_FAKE_TESTSUITE
 
-ifneq ($(ARCH_XTENSA_CORE_NAME),)
+ifneq ($(ARCH_XTENSA_OVERLAY_FILE),)
 HOST_GCC_INITIAL_POST_EXTRACT_HOOKS += HOST_GCC_XTENSA_OVERLAY_EXTRACT
 endif
 
index 9b4d50e9d8037c66e0008f0915bf5046c65f65c8..8ef01d6c12ea858de7c4e893641b7a0de9fe4ca7 100644 (file)
@@ -44,7 +44,7 @@ HOST_GDB_MAKE_OPTS += MAKEINFO=true
 HOST_GDB_INSTALL_OPTS += MAKEINFO=true install
 
 # Apply the Xtensa specific patches
-ifneq ($(ARCH_XTENSA_CORE_NAME),)
+ifneq ($(ARCH_XTENSA_OVERLAY_FILE),)
 define GDB_XTENSA_OVERLAY_EXTRACT
        $(call arch-xtensa-overlay-extract,$(@D),gdb)
 endef