# 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
}
