# newlib options ## depends on BARE_METAL ## ## select LIBC_SUPPORT_THREADS_NONE ## select CC_CORE_PASSES_NEEDED if CANADIAN ## select CC_CORE_PASS_2_NEEDED if ! CANADIAN ## ## help Newlib is a C library intended for use on embedded systems. It is a ## help conglomeration of several library parts, all under free software ## help licenses that make them easily usable on embedded products. Newlib ## help is only available in source form. It can be compiled for a wide ## help array of processors, and will usually work on any architecture with ## help the addition of a few low-level routines. # config LIBC_NEWLIB_CUSTOM bool prompt "Custom newlib" depends on EXPERIMENTAL select LIBC_NEWLIB_2_5_or_later help The choosen newlib version shall be not downloaded. Instead use a custom location to get the source. if LIBC_NEWLIB_CUSTOM config LIBC_NEWLIB_CUSTOM_LOCATION string prompt "Full path to custom newlib source" help Enter the path to the directory or tarball of your source for newlib. If the path is a tarball, it should extract to: -/ where the name is this component, newlib, and the version is set below in the custom version string. config LIBC_NEWLIB_CUSTOM_VERSION string prompt "Custom NEWLIB version" help Enter the version number for your custom newlib. config LIBC_VERSION string default LIBC_NEWLIB_CUSTOM_VERSION endif # LIBC_NEWLIB_CUSTOM if ! LIBC_NEWLIB_CUSTOM config CC_NEWLIB_SHOW_LINARO bool prompt "Show Linaro versions" help Linaro is maintaining some advanced/more stable/experimental versions of newlib, especially for the ARM architecture. Those versions have not been blessed by the newlib comunity (nor have they been cursed either!), but they look to be pretty much stable, and even more stable than the upstream versions. YMMV... If you do not know what this Linaro stuff is, then simply say 'n' here, and rest in peace. OTOH, if you know what you are doing, you will be able to use and enjoy :-) the Linaro versions by saying 'y' here. Linaro: http://www.linaro.org/ choice bool prompt "newlib version" # Don't remove next line # CT_INSERT_VERSION_BELOW config LIBC_NEWLIB_V_2_5_0 bool prompt "2.5.0.20170519" select LIBC_NEWLIB_2_5 config LIBC_NEWLIB_V_2_4_0 bool prompt "2.4.0.20161025" select LIBC_NEWLIB_2_4 config LIBC_NEWLIB_V_2_3_0 bool prompt "2.3.0.20160226" select LIBC_NEWLIB_2_3 config LIBC_NEWLIB_LINARO_V_2_2_0 bool prompt "Linaro 2.2.0-2015.01" depends on CC_NEWLIB_SHOW_LINARO select LIBC_NEWLIB_2_2 config LIBC_NEWLIB_V_2_2_0 bool prompt "2.2.0.20151023" select LIBC_NEWLIB_2_2 config LIBC_NEWLIB_LINARO_V_2_1_0 bool prompt "Linaro 2.1.0-2014.09" depends on CC_NEWLIB_SHOW_LINARO select LIBC_NEWLIB_2_1 config LIBC_NEWLIB_V_2_1_0 bool prompt "2.1.0" select LIBC_NEWLIB_2_1 config LIBC_NEWLIB_V_2_0_0 bool prompt "2.0.0" select LIBC_NEWLIB_2_0 config LIBC_NEWLIB_V_1_20_0 bool prompt "1.20.0" config LIBC_NEWLIB_V_1_19_0 bool prompt "1.19.0" config LIBC_NEWLIB_V_1_18_0 bool prompt "1.18.0" config LIBC_NEWLIB_V_1_17_0 bool prompt "1.17.0" endchoice endif # ! LIBC_NEWLIB_CUSTOM config LIBC_NEWLIB_2_5 bool select LIBC_NEWLIB_2_5_or_later config LIBC_NEWLIB_2_4 bool select LIBC_NEWLIB_2_4_or_later config LIBC_NEWLIB_2_3 bool select LIBC_NEWLIB_2_3_or_later config LIBC_NEWLIB_2_2 bool select LIBC_NEWLIB_2_2_or_later config LIBC_NEWLIB_2_1 bool select LIBC_NEWLIB_2_1_or_later config LIBC_NEWLIB_2_0 bool select LIBC_NEWLIB_2_0_or_later config LIBC_NEWLIB_2_5_or_later bool select LIBC_NEWLIB_2_4_or_later config LIBC_NEWLIB_2_4_or_later bool select LIBC_NEWLIB_2_3_or_later config LIBC_NEWLIB_2_3_or_later bool select LIBC_NEWLIB_2_2_or_later config LIBC_NEWLIB_2_2_or_later bool select LIBC_NEWLIB_2_1_or_later config LIBC_NEWLIB_2_1_or_later bool select LIBC_NEWLIB_2_0_or_later # maybe older versions of newlib will support it too, but this # needs to be checked config LIBC_NEWLIB_2_0_or_later bool select LIBC_PROVIDES_CXA_ATEXIT if ! LIBC_NEWLIB_CUSTOM config LIBC_VERSION string # Don't remove next line # CT_INSERT_VERSION_STRING_BELOW default "2.5.0.20170519" if LIBC_NEWLIB_V_2_5_0 default "2.4.0.20161025" if LIBC_NEWLIB_V_2_4_0 default "2.3.0.20160226" if LIBC_NEWLIB_V_2_3_0 default "linaro-2.2.0-2015.01" if LIBC_NEWLIB_LINARO_V_2_2_0 default "2.2.0.20151023" if LIBC_NEWLIB_V_2_2_0 default "linaro-2.1.0-2014.09" if LIBC_NEWLIB_LINARO_V_2_1_0 default "2.1.0" if LIBC_NEWLIB_V_2_1_0 default "2.0.0" if LIBC_NEWLIB_V_2_0_0 default "1.20.0" if LIBC_NEWLIB_V_1_20_0 default "1.19.0" if LIBC_NEWLIB_V_1_19_0 default "1.18.0" if LIBC_NEWLIB_V_1_18_0 default "1.17.0" if LIBC_NEWLIB_V_1_17_0 help Enter the tag you want to use. Leave empty to use the 'head' of the repository. endif # ! LIBC_NEWLIB_CUSTOM config LIBC_NEWLIB_TARGET_CFLAGS string prompt "Target CFLAGS for newlib" default "" help Used to add specific options when compiling the target libraries (eg. -ffunction-sections -fdata-sections), which can't be defined in global TARGET_CFLAGS, because they shall be not used for the gcc target libraries. Note: Both TARGET_CFLAGS and LIBC_NEWLIB_TARGET_CFLAGS are used to compile the libraries. Leave blank if you don't know better.