select BR2_PACKAGE_GNU_EFI
        select BR2_PACKAGE_UTIL_LINUX
        select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
-       depends on BR2_USE_WCHAR # util-linux
        help
          gummiboot is a simple UEFI boot manager which executes
          configured EFI images. The default entry is selected by a
          files will be located in /loader/ inside the EFI partition.
 
          http://freedesktop.org/wiki/Software/gummiboot/
-
-comment "gummiboot needs a toolchain w/ wchar"
-       depends on !BR2_USE_WCHAR
 
 config BR2_PACKAGE_BCACHE_TOOLS
        bool "bcache tools"
        depends on BR2_PACKAGE_HAS_UDEV
-       depends on BR2_USE_WCHAR # util-linux
        depends on BR2_USE_MMU # util-linux (libblkid)
        select BR2_PACKAGE_UTIL_LINUX
        select BR2_PACKAGE_UTIL_LINUX_LIBUUID
          This is the user space bcache tools, required to setup the linux
          bcache feature of the Linux kernel.
 
-comment "bcache-tools needs udev /dev management and a toolchain w/ wchar"
+comment "bcache-tools needs udev /dev management"
        depends on BR2_USE_MMU
-       depends on !BR2_PACKAGE_HAS_UDEV || !BR2_USE_WCHAR
+       depends on !BR2_PACKAGE_HAS_UDEV
 
 config BR2_PACKAGE_BTRFS_PROGS
        bool "btrfs-progs"
-       depends on BR2_USE_WCHAR # util-linux
        depends on BR2_USE_MMU # util-linux
        depends on BR2_TOOLCHAIN_HAS_THREADS
        select BR2_PACKAGE_E2FSPROGS
 
          https://btrfs.wiki.kernel.org/index.php/Main_Page
 
-comment "btrfs-progs needs a toolchain w/ wchar, threads"
+comment "btrfs-progs needs a toolchain w/ threads"
        depends on BR2_USE_MMU
-       depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+       depends on !BR2_TOOLCHAIN_HAS_THREADS
 
 config BR2_PACKAGE_CIRCUS
        bool "circus"
        depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3
-       depends on BR2_USE_WCHAR # pyzmq -> zeromq
        depends on BR2_INSTALL_LIBSTDCPP # pyzmq -> zeromq
        depends on BR2_TOOLCHAIN_HAS_THREADS # pyzmq -> zeromq
        depends on !BR2_TOOLCHAIN_USES_MUSL # python-psutil
 
          https://circus.readthedocs.org/en/latest/
 
-comment "circus needs Python and a uClibc or glibc toolchain w/ C++, wchar, threads"
-       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
-               !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_MUSL || \
+comment "circus needs Python and a uClibc or glibc toolchain w/ C++, threads"
+       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
+               BR2_TOOLCHAIN_USES_MUSL || \
                !(BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3)
 
 config BR2_PACKAGE_CPPZMQ
        bool "cppzmq"
        depends on BR2_INSTALL_LIBSTDCPP
-       depends on BR2_USE_WCHAR # util-linux
        depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
        select BR2_PACKAGE_ZEROMQ
        help
 
          http://github.com/zeromq/cppzmq
 
-comment "cppzmq needs a toolchain w/ C++, wchar, threads"
-       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && \
-               BR2_TOOLCHAIN_HAS_THREADS)
+comment "cppzmq needs a toolchain w/ C++, threads"
+       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
 
        depends on BR2_USE_MMU # lvm2
        depends on !BR2_STATIC_LIBS # lvm2
        depends on !BR2_TOOLCHAIN_USES_MUSL # lvm2
-       depends on BR2_USE_WCHAR # util-linux
        select BR2_PACKAGE_POPT
        select BR2_PACKAGE_LVM2
        select BR2_PACKAGE_UTIL_LINUX
 
          https://gitlab.com/cryptsetup/cryptsetup
 
-comment "cryptsetup needs a glibc or uClibc toolchain w/ wchar, threads, dynamic library"
+comment "cryptsetup needs a glibc or uClibc toolchain w/ threads, dynamic library"
        depends on BR2_USE_MMU
-       depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS \
+       depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS \
                || BR2_TOOLCHAIN_USES_MUSL
 
        select BR2_PACKAGE_ZEROMQ
        depends on BR2_USE_MMU # fork()
        depends on BR2_INSTALL_LIBSTDCPP # zeromq
-       depends on BR2_USE_WCHAR # util-linux
        depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
        help
          High-level C Binding for 0MQ
 
          http://czmq.zeromq.org/
 
-comment "czmq needs a toolchain w/ C++, wchar, threads"
+comment "czmq needs a toolchain w/ C++, threads"
        depends on BR2_USE_MMU
-       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && \
-               BR2_TOOLCHAIN_HAS_THREADS)
+       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
 
        depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
        depends on BR2_TOOLCHAIN_HAS_THREADS
        depends on BR2_USE_MMU # util-linux
-       depends on BR2_USE_WCHAR # util-linux
        select BR2_PACKAGE_RUNC # runtime dependency
        select BR2_PACKAGE_UTIL_LINUX # runtime dependency
        select BR2_PACKAGE_UTIL_LINUX_BINARIES
 
          https://github.com/docker/containerd
 
-comment "docker-containerd needs a toolchain w/ threads, wchar"
+comment "docker-containerd needs a toolchain w/ threads"
        depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
        depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
        depends on BR2_USE_MMU
-       depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
+       depends on !BR2_TOOLCHAIN_HAS_THREADS
 
 config BR2_PACKAGE_DOCKER_ENGINE_DAEMON
        bool "docker daemon"
        depends on BR2_USE_MMU # docker-containerd
-       depends on BR2_USE_WCHAR # docker-containerd
        select BR2_PACKAGE_DOCKER_CONTAINERD # runtime dependency
        select BR2_PACKAGE_IPTABLES # runtime dependency
        select BR2_PACKAGE_SQLITE # runtime dependency
 
 config BR2_PACKAGE_DOCKER_ENGINE_DRIVER_BTRFS
        bool "btrfs filesystem driver"
-       depends on BR2_USE_WCHAR # btrfs-progs
        depends on BR2_USE_MMU # btrfs-progs
        depends on BR2_TOOLCHAIN_HAS_THREADS # btrfs-progs
        select BR2_PACKAGE_BTRFS_PROGS
 
 config BR2_PACKAGE_E2FSPROGS
        bool "e2fsprogs"
-       depends on BR2_USE_WCHAR # util-linux
        depends on BR2_USE_MMU # util-linux/libblkid
        select BR2_PACKAGE_UTIL_LINUX
        select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
        default y
 
 endif
-
-comment "e2fsprogs needs a toolchain w/ wchar"
-       depends on BR2_USE_MMU
-       depends on !BR2_USE_WCHAR
 
        select BR2_PACKAGE_CZMQ
        select BR2_PACKAGE_ZEROMQ
        depends on BR2_INSTALL_LIBSTDCPP # zeromq
-       depends on BR2_USE_WCHAR # util-linux
        depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
        depends on BR2_USE_MMU # czmq
        help
 
          http://github.com/zeromq/filemq
 
-comment "filemq needs a toolchain w/ C++, wchar, threads"
+comment "filemq needs a toolchain w/ C++, threads"
        depends on BR2_USE_MMU
-       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && \
-               BR2_TOOLCHAIN_HAS_THREADS)
+       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
 
-comment "gptfdisk needs a toolchain w/ wchar, C++"
-       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR)
+comment "gptfdisk needs a toolchain w/ C++"
+       depends on !BR2_INSTALL_LIBSTDCPP
 
 config BR2_PACKAGE_GPTFDISK
        bool "gptfdisk"
        depends on BR2_INSTALL_LIBSTDCPP
-       depends on BR2_USE_WCHAR # util-linux
        select BR2_PACKAGE_UTIL_LINUX
        select BR2_PACKAGE_UTIL_LINUX_LIBUUID
        select BR2_PACKAGE_GPTFDISK_GDISK if \
        bool "ncurses cgdisk"
        select BR2_PACKAGE_NCURSES
        select BR2_PACKAGE_NCURSES_WCHAR # needed because of UTF-16
+       depends on BR2_USE_WCHAR # ncurses wchar
        depends on !(BR2_bfin && BR2_BINFMT_FLAT) # ncurses wchar support
        help
          Install the ncurses-based GUID partition table (GPT)
 
        bool "libcrossguid"
        depends on BR2_INSTALL_LIBSTDCPP
        depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # C++11
-       depends on BR2_USE_WCHAR # util-linux
        select BR2_PACKAGE_UTIL_LINUX
        select BR2_PACKAGE_UTIL_LINUX_LIBUUID
        help
 
          https://github.com/graeme-hill/crossguid
 
-comment "libcrossguid needs a toolchain w/ C++, wchar, gcc >= 4.7"
-       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR \
-               || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
+comment "libcrossguid needs a toolchain w/ C++, gcc >= 4.7"
+       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
 
        bool "lttng-tools"
        # liburcu only works on some architectures and requires thread support
        depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
-       depends on BR2_USE_WCHAR # util-linux
        depends on BR2_TOOLCHAIN_HAS_THREADS
        depends on !BR2_STATIC_LIBS # uses dlfcn
        select BR2_PACKAGE_LIBURCU
 
          http://lttng.org
 
-comment "lttng-tools needs a toolchain w/ threads, wchar, dynamic library"
+comment "lttng-tools needs a toolchain w/ threads, dynamic library"
        depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
-       depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || BR2_STATIC_LIBS
+       depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
 
        default y if BR2_TOOLCHAIN_USES_UCLIBC && \
                (BR2_arm || BR2_armeb || BR2_i386 || BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || BR2_sparc || BR2_x86_64)
 
-comment "mongrel2 needs a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library"
+comment "mongrel2 needs a uClibc or glibc toolchain w/ C++, threads, dynamic library"
        depends on !BR2_INSTALL_LIBSTDCPP || \
-               !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \
-               BR2_STATIC_LIBS || !BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS
+               !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
+               !BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS
 
 config BR2_PACKAGE_MONGREL2
        bool "mongrel2"
        select BR2_PACKAGE_ZEROMQ
        depends on BR2_INSTALL_LIBSTDCPP # zeromq
        depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
-       depends on BR2_USE_WCHAR # zeromq -> util-linux
        depends on !BR2_STATIC_LIBS # uses dlopen()
        depends on BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS
        help
 
        select BR2_PACKAGE_LZO
        select BR2_PACKAGE_UTIL_LINUX
        select BR2_PACKAGE_UTIL_LINUX_LIBUUID
-       depends on BR2_USE_WCHAR # util-linux
-
-comment "mkfs.ubifs needs a toolchain w/ wchar"
-       depends on !BR2_USE_WCHAR
 
 config BR2_PACKAGE_MTD_MTD_DEBUG
        bool "mtd_debug"
 
-comment "ola needs a toolchain w/ C++, threads, wchar, dynamic library"
-       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR \
-               || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
+comment "ola needs a toolchain w/ C++, threads, dynamic library"
+       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
+               || BR2_STATIC_LIBS
        depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
 
 menuconfig BR2_PACKAGE_OLA
        select BR2_PACKAGE_UTIL_LINUX
        depends on BR2_INSTALL_LIBSTDCPP # protobuf
        depends on !BR2_STATIC_LIBS # protobuf
-       depends on BR2_USE_WCHAR # util-linux
        depends on BR2_TOOLCHAIN_HAS_THREADS
        depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS
        help
 
-comment "php-zmq needs a toolchain w/ C++, wchar, threads"
-       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR \
-               && BR2_TOOLCHAIN_HAS_THREADS)
+comment "php-zmq needs a toolchain w/ C++, threads"
+       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
 
 config BR2_PACKAGE_PHP_ZMQ
        bool "php-zmq"
        depends on BR2_PACKAGE_PHP
        depends on BR2_INSTALL_LIBSTDCPP
-       depends on BR2_USE_WCHAR # util-linux
        depends on BR2_TOOLCHAIN_HAS_THREADS
        select BR2_PACKAGE_ZEROMQ
        help
 
 config BR2_PACKAGE_PYTHON_PYZMQ
        bool "python-pyzmq"
-       depends on BR2_USE_WCHAR # zeromq
        depends on BR2_INSTALL_LIBSTDCPP # zeromq
        depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
        select BR2_PACKAGE_ZEROMQ
 
          http://zeromq.org/bindings:python
 
-comment "python-pyzmq needs a toolchain w/ C++, wchar, threads"
+comment "python-pyzmq needs a toolchain w/ C++, threads"
        depends on BR2_PACKAGE_PYTHON
-       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && \
-               BR2_TOOLCHAIN_HAS_THREADS)
+       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
 
 config BR2_PACKAGE_QPID_PROTON
        bool "qpid-proton"
        depends on !BR2_STATIC_LIBS # build a shared library
-       depends on BR2_USE_WCHAR # util-linux
        select BR2_PACKAGE_UTIL_LINUX
        select BR2_PACKAGE_UTIL_LINUX_LIBUUID
        help
 
          https://qpid.apache.org/proton/
 
-comment "qpid-proton needs a toolchain w/ dynamic library, wchar"
-       depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR
+comment "qpid-proton needs a toolchain w/ dynamic library"
+       depends on BR2_STATIC_LIBS
 
 menuconfig BR2_PACKAGE_SYSTEMD
        bool "systemd"
        depends on BR2_INIT_SYSTEMD
-       depends on BR2_USE_WCHAR # util-linux
        depends on !BR2_STATIC_LIBS # kmod
        depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
        depends on BR2_USE_MMU # dbus
 
-comment "xfsprogs needs a glibc or uClibc toolchain w/ wchar"
+comment "xfsprogs needs a glibc or uClibc toolchain"
        depends on BR2_USE_MMU
-       depends on !BR2_USE_WCHAR || BR2_TOOLCHAIN_USES_MUSL
+       depends on BR2_TOOLCHAIN_USES_MUSL
 
 config BR2_PACKAGE_XFSPROGS
        bool "xfsprogs"
        depends on BR2_USE_MMU # fork()
-       depends on BR2_USE_WCHAR # util-linux
        depends on !BR2_TOOLCHAIN_USES_MUSL
        select BR2_PACKAGE_UTIL_LINUX
        select BR2_PACKAGE_UTIL_LINUX_LIBUUID
 
-comment "zeromq needs a toolchain w/ C++, wchar, threads"
-       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && \
-               BR2_TOOLCHAIN_HAS_THREADS)
+comment "zeromq needs a toolchain w/ C++, threads"
+       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
 
 config BR2_PACKAGE_ZEROMQ
        bool "zeromq"
        depends on BR2_INSTALL_LIBSTDCPP
-       depends on BR2_USE_WCHAR # util-linux
        depends on BR2_TOOLCHAIN_HAS_THREADS
        select BR2_PACKAGE_UTIL_LINUX
        select BR2_PACKAGE_UTIL_LINUX_LIBUUID
          Add support for NACK-Oriented Reliable Multicast (RFC 5740)
          protocol.
 
+comment "PGM/EPGM support needs a toolchain w/ wchar"
+       depends on BR2_TOOLCHAIN_HAS_SYNC_2
+       depends on BR2_TOOLCHAIN_HAS_SYNC_4
+       depends on !BR2_USE_WCHAR
+
 config BR2_PACKAGE_ZEROMQ_PGM
        bool "PGM/EPGM support"
        depends on BR2_TOOLCHAIN_HAS_SYNC_2
        depends on BR2_TOOLCHAIN_HAS_SYNC_4
+       depends on BR2_USE_WCHAR # openpgm
        select BR2_PACKAGE_OPENPGM
        help
          Add support for Pragmatic General Multicast protocol (RFC 3208)
 
        # c++1x support
        depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
        depends on BR2_INSTALL_LIBSTDCPP
-       depends on BR2_USE_WCHAR # util-linux
        depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
        select BR2_PACKAGE_ZEROMQ
        help
 
          http://github.com/benjamg/zmqpp
 
-comment "zmqpp needs a toolchain w/ C++, wchar, threads, gcc >= 4.7"
-       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
-               !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
+comment "zmqpp needs a toolchain w/ C++, threads, gcc >= 4.7"
+       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
+               !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
 
 if BR2_PACKAGE_ZMQPP
 
        bool "zmqpp client"
        depends on !BR2_STATIC_LIBS
        depends on BR2_TOOLCHAIN_HAS_THREADS # boost
+       depends on BR2_USE_WCHAR # boost
        select BR2_PACKAGE_BOOST
        select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
        help
          Build and install the zmqpp client, a command line tool that can be
          used to listen or send to zeromq sockets.
 
-comment "zmqpp client needs a toolchain w/ dynamic library, threads"
-       depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
+comment "zmqpp client needs a toolchain w/ dynamic library, threads, wchar"
+       depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS \
+               || !BR2_USE_WCHAR
 
 endif
 
 config BR2_PACKAGE_ZYRE
        bool "zyre"
        depends on BR2_INSTALL_LIBSTDCPP # zeromq
-       depends on BR2_USE_WCHAR # zeromq
        depends on BR2_TOOLCHAIN_HAS_THREADS # zeromq
        depends on BR2_USE_MMU # czmq
        select BR2_PACKAGE_CZMQ
 
          http://zyre.org
 
-comment "zyre needs a toolchain w/ C++, wchar, threads"
+comment "zyre needs a toolchain w/ C++, threads"
        depends on BR2_USE_MMU
-       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && \
-               BR2_TOOLCHAIN_HAS_THREADS)
+       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)