summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2021-01-08 01:21:39 (GMT)
committerKeith Packard <keithp@keithp.com>2021-01-09 01:48:33 (GMT)
commit7e457684ea05795be91265cc5bc0320995288871 (patch)
tree55e4c5f26808cdd4af017daed90e243cc277d1e9 /scripts
parente785f7c5c44fbf885425506d1e9660f119d18959 (diff)
picolibc: Convert to companion library
This allows configurations to include picolibc without excluding another C library. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/build/companion_libs/340-picolibc.sh (renamed from scripts/build/libc/picolibc.sh)37
1 files changed, 25 insertions, 12 deletions
diff --git a/scripts/build/libc/picolibc.sh b/scripts/build/companion_libs/340-picolibc.sh
index 152125c..c0128c1 100644
--- a/scripts/build/libc/picolibc.sh
+++ b/scripts/build/companion_libs/340-picolibc.sh
@@ -5,22 +5,30 @@
# Edited by Keith Packard <keithp@keithp.com>
#
-picolibc_start_files()
-{
- CT_DoStep INFO "Installing C library headers & start files"
- CT_DoExecLog ALL cp -a "${CT_SRC_DIR}/picolibc/newlib/libc/include/." \
- "${CT_HEADERS_DIR}"
- CT_EndStep
+do_picolibc_get() { :; }
+do_picolibc_extract() { :; }
+do_picolibc_for_build() { :; }
+do_picolibc_for_host() { :; }
+do_picolibc_for_target() { :; }
+
+if [ "${CT_COMP_LIBS_PICOLIBC}" = "y" ]; then
+
+# Download picolibc
+do_picolibc_get() {
+ CT_Fetch PICOLIBC
}
-picolibc_main()
-{
+do_picolibc_extract() {
+ CT_ExtractPatch PICOLIBC
+}
+
+do_picolibc_for_target() {
local -a picolibc_opts
local cflags_for_target
- CT_DoStep INFO "Installing C library"
+ CT_DoStep INFO "Installing Picolibc library"
- CT_mkdir_pushd "${CT_BUILD_DIR}/build-libc"
+ CT_mkdir_pushd "${CT_BUILD_DIR}/build-picolibc-build-${CT_BUILD}"
CT_DoLog EXTRA "Configuring Picolibc library"
@@ -91,11 +99,14 @@ c_args = [ ${meson_cflags} '-nostdlib', '-fno-common', '-ftls-model=local-exec'
needs_exe_wrapper = true
skip_sanity_check = true
EOF
+
CT_DoExecLog CFG \
meson \
--cross-file picolibc-cross.txt \
- --prefix=${CT_SYSROOT_DIR} \
- -Dspecsdir=${CT_SYSROOT_DIR}/lib \
+ --prefix="${CT_PREFIX_DIR}" \
+ -Dincludedir=picolibc/include \
+ -Dlibdir=picolibc/${CT_TARGET}/lib \
+ -Dspecsdir="${CT_SYSROOT_DIR}"/lib \
"${CT_SRC_DIR}/picolibc" \
"${picolibc_opts[@]}" \
"${CT_LIBC_PICOLIBC_EXTRA_CONFIG_ARRAY[@]}"
@@ -109,3 +120,5 @@ EOF
CT_Popd
CT_EndStep
}
+
+fi