raspberrypi / pico-sdk

BSD 3-Clause "New" or "Revised" License
3.63k stars 902 forks source link

Error when PICO_CLIB picolibc for Pico 2 #1831

Open matsobdev opened 1 month ago

matsobdev commented 1 month ago

Windows, Ubuntu, ARM, RISC-V (riscv32-corev-elf or riscv32-unknown-elf) same errors. For just blink:

PICO_SDK_PATH is E:/Download/Pico_2/pico-sdk-2.0.0
Target board (PICO_BOARD) is 'pico2'.
Using board configuration from E:/Download/Pico_2/pico-sdk-2.0.0/src/boards/include/boards/pico2.h
Pico Platform (PICO_PLATFORM) is 'rp2350-arm-s'.
Configuring toolchain based on PICO_COMPILER 'pico_arm_cortex_m33_gcc'
-- The C compiler identification is GNU 13.3.1
-- The CXX compiler identification is GNU 13.3.1
-- The ASM compiler identification is GNU
-- Found assembler: E:/Download/Pico_2/arm-gnu-toolchain-13.3.rel1-mingw-w64-i686-arm-none-eabi/bin/arm-none-eabi-gcc.exe
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: E:/Download/Pico_2/arm-gnu-toolchain-13.3.rel1-mingw-w64-i686-arm-none-eabi/bin/arm-none-eabi-gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: E:/Download/Pico_2/arm-gnu-toolchain-13.3.rel1-mingw-w64-i686-arm-none-eabi/bin/arm-none-eabi-g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Build type is Release
-- Found Python3: C:/DEV/Python/python.exe (found version "3.8.10") found components: Interpreter
TinyUSB available at E:/Download/Pico_2/pico-sdk-2.0.0/lib/tinyusb/src/portable/raspberrypi/rp2040; enabling build support for USB.
BTstack available at E:/Download/Pico_2/pico-sdk-2.0.0/lib/btstack
cyw43-driver available at E:/Download/Pico_2/pico-sdk-2.0.0/lib/cyw43-driver
lwIP available at E:/Download/Pico_2/pico-sdk-2.0.0/lib/lwip
mbedtls available at E:/Download/Pico_2/pico-sdk-2.0.0/lib/mbedtls
-- Configuring done
-- Generating done
-- Build files have been written to: W:/pico2/pico3/build
[54/59] Building C object CMakeFiles/project_name.dir/E_/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c.obj
FAILED: CMakeFiles/project_name.dir/E_/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c.obj
E:\Download\Pico_2\arm-gnu-toolchain-13.3.rel1-mingw-w64-i686-arm-none-eabi\bin\arm-none-eabi-gcc.exe -DLIB_BOOT_STAGE2_HEADERS=1 -DLIB_PICO_ATOMIC=1
-DLIB_PICO_BIT_OPS=1 -DLIB_PICO_BIT_OPS_PICO=1 -DLIB_PICO_CLIB_INTERFACE=1 -DLIB_PICO_CRT0=1 -DLIB_PICO_CXX_OPTIONS=1 -DLIB_PICO_DIVIDER=1 -DLIB_PICO_
DIVIDER_COMPILER=1 -DLIB_PICO_DOUBLE=1 -DLIB_PICO_DOUBLE_PICO=1 -DLIB_PICO_FLOAT=1 -DLIB_PICO_FLOAT_PICO=1 -DLIB_PICO_FLOAT_PICO_VFP=1 -DLIB_PICO_INT6
4_OPS=1 -DLIB_PICO_INT64_OPS_COMPILER=1 -DLIB_PICO_MALLOC=1 -DLIB_PICO_MEM_OPS=1 -DLIB_PICO_MEM_OPS_COMPILER=1 -DLIB_PICO_PICOLIBC_INTERFACE=1 -DLIB_P
ICO_PLATFORM=1 -DLIB_PICO_PLATFORM_COMPILER=1 -DLIB_PICO_PLATFORM_PANIC=1 -DLIB_PICO_PLATFORM_SECTIONS=1 -DLIB_PICO_PRINTF=1 -DLIB_PICO_PRINTF_PICO=1
-DLIB_PICO_RUNTIME=1 -DLIB_PICO_RUNTIME_INIT=1 -DLIB_PICO_STANDARD_BINARY_INFO=1 -DLIB_PICO_STANDARD_LINK=1 -DLIB_PICO_STDIO=1 -DLIB_PICO_STDIO_UART=1
 -DLIB_PICO_STDLIB=1 -DLIB_PICO_SYNC=1 -DLIB_PICO_SYNC_CRITICAL_SECTION=1 -DLIB_PICO_SYNC_MUTEX=1 -DLIB_PICO_SYNC_SEM=1 -DLIB_PICO_TIME=1 -DLIB_PICO_T
IME_ADAPTER=1 -DLIB_PICO_UTIL=1 -DPICO_32BIT=1 -DPICO_BOARD=\"pico2\" -DPICO_BUILD=1 -DPICO_CMAKE_BUILD_TYPE=\"Release\" -DPICO_COPY_TO_RAM=0 -DPICO_C
XX_ENABLE_EXCEPTIONS=0 -DPICO_NO_FLASH=0 -DPICO_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_RP2350=1 -DPICO_TARGET_NAME=\"project_name\" -DPICO_USE_BLOCKE
D_RAM=0 -IE:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_atomic/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/pico_stdlib_heade
rs/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_gpio/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/pico_
base_headers/include -isystem generated/pico_base -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/boards/include -isystem E:/Download/Pico_2/pico-sdk-2
.0.0/src/rp2350/pico_platform/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2350/hardware_regs/include -isystem E:/Download/Pico_2/pico-sdk
-2.0.0/src/rp2_common/hardware_base/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_platform_compiler/include -isystem E:/Downl
oad/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_platform_panic/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_platform_sections/
include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_dcp/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2350/hardware_
structs/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_rcp/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/h
ardware_claim/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_sync/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/r
p2_common/hardware_sync_spin_lock/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_irq/include -isystem E:/Download/Pico_2/p
ico-sdk-2.0.0/src/rp2_common/hardware_uart/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_resets/include -isystem E:/Downl
oad/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_clocks/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_pll/include -isyst
em E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_vreg/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_watchdog/
include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_ticks/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/har
dware_xosc/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_divider/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/c
ommon/pico_time/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_timer/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/sr
c/common/pico_sync/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/pico_util/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_
common/pico_time_adapter/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_runtime/include -isystem E:/Download/Pico_2/pico-sdk-2
.0.0/src/rp2_common/pico_runtime_init/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/pico_bit_ops_headers/include -isystem E:/Download/
Pico_2/pico-sdk-2.0.0/src/common/pico_divider_headers/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_double/include -isystem E
:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_float/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_malloc/include -isys
tem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/pico_binary_info/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_printf/includ
e -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_stdio/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_stdio_ua
rt/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_bootrom/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/boot_p
icoboot_headers/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_boot_lock/include -isystem E:/Download/Pico_2/pico-sdk-2.0.
0/src/rp2350/boot_stage2/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/boot_picobin_headers/include -mcpu=cortex-m33 -mthumb -march=ar
mv8-m.main+fp+dsp -mfloat-abi=softfp -mcmse -g -O3 -DNDEBUG -ffunction-sections -fdata-sections -std=gnu11 -MD -MT CMakeFiles/project_name.dir/E_/Down
load/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c.obj -MF CMakeFiles\project_name.dir\E_\Download\Pico_2\pico-sdk-2.0
.0\src\rp2_common\pico_clib_interface\picolibc_interface.c.obj.d -o CMakeFiles/project_name.dir/E_/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_
clib_interface/picolibc_interface.c.obj -c E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:51:23: warning: implicit declaration of function 'FDEV_SETUP
_STREAM' [-Wimplicit-function-declaration]
   51 | static FILE __stdio = FDEV_SETUP_STREAM(picolibc_putc,
      |                       ^~~~~~~~~~~~~~~~~
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:54:41: error: '_FDEV_SETUP_RW' undeclared here (not in a fun
ction)
   54 |                                         _FDEV_SETUP_RW);
      |                                         ^~~~~~~~~~~~~~
In file included from E:/Download/Pico_2/arm-gnu-toolchain-13.3.rel1-mingw-w64-i686-arm-none-eabi/arm-none-eabi/include/stdio.h:60,
                 from E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:7:
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:56:13: error: expected ')' before '->' token
   56 | FILE *const stdin = &__stdio; __strong_reference(stdin, stdout); __strong_reference(stdin, stderr);
      |             ^~~~~
In file included from E:/Download/Pico_2/arm-gnu-toolchain-13.3.rel1-mingw-w64-i686-arm-none-eabi/arm-none-eabi/include/stdio.h:35:
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:56:57: error: expected ')' before '->' token
   56 | FILE *const stdin = &__stdio; __strong_reference(stdin, stdout); __strong_reference(stdin, stderr);
      |                                                         ^~~~~~
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:56:92: error: expected ')' before '->' token
   56 | FILE *const stdin = &__stdio; __strong_reference(stdin, stdout); __strong_reference(stdin, stderr);
      |                                                                                            ^~~~~~
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c: In function 'runtime_init_pre_core_tls_setup':
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:123:14: warning: taking address of expression of type 'void'

  123 |     _set_tls(&__tls_base);
      |              ^

ninja: build stopped: subcommand failed.

for some USB serial printf():

PICO_SDK_PATH is E:/Download/Pico_2/pico-sdk-2.0.0
Target board (PICO_BOARD) is 'pico2'.
Using board configuration from E:/Download/Pico_2/pico-sdk-2.0.0/src/boards/include/boards/pico2.h
Pico Platform (PICO_PLATFORM) is 'rp2350-riscv'.
Configuring toolchain based on PICO_COMPILER 'pico_riscv_gcc_zcb_zcmp'
-- The C compiler identification is GNU 12.0.1
-- The CXX compiler identification is GNU 12.0.1
-- The ASM compiler identification is GNU
-- Found assembler: E:/Download/Pico_2/corev-openhw-gcc-win64-20230622/bin/riscv32-corev-elf-gcc.exe
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: E:/Download/Pico_2/corev-openhw-gcc-win64-20230622/bin/riscv32-corev-elf-gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: E:/Download/Pico_2/corev-openhw-gcc-win64-20230622/bin/riscv32-corev-elf-g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Build type is Release
-- Found Python3: C:/DEV/Python/python.exe (found version "3.8.10") found components: Interpreter
TinyUSB available at E:/Download/Pico_2/pico-sdk-2.0.0/lib/tinyusb/src/portable/raspberrypi/rp2040; enabling build support for USB.
BTstack available at E:/Download/Pico_2/pico-sdk-2.0.0/lib/btstack
cyw43-driver available at E:/Download/Pico_2/pico-sdk-2.0.0/lib/cyw43-driver
lwIP available at E:/Download/Pico_2/pico-sdk-2.0.0/lib/lwip
mbedtls available at E:/Download/Pico_2/pico-sdk-2.0.0/lib/mbedtls
-- Configuring done
-- Generating done
-- Build files have been written to: W:/pico2/pico5/build
[43/72] Building C object CMakeFiles/project_name.dir/E_/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c.obj
FAILED: CMakeFiles/project_name.dir/E_/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c.obj
E:\Download\Pico_2\corev-openhw-gcc-win64-20230622\bin\riscv32-corev-elf-gcc.exe -DCFG_TUSB_DEBUG=0 -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DCFG_TUSB_OS=OPT_OS
_PICO -DLIB_BOOT_STAGE2_HEADERS=1 -DLIB_PICO_ATOMIC=1 -DLIB_PICO_BIT_OPS=1 -DLIB_PICO_BIT_OPS_PICO=1 -DLIB_PICO_CLIB_INTERFACE=1 -DLIB_PICO_CRT0=1 -DL
IB_PICO_CXX_OPTIONS=1 -DLIB_PICO_DIVIDER=1 -DLIB_PICO_DIVIDER_COMPILER=1 -DLIB_PICO_DOUBLE=1 -DLIB_PICO_DOUBLE_COMPILER=1 -DLIB_PICO_FIX_RP2040_USB_DE
VICE_ENUMERATION=1 -DLIB_PICO_FLOAT=1 -DLIB_PICO_FLOAT_COMPILER=1 -DLIB_PICO_INT64_OPS=1 -DLIB_PICO_INT64_OPS_COMPILER=1 -DLIB_PICO_MALLOC=1 -DLIB_PIC
O_MEM_OPS=1 -DLIB_PICO_MEM_OPS_COMPILER=1 -DLIB_PICO_PICOLIBC_INTERFACE=1 -DLIB_PICO_PLATFORM=1 -DLIB_PICO_PLATFORM_COMPILER=1 -DLIB_PICO_PLATFORM_PAN
IC=1 -DLIB_PICO_PLATFORM_SECTIONS=1 -DLIB_PICO_PRINTF=1 -DLIB_PICO_PRINTF_PICO=1 -DLIB_PICO_RUNTIME=1 -DLIB_PICO_RUNTIME_INIT=1 -DLIB_PICO_STANDARD_BI
NARY_INFO=1 -DLIB_PICO_STANDARD_LINK=1 -DLIB_PICO_STDIO=1 -DLIB_PICO_STDIO_USB=1 -DLIB_PICO_STDLIB=1 -DLIB_PICO_SYNC=1 -DLIB_PICO_SYNC_CRITICAL_SECTIO
N=1 -DLIB_PICO_SYNC_MUTEX=1 -DLIB_PICO_SYNC_SEM=1 -DLIB_PICO_TIME=1 -DLIB_PICO_TIME_ADAPTER=1 -DLIB_PICO_UNIQUE_ID=1 -DLIB_PICO_UTIL=1 -DPICO_32BIT=1
-DPICO_BOARD=\"pico2\" -DPICO_BUILD=1 -DPICO_CMAKE_BUILD_TYPE=\"Release\" -DPICO_COPY_TO_RAM=0 -DPICO_CXX_ENABLE_EXCEPTIONS=0 -DPICO_NO_FLASH=1 -DPICO
_NO_HARDWARE=0 -DPICO_ON_DEVICE=1 -DPICO_RISCV=1 -DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1 -DPICO_RP2350=1 -DPICO_TARGET_NAME=\"project_name\" -DPICO_USE_
BLOCKED_RAM=0 -IE:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_atomic/include -IE:/Download/Pico_2/pico-sdk-2.0.0/lib/tinyusb/src -isystem E:/D
ownload/Pico_2/pico-sdk-2.0.0/src/common/pico_stdlib_headers/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_gpio/include -
isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/pico_base_headers/include -isystem generated/pico_base -isystem E:/Download/Pico_2/pico-sdk-2.0.0
/src/boards/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2350/pico_platform/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2350/
hardware_regs/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_base/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/r
p2_common/pico_platform_compiler/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_platform_panic/include -isystem E:/Download/Pi
co_2/pico-sdk-2.0.0/src/rp2_common/pico_platform_sections/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_dcp/include -isys
tem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2350/hardware_structs/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_rcp/inclu
de -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/hardware_claim/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_syn
c/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_sync_spin_lock/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2
_common/hardware_irq/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_hazard3/include -isystem E:/Download/Pico_2/pico-sdk-2
.0.0/src/rp2_common/hardware_uart/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_resets/include -isystem E:/Download/Pico_
2/pico-sdk-2.0.0/src/rp2_common/hardware_clocks/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_pll/include -isystem E:/Dow
nload/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_vreg/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_watchdog/include -
isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_ticks/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_xos
c/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_divider/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/pic
o_time/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_timer/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/
pico_sync/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/pico_util/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pi
co_time_adapter/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_runtime/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/
rp2_common/pico_runtime_init/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/pico_bit_ops_headers/include -isystem E:/Download/Pico_2/pi
co-sdk-2.0.0/src/common/pico_divider_headers/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_double/include -isystem E:/Downloa
d/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_float/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_malloc/include -isystem E:/Do
wnload/Pico_2/pico-sdk-2.0.0/src/common/pico_binary_info/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_printf/include -isyste
m E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_stdio/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_stdio_usb/include
 -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_unique_id/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_f
lash/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_bootrom/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/boot
_picoboot_headers/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_boot_lock/include -isystem E:/Download/Pico_2/pico-sdk-2.
0.0/src/common/pico_usb_reset_interface_headers/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/hardware_riscv/include -isystem E:/D
ownload/Pico_2/pico-sdk-2.0.0/src/rp2350/boot_stage2/include -isystem E:/Download/Pico_2/pico-sdk-2.0.0/src/common/boot_picobin_headers/include -isyst
em E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include -march=rv32ima_zicsr_zifencei_zba_zbb_zbs_zbkb_zca_
zcb_zcmp -mabi=ilp32 -g -O3 -DNDEBUG -Wall -Werror -ffunction-sections -fdata-sections -std=gnu11 -MD -MT CMakeFiles/project_name.dir/E_/Download/Pico
_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c.obj -MF CMakeFiles\project_name.dir\E_\Download\Pico_2\pico-sdk-2.0.0\src\rp
2_common\pico_clib_interface\picolibc_interface.c.obj.d -o CMakeFiles/project_name.dir/E_/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_inte
rface/picolibc_interface.c.obj -c E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:51:23: error: implicit declaration of function 'FDEV_SETUP_S
TREAM' [-Werror=implicit-function-declaration]
   51 | static FILE __stdio = FDEV_SETUP_STREAM(picolibc_putc,
      |                       ^~~~~~~~~~~~~~~~~
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:54:41: error: '_FDEV_SETUP_RW' undeclared here (not in a fun
ction)
   54 |                                         _FDEV_SETUP_RW);
      |                                         ^~~~~~~~~~~~~~
In file included from e:\download\pico_2\corev-openhw-gcc-win64-20230622\riscv32-corev-elf\include\stdio.h:60,
                 from E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:7:
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:56:13: error: expected ')' before '->' token
   56 | FILE *const stdin = &__stdio; __strong_reference(stdin, stdout); __strong_reference(stdin, stderr);
      |             ^~~~~
In file included from e:\download\pico_2\corev-openhw-gcc-win64-20230622\riscv32-corev-elf\include\stdio.h:35:
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:56:57: error: expected ')' before '->' token
   56 | FILE *const stdin = &__stdio; __strong_reference(stdin, stdout); __strong_reference(stdin, stderr);
      |                                                         ^~~~~~
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:56:92: error: expected ')' before '->' token
   56 | FILE *const stdin = &__stdio; __strong_reference(stdin, stdout); __strong_reference(stdin, stderr);
      |                                                                                            ^~~~~~
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c: In function 'runtime_init_pre_core_tls_setup':
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:123:14: error: taking address of expression of type 'void' [
-Werror]
  123 |     _set_tls(&__tls_base);
      |              ^
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c: At top level:
E:/Download/Pico_2/pico-sdk-2.0.0/src/rp2_common/pico_clib_interface/picolibc_interface.c:51:13: error: '__stdio' defined but not used [-Werror=unused
-variable]
   51 | static FILE __stdio = FDEV_SETUP_STREAM(picolibc_putc,
      |             ^~~~~~~
cc1.exe: all warnings being treated as errors

ninja: build stopped: subcommand failed.
kilograham commented 4 weeks ago

What exactly are you trying to do; just setting PICO_CLIB to another value won't work at the moment, since the CLIB is bundled with the compiler. Perhaps you have a compiler which bundles multiple clibs, i which case this (setting PICO_CLIB to pick amongst them) will probably be supported in the future, but thus far we have not tested it.

TLDR is that PICO_CLIB is not a config parameter yet