crosstool-ng/scripts/build/libc.sh
Alexey Neyman 40d5bf6440 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>
2018-12-01 10:10:51 -08:00

40 lines
1019 B
Bash

# C library build routines. We don't invoke the corresponding functions directly
# because some of them build on top of another. E.g. moxiebox runtime requires
# newlib as a prerequisite.
# Define default hooks - download/unpack just the main package; no-op build hooks.
# The actual implementation can override just what it needs then.
eval "${CT_LIBC//[^A-Za-z0-9]/_}_get() { CT_Fetch ${CT_LIBC_CHOICE_KSYM}; }"
eval "${CT_LIBC//[^A-Za-z0-9]/_}_extract() { CT_ExtractPatch ${CT_LIBC_CHOICE_KSYM}; }"
for _m in start_files main post_cc; do
eval "${CT_LIBC//[^A-Za-z0-9]/_}_${_m}() { :; }"
done
# Source the selected libc.
. "${CT_LIB_DIR}/scripts/build/libc/${CT_LIBC}.sh"
do_libc_get()
{
eval "${CT_LIBC//[^A-Za-z0-9]/_}_get"
}
do_libc_extract()
{
eval "${CT_LIBC//[^A-Za-z0-9]/_}_extract"
}
do_libc_start_files()
{
eval "${CT_LIBC//[^A-Za-z0-9]/_}_start_files"
}
do_libc_main()
{
eval "${CT_LIBC//[^A-Za-z0-9]/_}_main"
}
do_libc_post_cc()
{
eval "${CT_LIBC//[^A-Za-z0-9]/_}_post_cc"
}