aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2019-02-12 22:55:55 -0800
committerGitHub <noreply@github.com>2019-02-12 22:55:55 -0800
commit2da27758a9638b07f06d490251f0e44abf398057 (patch)
tree4ec507c1c598bbbd75b1e0846d01f383bef19f99
parentdb4fdf015061e5c8a39cbb3c8ff4c33bea9ebdf8 (diff)
parent47e16f64e4bb98b8bd616a9bf45f80113a0794f1 (diff)
downloadcrosstool-ng-2da27758a9638b07f06d490251f0e44abf398057.tar.gz
crosstool-ng-2da27758a9638b07f06d490251f0e44abf398057.tar.bz2
crosstool-ng-2da27758a9638b07f06d490251f0e44abf398057.zip
Merge pull request #1136 from stilor/upgrading2
Upgradability, phase 2
-rw-r--r--.gitignore1
-rwxr-xr-xbootstrap2
-rw-r--r--ct-ng.in3
-rw-r--r--samples/aarch64-rpi3-linux-gnu/crosstool.config2
-rw-r--r--samples/aarch64-unknown-linux-android/crosstool.config2
-rw-r--r--samples/aarch64-unknown-linux-gnu/crosstool.config2
-rw-r--r--samples/aarch64-unknown-linux-uclibc/crosstool.config2
-rw-r--r--samples/alphaev56-unknown-linux-gnu/crosstool.config2
-rw-r--r--samples/alphaev67-unknown-linux-gnu/crosstool.config2
-rw-r--r--samples/arc-arc700-linux-uclibc/crosstool.config2
-rw-r--r--samples/arc-multilib-elf32/crosstool.config2
-rw-r--r--samples/arc-multilib-linux-uclibc/crosstool.config2
-rw-r--r--samples/arm-bare_newlib_cortex_m3_nommu-eabi/crosstool.config2
-rw-r--r--samples/arm-cortex_a15-linux-gnueabihf/crosstool.config2
-rw-r--r--samples/arm-cortex_a8-linux-gnueabi/crosstool.config2
-rw-r--r--samples/arm-cortexa5-linux-uclibcgnueabihf/crosstool.config2
-rw-r--r--samples/arm-cortexa9_neon-linux-gnueabihf/crosstool.config2
-rw-r--r--samples/arm-multilib-linux-uclibcgnueabi/crosstool.config2
-rw-r--r--samples/arm-nano-eabi/crosstool.config2
-rw-r--r--samples/arm-unknown-eabi/crosstool.config2
-rw-r--r--samples/arm-unknown-linux-gnueabi/crosstool.config2
-rw-r--r--samples/arm-unknown-linux-musleabi/crosstool.config2
-rw-r--r--samples/arm-unknown-linux-uclibcgnueabi/crosstool.config2
-rw-r--r--samples/arm-unknown-linux-uclibcgnueabihf/crosstool.config2
-rw-r--r--samples/armeb-unknown-eabi/crosstool.config2
-rw-r--r--samples/armeb-unknown-linux-gnueabi/crosstool.config2
-rw-r--r--samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config2
-rw-r--r--samples/armv6-nommu-linux-uclibcgnueabi/crosstool.config2
-rw-r--r--samples/armv6-rpi-linux-gnueabi/crosstool.config2
-rw-r--r--samples/armv7-rpi2-linux-gnueabihf/crosstool.config2
-rw-r--r--samples/armv8-rpi3-linux-gnueabihf/crosstool.config2
-rw-r--r--samples/avr/crosstool.config2
-rw-r--r--samples/i586-geode-linux-uclibc/crosstool.config2
-rw-r--r--samples/i686-centos6-linux-gnu/crosstool.config2
-rw-r--r--samples/i686-centos7-linux-gnu/crosstool.config2
-rw-r--r--samples/i686-nptl-linux-gnu/crosstool.config2
-rw-r--r--samples/i686-ubuntu12.04-linux-gnu/crosstool.config2
-rw-r--r--samples/i686-ubuntu14.04-linux-gnu/crosstool.config2
-rw-r--r--samples/i686-ubuntu16.04-linux-gnu/crosstool.config2
-rw-r--r--samples/i686-w64-mingw32,nios2-spico-elf/crosstool.config2
-rw-r--r--samples/i686-w64-mingw32/crosstool.config2
-rw-r--r--samples/m68k-unknown-elf/crosstool.config2
-rw-r--r--samples/m68k-unknown-uclinux-uclibc/crosstool.config2
-rw-r--r--samples/mips-ar2315-linux-gnu/crosstool.config2
-rw-r--r--samples/mips-malta-linux-gnu/crosstool.config2
-rw-r--r--samples/mips-unknown-elf/crosstool.config2
-rw-r--r--samples/mips-unknown-linux-uclibc/crosstool.config2
-rw-r--r--samples/mips64el-multilib-linux-uclibc/crosstool.config2
-rw-r--r--samples/mipsel-multilib-linux-gnu/crosstool.config2
-rw-r--r--samples/mipsel-sde-elf/crosstool.config2
-rw-r--r--samples/mipsel-unknown-linux-gnu/crosstool.config2
-rw-r--r--samples/moxie-unknown-elf/crosstool.config2
-rw-r--r--samples/moxiebox/crosstool.config2
-rw-r--r--samples/msp430-unknown-elf/crosstool.config2
-rw-r--r--samples/nios2-altera-linux-gnu/crosstool.config2
-rw-r--r--samples/nios2-unknown-elf/crosstool.config2
-rw-r--r--samples/powerpc-405-linux-gnu/crosstool.config2
-rw-r--r--samples/powerpc-8540-linux-gnu/crosstool.config2
-rw-r--r--samples/powerpc-860-linux-gnu/crosstool.config2
-rw-r--r--samples/powerpc-e300c3-linux-gnu/crosstool.config2
-rw-r--r--samples/powerpc-e500v2-linux-gnuspe/crosstool.config2
-rw-r--r--samples/powerpc-unknown-linux-gnu/crosstool.config2
-rw-r--r--samples/powerpc-unknown-linux-uclibc,m68k-unknown-uclinux-uclibc/crosstool.config2
-rw-r--r--samples/powerpc-unknown-linux-uclibc/crosstool.config2
-rw-r--r--samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config2
-rw-r--r--samples/powerpc64-multilib-linux-gnu/crosstool.config2
-rw-r--r--samples/powerpc64-unknown-linux-gnu/crosstool.config2
-rw-r--r--samples/powerpc64le-unknown-linux-gnu/crosstool.config2
-rw-r--r--samples/riscv32-hifive1-elf/crosstool.config2
-rw-r--r--samples/riscv32-unknown-elf/crosstool.config2
-rw-r--r--samples/riscv64-unknown-elf/crosstool.config2
-rw-r--r--samples/riscv64-unknown-linux-gnu/crosstool.config2
-rw-r--r--samples/s390-ibm-linux-gnu/crosstool.config2
-rw-r--r--samples/s390x-ibm-linux-gnu/crosstool.config2
-rw-r--r--samples/samples.mk22
-rw-r--r--samples/sh-multilib-linux-gnu/crosstool.config2
-rw-r--r--samples/sh-multilib-linux-uclibc/crosstool.config2
-rw-r--r--samples/sh-unknown-elf/crosstool.config2
-rw-r--r--samples/sparc-leon-linux-uclibc/crosstool.config4
-rw-r--r--samples/sparc-unknown-linux-gnu/crosstool.config2
-rw-r--r--samples/sparc64-multilib-linux-gnu/crosstool.config2
-rw-r--r--samples/x86_64-centos6-linux-gnu/crosstool.config2
-rw-r--r--samples/x86_64-centos7-linux-gnu/crosstool.config2
-rw-r--r--samples/x86_64-multilib-linux-gnu/crosstool.config2
-rw-r--r--samples/x86_64-multilib-linux-musl/crosstool.config2
-rw-r--r--samples/x86_64-multilib-linux-uclibc,moxie-unknown-moxiebox/crosstool.config2
-rw-r--r--samples/x86_64-multilib-linux-uclibc,powerpc-unknown-elf/crosstool.config2
-rw-r--r--samples/x86_64-multilib-linux-uclibc/crosstool.config2
-rw-r--r--samples/x86_64-ubuntu12.04-linux-gnu/crosstool.config2
-rw-r--r--samples/x86_64-ubuntu14.04-linux-gnu/crosstool.config2
-rw-r--r--samples/x86_64-ubuntu16.04-linux-gnu/crosstool.config2
-rw-r--r--samples/x86_64-unknown-linux-gnu/crosstool.config2
-rw-r--r--samples/x86_64-unknown-linux-uclibc/crosstool.config2
-rw-r--r--samples/x86_64-w64-mingw32,arm-cortexa9_neon-linux-gnueabihf/crosstool.config2
-rw-r--r--samples/x86_64-w64-mingw32,x86_64-pc-linux-gnu/crosstool.config2
-rw-r--r--samples/x86_64-w64-mingw32/crosstool.config2
-rw-r--r--samples/xtensa-fsf-linux-uclibc/crosstool.config2
-rw-r--r--scripts/show-config.sh1
-rw-r--r--scripts/upgrade/README23
-rw-r--r--scripts/upgrade/v0351
-rw-r--r--scripts/upgrade/v1114
-rw-r--r--scripts/version-check.sh577
102 files changed, 677 insertions, 605 deletions
diff --git a/.gitignore b/.gitignore
index 80100368..30e7c364 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,6 +15,7 @@ config/configure.in
config/gen/
config/versions/
.config
+.config.*
verbatim-data.mk
maintainer/package-versions
diff --git a/bootstrap b/bootstrap
index c7d01ba8..e4aad7ff 100755
--- a/bootstrap
+++ b/bootstrap
@@ -780,7 +780,7 @@ msg "*** Gathering the list of data files to install"
# Implement some kind of .installignore for these files?
case "${f}" in
# Avoid temp files
- .*.swp|.*.swo)
+ *.sw[po])
continue
;;
# And, some files automake insists we must have
diff --git a/ct-ng.in b/ct-ng.in
index 0120d35d..0a12e097 100644
--- a/ct-ng.in
+++ b/ct-ng.in
@@ -145,7 +145,10 @@ defconfig: check-config
$(SILENT)CT_VCHECK=save $(CONF) --defconfig=$${DEFCONFIG-defconfig} $(KCONFIG_TOP)
upgradeconfig: .config check-config
+ $(SILENT)cp .config .config.before-upgrade
$(SILENT)CT_UPGRADECONFIG=yes $(bash) $(CT_LIB_DIR)/scripts/version-check.sh .config
+ @$(CT_ECHO) "Saving .config as .config.before-olddefconfig before running 'ct-ng olddefconfig'"
+ $(SILENT)cp .config .config.before-olddefconfig
$(SILENT)$(CONF) --olddefconfig $(KCONFIG_TOP)
@$(CT_ECHO) "Done. You may now run 'ct-ng menuconfig' to edit the configuration."
diff --git a/samples/aarch64-rpi3-linux-gnu/crosstool.config b/samples/aarch64-rpi3-linux-gnu/crosstool.config
index e8c429da..daa715df 100644
--- a/samples/aarch64-rpi3-linux-gnu/crosstool.config
+++ b/samples/aarch64-rpi3-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_CPU="cortex-a53"
CT_ARCH_64=y
diff --git a/samples/aarch64-unknown-linux-android/crosstool.config b/samples/aarch64-unknown-linux-android/crosstool.config
index 4d6a319f..6564573d 100644
--- a/samples/aarch64-unknown-linux-android/crosstool.config
+++ b/samples/aarch64-unknown-linux-android/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_ARM=y
CT_ARCH_64=y
diff --git a/samples/aarch64-unknown-linux-gnu/crosstool.config b/samples/aarch64-unknown-linux-gnu/crosstool.config
index 864b1002..113b24e5 100644
--- a/samples/aarch64-unknown-linux-gnu/crosstool.config
+++ b/samples/aarch64-unknown-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_64=y
CT_TARGET_VENDOR=""
diff --git a/samples/aarch64-unknown-linux-uclibc/crosstool.config b/samples/aarch64-unknown-linux-uclibc/crosstool.config
index 7c00f7ef..533bac7a 100644
--- a/samples/aarch64-unknown-linux-uclibc/crosstool.config
+++ b/samples/aarch64-unknown-linux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_64=y
CT_TARGET_VENDOR=""
diff --git a/samples/alphaev56-unknown-linux-gnu/crosstool.config b/samples/alphaev56-unknown-linux-gnu/crosstool.config
index ce5688ce..44ea0479 100644
--- a/samples/alphaev56-unknown-linux-gnu/crosstool.config
+++ b/samples/alphaev56-unknown-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ALPHA_EV56=y
CT_KERNEL_LINUX=y
CT_BINUTILS_PLUGINS=y
diff --git a/samples/alphaev67-unknown-linux-gnu/crosstool.config b/samples/alphaev67-unknown-linux-gnu/crosstool.config
index 7d27de3f..f82b3131 100644
--- a/samples/alphaev67-unknown-linux-gnu/crosstool.config
+++ b/samples/alphaev67-unknown-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ALPHA_EV67=y
CT_KERNEL_LINUX=y
CT_BINUTILS_PLUGINS=y
diff --git a/samples/arc-arc700-linux-uclibc/crosstool.config b/samples/arc-arc700-linux-uclibc/crosstool.config
index c011a930..8da0b136 100644
--- a/samples/arc-arc700-linux-uclibc/crosstool.config
+++ b/samples/arc-arc700-linux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARC=y
CT_ARCH_CPU="arc700"
CT_TARGET_CFLAGS="-mno-atomic"
diff --git a/samples/arc-multilib-elf32/crosstool.config b/samples/arc-multilib-elf32/crosstool.config
index 975a8c6f..826d3a97 100644
--- a/samples/arc-multilib-elf32/crosstool.config
+++ b/samples/arc-multilib-elf32/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARC=y
CT_MULTILIB=y
CT_TARGET_VENDOR="multilib"
diff --git a/samples/arc-multilib-linux-uclibc/crosstool.config b/samples/arc-multilib-linux-uclibc/crosstool.config
index ca397c6c..c4bed05d 100644
--- a/samples/arc-multilib-linux-uclibc/crosstool.config
+++ b/samples/arc-multilib-linux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARC=y
CT_MULTILIB=y
CT_TARGET_CFLAGS="-matomic"
diff --git a/samples/arm-bare_newlib_cortex_m3_nommu-eabi/crosstool.config b/samples/arm-bare_newlib_cortex_m3_nommu-eabi/crosstool.config
index 80810980..3e4623c3 100644
--- a/samples/arm-bare_newlib_cortex_m3_nommu-eabi/crosstool.config
+++ b/samples/arm-bare_newlib_cortex_m3_nommu-eabi/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_CPU="cortex-m3"
CT_ARCH_ARM_MODE_THUMB=y
diff --git a/samples/arm-cortex_a15-linux-gnueabihf/crosstool.config b/samples/arm-cortex_a15-linux-gnueabihf/crosstool.config
index 4e304a75..ab4a6a9a 100644
--- a/samples/arm-cortex_a15-linux-gnueabihf/crosstool.config
+++ b/samples/arm-cortex_a15-linux-gnueabihf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_CPU="cortex-a15"
CT_ARCH_FPU="neon-vfpv4"
diff --git a/samples/arm-cortex_a8-linux-gnueabi/crosstool.config b/samples/arm-cortex_a8-linux-gnueabi/crosstool.config
index 7e1dc6fa..448327cd 100644
--- a/samples/arm-cortex_a8-linux-gnueabi/crosstool.config
+++ b/samples/arm-cortex_a8-linux-gnueabi/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_CPU="cortex-a8"
CT_ARCH_FLOAT_SW=y
diff --git a/samples/arm-cortexa5-linux-uclibcgnueabihf/crosstool.config b/samples/arm-cortexa5-linux-uclibcgnueabihf/crosstool.config
index a5b25888..a0a5f10c 100644
--- a/samples/arm-cortexa5-linux-uclibcgnueabihf/crosstool.config
+++ b/samples/arm-cortexa5-linux-uclibcgnueabihf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_ARM=y
CT_ARCH_CPU="cortex-a5"
diff --git a/samples/arm-cortexa9_neon-linux-gnueabihf/crosstool.config b/samples/arm-cortexa9_neon-linux-gnueabihf/crosstool.config
index 671d5923..1aa23fb9 100644
--- a/samples/arm-cortexa9_neon-linux-gnueabihf/crosstool.config
+++ b/samples/arm-cortexa9_neon-linux-gnueabihf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_ARM=y
CT_ARCH_CPU="cortex-a9"
diff --git a/samples/arm-multilib-linux-uclibcgnueabi/crosstool.config b/samples/arm-multilib-linux-uclibcgnueabi/crosstool.config
index 2fc835fe..7d7936a7 100644
--- a/samples/arm-multilib-linux-uclibcgnueabi/crosstool.config
+++ b/samples/arm-multilib-linux-uclibcgnueabi/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_MULTILIB=y
CT_ARCH_FLOAT_SW=y
diff --git a/samples/arm-nano-eabi/crosstool.config b/samples/arm-nano-eabi/crosstool.config
index ab79b7fd..86257243 100644
--- a/samples/arm-nano-eabi/crosstool.config
+++ b/samples/arm-nano-eabi/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_MULTILIB=y
CT_ARCH_FLOAT_SW=y
diff --git a/samples/arm-unknown-eabi/crosstool.config b/samples/arm-unknown-eabi/crosstool.config
index 2306a07f..dff2fea1 100644
--- a/samples/arm-unknown-eabi/crosstool.config
+++ b/samples/arm-unknown-eabi/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_FLOAT_SW=y
CT_LIBC_NEWLIB_IO_C99FMT=y
diff --git a/samples/arm-unknown-linux-gnueabi/crosstool.config b/samples/arm-unknown-linux-gnueabi/crosstool.config
index 4ffa4af7..fec7611d 100644
--- a/samples/arm-unknown-linux-gnueabi/crosstool.config
+++ b/samples/arm-unknown-linux-gnueabi/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
# CT_REMOVE_DOCS is not set
CT_ARCH_ARM=y
CT_ARCH_FLOAT_SW=y
diff --git a/samples/arm-unknown-linux-musleabi/crosstool.config b/samples/arm-unknown-linux-musleabi/crosstool.config
index 68b61473..15dc56e5 100644
--- a/samples/arm-unknown-linux-musleabi/crosstool.config
+++ b/samples/arm-unknown-linux-musleabi/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_ARM=y
CT_KERNEL_LINUX=y
diff --git a/samples/arm-unknown-linux-uclibcgnueabi/crosstool.config b/samples/arm-unknown-linux-uclibcgnueabi/crosstool.config
index 533d6664..9ff7937a 100644
--- a/samples/arm-unknown-linux-uclibcgnueabi/crosstool.config
+++ b/samples/arm-unknown-linux-uclibcgnueabi/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_CPU="arm926ej-s"
CT_ARCH_FLOAT_SW=y
diff --git a/samples/arm-unknown-linux-uclibcgnueabihf/crosstool.config b/samples/arm-unknown-linux-uclibcgnueabihf/crosstool.config
index 53a21379..83b5eab1 100644
--- a/samples/arm-unknown-linux-uclibcgnueabihf/crosstool.config
+++ b/samples/arm-unknown-linux-uclibcgnueabihf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_ARM=y
CT_ARCH_CPU="arm926ej-s"
diff --git a/samples/armeb-unknown-eabi/crosstool.config b/samples/armeb-unknown-eabi/crosstool.config
index 561a8550..38277adc 100644
--- a/samples/armeb-unknown-eabi/crosstool.config
+++ b/samples/armeb-unknown-eabi/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_BE=y
CT_ARCH_FLOAT_SW=y
diff --git a/samples/armeb-unknown-linux-gnueabi/crosstool.config b/samples/armeb-unknown-linux-gnueabi/crosstool.config
index 83ef15b6..46daaf22 100644
--- a/samples/armeb-unknown-linux-gnueabi/crosstool.config
+++ b/samples/armeb-unknown-linux-gnueabi/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_BE=y
CT_ARCH_ARCH="armv5te"
diff --git a/samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config b/samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config
index fe4c7ec5..bb05f92c 100644
--- a/samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config
+++ b/samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_CPU="xscale"
CT_ARCH_BE=y
diff --git a/samples/armv6-nommu-linux-uclibcgnueabi/crosstool.config b/samples/armv6-nommu-linux-uclibcgnueabi/crosstool.config
index ba08e5d4..3dc9052c 100644
--- a/samples/armv6-nommu-linux-uclibcgnueabi/crosstool.config
+++ b/samples/armv6-nommu-linux-uclibcgnueabi/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_SUFFIX="v6"
# CT_ARCH_USE_MMU is not set
diff --git a/samples/armv6-rpi-linux-gnueabi/crosstool.config b/samples/armv6-rpi-linux-gnueabi/crosstool.config
index eb12a0a1..a34de693 100644
--- a/samples/armv6-rpi-linux-gnueabi/crosstool.config
+++ b/samples/armv6-rpi-linux-gnueabi/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_CPU="arm1176jzf-s"
CT_ARCH_SUFFIX="v6"
diff --git a/samples/armv7-rpi2-linux-gnueabihf/crosstool.config b/samples/armv7-rpi2-linux-gnueabihf/crosstool.config
index 51a0e224..bbe0b142 100644
--- a/samples/armv7-rpi2-linux-gnueabihf/crosstool.config
+++ b/samples/armv7-rpi2-linux-gnueabihf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_CPU="cortex-a7"
CT_ARCH_SUFFIX="v7"
diff --git a/samples/armv8-rpi3-linux-gnueabihf/crosstool.config b/samples/armv8-rpi3-linux-gnueabihf/crosstool.config
index bc286b8b..33175bd9 100644
--- a/samples/armv8-rpi3-linux-gnueabihf/crosstool.config
+++ b/samples/armv8-rpi3-linux-gnueabihf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_ARM=y
CT_ARCH_CPU="cortex-a53"
CT_ARCH_SUFFIX="v8"
diff --git a/samples/avr/crosstool.config b/samples/avr/crosstool.config
index dce6af89..c0ad517d 100644
--- a/samples/avr/crosstool.config
+++ b/samples/avr/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_AVR=y
CT_CC_LANG_CXX=y
CT_DEBUG_GDB=y
diff --git a/samples/i586-geode-linux-uclibc/crosstool.config b/samples/i586-geode-linux-uclibc/crosstool.config
index 908495af..b6863a1a 100644
--- a/samples/i586-geode-linux-uclibc/crosstool.config
+++ b/samples/i586-geode-linux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_X86=y
CT_ARCH_ARCH="pentium-mmx"
CT_TARGET_VENDOR="geode"
diff --git a/samples/i686-centos6-linux-gnu/crosstool.config b/samples/i686-centos6-linux-gnu/crosstool.config
index 2c960e7e..02c16afd 100644
--- a/samples/i686-centos6-linux-gnu/crosstool.config
+++ b/samples/i686-centos6-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_OBSOLETE=y
CT_ARCH_X86=y
CT_ARCH_ARCH="i686"
diff --git a/samples/i686-centos7-linux-gnu/crosstool.config b/samples/i686-centos7-linux-gnu/crosstool.config
index 9df56e92..033cecfb 100644
--- a/samples/i686-centos7-linux-gnu/crosstool.config
+++ b/samples/i686-centos7-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_OBSOLETE=y
CT_ARCH_X86=y
CT_ARCH_ARCH="i686"
diff --git a/samples/i686-nptl-linux-gnu/crosstool.config b/samples/i686-nptl-linux-gnu/crosstool.config
index 3e8ed1b2..407c010a 100644
--- a/samples/i686-nptl-linux-gnu/crosstool.config
+++ b/samples/i686-nptl-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_X86=y
CT_ARCH_ARCH="i686"
CT_TARGET_VENDOR="nptl"
diff --git a/samples/i686-ubuntu12.04-linux-gnu/crosstool.config b/samples/i686-ubuntu12.04-linux-gnu/crosstool.config
index 6c02470e..c23c14b2 100644
--- a/samples/i686-ubuntu12.04-linux-gnu/crosstool.config
+++ b/samples/i686-ubuntu12.04-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_OBSOLETE=y
CT_ARCH_X86=y
CT_ARCH_ARCH="i686"
diff --git a/samples/i686-ubuntu14.04-linux-gnu/crosstool.config b/samples/i686-ubuntu14.04-linux-gnu/crosstool.config
index 3778452d..bb84510e 100644
--- a/samples/i686-ubuntu14.04-linux-gnu/crosstool.config
+++ b/samples/i686-ubuntu14.04-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_OBSOLETE=y
CT_ARCH_X86=y
CT_ARCH_ARCH="i686"
diff --git a/samples/i686-ubuntu16.04-linux-gnu/crosstool.config b/samples/i686-ubuntu16.04-linux-gnu/crosstool.config
index 2db29172..8cd1108b 100644
--- a/samples/i686-ubuntu16.04-linux-gnu/crosstool.config
+++ b/samples/i686-ubuntu16.04-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_OBSOLETE=y
CT_ARCH_X86=y
CT_ARCH_ARCH="i686"
diff --git a/samples/i686-w64-mingw32,nios2-spico-elf/crosstool.config b/samples/i686-w64-mingw32,nios2-spico-elf/crosstool.config
index d9f78e44..2ecef5b9 100644
--- a/samples/i686-w64-mingw32,nios2-spico-elf/crosstool.config
+++ b/samples/i686-w64-mingw32,nios2-spico-elf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
# CT_REMOVE_DOCS is not set
CT_ARCH_NIOS2=y
diff --git a/samples/i686-w64-mingw32/crosstool.config b/samples/i686-w64-mingw32/crosstool.config
index b92bbe09..741cbd25 100644
--- a/samples/i686-w64-mingw32/crosstool.config
+++ b/samples/i686-w64-mingw32/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_X86=y
CT_ARCH_ARCH="i686"
diff --git a/samples/m68k-unknown-elf/crosstool.config b/samples/m68k-unknown-elf/crosstool.config
index d8edb877..acb66a21 100644
--- a/samples/m68k-unknown-elf/crosstool.config
+++ b/samples/m68k-unknown-elf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_M68K=y
CT_ARCH_CPU="cpu32"
CT_ARCH_BINFMT_FLAT=y
diff --git a/samples/m68k-unknown-uclinux-uclibc/crosstool.config b/samples/m68k-unknown-uclinux-uclibc/crosstool.config
index d8c6267c..29d4bb22 100644
--- a/samples/m68k-unknown-uclinux-uclibc/crosstool.config
+++ b/samples/m68k-unknown-uclinux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_M68K=y
CT_KERNEL_LINUX=y
CT_THREADS_LT=y
diff --git a/samples/mips-ar2315-linux-gnu/crosstool.config b/samples/mips-ar2315-linux-gnu/crosstool.config
index 5a07139d..b4f31119 100644
--- a/samples/mips-ar2315-linux-gnu/crosstool.config
+++ b/samples/mips-ar2315-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_MIPS=y
CT_ARCH_TUNE="4kc"
CT_ARCH_ARCH="4kc"
diff --git a/samples/mips-malta-linux-gnu/crosstool.config b/samples/mips-malta-linux-gnu/crosstool.config
index bed4c1bd..67ea2721 100644
--- a/samples/mips-malta-linux-gnu/crosstool.config
+++ b/samples/mips-malta-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_MIPS=y
CT_TARGET_VENDOR="malta"
CT_KERNEL_LINUX=y
diff --git a/samples/mips-unknown-elf/crosstool.config b/samples/mips-unknown-elf/crosstool.config
index eea2340d..266b19de 100644
--- a/samples/mips-unknown-elf/crosstool.config
+++ b/samples/mips-unknown-elf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_MIPS=y
CT_ARCH_FLOAT_SW=y
CT_LIBC_NONE=y
diff --git a/samples/mips-unknown-linux-uclibc/crosstool.config b/samples/mips-unknown-linux-uclibc/crosstool.config
index 1c1394c4..69e95d1b 100644
--- a/samples/mips-unknown-linux-uclibc/crosstool.config
+++ b/samples/mips-unknown-linux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_MIPS=y
CT_ARCH_ARCH="mips1"
CT_ARCH_FLOAT_SW=y
diff --git a/samples/mips64el-multilib-linux-uclibc/crosstool.config b/samples/mips64el-multilib-linux-uclibc/crosstool.config
index bec320fd..2508cd07 100644
--- a/samples/mips64el-multilib-linux-uclibc/crosstool.config
+++ b/samples/mips64el-multilib-linux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_MIPS=y
CT_MULTILIB=y
CT_ARCH_LE=y
diff --git a/samples/mipsel-multilib-linux-gnu/crosstool.config b/samples/mipsel-multilib-linux-gnu/crosstool.config
index b1972a95..c7967a4d 100644
--- a/samples/mipsel-multilib-linux-gnu/crosstool.config
+++ b/samples/mipsel-multilib-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_MIPS=y
CT_MULTILIB=y
CT_ARCH_LE=y
diff --git a/samples/mipsel-sde-elf/crosstool.config b/samples/mipsel-sde-elf/crosstool.config
index 86d264dd..b481a7fe 100644
--- a/samples/mipsel-sde-elf/crosstool.config
+++ b/samples/mipsel-sde-elf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_MIPS=y
CT_ARCH_LE=y
CT_ARCH_FLOAT_SW=y
diff --git a/samples/mipsel-unknown-linux-gnu/crosstool.config b/samples/mipsel-unknown-linux-gnu/crosstool.config
index e9567a94..3e0271a3 100644
--- a/samples/mipsel-unknown-linux-gnu/crosstool.config
+++ b/samples/mipsel-unknown-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_MIPS=y
CT_ARCH_LE=y
CT_ARCH_ARCH="mips1"
diff --git a/samples/moxie-unknown-elf/crosstool.config b/samples/moxie-unknown-elf/crosstool.config
index 2754d89c..5002bfbd 100644
--- a/samples/moxie-unknown-elf/crosstool.config
+++ b/samples/moxie-unknown-elf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_MOXIE=y
CT_DEBUG_GDB=y
diff --git a/samples/moxiebox/crosstool.config b/samples/moxiebox/crosstool.config
index c0e04e9f..fed00ed0 100644
--- a/samples/moxiebox/crosstool.config
+++ b/samples/moxiebox/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_MOXIE=y
CT_ARCH_LE=y
diff --git a/samples/msp430-unknown-elf/crosstool.config b/samples/msp430-unknown-elf/crosstool.config
index ed1306f8..b791c996 100644
--- a/samples/msp430-unknown-elf/crosstool.config
+++ b/samples/msp430-unknown-elf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_MSP430=y
CT_DEBUG_GDB=y
diff --git a/samples/nios2-altera-linux-gnu/crosstool.config b/samples/nios2-altera-linux-gnu/crosstool.config
index 9ed4455d..6ecf6d54 100644
--- a/samples/nios2-altera-linux-gnu/crosstool.config
+++ b/samples/nios2-altera-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_NIOS2=y
CT_ARCH_USE_MMU=y
CT_TARGET_VENDOR="altera"
diff --git a/samples/nios2-unknown-elf/crosstool.config b/samples/nios2-unknown-elf/crosstool.config
index b57f549b..521c6a7c 100644
--- a/samples/nios2-unknown-elf/crosstool.config
+++ b/samples/nios2-unknown-elf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_NIOS2=y
CT_CC_LANG_CXX=y
CT_DEBUG_GDB=y
diff --git a/samples/powerpc-405-linux-gnu/crosstool.config b/samples/powerpc-405-linux-gnu/crosstool.config
index 691e515f..6705d716 100644
--- a/samples/powerpc-405-linux-gnu/crosstool.config
+++ b/samples/powerpc-405-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_POWERPC=y
CT_ARCH_CPU="405"
CT_ARCH_FLOAT_SW=y
diff --git a/samples/powerpc-8540-linux-gnu/crosstool.config b/samples/powerpc-8540-linux-gnu/crosstool.config
index 8019e581..1cf0c153 100644
--- a/samples/powerpc-8540-linux-gnu/crosstool.config
+++ b/samples/powerpc-8540-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_POWERPC=y
CT_ARCH_CPU="8540"
# CT_DEMULTILIB is not set
diff --git a/samples/powerpc-860-linux-gnu/crosstool.config b/samples/powerpc-860-linux-gnu/crosstool.config
index d03c1496..7fafb1d5 100644
--- a/samples/powerpc-860-linux-gnu/crosstool.config
+++ b/samples/powerpc-860-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_POWERPC=y
CT_ARCH_CPU="860"
CT_ARCH_FLOAT_SW=y
diff --git a/samples/powerpc-e300c3-linux-gnu/crosstool.config b/samples/powerpc-e300c3-linux-gnu/crosstool.config
index dab2b35c..77039a25 100644
--- a/samples/powerpc-e300c3-linux-gnu/crosstool.config
+++ b/samples/powerpc-e300c3-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_POWERPC=y
CT_ARCH_CPU="e300c3"
CT_TARGET_VENDOR="e300c3"
diff --git a/samples/powerpc-e500v2-linux-gnuspe/crosstool.config b/samples/powerpc-e500v2-linux-gnuspe/crosstool.config
index fd3f7e5d..5d9aecef 100644
--- a/samples/powerpc-e500v2-linux-gnuspe/crosstool.config
+++ b/samples/powerpc-e500v2-linux-gnuspe/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_POWERPC=y
CT_ARCH_CPU="8548"
CT_ARCH_powerpc_ABI_SPE=y
diff --git a/samples/powerpc-unknown-linux-gnu/crosstool.config b/samples/powerpc-unknown-linux-gnu/crosstool.config
index 473e76ee..a5f17c5e 100644
--- a/samples/powerpc-unknown-linux-gnu/crosstool.config
+++ b/samples/powerpc-unknown-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_POWERPC=y
CT_KERNEL_LINUX=y
CT_BINUTILS_PLUGINS=y
diff --git a/samples/powerpc-unknown-linux-uclibc,m68k-unknown-uclinux-uclibc/crosstool.config b/samples/powerpc-unknown-linux-uclibc,m68k-unknown-uclinux-uclibc/crosstool.config
index 64183a4a..ee92573c 100644
--- a/samples/powerpc-unknown-linux-uclibc,m68k-unknown-uclinux-uclibc/crosstool.config
+++ b/samples/powerpc-unknown-linux-uclibc,m68k-unknown-uclinux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_M68K=y
CT_CANADIAN=y
CT_HOST="powerpc-unknown-linux-uclibc"
diff --git a/samples/powerpc-unknown-linux-uclibc/crosstool.config b/samples/powerpc-unknown-linux-uclibc/crosstool.config
index 02b2cb7e..655b6368 100644
--- a/samples/powerpc-unknown-linux-uclibc/crosstool.config
+++ b/samples/powerpc-unknown-linux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_POWERPC=y
CT_ARCH_FLOAT_SW=y
CT_KERNEL_LINUX=y
diff --git a/samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config b/samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config
index ac85c967..c560bdb7 100644
--- a/samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config
+++ b/samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_POWERPC=y
CT_ARCH_FLOAT_SW=y
CT_TARGET_VENDOR="unknown_nofpu"
diff --git a/samples/powerpc64-multilib-linux-gnu/crosstool.config b/samples/powerpc64-multilib-linux-gnu/crosstool.config
index 33ffb874..83babeaa 100644
--- a/samples/powerpc64-multilib-linux-gnu/crosstool.config
+++ b/samples/powerpc64-multilib-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_POWERPC=y
CT_MULTILIB=y
CT_ARCH_64=y
diff --git a/samples/powerpc64-unknown-linux-gnu/crosstool.config b/samples/powerpc64-unknown-linux-gnu/crosstool.config
index 1c628049..72f46041 100644
--- a/samples/powerpc64-unknown-linux-gnu/crosstool.config
+++ b/samples/powerpc64-unknown-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_POWERPC=y
CT_ARCH_64=y
CT_KERNEL_LINUX=y
diff --git a/samples/powerpc64le-unknown-linux-gnu/crosstool.config b/samples/powerpc64le-unknown-linux-gnu/crosstool.config
index 39bd9f08..12b69d77 100644
--- a/samples/powerpc64le-unknown-linux-gnu/crosstool.config
+++ b/samples/powerpc64le-unknown-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_POWERPC=y
CT_ARCH_LE=y
CT_ARCH_64=y
diff --git a/samples/riscv32-hifive1-elf/crosstool.config b/samples/riscv32-hifive1-elf/crosstool.config
index 0f227168..e525c27c 100644
--- a/samples/riscv32-hifive1-elf/crosstool.config
+++ b/samples/riscv32-hifive1-elf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_RISCV=y
CT_ARCH_ARCH="rv32ima"
diff --git a/samples/riscv32-unknown-elf/crosstool.config b/samples/riscv32-unknown-elf/crosstool.config
index 1adb2a7d..df459bde 100644
--- a/samples/riscv32-unknown-elf/crosstool.config
+++ b/samples/riscv32-unknown-elf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_RISCV=y
CT_TARGET_VENDOR=""
diff --git a/samples/riscv64-unknown-elf/crosstool.config b/samples/riscv64-unknown-elf/crosstool.config
index 01adfbc6..0110f563 100644
--- a/samples/riscv64-unknown-elf/crosstool.config
+++ b/samples/riscv64-unknown-elf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_RISCV=y
# CT_DEMULTILIB is not set
diff --git a/samples/riscv64-unknown-linux-gnu/crosstool.config b/samples/riscv64-unknown-linux-gnu/crosstool.config
index ccfb359f..215ff519 100644
--- a/samples/riscv64-unknown-linux-gnu/crosstool.config
+++ b/samples/riscv64-unknown-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_RISCV=y
# CT_DEMULTILIB is not set
diff --git a/samples/s390-ibm-linux-gnu/crosstool.config b/samples/s390-ibm-linux-gnu/crosstool.config
index 791cc89a..6587f1f7 100644
--- a/samples/s390-ibm-linux-gnu/crosstool.config
+++ b/samples/s390-ibm-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_S390=y
CT_KERNEL_LINUX=y
diff --git a/samples/s390x-ibm-linux-gnu/crosstool.config b/samples/s390x-ibm-linux-gnu/crosstool.config
index d036572a..307af1c1 100644
--- a/samples/s390x-ibm-linux-gnu/crosstool.config
+++ b/samples/s390x-ibm-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_S390=y
CT_ARCH_64=y
CT_KERNEL_LINUX=y
diff --git a/samples/samples.mk b/samples/samples.mk
index 3c4d4c34..48bbbb98 100644
--- a/samples/samples.mk
+++ b/samples/samples.mk
@@ -43,7 +43,6 @@ help-env::
PHONY += show-config
show-config: .config
@cp .config .config.sample
- @$(bash) $(CT_LIB_DIR)/scripts/version-check.sh .config
@$(bash) $(CT_LIB_DIR)/scripts/show-config.sh -v current
@rm -f .config.sample
@@ -54,7 +53,6 @@ $(patsubst %,show-%,$(CT_SAMPLES)): show-%:
CT_VCHECK=load \
$(CONF) --defconfig=$(call sample_dir,$*)/crosstool.config \
$(KCONFIG_TOP) >/dev/null
- @$(bash) $(CT_LIB_DIR)/scripts/version-check.sh .config.sample
@$(bash) $(CT_LIB_DIR)/scripts/show-config.sh -v $*
@rm -f .config.sample
@@ -69,6 +67,7 @@ list-samples: list-samples-pre $(patsubst %,list-%,$(CT_SAMPLES))
@echo ' G (Global) : sample was installed with crosstool-NG'
@echo ' X (EXPERIMENTAL): sample may use EXPERIMENTAL features'
@echo ' B (BROKEN) : sample is currently broken'
+ @echo ' O (OBSOLETE) : sample needs to be upgraded'
PHONY += list-samples-pre
list-samples-pre: FORCE
@@ -80,7 +79,6 @@ $(patsubst %,list-%,$(CT_SAMPLES)): list-%:
CT_VCHECK=load \
$(CONF) --defconfig=$(call sample_dir,$*)/crosstool.config \
$(KCONFIG_TOP) >/dev/null
- @$(bash) $(CT_LIB_DIR)/scripts/version-check.sh .config.sample
@$(bash) $(CT_LIB_DIR)/scripts/show-config.sh $*
@rm -f .config.sample
@@ -90,17 +88,21 @@ list-samples-short: FORCE
printf "%s\n" "$${s}"; \
done
-# Check one sample
+# Check one sample. Note that we are not loading but rather copying the defconfig;
+# loading it while it contains some removed options would reset them to currently
+# supported default values.
PHONY += $(patsubst %,check-%,$(CT_SAMPLES))
$(patsubst %,check-%,$(CT_SAMPLES)): check-%:
@set -e; export KCONFIG_CONFIG=$$(pwd)/.config.sample; \
CT_NG_SAMPLE=$(call sample_dir,$*)/crosstool.config; \
- CT_VCHECK=load $(CONF) -s --defconfig=$${CT_NG_SAMPLE} $(KCONFIG_TOP) &>/dev/null; \
- CT_UPGRADECONFIG=yes $(bash) $(CT_LIB_DIR)/scripts/version-check.sh .config.sample; \
- CT_VCHECK=save $(CONF) -s --savedefconfig=$$(pwd)/.defconfig $(KCONFIG_TOP) &>/dev/null; \
- old_sha1=$$( sha1sum "$${CT_NG_SAMPLE}" |cut -d ' ' -f 1 ); \
- new_sha1=$$( sha1sum .defconfig |cut -d ' ' -f 1 ); \
- if [ $${old_sha1} != $${new_sha1} ]; then \
+ cp $${CT_NG_SAMPLE} .config.sample; \
+ CT_UPGRADECONFIG=yes \
+ $(bash) $(CT_LIB_DIR)/scripts/version-check.sh .config.sample &>/dev/null; \
+ CT_VCHECK=load $(CONF) -s --olddefconfig \
+ $(KCONFIG_TOP) &>/dev/null; \
+ CT_VCHECK=save $(CONF) -s --savedefconfig=$$(pwd)/.defconfig \
+ $(KCONFIG_TOP) &>/dev/null; \
+ if ! cmp -s "$${CT_NG_SAMPLE}" .defconfig; then \
if [ $(CT_UPDATE_SAMPLES) = yes ]; then \
echo "Updating $*"; \
mv .defconfig "$${CT_NG_SAMPLE}"; \
diff --git a/samples/sh-multilib-linux-gnu/crosstool.config b/samples/sh-multilib-linux-gnu/crosstool.config
index 9928d928..e697d22e 100644
--- a/samples/sh-multilib-linux-gnu/crosstool.config
+++ b/samples/sh-multilib-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_SH=y
CT_ARCH_CPU="sh4"
CT_ARCH_LE_BE=y
diff --git a/samples/sh-multilib-linux-uclibc/crosstool.config b/samples/sh-multilib-linux-uclibc/crosstool.config
index 64a81ae6..3b6bb57c 100644
--- a/samples/sh-multilib-linux-uclibc/crosstool.config
+++ b/samples/sh-multilib-linux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_SH=y
CT_ARCH_CPU="sh4"
CT_ARCH_LE_BE=y
diff --git a/samples/sh-unknown-elf/crosstool.config b/samples/sh-unknown-elf/crosstool.config
index ad4c43e2..1bae40ee 100644
--- a/samples/sh-unknown-elf/crosstool.config
+++ b/samples/sh-unknown-elf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_SH=y
CT_ARCH_LE_BE=y
CT_BINUTILS_PLUGINS=y
diff --git a/samples/sparc-leon-linux-uclibc/crosstool.config b/samples/sparc-leon-linux-uclibc/crosstool.config
index 2a48273c..19e855f5 100644
--- a/samples/sparc-leon-linux-uclibc/crosstool.config
+++ b/samples/sparc-leon-linux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_SPARC=y
CT_ARCH_CPU="leon"
CT_ARCH_TUNE="leon"
@@ -9,7 +9,7 @@ CT_LINUX_V_3_10=y
CT_LIBC_UCLIBC=y
CT_LIBC_UCLIBC_CONFIG_FILE="${CT_LIB_DIR}/samples/${CT_TARGET}/${CT_LIBC}.config"
CT_LIBC_UCLIBC_IPV6=y
-CT_GCC_V_6_5_0=y
+CT_GCC_V_6=y
CT_CC_GCC_EXTRA_CONFIG_ARRAY="--disable-libitm"
CT_CC_LANG_CXX=y
CT_DEBUG_GDB=y
diff --git a/samples/sparc-unknown-linux-gnu/crosstool.config b/samples/sparc-unknown-linux-gnu/crosstool.config
index 34412864..cf370731 100644
--- a/samples/sparc-unknown-linux-gnu/crosstool.config
+++ b/samples/sparc-unknown-linux-gnu/crosstool.config
@@ -1,3 +1,3 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_SPARC=y
CT_KERNEL_LINUX=y
diff --git a/samples/sparc64-multilib-linux-gnu/crosstool.config b/samples/sparc64-multilib-linux-gnu/crosstool.config
index ff21d2cf..87a01fac 100644
--- a/samples/sparc64-multilib-linux-gnu/crosstool.config
+++ b/samples/sparc64-multilib-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_SPARC=y
CT_MULTILIB=y
CT_ARCH_64=y
diff --git a/samples/x86_64-centos6-linux-gnu/crosstool.config b/samples/x86_64-centos6-linux-gnu/crosstool.config
index 68b97471..51a9002e 100644
--- a/samples/x86_64-centos6-linux-gnu/crosstool.config
+++ b/samples/x86_64-centos6-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_OBSOLETE=y
CT_ARCH_X86=y
CT_ARCH_64=y
diff --git a/samples/x86_64-centos7-linux-gnu/crosstool.config b/samples/x86_64-centos7-linux-gnu/crosstool.config
index c2d1e3c2..9fec08e2 100644
--- a/samples/x86_64-centos7-linux-gnu/crosstool.config
+++ b/samples/x86_64-centos7-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_OBSOLETE=y
CT_ARCH_X86=y
CT_ARCH_64=y
diff --git a/samples/x86_64-multilib-linux-gnu/crosstool.config b/samples/x86_64-multilib-linux-gnu/crosstool.config
index 9923fe14..f571ac45 100644
--- a/samples/x86_64-multilib-linux-gnu/crosstool.config
+++ b/samples/x86_64-multilib-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_X86=y
CT_MULTILIB=y
CT_ARCH_64=y
diff --git a/samples/x86_64-multilib-linux-musl/crosstool.config b/samples/x86_64-multilib-linux-musl/crosstool.config
index 9a6291dc..a5f3b2ac 100644
--- a/samples/x86_64-multilib-linux-musl/crosstool.config
+++ b/samples/x86_64-multilib-linux-musl/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_X86=y
CT_MULTILIB=y
diff --git a/samples/x86_64-multilib-linux-uclibc,moxie-unknown-moxiebox/crosstool.config b/samples/x86_64-multilib-linux-uclibc,moxie-unknown-moxiebox/crosstool.config
index 7afd9577..75818209 100644
--- a/samples/x86_64-multilib-linux-uclibc,moxie-unknown-moxiebox/crosstool.config
+++ b/samples/x86_64-multilib-linux-uclibc,moxie-unknown-moxiebox/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_MOXIE=y
CT_CANADIAN=y
diff --git a/samples/x86_64-multilib-linux-uclibc,powerpc-unknown-elf/crosstool.config b/samples/x86_64-multilib-linux-uclibc,powerpc-unknown-elf/crosstool.config
index db72b5ca..fee71b8f 100644
--- a/samples/x86_64-multilib-linux-uclibc,powerpc-unknown-elf/crosstool.config
+++ b/samples/x86_64-multilib-linux-uclibc,powerpc-unknown-elf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_POWERPC=y
CT_TARGET_VENDOR=""
CT_CANADIAN=y
diff --git a/samples/x86_64-multilib-linux-uclibc/crosstool.config b/samples/x86_64-multilib-linux-uclibc/crosstool.config
index 50a96d6c..81626a39 100644
--- a/samples/x86_64-multilib-linux-uclibc/crosstool.config
+++ b/samples/x86_64-multilib-linux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_X86=y
CT_MULTILIB=y
CT_ARCH_64=y
diff --git a/samples/x86_64-ubuntu12.04-linux-gnu/crosstool.config b/samples/x86_64-ubuntu12.04-linux-gnu/crosstool.config
index 6b0c0787..6b65e94e 100644
--- a/samples/x86_64-ubuntu12.04-linux-gnu/crosstool.config
+++ b/samples/x86_64-ubuntu12.04-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_OBSOLETE=y
CT_ARCH_X86=y
CT_ARCH_64=y
diff --git a/samples/x86_64-ubuntu14.04-linux-gnu/crosstool.config b/samples/x86_64-ubuntu14.04-linux-gnu/crosstool.config
index ecaac958..3339623f 100644
--- a/samples/x86_64-ubuntu14.04-linux-gnu/crosstool.config
+++ b/samples/x86_64-ubuntu14.04-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_OBSOLETE=y
CT_ARCH_X86=y
CT_ARCH_64=y
diff --git a/samples/x86_64-ubuntu16.04-linux-gnu/crosstool.config b/samples/x86_64-ubuntu16.04-linux-gnu/crosstool.config
index fdc59fbc..b7193f4f 100644
--- a/samples/x86_64-ubuntu16.04-linux-gnu/crosstool.config
+++ b/samples/x86_64-ubuntu16.04-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_OBSOLETE=y
CT_ARCH_X86=y
CT_ARCH_64=y
diff --git a/samples/x86_64-unknown-linux-gnu/crosstool.config b/samples/x86_64-unknown-linux-gnu/crosstool.config
index 66547b02..c1026ec1 100644
--- a/samples/x86_64-unknown-linux-gnu/crosstool.config
+++ b/samples/x86_64-unknown-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_X86=y
CT_ARCH_64=y
CT_KERNEL_LINUX=y
diff --git a/samples/x86_64-unknown-linux-uclibc/crosstool.config b/samples/x86_64-unknown-linux-uclibc/crosstool.config
index 945996cb..101294e7 100644
--- a/samples/x86_64-unknown-linux-uclibc/crosstool.config
+++ b/samples/x86_64-unknown-linux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_X86=y
CT_ARCH_64=y
CT_KERNEL_LINUX=y
diff --git a/samples/x86_64-w64-mingw32,arm-cortexa9_neon-linux-gnueabihf/crosstool.config b/samples/x86_64-w64-mingw32,arm-cortexa9_neon-linux-gnueabihf/crosstool.config
index a49e56f6..1f44af2b 100644
--- a/samples/x86_64-w64-mingw32,arm-cortexa9_neon-linux-gnueabihf/crosstool.config
+++ b/samples/x86_64-w64-mingw32,arm-cortexa9_neon-linux-gnueabihf/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_ARM=y
CT_ARCH_CPU="cortex-a9"
diff --git a/samples/x86_64-w64-mingw32,x86_64-pc-linux-gnu/crosstool.config b/samples/x86_64-w64-mingw32,x86_64-pc-linux-gnu/crosstool.config
index 78aa8083..cd801b05 100644
--- a/samples/x86_64-w64-mingw32,x86_64-pc-linux-gnu/crosstool.config
+++ b/samples/x86_64-w64-mingw32,x86_64-pc-linux-gnu/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
# CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES is not set
CT_ARCH_X86=y
diff --git a/samples/x86_64-w64-mingw32/crosstool.config b/samples/x86_64-w64-mingw32/crosstool.config
index 7157afed..66aedc56 100644
--- a/samples/x86_64-w64-mingw32/crosstool.config
+++ b/samples/x86_64-w64-mingw32/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_EXPERIMENTAL=y
CT_ARCH_X86=y
CT_MULTILIB=y
diff --git a/samples/xtensa-fsf-linux-uclibc/crosstool.config b/samples/xtensa-fsf-linux-uclibc/crosstool.config
index 33433d9a..81ea1706 100644
--- a/samples/xtensa-fsf-linux-uclibc/crosstool.config
+++ b/samples/xtensa-fsf-linux-uclibc/crosstool.config
@@ -1,4 +1,4 @@
-CT_CONFIG_VERSION="1"
+CT_CONFIG_VERSION="2"
CT_ARCH_XTENSA=y
CT_ARCH_BE=y
CT_TARGET_CFLAGS="-mlongcalls -mtext-section-literals"
diff --git a/scripts/show-config.sh b/scripts/show-config.sh
index 4bc82e1a..36ade9ec 100644
--- a/scripts/show-config.sh
+++ b/scripts/show-config.sh
@@ -72,6 +72,7 @@ dump_single_sample()
esac
printf "[%s" "${sample_type}"
[ -f "${sample_top}/samples/${sample}/broken" ] && printf "B" || printf "."
+ [ "${CT_CONFIG_VERSION}" != "${CT_CONFIG_VERSION_CURRENT}" ] && printf "O" || printf "."
[ "${CT_EXPERIMENTAL}" = "y" ] && printf "X" || printf "."
printf "] %s\n" "${sample}"
if [ ${verbose} -ne 0 ]; then
diff --git a/scripts/upgrade/README b/scripts/upgrade/README
new file mode 100644
index 00000000..51760ea3
--- /dev/null
+++ b/scripts/upgrade/README
@@ -0,0 +1,23 @@
+Upgrade scripts for specific versions of the config file.
+Each script must define a function `upgrade` that can
+assume `${opt}` and `${val}` variables set on input. On
+output, if `${opt}` is unset - so will be the corresponding
+option.
+
+One thing to keep in mind is that this script may be invoked
+on full config - or on a defconfig. Do not assume that all
+options will be present! If an option is not specified, use
+the value it had as a default for the fallback; to check if
+it has been specified, use `$selected_opts` associative
+array to check if it has been present in the config file
+(otherwise, you an option not being set after sourcing the
+previous version of the config is ambiguous - it could be
+that the option is called out as `# CT_FOO is not set` (i.e.
+selected as false) or not present at all (i.e. selected as
+default).
+
+If it is not possible to determine the settings of an option
+because a different controlling option is not set, either
+err out (see CT_LIBC_UCLIBC_CUSTOM in v0 for an example)
+or select a sane default and issue a warning (see CT_GDB_CUSTOM
+in v0 for an example).
diff --git a/scripts/upgrade/v0 b/scripts/upgrade/v0
new file mode 100644
index 00000000..68dfca08
--- /dev/null
+++ b/scripts/upgrade/v0
@@ -0,0 +1,351 @@
+# vim: set filetype=sh :
+
+# Upgrade from v0: select Linaro as the vendor if a Linaro version was selected
+# (in v0, both GNU and Linaro versions were combined in a single list). GNU is
+# the default, leave it to olddefconfig to select it if we don't see a Linaro version.
+# We don't depend on CT_xxx_SHOW_LINARO symbols: they just enabled showing Linaro
+# versions in that list, but it may have been GNU version that was actually selected.
+select_linaro()
+{
+ if is_set; then
+ echo "# CT_${1}_USE_GNU is not set"
+ echo "CT_${1}_USE_LINARO=y"
+ fi
+}
+
+# Upgrade from version 0 (which is 1.23, as released) to version 1
+# (current state of master as of 2019/01/20). Upgrades in the interim
+# versions may be broken.
+upgrade()
+{
+ case "${opt}" in
+ CT_ARCH_alpha|CT_ARCH_arm|CT_ARCH_avr|CT_ARCH_m68k|CT_ARCH_microblaze|\
+ CT_ARCH_mips|CT_ARCH_nios2|CT_ARCH_powerpc|CT_ARCH_s390|CT_ARCH_sh|\
+ CT_ARCH_sparc|CT_ARCH_x86|CT_ARCH_xtensa|\
+ CT_BINUTILS_binutils|\
+ CT_CC_gcc|\
+ CT_COMP_TOOLS_autoconf|CT_COMP_TOOLS_automake|CT_COMP_TOOLS_libtool|\
+ CT_COMP_TOOLS_m4|CT_COMP_TOOLS_make|\
+ CT_DEBUG_duma|CT_DEBUG_gdb|CT_DEBUG_ltrace|CT_DEBUG_strace|\
+ CT_KERNEL_bare_metal|CT_KERNEL_linux|CT_KERNEL_windows|\
+ CT_LIBC_avr_libc|CT_LIBC_glibc|CT_LIBC_musl|CT_LIBC_newlib|CT_LIBC_none|\
+ CT_LIBC_uClibc)
+ # Renamed to upper-case
+ replace ${opt^^}
+ ;;
+ CT_ARCH_XTENSA_CUSTOM_NAME)
+ replace CT_OVERLAY_NAME
+ ;;
+ CT_ARCH_XTENSA_CUSTOM_OVERLAY_LOCATION)
+ replace CT_OVERLAY_LOCATION
+ ;;
+ CT_LIBC_mingw)
+ # Renamed to MINGW_W64
+ opt=CT_LIBC_MINGW_W64
+ ;;
+ CT_ARCH_*_AVAILABLE|CT_KERNEL_*_AVAILABLE|CT_LIBC_*_AVAILABLE)
+ # Previously used "backend selectors". Autogenerated, no warning
+ unset opt
+ ;;
+ CT_CONFIGURE_has_*)
+ # Configure-detected build machine options. Drop, will use current.
+ unset opt
+ ;;
+ CT_*_or_later)
+ # Automatically selected version constraints. Drop, will auto-select current ones.
+ unset opt
+ ;;
+ CT_BACKEND_ARCH|CT_BACKEND_KERNEL|CT_BACKEND_LIBC|CT_IS_A_BACKEND)
+ warning "Option ${opt} is no longer supported, dropping"
+ unset opt
+ ;;
+ CT_*_SHOW_LINARO)
+ # Used to just include Linaro versions into the list. We'll infer whether Linaro is
+ # actually used from the actual version selected, below.
+ unset opt
+ ;;
+ CT_CC_GCC_4_8|CT_CC_GCC_4_9|CT_CC_GCC_5|CT_CC_GCC_6|\
+ CT_LIBC_NEWLIB_2_0|CT_LIBC_NEWLIB_2_1|CT_LIBC_NEWLIB_2_2|CT_LIBC_NEWLIB_2_3|CT_LIBC_NEWLIB_2_4|CT_LIBC_NEWLIB_2_5)
+ # In 1.23.0, each package had its own ad-hoc version constraints. Drop, new ones
+ # will be autoselected.
+ unset opt
+ ;;
+ # Custom location: translate to the new framework. No generic way to interpret the version
+ # string user may have configured; just warn him to select it manually.
+ CT_BINUTILS_CUSTOM)
+ warning_if_set "Assuming custom location contains GNU sources; edit the configuration if it was Linaro version"
+ replace CT_BINUTILS_SRC_CUSTOM
+ ;;
+ CT_CC_GCC_CUSTOM)
+ warning_if_set "Assuming custom location contains GNU sources; edit the configuration if it was Linaro version"
+ replace CT_GCC_SRC_CUSTOM
+ ;;
+ CT_CC_GCC_CUSTOM_LOCATION)
+ replace CT_GCC_CUSTOM_LOCATION
+ ;;
+ CT_ELF2FLT_CUSTOM)
+ replace CT_ELF2FLT_SRC_CUSTOM
+ ;;
+ CT_ELF2FLT_GIT)
+ if is_set; then
+ echo "CT_ELF2FLT_SRC_DEVEL=y"
+ fi
+ replace CT_ELF2FLT_DEVEL_VCS_git
+ ;;
+ CT_ELF2FLT_GIT_CSET)
+ replace CT_ELF2FLT_DEVEL_REVISION
+ ;;
+ CT_GDB_CUSTOM)
+ warning_if_set "Assuming custom location contains GNU sources; edit the configuration if it was Linaro version"
+ replace CT_GDB_SRC_CUSTOM
+ ;;
+ CT_KERNEL_LINUX_CUSTOM)
+ replace CT_LINUX_SRC_CUSTOM
+ ;;
+ CT_KERNEL_LINUX_CUSTOM_LOCATION)
+ replace CT_LINUX_CUSTOM_LOCATION
+ ;;
+ CT_LIBC_AVR_LIBC_CUSTOM)
+ replace CT_AVR_LIBC_SRC_CUSTOM
+ ;;
+ CT_LIBC_AVR_LIBC_CUSTOM_LOCATION)
+ replace CT_AVR_LIBC_CUSTOM_LOCATION
+ ;;
+ CT_LIBC_GLIBC_CUSTOM)
+ warning_if_set "Assuming custom location contains GNU sources; edit the configuration if it was Linaro version"
+ replace CT_GLIBC_SRC_CUSTOM
+ ;;
+ CT_LIBC_GLIBC_CUSTOM_LOCATION)
+ replace CT_GLIBC_CUSTOM_LOCATION
+ ;;
+ CT_LIBC_MUSL_CUSTOM)
+ replace CT_MUSL_SRC_CUSTOM
+ ;;
+ CT_LIBC_MUSL_CUSTOM_LOCATION)
+ replace CT_MUSL_CUSTOM_LOCATION
+ ;;
+ CT_LIBC_NEWLIB_CUSTOM)
+ warning_if_set "Assuming custom location contains GNU sources; edit the configuration if it was Linaro version"
+ replace CT_NEWLIB_SRC_CUSTOM
+ ;;
+ CT_LIBC_NEWLIB_CUSTOM_LOCATION)
+ replace CT_NEWLIB_CUSTOM_LOCATION
+ ;;
+ CT_LIBC_UCLIBC_CUSTOM)
+ if is_set; then
+ if [ "${selected_opts[CT_LIBC_UCLIBC_CUSTOM_UCLIBC]+set}" != "set" ]; then
+ error "This option requires full config file, not defconfig"
+ elif [ "${CT_LIBC_UCLIBC_CUSTOM_UCLIBC}" = "y" ]; then
+ replace CT_UCLIBC_USE_UCLIBC_ORG
+ else
+ replace CT_UCLIBC_USE_UCLIBC_NG_ORG
+ fi
+ fi
+ ;;
+ CT_LIBC_UCLIBC_CUSTOM_UCLIBC)
+ replace CT_UCLIBC_SRC_CUSTOM
+ ;;
+ CT_LIBC_UCLIBC_CUSTOM_UCLIBC_NG)
+ replace CT_UCLIBC_NG_SRC_CUSTOM
+ ;;
+ CT_LIBC_UCLIBC_CUSTOM_UCLIBC_NG_OLD)
+ warning_if_set "uClibc-NG versions before 1.0.15 no longer supported"
+ replace CT_UCLIBC_NG_SRC_CUSTOM
+ ;;
+ CT_LIBC_UCLIBC_CUSTOM_LOCATION)
+ if [ "${CT_LIBC_UCLIBC_CUSTOM_UCLIBC}" = "y" ]; then
+ replace CT_UCLIBC_CUSTOM_LOCATION
+ else
+ replace CT_UCLIBC_NG_CUSTOM_LOCATION
+ fi
+ ;;
+ CT_WINAPI_V_DEVEL)
+ replace CT_MINGW_W64_SRC_DEVEL
+ ;;
+ CT_WINAPI_V_select)
+ # Internal selector
+ unset opt
+ ;;
+ CT_BINUTILS_CUSTOM_VERSION|CT_CC_GCC_CUSTOM_VERSION|CT_ELF2FLT_CUSTOM_VERSION|CT_KERNEL_LINUX_CUSTOM_VERSION|\
+ CT_LIBC_AVR_LIBC_CUSTOM_VERSION|CT_LIBC_GLIBC_CUSTOM_VERSION|CT_LIBC_MUSL_CUSTOM_VERSION|\
+ CT_LIBC_NEWLIB_CUSTOM_VERSION|CT_LIBC_UCLIBC_CUSTOM_VERSION|CT_GDB_CUSTOM_VERSION)
+ warning_if_set "Cannot automatically convert custom version; edit configuration to select it"
+ unset opt
+ ;;
+ CT_CC_GCC_VERSION|CT_CC_VERSION|CT_KERNEL_VERSION|CT_WINAPI_VERSION|CT_LIBC_VERSION)
+ # Auto-selected; the symbol was just renamed
+ unset opt
+ ;;
+ CT_LIBC_glibc_family)
+ # Internal selector, not user-visible
+ unset opt
+ ;;
+ CT_LIBC_ADDONS_LIST)
+ warning_if_set "Support for custom add-ons has been removed. If using libidn add-on, edit the configuration."
+ ;;
+ CT_LIBC_DISABLE_VERSIONING)
+ replace CT_GLIBC_DISABLE_VERSIONING
+ ;;
+ CT_LIBC_ENABLE_FORTIFIED_BUILD)
+ replace CT_GLIBC_ENABLE_FORTIFIED_BUILD
+ ;;
+ CT_LIBC_GLIBC_CONFIGPARMS|CT_LIBC_GLIBC_EXTRA_CFLAGS|CT_LIBC_GLIBC_EXTRA_CONFIG_ARRAY|\
+ CT_LIBC_GLIBC_FORCE_UNWIND|CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS|CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN|\
+ CT_LIBC_GLIBC_KERNEL_VERSION_NONE|CT_LIBC_GLIBC_MIN_KERNEL|CT_LIBC_GLIBC_MIN_KERNEL_VERSION)
+ replace CT_GLIBC_${opt#CT_LIBC_GLIBC_}
+ ;;
+ CT_LIBC_LOCALES)
+ replace CT_GLIBC_LOCALES
+ ;;
+ CT_LIBC_OLDEST_ABI)
+ replace CT_GLIBC_OLDEST_ABI
+ ;;
+ CT_LIBC_GLIBC_NEEDS_PORTS|CT_LIBC_GLIBC_PORTS_EXTERNAL|CT_LIBC_GLIBC_USE_PORTS)
+ # Auto-selected
+ unset opt
+ ;;
+ CT_LIBC_UCLIBC_LOCALES_PREGEN_DATA)
+ warning_if_set "Support for pregenerated locales in uClibc has been removed"
+ unset opt
+ ;;
+ # Trivial version replacements
+ CT_AUTOMAKE_V_1_11_1) replace CT_AUTOMAKE_V_1_11_6;;
+ CT_AUTOMAKE_V_1_11_6) replacement_for CT_AUTOMAKE_V_1_11_1;;
+ CT_AUTOMAKE_V_1_14) replace CT_AUTOMAKE_V_1_14_1;;
+ CT_AUTOMAKE_V_1_15) replace CT_AUTOMAKE_V_1_15_1;;
+ CT_BINUTILS_V_2_26) replace CT_BINUTILS_V_2_26_1;;
+ CT_BINUTILS_V_2_28) replace CT_BINUTILS_V_2_28_1;;
+ CT_BINUTILS_LINARO_V_2_23_2) select_linaro BINUTILS; replace CT_BINUTILS_LINARO_V_2_23_2_2013_10_4;;
+ CT_BINUTILS_LINARO_V_2_24) select_linaro BINUTILS; replace CT_BINUTILS_LINARO_V_2_24_0_2014_11_2;;
+ CT_BINUTILS_LINARO_V_2_25) select_linaro BINUTILS; replace CT_BINUTILS_LINARO_V_2_25_0_2015_01_2;;
+ CT_CC_GCC_V_4_8_5) replace CT_GCC_V_4_8_5;;
+ CT_CC_GCC_V_4_9_4) replace CT_GCC_V_4_9_4;;
+ CT_CC_GCC_V_5_4_0) replace CT_GCC_V_5_5_0;;
+ CT_CC_GCC_V_6_3_0) replace CT_GCC_V_6_5_0;;
+ CT_CC_GCC_V_linaro_4_8) select_linaro GCC; replace CT_GCC_LINARO_V_4_8_2015_06;;
+ CT_CC_GCC_V_linaro_4_9) select_linaro GCC; replace CT_GCC_LINARO_V_4_9_2017_01;;
+ CT_CC_GCC_V_linaro_5_4) select_linaro GCC; replace CT_GCC_LINARO_V_5_5_2017_10;;
+ CT_CC_GCC_V_linaro_6_3) select_linaro GCC; replace CT_GCC_LINARO_V_6_4_2018_05;;
+ CT_CLOOG_V_0_18_0) replace CT_CLOOG_V_0_18_1;;
+ CT_CLOOG_V_0_18_1) replacement_for CT_CLOOG_V_0_18_0;;
+ CT_EXPAT_V_2_2_0) replace CT_EXPAT_V_2_2_6;; # 2.2.6 was not available in ct-ng 1.23.0 - no replacement_for
+ CT_GDB_V_6_8a) replace CT_GDB_V_6_8A;;
+ CT_GDB_V_7_0a) replace CT_GDB_V_7_0_1A;;
+ CT_GDB_V_7_0_1a) replace CT_GDB_V_7_0_1A;;
+ CT_GDB_V_7_1a) replace CT_GDB_V_7_1A;;
+ CT_GDB_V_7_2a) replace CT_GDB_V_7_2A;;
+ CT_GDB_V_7_3a) replace CT_GDB_V_7_3A;;
+ CT_GDB_V_7_4) replace CT_GDB_V_7_4_1;;
+ CT_GDB_V_7_7) replace CT_GDB_V_7_7_1;;
+ CT_GDB_V_7_8|CT_GDB_V_7_8_1) replace CT_GDB_V_7_8_2;;
+ CT_GDB_V_7_8_2) replacement_for CT_GDB_V_7_8 CT_GDB_V_7_8_1;;
+ CT_GDB_V_7_9) replace CT_GDB_V_7_9_1;;
+ CT_GDB_V_7_10) replace CT_GDB_V_7_10_1;;
+ CT_GDB_V_linaro_7_3) select_linaro GDB; replace CT_GDB_LINARO_V_7_3_2011_12;;
+ CT_GDB_V_linaro_7_4) select_linaro GDB; replace CT_GDB_LINARO_V_7_4_2012_06;;
+ CT_GDB_V_linaro_7_5) select_linaro GDB; replace CT_GDB_LINARO_V_7_5_2012_12;;
+ CT_GDB_V_linaro_7_6) select_linaro GDB; replace CT_GDB_LINARO_V_7_6_1_2013_10;;
+ CT_GDB_V_linaro_7_7) select_linaro GDB; replace CT_GDB_LINARO_V_7_7_1_2014_06_1;;
+ CT_GDB_V_linaro_7_7_1) select_linaro GDB; replace CT_GDB_LINARO_V_7_7_1_2014_06_1;;
+ CT_GDB_V_linaro_7_8) select_linaro GDB; replace CT_GDB_LINARO_V_7_8_2014_09;;
+ CT_GMP_V_4_3_0|CT_GMP_V_4_3_1) replace CT_GMP_V_4_3_2;;
+ CT_GMP_V_4_3_2) replacement_for CT_GMP_V_4_3_0 CT_GMP_V_4_3_1;;
+ CT_GMP_V_5_0_1|CT_GMP_V_5_0_2) replace CT_GMP_V_5_0_5;; # 5.0.5 not in ct-ng 1.23.0
+ CT_GMP_V_5_1_1) replace CT_GMP_V_5_1_3;;
+ CT_GMP_V_5_1_3) replacement_for CT_GMP_V_5_1_1;;
+ CT_GMP_V_6_0_0) replace CT_GMP_V_6_0_0A;; # 6.0.0a not in ct-ng 1.23.0
+ CT_GMP_V_6_1_0) replace CT_GMP_V_6_1_2;;
+ CT_GMP_V_6_1_2) replacement_for CT_GMP_V_6_1_0;;
+ CT_ISL_V_0_11_1) replace CT_ISL_V_0_11_2;;
+ CT_ISL_V_0_14) replace CT_ISL_V_0_14_1;;
+ CT_KERNEL_V_2_6_32|CT_KERNEL_V_2_6_33|CT_KERNEL_V_2_6_34|CT_KERNEL_V_2_6_35|\
+ CT_KERNEL_V_2_6_36|CT_KERNEL_V_2_6_37|CT_KERNEL_V_2_6_38|CT_KERNEL_V_2_6_39|\
+ CT_KERNEL_V_3_0|CT_KERNEL_V_3_1|CT_KERNEL_V_3_2|CT_KERNEL_V_3_3|CT_KERNEL_V_3_4|CT_KERNEL_V_3_5|\
+ CT_KERNEL_V_3_6|CT_KERNEL_V_3_7|CT_KERNEL_V_3_8|CT_KERNEL_V_3_9|CT_KERNEL_V_3_10|CT_KERNEL_V_3_11|\
+ CT_KERNEL_V_3_12|CT_KERNEL_V_3_13|CT_KERNEL_V_3_14|CT_KERNEL_V_3_15|CT_KERNEL_V_3_16|\
+ CT_KERNEL_V_3_17|CT_KERNEL_V_3_18|CT_KERNEL_V_3_19|\
+ CT_KERNEL_V_4_0|CT_KERNEL_V_4_1|CT_KERNEL_V_4_2|CT_KERNEL_V_4_3|CT_KERNEL_V_4_4|\
+ CT_KERNEL_V_4_5|CT_KERNEL_V_4_6|CT_KERNEL_V_4_7|CT_KERNEL_V_4_8|CT_KERNEL_V_4_9|CT_KERNEL_V_4_10)
+ replace CT_LINUX_${opt#CT_KERNEL_};;
+ CT_LIBC_AVR_LIBC_V_1_8_0) replace CT_AVR_LIBC_V_1_8_1;;
+ CT_LIBC_AVR_LIBC_V_1_8_1) replace CT_AVR_LIBC_V_1_8_1;;
+ CT_LIBC_AVR_LIBC_V_2_0_0) replace CT_AVR_LIBC_V_2_0_0;;
+ CT_LIBC_GLIBC_V_2_12_1|CT_LIBC_GLIBC_V_2_12_2|CT_LIBC_GLIBC_V_2_13|CT_LIBC_GLIBC_V_2_14|\
+ CT_LIBC_GLIBC_V_2_14_1|CT_LIBC_GLIBC_V_2_15|CT_LIBC_GLIBC_V_2_16_0|CT_LIBC_GLIBC_V_2_17|\
+ CT_LIBC_GLIBC_V_2_18|CT_LIBC_GLIBC_V_2_19|CT_LIBC_GLIBC_V_2_20|CT_LIBC_GLIBC_V_2_21|\
+ CT_LIBC_GLIBC_V_2_22|CT_LIBC_GLIBC_V_2_23|CT_LIBC_GLIBC_V_2_24|CT_LIBC_GLIBC_V_2_25)
+ replace CT_GLIBC_${opt#CT_LIBC_GLIBC_};;
+ CT_LIBC_GLIBC_LINARO_V_2_20) replace CT_GLIBC_LINARO_V_2_20_2014_11;;
+ CT_LIBC_MUSL_V_1_1_15|CT_LIBC_MUSL_V_1_1_16)
+ replace CT_MUSL_${opt#CT_LIBC_MUSL_};;
+ CT_LIBC_NEWLIB_V_1_17_0|CT_LIBC_NEWLIB_V_1_18_0|CT_LIBC_NEWLIB_V_1_19_0|CT_LIBC_NEWLIB_V_1_20_0|\
+ CT_LIBC_NEWLIB_V_2_0_0|CT_LIBC_NEWLIB_V_2_1_0|CT_LIBC_NEWLIB_V_2_2_0|CT_LIBC_NEWLIB_V_2_3_0|\
+ CT_LIBC_NEWLIB_V_2_4_0|CT_LIBC_NEWLIB_V_2_5_0)
+ replace CT_NEWLIB_${opt#CT_LIBC_NEWLIB_};;
+ CT_LIBC_NEWLIB_LINARO_V_2_1_0) select_linaro NEWLIB; replace CT_NEWLIB_LINARO_V_2_1_0_2014;;
+ CT_LIBC_NEWLIB_LINARO_V_2_2_0) select_linaro NEWLIB; replace CT_NEWLIB_LINARO_V_2_2_0_2015;;
+ CT_LIBELF_V_0_8_12) replace CT_LIBELF_V_0_8_13;;
+ CT_LIBELF_V_0_8_13) replacement_for CT_LIBELF_V_0_8_12;;
+ CT_M4_V_1_4_13|CT_M4_V_1_4_17) replace CT_M4_V_1_4_18;;
+ CT_M4_V_1_4_18) replacement_for CT_M4_V_1_4_13 CT_M4_V_1_4_17;;
+ CT_MPC_V_0_8_1) replace CT_MPC_V_0_8_2;;
+ CT_MPC_V_0_8_2) replacement_for CT_MPC_V_0_8_1;;
+ CT_MPC_V_1_0|CT_MPC_V_1_0_1|CT_MPC_V_1_0_2)
+ replace CT_MPC_V_1_0_3;;
+ CT_MPC_V_1_0_3) replacement_for CT_MPC_V_1_0 CT_MPC_V_1_0_1 CT_MPC_V_1_0_2;;
+ CT_MPFR_V_2_4_0|CT_MPFR_V_2_4_1)
+ replace CT_MPFR_V_2_4_2;;
+ CT_MPFR_V_2_4_2) replacement_for CT_MPFR_V_2_4_0 CT_MPFR_V_2_4_1;;
+ CT_MPFR_V_3_0_0) replace CT_MPFR_V_3_0_1;;
+ CT_MPFR_V_3_0_1) replacement_for CT_MPFR_V_3_0_0;;
+ CT_MPFR_V_3_1_0|CT_MPFR_V_3_1_2|CT_MPFR_V_3_1_3|CT_MPFR_V_3_1_5)
+ replace CT_MPFR_V_3_1_6;;
+ CT_MPFR_V_3_1_6) replacement_for CT_MPFR_V_3_1_0 CT_MPFR_V_3_1_2 CT_MPFR_V_3_1_3 CT_MPFR_V_3_1_5;;
+ CT_STRACE_V_4_5_18|CT_STRACE_V_4_5_19)
+ replace CT_STRACE_V_4_5_20;;
+ CT_STRACE_V_4_5_20) replacement_for CT_STRACE_V_4_5_18 CT_STRACE_V_4_5_19;;
+ CT_LIBC_UCLIBC_NG_V_1_0_20|CT_LIBC_UCLIBC_NG_V_1_0_21|CT_LIBC_UCLIBC_NG_V_1_0_22)
+ if is_set; then
+ echo "CT_UCLIBC_USE_UCLIBC_NG_ORG=y"
+ fi
+ replace CT_UCLIBC_NG_V_1_0_25
+ ;;
+ CT_LIBC_UCLIBC_V_0_9_33_2)
+ if is_set; then
+ echo "CT_UCLIBC_USE_UCLIBC_ORG=y"
+ fi
+ replace CT_UCLIBC_V_0_9_33_2
+ ;;
+ CT_WINAPI_V_2_0_7|CT_WINAPI_V_2_0_7|CT_WINAPI_V_2_0_9)
+ replace CT_MINGW_W64_V_V2_0_10;;
+ CT_WINAPI_V_3_0_0) replace CT_MINGW_W64_V_V3_0_0;;
+ CT_WINAPI_V_3_1_0) replace CT_MINGW_W64_V_V3_1_0;;
+ CT_WINAPI_V_3_2_0) replace CT_MINGW_W64_V_V3_2_0;;
+ CT_WINAPI_V_3_3_0) replace CT_MINGW_W64_V_V3_3_0;;
+ CT_WINAPI_V_4_0_0|CT_WINAPI_V_4_0_1|CT_WINAPI_V_4_0_2|CT_WINAPI_V_4_0_3|\
+ CT_WINAPI_V_4_0_4|CT_WINAPI_V_4_0_5|CT_WINAPI_V_4_0_6)
+ replace CT_MINGW_W64_V_V4_0_6;;
+ CT_WINAPI_V_5_0_0|CT_WINAPI_V_5_0_1)
+ replace CT_MINGW_W64_V_V5_0_3;;
+
+ # Misc
+ CT_CLOOG_NEEDS_AUTORECONF)
+ # Was unused in 1.23, just drop
+ unset opt
+ ;;
+ CT_PATCH_SINGLE)
+ # Internal selector in 1.23
+ unset opt
+ ;;
+ CT_PATCH_BUNDLED_FALLBACK_LOCAL|CT_PATCH_LOCAL_FALLBACK_BUNDLED)
+ warning_if_set "Fallback patch order has been removed"
+ ;;
+ CT_CC_GCC_TARGET_FINAL)
+ warning_if_set "Option removed"
+ ;;
+ CT_COMPLIBS|CT_COMPLIBS_NEEDED|CT_CC_GCC_latest)
+ # Internal selectors
+ unset opt
+ ;;
+ esac
+}
diff --git a/scripts/upgrade/v1 b/scripts/upgrade/v1
new file mode 100644
index 00000000..0794722a
--- /dev/null
+++ b/scripts/upgrade/v1
@@ -0,0 +1,114 @@
+# vim: set filetype=sh :
+
+# Upgrade v1 -> v2: several packages had their config options renamed
+# to leave only the relevant part - so that further upgrades of, say,
+# GCC 6.5.0 to 6.6.0 do not result in config changes.
+upgrade()
+{
+ case "${opt}" in
+ CT_ANDROID_NDK_V_R10E|CT_ANDROID_NDK_V_R11C|CT_ANDROID_NDK_V_R12B|\
+ CT_ANDROID_NDK_V_R13B|CT_ANDROID_NDK_V_R14B|CT_ANDROID_NDK_V_R15C|\
+ CT_ANDROID_NDK_V_R16B|CT_ANDROID_NDK_V_R17C)
+ replace "${opt%[A-Z]}"
+ ;;
+ CT_AUTOMAKE_V_1_11_6|CT_AUTOMAKE_V_1_14_1|\
+ CT_AUTOMAKE_V_1_15_1|CT_AUTOMAKE_V_1_16_1)
+ replace "${opt%_[0-9]}"
+ ;;
+ CT_BINUTILS_LINARO_V_2_23_2_2013_10_4|CT_BINUTILS_LINARO_V_2_24_0_2014_11_2|\
+ CT_BINUTILS_LINARO_V_2_25_0_2015_01_2)
+ replace "${opt%_[0-9]_201[345]*}"
+ ;;
+ CT_BINUTILS_V_2_23_2|CT_BINUTILS_V_2_25_1|CT_BINUTILS_V_2_26_1|\
+ CT_BINUTILS_V_2_28_1|CT_BINUTILS_V_2_29_1|CT_BINUTILS_V_2_31_1)
+ replace "${opt%_[0-9]}"
+ ;;
+ CT_DTC_V_1_4_7)
+ replace CT_DTC_V_1_4
+ ;;
+ CT_EXPAT_V_2_1_1|CT_EXPAT_V_2_2_6)
+ replace "${opt%_[0-9]}"
+ ;;
+ CT_GCC_LINARO_V_4_8_2015_06|CT_GCC_LINARO_V_4_9_2017_01)
+ replace "${opt%_201[57]*}"
+ ;;
+ CT_GCC_LINARO_V_5_5_2017_10|CT_GCC_LINARO_V_6_4_2018_05|\
+ CT_GCC_LINARO_V_7_3_2018_05)
+ replace "${opt%_[0-9]_201[78]*}"
+ ;;
+ CT_GCC_V_4_8_5|CT_GCC_V_4_9_4)
+ replace "${opt%_[0-9]}"
+ ;;
+ CT_GCC_V_5_5_0|CT_GCC_V_6_5_0|CT_GCC_V_7_4_0|CT_GCC_V_8_2_0)
+ replace "${opt%_[0-9]_[0-9]}"
+ ;;
+ CT_GDB_LINARO_V_7_3_2011_12|CT_GDB_LINARO_V_7_4_2012_06|CT_GDB_LINARO_V_7_5_2012_12|\
+ CT_GDB_LINARO_V_7_7_2014_05|CT_GDB_LINARO_V_7_8_2014_09)
+ replace "${opt%_201[57]*}"
+ ;;
+ CT_GDB_LINARO_V_7_6_1_2013_10|CT_GDB_LINARO_V_7_7_1_2014_06_1)
+ replace "${opt%_[0-9]_201[345]*}"
+ ;;
+
+ CT_GDB_V_6_8A|CT_GDB_V_7_1A|CT_GDB_V_7_2A)
+ replace "${opt%A}"
+ ;;
+ CT_GDB_V_7_0_1A)
+ replace CT_GDB_V_7_0
+ ;;
+ CT_GDB_V_7_3_1|CT_GDB_V_7_4_1|CT_GDB_V_7_5_1|CT_GDB_V_7_6_1|CT_GDB_V_7_7_1|\
+ CT_GDB_V_7_8_2|CT_GDB_V_7_9_1|CT_GDB_V_7_10_1|CT_GDB_V_7_11_1|CT_GDB_V_7_12_1|\
+ CT_GDB_V_8_0_1|CT_GDB_V_8_1_1)
+ replace "${opt%_[0-9]}"
+ ;;
+ CT_GLIBC_LINARO_V_2_20_2014_11)
+ replace CT_GLIBC_LINARO_V_2_20
+ ;;
+ CT_GMP_V_4_3_2|CT_GMP_V_5_0_5|CT_GMP_V_5_1_3|CT_GMP_V_6_0_0A|CT_GMP_V_6_1_2)
+ replace "${opt%_[0-9]*}"
+ ;;
+ CT_ISL_V_0_11_2|CT_ISL_V_0_12_2|CT_ISL_V_0_14_1|CT_ISL_V_0_16_1|CT_ISL_V_0_17_1)
+ replace "${opt%_[0-9]}"
+ ;;
+ CT_LIBELF_V_0_8_13)
+ replace CT_LIBELF_V_0_8
+ ;;
+ CT_LIBTOOL_V_2_4_6)
+ replace CT_LIBTOOL_V_2_4
+ ;;
+ CT_M4_V_1_4_18)
+ replace CT_M4_V_1_4
+ ;;
+ CT_MAKE_V_4_2_1)
+ replace CT_MAKE_V_4_2
+ ;;
+ CT_MINGW_W64_V_V2_0_10|CT_MINGW_W64_V_V3_0_0|CT_MINGW_W64_V_V3_1_0|CT_MINGW_W64_V_V3_2_0|\
+ CT_MINGW_W64_V_V3_3_0|CT_MINGW_W64_V_V4_0_6|CT_MINGW_W64_V_V5_0_3|CT_MINGW_W64_V_V6_0_0)
+ replace "${opt%_[0-9]}"
+ ;;
+ CT_MPC_V_0_8_2|CT_MPC_V_1_0_3|CT_MPC_V_1_1_0)
+ replace "${opt%_[0-9]}"
+ ;;
+ CT_MPFR_V_2_4_2|CT_MPFR_V_3_0_1|CT_MPFR_V_3_1_6|CT_MPFR_V_4_0_1)
+ replace "${opt%_[0-9]}"
+ ;;
+ CT_NEWLIB_LINARO_V_2_1_0_2014|CT_NEWLIB_LINARO_V_2_2_0_2015)
+ replace "${opt%_[0-9]_201[345]*}"
+ ;;
+ CT_NEWLIB_V_1_17_0|CT_NEWLIB_V_1_18_0|CT_NEWLIB_V_1_19_0|CT_NEWLIB_V_1_20_0|CT_NEWLIB_V_2_0_0|\
+ CT_NEWLIB_V_2_1_0|CT_NEWLIB_V_2_2_0|CT_NEWLIB_V_2_3_0|CT_NEWLIB_V_2_4_0|CT_NEWLIB_V_2_5_0|\
+ CT_NEWLIB_V_3_0_0)
+ replace "${opt%_[0-9]}"
+ ;;
+
+ CT_CLOOG_HAS_WITH_GMP_ISL_OSL|CT_CLOOG_0_18_or_later|CT_CLOOG_0_18_or_older|\
+ CT_CLOOG_REQUIRE_0_18_or_later|CT_CLOOG_REQUIRE_0_18_or_older|\
+ CT_CLOOG_REQUIRE_later_than_0_18|CT_CLOOG_REQUIRE_older_than_0_18|\
+ CT_CLOOG_later_than_0_18|CT_CLOOG_older_than_0_18|CT_GCC_REQUIRE_4_9_2_or_later|\
+ CT_GCC_REQUIRE_4_9_2_or_older|CT_GCC_REQUIRE_later_than_4_9_2|\
+ CT_GCC_REQUIRE_older_than_4_9_2|CT_GCC_4_9_2_or_later|CT_GCC_4_9_2_or_older|\
+ CT_GCC_BUG_61144|CT_GCC_later_than_4_9_2|CT_GCC_older_than_4_9_2)
+ unset opt # No longer used auto-selectors
+ ;;
+ esac
+}
diff --git a/scripts/version-check.sh b/scripts/version-check.sh
index ccadfe74..1f4fea41 100644
--- a/scripts/version-check.sh
+++ b/scripts/version-check.sh
@@ -39,6 +39,12 @@ EOF
fi
fi
+# From now on, we're running actual upgrade, not just a check. Preserve the CT_xxx
+# variables that we need using a different prefix so that we can unset the stale
+# values at each iteration.
+MY_LIB_DIR="${CT_LIB_DIR}"
+MY_CONFIG_VERSION_CURRENT="${CT_CONFIG_VERSION_CURRENT}"
+
is_set()
{
if [ "x${val+set}" = "xset" ]; then
@@ -60,6 +66,13 @@ warning()
echo "WARN ${opt:+:: ${opt} }:: $1" >&2
}
+error()
+{
+ # $opt comes from the caller
+ echo " ERR ${opt:+:: ${opt} }:: $1" >&2
+ exit 1
+}
+
warning_if_set()
{
if is_set; then
@@ -97,509 +110,84 @@ replacement_for()
done
}
-# Upgrade from v0: select Linaro as the vendor if a Linaro version was selected
-# (in v0, both GNU and Linaro versions were combined in a single list). GNU is
-# the default, leave it to olddefconfig to select it if we don't see a Linaro version.
-# We don't depend on CT_xxx_SHOW_LINARO symbols: they just enabled showing Linaro
-# versions in that list, but it may have been GNU version that was actually selected.
-select_linaro()
-{
- if is_set; then
- echo "# CT_${1}_USE_GNU is not set"
- echo "CT_${1}_USE_LINARO=y"
- fi
-}
-
-
-### Per-version upgrade drivers. Called with ${opt} and ${val} set,
-### may modify these variables.
-### FIXME: perhaps, split these functions into per-version files in scripts/upgrade/{0,1,...}
-
-# Upgrade from version 0 (which is 1.23, as released) to version 1
-# (current state of master as of 2019/01/20). Upgrades in the interim
-# versions may be broken.
-upgrade_v0()
+# Helper: takes ${ln} in the caller's environment and sets ${opt} and ${val}
+# accordingly. Returns 0 if this line was an option, 1 otherwise.
+set_opt_and_val()
{
- case "${opt}" in
- CT_ARCH_alpha|CT_ARCH_arm|CT_ARCH_avr|CT_ARCH_m68k|CT_ARCH_microblaze|\
- CT_ARCH_mips|CT_ARCH_nios2|CT_ARCH_powerpc|CT_ARCH_s390|CT_ARCH_sh|\
- CT_ARCH_sparc|CT_ARCH_x86|CT_ARCH_xtensa|\
- CT_BINUTILS_binutils|\
- CT_CC_gcc|\
- CT_COMP_TOOLS_autoconf|CT_COMP_TOOLS_automake|CT_COMP_TOOLS_libtool|\
- CT_COMP_TOOLS_m4|CT_COMP_TOOLS_make|\
- CT_DEBUG_duma|CT_DEBUG_gdb|CT_DEBUG_ltrace|CT_DEBUG_strace|\
- CT_KERNEL_bare_metal|CT_KERNEL_linux|CT_KERNEL_windows|\
- CT_LIBC_avr_libc|CT_LIBC_glibc|CT_LIBC_musl|CT_LIBC_newlib|CT_LIBC_none|\
- CT_LIBC_uClibc)
- # Renamed to upper-case
- replace ${opt^^}
- ;;
- CT_ARCH_XTENSA_CUSTOM_NAME)
- replace CT_OVERLAY_NAME
- ;;
- CT_ARCH_XTENSA_CUSTOM_OVERLAY_LOCATION)
- replace CT_OVERLAY_LOCATION
- ;;
- CT_LIBC_mingw)
- # Renamed to MINGW_W64
- opt=CT_LIBC_MINGW_W64
- ;;
- CT_ARCH_*_AVAILABLE|CT_KERNEL_*_AVAILABLE|CT_LIBC_*_AVAILABLE)
- # Previously used "backend selectors". Autogenerated, no warning
- unset opt
- ;;
- CT_CONFIGURE_has_*)
- # Configure-detected build machine options. Drop, will use current.
- unset opt
- ;;
- CT_*_or_later)
- # Automatically selected version constraints. Drop, will auto-select current ones.
- unset opt
- ;;
- CT_BACKEND_ARCH|CT_BACKEND_KERNEL|CT_BACKEND_LIBC|CT_IS_A_BACKEND)
- warning "Option ${opt} is no longer supported, dropping"
- unset opt
- ;;
- CT_*_SHOW_LINARO)
- # Used to just include Linaro versions into the list. We'll infer whether Linaro is
- # actually used from the actual version selected, below.
- unset opt
- ;;
- CT_CC_GCC_4_8|CT_CC_GCC_4_9|CT_CC_GCC_5|CT_CC_GCC_6|\
- CT_LIBC_NEWLIB_2_0|CT_LIBC_NEWLIB_2_1|CT_LIBC_NEWLIB_2_2|CT_LIBC_NEWLIB_2_3|CT_LIBC_NEWLIB_2_4|CT_LIBC_NEWLIB_2_5)
- # In 1.23.0, each package had its own ad-hoc version constraints. Drop, new ones
- # will be autoselected.
- unset opt
- ;;
- # Custom location: translate to the new framework. No generic way to interpret the version
- # string user may have configured; just warn him to select it manually.
- CT_BINUTILS_CUSTOM)
- warning_if_set "Assuming custom location contains GNU sources; edit the configuration if it was Linaro version"
- replace CT_BINUTILS_SRC_CUSTOM
- ;;
- CT_CC_GCC_CUSTOM)
- warning_if_set "Assuming custom location contains GNU sources; edit the configuration if it was Linaro version"
- replace CT_GCC_SRC_CUSTOM
- ;;
- CT_CC_GCC_CUSTOM_LOCATION)
- replace CT_GCC_CUSTOM_LOCATION
- ;;
- CT_ELF2FLT_CUSTOM)
- replace CT_ELF2FLT_SRC_CUSTOM
- ;;
- CT_ELF2FLT_GIT)
- if is_set; then
- echo "CT_ELF2FLT_SRC_DEVEL=y"
- fi
- replace CT_ELF2FLT_DEVEL_VCS_git
- ;;
- CT_ELF2FLT_GIT_CSET)
- replace CT_ELF2FLT_DEVEL_REVISION
- ;;
- CT_GDB_CUSTOM)
- warning_if_set "Assuming custom location contains GNU sources; edit the configuration if it was Linaro version"
- replace CT_GDB_SRC_CUSTOM
- ;;
- CT_KERNEL_LINUX_CUSTOM)
- replace CT_LINUX_SRC_CUSTOM
- ;;
- CT_KERNEL_LINUX_CUSTOM_LOCATION)
- replace CT_LINUX_CUSTOM_LOCATION
- ;;
- CT_LIBC_AVR_LIBC_CUSTOM)
- replace CT_AVR_LIBC_SRC_CUSTOM
- ;;
- CT_LIBC_AVR_LIBC_CUSTOM_LOCATION)
- replace CT_AVR_LIBC_CUSTOM_LOCATION
- ;;
- CT_LIBC_GLIBC_CUSTOM)
- warning_if_set "Assuming custom location contains GNU sources; edit the configuration if it was Linaro version"
- replace CT_GLIBC_SRC_CUSTOM
- ;;
- CT_LIBC_GLIBC_CUSTOM_LOCATION)
- replace CT_GLIBC_CUSTOM_LOCATION
- ;;
- CT_LIBC_MUSL_CUSTOM)
- replace CT_MUSL_SRC_CUSTOM
- ;;
- CT_LIBC_MUSL_CUSTOM_LOCATION)
- replace CT_MUSL_CUSTOM_LOCATION
- ;;
- CT_LIBC_NEWLIB_CUSTOM)
- warning_if_set "Assuming custom location contains GNU sources; edit the configuration if it was Linaro version"
- replace CT_NEWLIB_SRC_CUSTOM
- ;;
- CT_LIBC_NEWLIB_CUSTOM_LOCATION)
- replace CT_NEWLIB_CUSTOM_LOCATION
- ;;
- CT_LIBC_UCLIBC_CUSTOM)
- if is_set; then
- if [ "${CT_LIBC_UCLIBC_CUSTOM_UCLIBC}" = "y" ]; then
- replace CT_UCLIBC_USE_UCLIBC_ORG
- else
- replace CT_UCLIBC_USE_UCLIBC_NG_ORG
- fi
- fi
- ;;
- CT_LIBC_UCLIBC_CUSTOM_UCLIBC)
- replace CT_UCLIBC_SRC_CUSTOM
- ;;
- CT_LIBC_UCLIBC_CUSTOM_UCLIBC_NG)
- replace CT_UCLIBC_NG_SRC_CUSTOM
- ;;
- CT_LIBC_UCLIBC_CUSTOM_UCLIBC_NG_OLD)
- warning_if_set "uClibc-NG versions before 1.0.15 no longer supported"
- replace CT_UCLIBC_NG_SRC_CUSTOM
- ;;
- CT_LIBC_UCLIBC_CUSTOM_LOCATION)
- if [ "${CT_LIBC_UCLIBC_CUSTOM_UCLIBC}" = "y" ]; then
- replace CT_UCLIBC_CUSTOM_LOCATION
- else
- replace CT_UCLIBC_NG_CUSTOM_LOCATION
- fi
- ;;
- CT_WINAPI_V_DEVEL)
- replace CT_MINGW_W64_SRC_DEVEL
- ;;
- CT_WINAPI_V_select)
- # Internal selector
- unset opt
- ;;
- CT_BINUTILS_CUSTOM_VERSION|CT_CC_GCC_CUSTOM_VERSION|CT_ELF2FLT_CUSTOM_VERSION|CT_KERNEL_LINUX_CUSTOM_VERSION|\
- CT_LIBC_AVR_LIBC_CUSTOM_VERSION|CT_LIBC_GLIBC_CUSTOM_VERSION|CT_LIBC_MUSL_CUSTOM_VERSION|\
- CT_LIBC_NEWLIB_CUSTOM_VERSION|CT_LIBC_UCLIBC_CUSTOM_VERSION|CT_GDB_CUSTOM_VERSION)
- warning_if_set "Cannot automatically convert custom version; edit configuration to select it"
- unset opt
- ;;
- CT_CC_GCC_VERSION|CT_CC_VERSION|CT_KERNEL_VERSION|CT_WINAPI_VERSION|CT_LIBC_VERSION)
- # Auto-selected; the symbol was just renamed
- unset opt
- ;;
- CT_LIBC_glibc_family)
- # Internal selector, not user-visible
- unset opt
- ;;
- CT_LIBC_ADDONS_LIST)
- warning_if_set "Support for custom add-ons has been removed. If using libidn add-on, edit the configuration."
- ;;
- CT_LIBC_DISABLE_VERSIONING)
- replace CT_GLIBC_DISABLE_VERSIONING
- ;;
- CT_LIBC_ENABLE_FORTIFIED_BUILD)
- replace CT_GLIBC_ENABLE_FORTIFIED_BUILD
- ;;
- CT_LIBC_GLIBC_CONFIGPARMS|CT_LIBC_GLIBC_EXTRA_CFLAGS|CT_LIBC_GLIBC_EXTRA_CONFIG_ARRAY|\
- CT_LIBC_GLIBC_FORCE_UNWIND|CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS|CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN|\
- CT_LIBC_GLIBC_KERNEL_VERSION_NONE|CT_LIBC_GLIBC_MIN_KERNEL|CT_LIBC_GLIBC_MIN_KERNEL_VERSION)
- replace CT_GLIBC_${opt#CT_LIBC_GLIBC_}
- ;;
- CT_LIBC_LOCALES)
- replace CT_GLIBC_LOCALES
- ;;
- CT_LIBC_OLDEST_ABI)
- replace CT_GLIBC_OLDEST_ABI
- ;;
- CT_LIBC_GLIBC_NEEDS_PORTS|CT_LIBC_GLIBC_PORTS_EXTERNAL|CT_LIBC_GLIBC_USE_PORTS)
- # Auto-selected
- unset opt
- ;;
- CT_LIBC_UCLIBC_LOCALES_PREGEN_DATA)
- warning_if_set "Support for pregenerated locales in uClibc has been removed"
- unset opt
- ;;
- # Trivial version replacements
- CT_AUTOMAKE_V_1_11_1) replace CT_AUTOMAKE_V_1_11_6;;
- CT_AUTOMAKE_V_1_11_6) replacement_for CT_AUTOMAKE_V_1_11_1;;
- CT_AUTOMAKE_V_1_14) replace CT_AUTOMAKE_V_1_14_1;;
- CT_AUTOMAKE_V_1_15) replace CT_AUTOMAKE_V_1_15_1;;
- CT_BINUTILS_V_2_26) replace CT_BINUTILS_V_2_26_1;;
- CT_BINUTILS_V_2_28) replace CT_BINUTILS_V_2_28_1;;
- CT_BINUTILS_LINARO_V_2_23_2) select_linaro BINUTILS; replace CT_BINUTILS_LINARO_V_2_23_2_2013_10_4;;
- CT_BINUTILS_LINARO_V_2_24) select_linaro BINUTILS; replace CT_BINUTILS_LINARO_V_2_24_0_2014_11_2;;
- CT_BINUTILS_LINARO_V_2_25) select_linaro BINUTILS; replace CT_BINUTILS_LINARO_V_2_25_0_2015_01_2;;
- CT_CC_GCC_V_4_8_5) replace CT_GCC_V_4_8_5;;
- CT_CC_GCC_V_4_9_4) replace CT_GCC_V_4_9_4;;
- CT_CC_GCC_V_5_4_0) replace CT_GCC_V_5_5_0;;
- CT_CC_GCC_V_6_3_0) replace CT_GCC_V_6_5_0;;
- CT_CC_GCC_V_linaro_4_8) select_linaro GCC; replace CT_GCC_LINARO_V_4_8_2015_06;;
- CT_CC_GCC_V_linaro_4_9) select_linaro GCC; replace CT_GCC_LINARO_V_4_9_2017_01;;
- CT_CC_GCC_V_linaro_5_4) select_linaro GCC; replace CT_GCC_LINARO_V_5_5_2017_10;;
- CT_CC_GCC_V_linaro_6_3) select_linaro GCC; replace CT_GCC_LINARO_V_6_4_2018_05;;
- CT_CLOOG_V_0_18_0) replace CT_CLOOG_V_0_18_1;;
- CT_CLOOG_V_0_18_1) replacement_for CT_CLOOG_V_0_18_0;;
- CT_EXPAT_V_2_2_0) replace CT_EXPAT_V_2_2_6;; # 2.2.6 was not available in ct-ng 1.23.0 - no replacement_for
- CT_GDB_V_6_8a) replace CT_GDB_V_6_8A;;
- CT_GDB_V_7_0a) replace CT_GDB_V_7_0_1A;;
- CT_GDB_V_7_0_1a) replace CT_GDB_V_7_0_1A;;
- CT_GDB_V_7_1a) replace CT_GDB_V_7_1A;;
- CT_GDB_V_7_2a) replace CT_GDB_V_7_2A;;
- CT_GDB_V_7_3a) replace CT_GDB_V_7_3A;;
- CT_GDB_V_7_4) replace CT_GDB_V_7_4_1;;
- CT_GDB_V_7_7) replace CT_GDB_V_7_7_1;;
- CT_GDB_V_7_8|CT_GDB_V_7_8_1) replace CT_GDB_V_7_8_2;;
- CT_GDB_V_7_8_2) replacement_for CT_GDB_V_7_8 CT_GDB_V_7_8_1;;
- CT_GDB_V_7_9) replace CT_GDB_V_7_9_1;;
- CT_GDB_V_7_10) replace CT_GDB_V_7_10_1;;
- CT_GDB_V_linaro_7_3) select_linaro GDB; replace CT_GDB_LINARO_V_7_3_2011_12;;
- CT_GDB_V_linaro_7_4) select_linaro GDB; replace CT_GDB_LINARO_V_7_4_2012_06;;
- CT_GDB_V_linaro_7_5) select_linaro GDB; replace CT_GDB_LINARO_V_7_5_2012_12;;
- CT_GDB_V_linaro_7_6) select_linaro GDB; replace CT_GDB_LINARO_V_7_6_1_2013_10;;
- CT_GDB_V_linaro_7_7) select_linaro GDB; replace CT_GDB_LINARO_V_7_7_1_2014_06_1;;
- CT_GDB_V_linaro_7_7_1) select_linaro GDB; replace CT_GDB_LINARO_V_7_7_1_2014_06_1;;
- CT_GDB_V_linaro_7_8) select_linaro GDB; replace CT_GDB_LINARO_V_7_8_2014_09;;
- CT_GMP_V_4_3_0|CT_GMP_V_4_3_1) replace CT_GMP_V_4_3_2;;
- CT_GMP_V_4_3_2) replacement_for CT_GMP_V_4_3_0 CT_GMP_V_4_3_1;;
- CT_GMP_V_5_0_1|CT_GMP_V_5_0_2) replace CT_GMP_V_5_0_5;; # 5.0.5 not in ct-ng 1.23.0
- CT_GMP_V_5_1_1) replace CT_GMP_V_5_1_3;;
- CT_GMP_V_5_1_3) replacement_for CT_GMP_V_5_1_1;;
- CT_GMP_V_6_0_0) replace CT_GMP_V_6_0_0A;; # 6.0.0a not in ct-ng 1.23.0
- CT_GMP_V_6_1_0) replace CT_GMP_V_6_1_2;;
- CT_GMP_V_6_1_2) replacement_for CT_GMP_V_6_1_0;;
- CT_ISL_V_0_11_1) replace CT_ISL_V_0_11_2;;
- CT_ISL_V_0_14) replace CT_ISL_V_0_14_1;;
- CT_KERNEL_V_2_6_32|CT_KERNEL_V_2_6_33|CT_KERNEL_V_2_6_34|CT_KERNEL_V_2_6_35|\
- CT_KERNEL_V_2_6_36|CT_KERNEL_V_2_6_37|CT_KERNEL_V_2_6_38|CT_KERNEL_V_2_6_39|\
- CT_KERNEL_V_3_0|CT_KERNEL_V_3_1|CT_KERNEL_V_3_2|CT_KERNEL_V_3_3|CT_KERNEL_V_3_4|CT_KERNEL_V_3_5|\
- CT_KERNEL_V_3_6|CT_KERNEL_V_3_7|CT_KERNEL_V_3_8|CT_KERNEL_V_3_9|CT_KERNEL_V_3_10|CT_KERNEL_V_3_11|\
- CT_KERNEL_V_3_12|CT_KERNEL_V_3_13|CT_KERNEL_V_3_14|CT_KERNEL_V_3_15|CT_KERNEL_V_3_16|\
- CT_KERNEL_V_3_17|CT_KERNEL_V_3_18|CT_KERNEL_V_3_19|\
- CT_KERNEL_V_4_0|CT_KERNEL_V_4_1|CT_KERNEL_V_4_2|CT_KERNEL_V_4_3|CT_KERNEL_V_4_4|\
- CT_KERNEL_V_4_5|CT_KERNEL_V_4_6|CT_KERNEL_V_4_7|CT_KERNEL_V_4_8|CT_KERNEL_V_4_9|CT_KERNEL_V_4_10)
- replace CT_LINUX_${opt#CT_KERNEL_};;
- CT_LIBC_AVR_LIBC_V_1_8_0) replace CT_AVR_LIBC_V_1_8_1;;
- CT_LIBC_AVR_LIBC_V_1_8_1) replace CT_AVR_LIBC_V_1_8_1;;
- CT_LIBC_AVR_LIBC_V_2_0_0) replace CT_AVR_LIBC_V_2_0_0;;
- CT_LIBC_GLIBC_V_2_12_1|CT_LIBC_GLIBC_V_2_12_2|CT_LIBC_GLIBC_V_2_13|CT_LIBC_GLIBC_V_2_14|\
- CT_LIBC_GLIBC_V_2_14_1|CT_LIBC_GLIBC_V_2_15|CT_LIBC_GLIBC_V_2_16_0|CT_LIBC_GLIBC_V_2_17|\
- CT_LIBC_GLIBC_V_2_18|CT_LIBC_GLIBC_V_2_19|CT_LIBC_GLIBC_V_2_20|CT_LIBC_GLIBC_V_2_21|\
- CT_LIBC_GLIBC_V_2_22|CT_LIBC_GLIBC_V_2_23|CT_LIBC_GLIBC_V_2_24|CT_LIBC_GLIBC_V_2_25)
- replace CT_GLIBC_${opt#CT_LIBC_GLIBC_};;
- CT_LIBC_GLIBC_LINARO_V_2_20) replace CT_GLIBC_LINARO_V_2_20_2014_11;;
- CT_LIBC_MUSL_V_1_1_15|CT_LIBC_MUSL_V_1_1_16)
- replace CT_MUSL_${opt#CT_LIBC_MUSL_};;
- CT_LIBC_NEWLIB_V_1_17_0|CT_LIBC_NEWLIB_V_1_18_0|CT_LIBC_NEWLIB_V_1_19_0|CT_LIBC_NEWLIB_V_1_20_0|\
- CT_LIBC_NEWLIB_V_2_0_0|CT_LIBC_NEWLIB_V_2_1_0|CT_LIBC_NEWLIB_V_2_2_0|CT_LIBC_NEWLIB_V_2_3_0|\
- CT_LIBC_NEWLIB_V_2_4_0|CT_LIBC_NEWLIB_V_2_5_0)
- replace CT_NEWLIB_${opt#CT_LIBC_NEWLIB_};;
- CT_LIBC_NEWLIB_LINARO_V_2_1_0) select_linaro NEWLIB; replace CT_NEWLIB_LINARO_V_2_1_0_2014;;
- CT_LIBC_NEWLIB_LINARO_V_2_2_0) select_linaro NEWLIB; replace CT_NEWLIB_LINARO_V_2_2_0_2015;;
- CT_LIBELF_V_0_8_12) replace CT_LIBELF_V_0_8_13;;
- CT_LIBELF_V_0_8_13) replacement_for CT_LIBELF_V_0_8_12;;
- CT_M4_V_1_4_13|CT_M4_V_1_4_17) replace CT_M4_V_1_4_18;;
- CT_M4_V_1_4_18) replacement_for CT_M4_V_1_4_13 CT_M4_V_1_4_17;;
- CT_MPC_V_0_8_1) replace CT_MPC_V_0_8_2;;
- CT_MPC_V_0_8_2) replacement_for CT_MPC_V_0_8_1;;
- CT_MPC_V_1_0|CT_MPC_V_1_0_1|CT_MPC_V_1_0_2)
- replace CT_MPC_V_1_0_3;;
- CT_MPC_V_1_0_3) replacement_for CT_MPC_V_1_0 CT_MPC_V_1_0_1 CT_MPC_V_1_0_2;;
- CT_MPFR_V_2_4_0|CT_MPFR_V_2_4_1)
- replace CT_MPFR_V_2_4_2;;
- CT_MPFR_V_2_4_2) replacement_for CT_MPFR_V_2_4_0 CT_MPFR_V_2_4_1;;
- CT_MPFR_V_3_0_0) replace CT_MPFR_V_3_0_1;;
- CT_MPFR_V_3_0_1) replacement_for CT_MPFR_V_3_0_0;;
- CT_MPFR_V_3_1_0|CT_MPFR_V_3_1_2|CT_MPFR_V_3_1_3|CT_MPFR_V_3_1_5)
- replace CT_MPFR_V_3_1_6;;
- CT_MPFR_V_3_1_6) replacement_for CT_MPFR_V_3_1_0 CT_MPFR_V_3_1_2 CT_MPFR_V_3_1_3 CT_MPFR_V_3_1_5;;
- CT_STRACE_V_4_5_18|CT_STRACE_V_4_5_19)
- replace CT_STRACE_V_4_5_20;;
- CT_STRACE_V_4_5_20) replacement_for CT_STRACE_V_4_5_18 CT_STRACE_V_4_5_19;;
- CT_LIBC_UCLIBC_NG_V_1_0_20|CT_LIBC_UCLIBC_NG_V_1_0_21|CT_LIBC_UCLIBC_NG_V_1_0_22)
- if is_set; then
- echo "CT_UCLIBC_USE_UCLIBC_NG_ORG=y"
- fi
- replace CT_UCLIBC_NG_V_1_0_25
- ;;
- CT_LIBC_UCLIBC_V_0_9_33_2)
- if is_set; then
- echo "CT_UCLIBC_USE_UCLIBC_ORG=y"
- fi
- replace CT_UCLIBC_V_0_9_33_2
- ;;
- CT_WINAPI_V_2_0_7|CT_WINAPI_V_2_0_7|CT_WINAPI_V_2_0_9)
- replace CT_MINGW_W64_V_V2_0_10;;
- CT_WINAPI_V_3_0_0) replace CT_MINGW_W64_V_V3_0_0;;
- CT_WINAPI_V_3_1_0) replace CT_MINGW_W64_V_V3_1_0;;
- CT_WINAPI_V_3_2_0) replace CT_MINGW_W64_V_V3_2_0;;
- CT_WINAPI_V_3_3_0) replace CT_MINGW_W64_V_V3_3_0;;
- CT_WINAPI_V_4_0_0|CT_WINAPI_V_4_0_1|CT_WINAPI_V_4_0_2|CT_WINAPI_V_4_0_3|\
- CT_WINAPI_V_4_0_4|CT_WINAPI_V_4_0_5|CT_WINAPI_V_4_0_6)
- replace CT_MINGW_W64_V_V4_0_6;;
- CT_WINAPI_V_5_0_0|CT_WINAPI_V_5_0_1)
- replace CT_MINGW_W64_V_V5_0_3;;
-
- # Misc
- CT_CLOOG_NEEDS_AUTORECONF)
- # Was unused in 1.23, just drop
- unset opt
- ;;
- CT_PATCH_SINGLE)
- # Internal selector in 1.23
- unset opt
- ;;
- CT_PATCH_BUNDLED_FALLBACK_LOCAL|CT_PATCH_LOCAL_FALLBACK_BUNDLED)
- warning_if_set "Fallback patch order has been removed"
- ;;
- CT_CC_GCC_TARGET_FINAL)
- warning_if_set "Option removed"
- ;;
- CT_COMPLIBS|CT_COMPLIBS_NEEDED|CT_CC_GCC_latest)
- # Internal selectors
- unset opt
- ;;
+ case "${ln}" in
+ CT_*=*)
+ opt=${ln%%=*}
+ val=${ln#*=}
+ case "${val}" in
+ \"*\")
+ val="${val%\"}"
+ val="${val#\"}"
+ q=\"
+ ;;
+ esac
+ return 0
+ ;;
+ "# CT_"*" is not set")
+ opt=${ln#* }
+ opt=${opt%% *}
+ return 0
+ ;;
+ *)
+ ;;
esac
+ return 1
}
-# Upgrade v1 -> v2: several packages had their config options renamed
-# to leave only the relevant part - so that further upgrades of, say,
-# GCC 6.5.0 to 6.6.0 do not result in config changes.
-upgrade_v1()
-{
- case "${opt}" in
- CT_ANDROID_NDK_V_R10E|CT_ANDROID_NDK_V_R11C|CT_ANDROID_NDK_V_R12B|\
- CT_ANDROID_NDK_V_R13B|CT_ANDROID_NDK_V_R14B|CT_ANDROID_NDK_V_R15C|\
- CT_ANDROID_NDK_V_R16B|CT_ANDROID_NDK_V_R17C)
- replace "${opt%[A-Z]}"
- ;;
- CT_AUTOMAKE_V_1_11_6|CT_AUTOMAKE_V_1_14_1|\
- CT_AUTOMAKE_V_1_15_1|CT_AUTOMAKE_V_1_16_1)
- replace "${opt%_[0-9]}"
- ;;
- CT_BINUTILS_LINARO_V_2_23_2_2013_10_4|CT_BINUTILS_LINARO_V_2_24_0_2014_11_2|\
- CT_BINUTILS_LINARO_V_2_25_0_2015_01_2)
- replace "${opt%_[0-9]_201[345]*}"
- ;;
- CT_BINUTILS_V_2_23_2|CT_BINUTILS_V_2_25_1|CT_BINUTILS_V_2_26_1|\
- CT_BINUTILS_V_2_28_1|CT_BINUTILS_V_2_29_1|CT_BINUTILS_V_2_31_1)
- replace "${opt%_[0-9]}"
- ;;
- CT_DTC_V_1_4_7)
- replace CT_DTC_V_1_4
- ;;
- CT_EXPAT_V_2_1_1|CT_EXPAT_V_2_2_6)
- replace "${opt%_[0-9]}"
- ;;
- CT_GCC_LINARO_V_4_8_2015_06|CT_GCC_LINARO_V_4_9_2017_01)
- replace "${opt%_201[57]*}"
- ;;
- CT_GCC_LINARO_V_5_5_2017_10|CT_GCC_LINARO_V_6_4_2018_05|\
- CT_GCC_LINARO_V_7_3_2018_05)
- replace "${opt%_[0-9]_201[78]*}"
- ;;
- CT_GCC_V_4_8_5|CT_GCC_V_4_9_4)
- replace "${opt%_[0-9]}"
- ;;
- CT_GCC_V_5_5_0|CT_GCC_V_6_5_0|CT_GCC_V_7_4_0|CT_GCC_V_8_2_0)
- replace "${opt%_[0-9]_[0-9]}"
- ;;
- CT_GDB_LINARO_V_7_3_2011_12|CT_GDB_LINARO_V_7_4_2012_06|CT_GDB_LINARO_V_7_5_2012_12|\
- CT_GDB_LINARO_V_7_7_2014_05|CT_GDB_LINARO_V_7_8_2014_09)
- replace "${opt%_201[57]*}"
- ;;
- CT_GDB_LINARO_V_7_6_1_2013_10|CT_GDB_LINARO_V_7_7_1_2014_06_1)
- replace "${opt%_[0-9]_201[345]*}"
- ;;
-
- CT_GDB_V_6_8A|CT_GDB_V_7_1A|CT_GDB_V_7_2A)
- replace "${opt%A}"
- ;;
- CT_GDB_V_7_0_1A)
- replace CT_GDB_V_7_0
- ;;
- CT_GDB_V_7_3_1|CT_GDB_V_7_4_1|CT_GDB_V_7_5_1|CT_GDB_V_7_6_1|CT_GDB_V_7_7_1|\
- CT_GDB_V_7_8_2|CT_GDB_V_7_9_1|CT_GDB_V_7_10_1|CT_GDB_V_7_11_1|CT_GDB_V_7_12_1|\
- CT_GDB_V_8_0_1|CT_GDB_V_8_1_1)
- replace "${opt%_[0-9]}"
- ;;
- CT_GLIBC_LINARO_V_2_20_2014_11)
- replace CT_GLIBC_LINARO_V_2_20
- ;;
- CT_GMP_V_4_3_2|CT_GMP_V_5_0_5|CT_GMP_V_5_1_3|CT_GMP_V_6_0_0A|CT_GMP_V_6_1_2)
- replace "${opt%_[0-9]*}"
- ;;
- CT_ISL_V_0_11_2|CT_ISL_V_0_12_2|CT_ISL_V_0_14_1|CT_ISL_V_0_16_1|CT_ISL_V_0_17_1)
- replace "${opt%_[0-9]}"
- ;;
- CT_LIBELF_V_0_8_13)
- replace CT_LIBELF_V_0_8
- ;;
- CT_LIBTOOL_V_2_4_6)
- replace CT_LIBTOOL_V_2_4
- ;;
- CT_M4_V_1_4_18)
- replace CT_M4_V_1_4
- ;;
- CT_MAKE_V_4_2_1)
- replace CT_MAKE_V_4_2
- ;;
- CT_MINGW_W64_V_V2_0_10|CT_MINGW_W64_V_V3_0_0|CT_MINGW_W64_V_V3_1_0|CT_MINGW_W64_V_V3_2_0|\
- CT_MINGW_W64_V_V3_3_0|CT_MINGW_W64_V_V4_0_6|CT_MINGW_W64_V_V5_0_3|CT_MINGW_W64_V_V6_0_0)
- replace "${opt%_[0-9]}"
- ;;
- CT_MPC_V_0_8_2|CT_MPC_V_1_0_3|CT_MPC_V_1_1_0)
- replace "${opt%_[0-9]}"
- ;;
- CT_MPFR_V_2_4_2|CT_MPFR_V_3_0_1|CT_MPFR_V_3_1_6|CT_MPFR_V_4_0_1)
- replace "${opt%_[0-9]}"
- ;;
- CT_NEWLIB_LINARO_V_2_1_0_2014|CT_NEWLIB_LINARO_V_2_2_0_2015)
- replace "${opt%_[0-9]_201[345]*}"
- ;;
- CT_NEWLIB_V_1_17_0|CT_NEWLIB_V_1_18_0|CT_NEWLIB_V_1_19_0|CT_NEWLIB_V_1_20_0|CT_NEWLIB_V_2_0_0|\
- CT_NEWLIB_V_2_1_0|CT_NEWLIB_V_2_2_0|CT_NEWLIB_V_2_3_0|CT_NEWLIB_V_2_4_0|CT_NEWLIB_V_2_5_0|\
- CT_NEWLIB_V_3_0_0)
- replace "${opt%_[0-9]}"
- ;;
-
- CT_CLOOG_HAS_WITH_GMP_ISL_OSL|CT_CLOOG_0_18_or_later|CT_CLOOG_0_18_or_older|\
- CT_CLOOG_REQUIRE_0_18_or_later|CT_CLOOG_REQUIRE_0_18_or_older|\
- CT_CLOOG_REQUIRE_later_than_0_18|CT_CLOOG_REQUIRE_older_than_0_18|\
- CT_CLOOG_later_than_0_18|CT_CLOOG_older_than_0_18|CT_GCC_REQUIRE_4_9_2_or_later|\
- CT_GCC_REQUIRE_4_9_2_or_older|CT_GCC_REQUIRE_later_than_4_9_2|\
- CT_GCC_REQUIRE_older_than_4_9_2|CT_GCC_4_9_2_or_later|CT_GCC_4_9_2_or_older|\
- CT_GCC_BUG_61144|CT_GCC_later_than_4_9_2|CT_GCC_older_than_4_9_2)
- unset opt # No longer used auto-selectors
- ;;
- esac
-}
# Main upgrade driver. One version at a time, read line by line, interpret
# the options and replace anything that needs replacing.
-cp "${CFGFILE}" "${CFGFILE}.before-upgrade"
-v=${CT_CONFIG_VERSION}
input="${CFGFILE}"
-while [ "${v}" -lt "${CT_CONFIG_VERSION_CURRENT}" ]; do
+while :; do
+ # Purge any possibly stale values
+ unset "${!CT_@}"
+ # Reload the next input so that the upgrade function can rely on other CT_xxx variables,
+ # not just the currently processed variable.
+ . "${input}"
+ v=${CT_CONFIG_VERSION:-0}
+ if [ "${v}" -ge "${MY_CONFIG_VERSION_CURRENT}" ]; then
+ break
+ fi
+
vn=$[ v + 1 ]
info "Upgrading v${v} to v${vn}"
+ if [ ! -r "${MY_LIB_DIR}/scripts/upgrade/v${v}" ]; then
+ error "Missing upgrade script for v${v} of the config file"
+ fi
+ unset upgrade
+ . "${MY_LIB_DIR}/scripts/upgrade/v${v}"
+ # First pass: read in the whole file and mark the options mentioned;
+ # it may not be possible to upgrade a defconfig if some non-trivial
+ # option dependencies need to be resolved. We are not interested in
+ # values yet.
+ unset selected_opts
+ declare -A selected_opts
+ while read ln; do
+ if set_opt_and_val; then
+ selected_opts[${opt}]=1
+ fi
+ done < "${input}"
+
+ # Second pass: actually upgrade the options.
{
while read ln; do
+ unset opt
unset val
q=
- case "${ln}" in
- CT_CONFIG_VERSION_CURRENT=*|CT_CONFIG_VERSION=*)
- continue
- ;;
- CT_*=*)
- opt=${ln%%=*}
- val=${ln#*=}
- case "${val}" in
- \"*\")
- val="${val%\"}"
- val="${val#\"}"
- q=\"
+ if set_opt_and_val; then
+ case "${opt}" in
+ CT_CONFIG_VERSION_CURRENT|CT_CONFIG_VERSION)
+ continue
;;
- esac
- ;;
- "# CT_"*" is not set")
- opt=${ln#* }
- opt=${opt%% *}
- ;;
- *)
- echo "${ln}"
- continue
- ;;
- esac
- upgrade_v${v}
+ esac
+ else
+ echo "${ln}"
+ fi
+ upgrade
# Emit the option(s)
if [ x${opt+set} = x ]; then
continue
@@ -616,10 +204,6 @@ while [ "${v}" -lt "${CT_CONFIG_VERSION_CURRENT}" ]; do
v=${vn}
rm -f "${input}"
input="${CFGFILE}.${vn}"
- # Reload the next input so that the upgrade function can rely on other CT_xxx variables,
- # not just the currently processed variable.
- # TBD clean the environment first to avoid any stale values
- . "${input}"
# Ideally, we'd do 'ct-ng olddefconfig' after each step with the appropriate
# Kconfig so that the next step would be able to use auto-set values from the
# previous step. However, that would require us to keep archived config/ trees
@@ -627,11 +211,4 @@ while [ "${v}" -lt "${CT_CONFIG_VERSION_CURRENT}" ]; do
# this until it is actually needed. Even then, it is probably sufficient to only
# keep the versions where there is such a dependency.
done
-mv "${CFGFILE}.${CT_CONFIG_VERSION_CURRENT}" "${CFGFILE}"
-cp "${CFGFILE}" "${CFGFILE}.before-olddefconfig"
-cat >&2 <<EOF
-
-Done. The original '${CFGFILE}' has been saved as '${CFGFILE}.before-upgrade'.
-Will now run through 'ct-ng olddefconfig'. The intermediate configuration (after the upgrade script,
-but before running 'ct-ng olddefconfig') has been saved as '${CFGFILE}.before-olddefconfig'.
-EOF
+mv "${CFGFILE}.${MY_CONFIG_VERSION_CURRENT}" "${CFGFILE}"