From cc6b7fad46f5cb3d84cf87ae47c5f723803a67a3 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Wed, 5 Jan 2022 00:37:45 -0800 Subject: Retire obsoleted milestones ... and the code dependent on them, after the latest wave of obsolete package removals. This concludes the glorious history of the original uClibc (non-NG) with lots of kludges removed. There was a choice here, whether to call the resulting libc "uClibc" or "uClibc-ng". I opted in favor of giving uClibc-ng the recognition it deserves, although it had some ripple effect in the ct-ng code. Signed-off-by: Alexey Neyman --- config/libc/glibc.in | 1 - config/libc/mingw-w64.in | 4 - config/libc/newlib.in | 18 +--- config/libc/uClibc-ng.in | 170 +++++++++++++++++++++++++++++++++ config/libc/uClibc.in | 239 ----------------------------------------------- 5 files changed, 171 insertions(+), 261 deletions(-) create mode 100644 config/libc/uClibc-ng.in delete mode 100644 config/libc/uClibc.in (limited to 'config/libc') diff --git a/config/libc/glibc.in b/config/libc/glibc.in index 63c31f6c..39c2c20b 100644 --- a/config/libc/glibc.in +++ b/config/libc/glibc.in @@ -66,7 +66,6 @@ config GLIBC_DEP_MAKE_4_0 def_bool y depends on GLIBC_2_28_or_later && !CONFIGURE_has_make_4_0_or_newer select COMP_TOOLS_MAKE - select MAKE_REQUIRE_4_0_or_later select MAKE_GNUMAKE_SYMLINK # Override old host make in .build/tools/bin # Glibc 2.31 removed support for pre-v8 SPARC in 32-bit mode (64-bit mode always diff --git a/config/libc/mingw-w64.in b/config/libc/mingw-w64.in index d176e477..1880f082 100644 --- a/config/libc/mingw-w64.in +++ b/config/libc/mingw-w64.in @@ -9,10 +9,6 @@ ## ## help The de-facto standard for Mingw distributions. -config MINGW_W64_REQUIRES_W64_VENDOR - bool - default y if MINGW_W64_V4_or_later - config THREADS default "win32" if THREADS_NATIVE default "posix" if THREADS_POSIX diff --git a/config/libc/newlib.in b/config/libc/newlib.in index ce426dae..83ae4b15 100644 --- a/config/libc/newlib.in +++ b/config/libc/newlib.in @@ -1,6 +1,7 @@ # newlib options ## depends on BARE_METAL +## select LIBC_PROVIDES_CXA_ATEXIT ## select LIBC_SUPPORT_THREADS_NONE ## select CC_CORE_PASS_1_NEEDED @@ -11,21 +12,6 @@ ## help array of processors, and will usually work on any architecture with ## help the addition of a few low-level routines. -# maybe older versions of newlib will support it too, but this -# needs to be checked -config NEWLIB_CXA_ATEXIT - def_bool y - depends on NEWLIB_2_0_or_later - select LIBC_PROVIDES_CXA_ATEXIT - -config NEWLIB_HAS_NANO_MALLOC - def_bool y - depends on NEWLIB_2_1_or_later - -config NEWLIB_HAS_NANO_FORMATTED_IO - def_bool y - depends on NEWLIB_2_2_or_later - config LIBC_NEWLIB_TARGET_CFLAGS string prompt "Target CFLAGS for newlib" @@ -197,7 +183,6 @@ config LIBC_NEWLIB_LTO config LIBC_NEWLIB_NANO_MALLOC bool prompt "Enable Nano Malloc" - depends on NEWLIB_HAS_NANO_MALLOC help NEWLIB has two implementations of malloc family's functions, one in `mallocr.c' and the other one in `nano-mallocr.c'. This options @@ -208,7 +193,6 @@ config LIBC_NEWLIB_NANO_MALLOC config LIBC_NEWLIB_NANO_FORMATTED_IO bool prompt "Enable Nano Formatted I/O" - depends on NEWLIB_HAS_NANO_FORMATTED_IO help This builds NEWLIB with a special implementation of formatted I/O functions, designed to lower the size of application on small systems diff --git a/config/libc/uClibc-ng.in b/config/libc/uClibc-ng.in new file mode 100644 index 00000000..705c0d46 --- /dev/null +++ b/config/libc/uClibc-ng.in @@ -0,0 +1,170 @@ +# uClibc options + +## depends on ! WINDOWS && ! BARE_METAL +## +## select LIBC_SUPPORT_THREADS_LT +## select LIBC_SUPPORT_THREADS_NONE +## select LIBC_SUPPORT_THREADS_NATIVE +## select CC_CORE_PASS_1_NEEDED +## +## help The de-facto standard for embeded linux systems. +## help +## help Highly configurable, thus as feature-rich as you +## help need, without compromising for size. + +config THREADS + default "nptl" if THREADS_NATIVE + default "linuxthreads" if THREADS_LT + +if ARCH_FLOAT_SOFTFP +comment "'softfp' ABI and uClibc is not entirely tested in crosstool-NG" +comment "You may experience issues, although it should work just fine" +endif # ARCH_FLOAT_SOFTFP + +choice + bool + prompt "uClibc verbosity:" + default LIBC_UCLIBC_VERBOSITY_0 + +config LIBC_UCLIBC_VERBOSITY_0 + bool + prompt "Quiet build" + help + Print terse command indications. + +config LIBC_UCLIBC_VERBOSITY_1 + bool + prompt "Brief build (show defines, ld flags)" + help + Print simplified command lines. + +config LIBC_UCLIBC_VERBOSITY_2 + bool + prompt "Very verbose build" + help + Print full command lines. + +endchoice + +# uClibc-ng has reverted the meaning of V=1 and V=2 compared to its +# ancestor, uClibc, in order to match kernel's Kbuild settings. +# Hence, for uClibc-ng supply V=2 if "brief build" is selected, +# and so forth. +config LIBC_UCLIBC_VERBOSITY + string + default "" if LIBC_UCLIBC_VERBOSITY_0 + default "V=2" if LIBC_UCLIBC_VERBOSITY_1 + default "V=1" if LIBC_UCLIBC_VERBOSITY_2 + +choice + bool + prompt "Debug level" + default LIBC_UCLIBC_DEBUG_LEVEL_0 + +config LIBC_UCLIBC_DEBUG_LEVEL_0 + bool + prompt "none" + +config LIBC_UCLIBC_DEBUG_LEVEL_1 + bool + prompt "minimal" + +config LIBC_UCLIBC_DEBUG_LEVEL_2 + bool + prompt "normal" + +config LIBC_UCLIBC_DEBUG_LEVEL_3 + bool + prompt "all" + +endchoice + +config LIBC_UCLIBC_DEBUG_LEVEL + int + default 0 if LIBC_UCLIBC_DEBUG_LEVEL_0 + default 1 if LIBC_UCLIBC_DEBUG_LEVEL_1 + default 2 if LIBC_UCLIBC_DEBUG_LEVEL_2 + default 3 if LIBC_UCLIBC_DEBUG_LEVEL_3 + +config LIBC_UCLIBC_CONFIG_FILE + string + prompt "Configuration file" + default "" + help + Path to the configuration file. + + If the file is not provided, we fall back to a default config file. + +config LIBC_UCLIBC_LOCALES + bool + select LIBC_UCLIBC_WCHAR + # Before it became a separate option, libiconv depended on locales + prompt "Add support for locales" + help + Say y if you want uClibc to support localisation. + + Note that seems to be broken on recent uClibc releases. + +config LIBC_UCLIBC_LIBICONV + bool "Enable iconv" + help + Say y if you want to enable and the corresponding interfaces. + +config LIBC_UCLIBC_IPV6 + bool + prompt "Add support for IPv6" + help + Say y if you want uClibc to support IPv6. + +config LIBC_UCLIBC_WCHAR + bool + prompt "Add support for WCHAR" + help + Say y if you want uClibc to support WCHAR. + + Maybe this is needed, if you're building a C++-Compiler + +config LIBC_UCLIBC_FENV + bool + prompt "Add support for fenv.h" + default y if ARCH_X86 + help + fenv.h provides functions to control the floating point environment, + such as rounding mode, exceptions... + + For some architectures, fenv.h is incomplete, so is not installed + by default. x86 is known to have a rather complete fenv.h, so it is + installed by default only for x86. + + If you need fenv.h on other architectures, say 'y' here, but you may + encounter some issues. + +config LIBC_UCLIBC_HAS_SSP + bool + prompt "Support stack smashing protection (SSP)" + default y + help + Enable support for building programs with -fstack-protector family + of options. If this option is disabled, one can also use a standalone + libssp library from GCC. + +config LIBC_UCLIBC_BUILD_SSP + bool + prompt "Build uClibc with SSP" + depends on LIBC_UCLIBC_HAS_SSP + help + Build uClibc with -fstack-protector. This adds runtime overhead + to many function calls and is disabled by default. + +if ARCH_ARM +config LIBC_UCLIBC_USE_GNU_SUFFIX + bool + default y + prompt "Use -uclibcgnueabi suffix" + help + Depending on where the resulting toolchain will be used, you may need + to tweak the "system" part of the target tuple. Buildroot prefers + to have arm-*-linux-uclibcgnueabi; OpenEmbedded prefers + arm-*-linux-uclibceabi. Other tools seem to either accept both, or + don't care about the suffix. +endif diff --git a/config/libc/uClibc.in b/config/libc/uClibc.in deleted file mode 100644 index c88bbc8a..00000000 --- a/config/libc/uClibc.in +++ /dev/null @@ -1,239 +0,0 @@ -# uClibc options - -## depends on ! WINDOWS && ! BARE_METAL -## -## select LIBC_SUPPORT_THREADS_LT -## select LIBC_SUPPORT_THREADS_NONE -## select LIBC_SUPPORT_THREADS_NATIVE if UCLIBC_0_9_33_2_or_later -## select CC_CORE_PASS_1_NEEDED -## -## help The de-facto standard for embeded linux systems. -## help -## help Highly configurable, thus as feature-rich as you -## help need, without compromising for size. - -config THREADS - default "nptl" if THREADS_NATIVE - default "linuxthreads" if THREADS_LT - -if ARCH_FLOAT_SOFTFP -comment "'softfp' ABI and uClibc is not entirely tested in crosstool-NG" -comment "You may experience issues, although it should work just fine" -endif # ARCH_FLOAT_SOFTFP - -config LIBC_UCLIBC_HAS_SUNRPC - bool - default y if !UCLIBC_1_0_23_or_later - -config LIBC_UCLIBC_HAS_LIBICONV - bool - default y if UCLIBC_1_0_21_or_later - -config LIBC_UCLIBC_PARALLEL - def_bool y - depends on UCLIBC_0_9_33_2_or_later - -config LIBC_UCLIBC_NG - def_bool y - depends on UCLIBC_1_0_0_or_later - -# uClibc-ng 1.0.15 did away with 2 implementations of linuxthreads -config UCLIBC_MERGED_LINUXTHREADS - def_bool y - depends on UCLIBC_1_0_15_or_later - -choice - bool - prompt "uClibc verbosity:" - default LIBC_UCLIBC_VERBOSITY_0 - -config LIBC_UCLIBC_VERBOSITY_0 - bool - prompt "Quiet build" - help - Print terse command indications. - -config LIBC_UCLIBC_VERBOSITY_1 - bool - prompt "Brief build (show defines, ld flags)" - help - Print simplified command lines. - -config LIBC_UCLIBC_VERBOSITY_2 - bool - prompt "Very verbose build" - help - Print full command lines. - -endchoice - -# uClibc-ng has reverted the meaning of V=1 and V=2 compared to its -# ancestor, uClibc, in order to match kernel's Kbuild settings. -# Hence, for uClibc-ng supply V=2 if "brief build" is selected, -# and so forth. -config LIBC_UCLIBC_VERBOSITY - string - default "" if LIBC_UCLIBC_VERBOSITY_0 - default "V=2" if LIBC_UCLIBC_VERBOSITY_1 && LIBC_UCLIBC_NG - default "V=1" if LIBC_UCLIBC_VERBOSITY_1 - default "V=1" if LIBC_UCLIBC_VERBOSITY_2 && LIBC_UCLIBC_NG - default "V=2" if LIBC_UCLIBC_VERBOSITY_2 - -choice - bool - prompt "Debug level" - default LIBC_UCLIBC_DEBUG_LEVEL_0 - -config LIBC_UCLIBC_DEBUG_LEVEL_0 - bool - prompt "none" - -config LIBC_UCLIBC_DEBUG_LEVEL_1 - bool - prompt "minimal" - -config LIBC_UCLIBC_DEBUG_LEVEL_2 - bool - prompt "normal" - -config LIBC_UCLIBC_DEBUG_LEVEL_3 - bool - prompt "all" - -endchoice - -config LIBC_UCLIBC_DEBUG_LEVEL - int - default 0 if LIBC_UCLIBC_DEBUG_LEVEL_0 - default 1 if LIBC_UCLIBC_DEBUG_LEVEL_1 - default 2 if LIBC_UCLIBC_DEBUG_LEVEL_2 - default 3 if LIBC_UCLIBC_DEBUG_LEVEL_3 - -config LIBC_UCLIBC_CONFIG_FILE - string - prompt "Configuration file" - default "" - help - Path to the configuration file. - - If the file is not provided, we fall back to a default config file. - -if THREADS_LT && !UCLIBC_MERGED_LINUXTHREADS - -choice - bool - prompt "Linuxthread implementation: " - default LIBC_UCLIBC_LNXTHRD_OLD - -config LIBC_UCLIBC_LNXTHRD_OLD - bool - prompt "old/stable" - help - From the uClibc config option help: - There are two versions of linuxthreads. The older (stable) version - has been in uClibc for quite a long time but hasn't seen too many - updates other than bugfixes. - -config LIBC_UCLIBC_LNXTHRD_NEW - bool - prompt "new" - help - From the uClibc config option help: - The new version has not been tested much, and lacks ports for arches - which glibc does not support (like frv, etc...), but is based on - the latest code from glibc, so it may be the only choice for the - newer ports (like alpha/amd64/64bit arches and hppa). - -endchoice - -endif # THREADS_LT - -config LIBC_UCLIBC_LNXTHRD - string - default "" if THREADS_NONE - default "" if THREADS_NATIVE - default "" if UCLIBC_MERGED_LINUXTHREADS - default "old" if LIBC_UCLIBC_LNXTHRD_OLD - default "new" if LIBC_UCLIBC_LNXTHRD_NEW - -config LIBC_UCLIBC_LOCALES - bool - select LIBC_UCLIBC_WCHAR - # Before it became a separate option, libiconv depended on locales - prompt "Add support for locales" - help - Say y if you want uClibc to support localisation. - - Note that seems to be broken on recent uClibc releases. - -config LIBC_UCLIBC_LIBICONV - bool "Enable iconv" - depends on LIBC_UCLIBC_HAS_LIBICONV - help - Say y if you want to enable and the corresponding interfaces. - -config LIBC_UCLIBC_IPV6 - bool - prompt "Add support for IPv6" - help - Say y if you want uClibc to support IPv6. - -config LIBC_UCLIBC_WCHAR - bool - prompt "Add support for WCHAR" - help - Say y if you want uClibc to support WCHAR. - - Maybe this is needed, if you're building a C++-Compiler - -config LIBC_UCLIBC_FENV - bool - prompt "Add support for fenv.h" - default y if ARCH_X86 - help - fenv.h provides functions to control the floating point environment, - such as rounding mode, exceptions... - - For some architectures, fenv.h is incomplete, so is not installed - by default. x86 is known to have a rather complete fenv.h, so it is - installed by default only for x86. - - If you need fenv.h on other architectures, say 'y' here, but you may - encounter some issues. - -config LIBC_UCLIBC_RPC - bool - prompt "Add support for RPC" - depends on LIBC_UCLIBC_HAS_SUNRPC - help - Enable support for remote procedure calls (RPC) in uClibc. - -config LIBC_UCLIBC_HAS_SSP - bool - prompt "Support stack smashing protection (SSP)" - default y - help - Enable support for building programs with -fstack-protector family - of options. If this option is disabled, one can also use a standalone - libssp library from GCC. - -config LIBC_UCLIBC_BUILD_SSP - bool - prompt "Build uClibc with SSP" - depends on LIBC_UCLIBC_HAS_SSP - help - Build uClibc with -fstack-protector. This adds runtime overhead - to many function calls and is disabled by default. - -if ARCH_ARM -config LIBC_UCLIBC_USE_GNU_SUFFIX - bool - default y - prompt "Use -uclibcgnueabi suffix" - help - Depending on where the resulting toolchain will be used, you may need - to tweak the "system" part of the target tuple. Buildroot prefers - to have arm-*-linux-uclibcgnueabi; OpenEmbedded prefers - arm-*-linux-uclibceabi. Other tools seem to either accept both, or - don't care about the suffix. -endif -- cgit v1.2.3