Add moxiebox as a choice for libc

This required some rework of the libc selection, as moxiebox is a layer on
top of another libc - newlib.

Also, moxiebox'es host VM (`sandbox`) needs a libcrypto on the host. We will
not have it if we're cross-compiling a canadian cross. Fortunately, all moxiebox
needs from libcrypto is SHA256, and it already includes a standalone implementation
of SHA256 in its runtime. Provide a little wrapper that allows moxiebox use
that implementation for the host binary, too.

Also, automate collecting/printing the list of all packages in a given category
(e.g. LIBC or COMP_TOOLS), generate a list of all Kconfig symbols for a given
category.

Signed-off-by: Alexey Neyman <stilor@att.net>
This commit is contained in:
Alexey Neyman
2018-11-23 22:14:07 -08:00
parent 172308cb1b
commit 40d5bf6440
33 changed files with 444 additions and 221 deletions

View File

@ -23,7 +23,7 @@ CT_LoadConfig() {
. "${CT_LIB_DIR}/scripts/build/kernel/${CT_KERNEL}.sh"
. "${CT_LIB_DIR}/scripts/build/companion_libs.sh"
. "${CT_LIB_DIR}/scripts/build/binutils/${CT_BINUTILS}.sh"
. "${CT_LIB_DIR}/scripts/build/libc/${CT_LIBC}.sh"
. "${CT_LIB_DIR}/scripts/build/libc.sh"
. "${CT_LIB_DIR}/scripts/build/cc/${CT_CC}.sh"
. "${CT_LIB_DIR}/scripts/build/debug.sh"
. "${CT_LIB_DIR}/scripts/build/test_suite.sh"
@ -1095,11 +1095,6 @@ CT_DoBuildTargetTuple() {
uClibc) CT_TARGET_SYS=uclibc;;
musl) CT_TARGET_SYS=musl;;
bionic) CT_TARGET_SYS=android;;
avr-libc)
# avr-libc only seems to work with the non-canonical "avr" target.
CT_TARGET_SKIP_CONFIG_SUB=y
CT_TARGET_SYS= # CT_TARGET_SYS must be empty too
;;
none|newlib)
CT_TARGET_SYS=elf
;;
@ -1989,6 +1984,7 @@ CT_PackageRun()
src_release mirrors archive_filename archive_dirname archive_formats signature_format \
src_devel devel_vcs devel_url devel_branch devel_revision devel_subdir devel_bootstrap \
src_custom custom_location patch_order; do
CT_DoLog DEBUG "Package iterator: set ${v}=\${CT_${use}_${v^^}}"
eval "local ${v}=\${CT_${use}_${v^^}}"
done
@ -2004,6 +2000,7 @@ CT_PackageRun()
eval "eval ${v}=\${${v}//@/$}"
done
CT_DoLog DEBUG "Package iterator: run ${run} $*"
${run} "$@"
# Save certain variables that may be modified by the callback.
@ -2369,7 +2366,10 @@ CT_GetPkgBuildVersion()
fi
__do_GetPkgBuildVersion() {
tmp="${pkg_name}-${version}"
tmp="${pkg_name}"
if [ "${version}" != "unknown" ]; then
tmp+="-${version}"
fi
if [ "${src_devel}" = "y" ]; then
tmp+="-${devel_vcs}"
if [ -n "${devel_revision}" ]; then
@ -2387,18 +2387,6 @@ CT_GetPkgBuildVersion()
eval "${var}=\"${tmp}\""
}
# Get a package version as selected by a generated choice in kconfig.
CT_GetChoicePkgBuildVersion()
{
local choice="${1}"
local var="${2}"
local component
# Find the selected component
eval "component=\${CT_${choice}_CHOICE_KSYM}"
CT_GetPkgBuildVersion "${choice}" "${component}" "${var}"
}
# Finally, load paths.sh. For --enable-local build, it is located in
# the current directory (CT_TOP_DIR) while the rest of the scripts are
# in the source directory (CT_LIB_DIR). For other setups, paths.sh