diff options
Diffstat (limited to 'scripts/build/companion_libs')
-rw-r--r-- | scripts/build/companion_libs/100-gmp.sh | 4 | ||||
-rw-r--r-- | scripts/build/companion_libs/220-ncurses.sh | 4 | ||||
-rw-r--r-- | scripts/build/companion_libs/340-picolibc.sh | 27 |
3 files changed, 28 insertions, 7 deletions
diff --git a/scripts/build/companion_libs/100-gmp.sh b/scripts/build/companion_libs/100-gmp.sh index 28deff97..4ecaa721 100644 --- a/scripts/build/companion_libs/100-gmp.sh +++ b/scripts/build/companion_libs/100-gmp.sh @@ -122,12 +122,14 @@ do_gmp_backend() { extra_config+=("--with-pic") fi + cflags+=" ${CT_GMP_EXTRA_CFLAGS}" + # GMP's configure script doesn't respect the host parameter # when not cross-compiling, ie when build == host so set # CC_FOR_BUILD and CPP_FOR_BUILD. CT_DoExecLog CFG \ CC_FOR_BUILD="${CT_BUILD}-gcc" \ - CPP_FOR_BUILD="{CT_BUILD}-cpp" \ + CPP_FOR_BUILD="${CT_BUILD}-cpp" \ CC="${host}-gcc" \ CFLAGS="${cflags} -fexceptions" \ LDFLAGS="${ldflags}" \ diff --git a/scripts/build/companion_libs/220-ncurses.sh b/scripts/build/companion_libs/220-ncurses.sh index f1fcd1a1..36aadae6 100644 --- a/scripts/build/companion_libs/220-ncurses.sh +++ b/scripts/build/companion_libs/220-ncurses.sh @@ -133,6 +133,8 @@ do_ncurses_backend() { esac done + ncurses_opts+=("--disable-widec") + if [ "${CT_NCURSES_NEW_ABI}" != "y" ]; then ncurses_opts+=("--with-abi-version=5") fi @@ -150,6 +152,8 @@ do_ncurses_backend() { ncurses_opts+=("--with-shared") fi + cflags+=" ${CT_NCURSES_EXTRA_CFLAGS}" + CT_DoLog EXTRA "Configuring ncurses" CT_DoExecLog CFG \ CFLAGS="${cflags}" \ diff --git a/scripts/build/companion_libs/340-picolibc.sh b/scripts/build/companion_libs/340-picolibc.sh index 35ee0eaa..bef72e0f 100644 --- a/scripts/build/companion_libs/340-picolibc.sh +++ b/scripts/build/companion_libs/340-picolibc.sh @@ -26,13 +26,7 @@ do_picolibc_common_install() { yn_args="IO_C99FMT:io-c99-formats IO_LL:io-long-long -REGISTER_FINI:newlib-register-fini NANO_MALLOC:newlib-nano-malloc -ATEXIT_DYNAMIC_ALLOC:newlib-atexit-dynamic-alloc -GLOBAL_ATEXIT:newlib-global-atexit -LITE_EXIT:lite-exit -MULTITHREAD:newlib-multithread -RETARGETABLE_LOCKING:newlib-retargetable-locking " for ynarg in $yn_args; do @@ -48,6 +42,24 @@ RETARGETABLE_LOCKING:newlib-retargetable-locking fi done + # Check how picolibc wants threading support to be specified + + if grep -q single-thread "${CT_SRC_DIR}/picolibc/meson_options.txt"; then + if [ "${CT_LIBC_PICOLIBC_MULTITHREAD}" = "y" ]; then + picolibc_opts+=("-Dsingle-thread=false") + else + picolibc_opts+=("-Dsingle-thread=true") + fi + else + if [ "${CT_LIBC_PICOLIBC_MULTITHREAD}" = "y" ]; then + picolibc_opts+=("-Dnewlib-retargetable-locking=true") + picolibc_opts+=("-Dnewlib-multithread=true") + else + picolibc_opts+=("-Dnewlib-retargetable-locking=false") + picolibc_opts+=("-Dnewlib-multithread=false") + fi + fi + [ "${CT_LIBC_PICOLIBC_EXTRA_SECTIONS}" = "y" ] && \ CT_LIBC_PICOLIBC_TARGET_CFLAGS="${CT_LIBC_PICOLIBC_TARGET_CFLAGS} -ffunction-sections -fdata-sections" @@ -157,6 +169,9 @@ do_cc_libstdcxx_picolibc() if [ "${CT_LIBC_PICOLIBC_ENABLE_TARGET_OPTSPACE}" = "y" ]; then final_opts+=( "enable_optspace=yes" ) fi + if [ -n "${CT_LIBC_PICOLIBC_GCC_LIBSTDCXX_TARGET_CXXFLAGS}" ]; then + final_opts+=( "extra_cxxflags_for_target=${CT_LIBC_PICOLIBC_GCC_LIBSTDCXX_TARGET_CXXFLAGS}" ) + fi if [ "${CT_BARE_METAL}" = "y" ]; then final_opts+=( "mode=baremetal" ) |