__ssputws_r undefined while using nano.specs on fpv4-sp-d16 hard

Corinna Vinschen vinschen@redhat.com
Tue Jul 30 12:55:18 GMT 2024


There's already an ongoing thread in terms of this problem:
https://sourceware.org/pipermail/newlib/2024/021160.html

The proposed patch still has a small problem apparently:
https://sourceware.org/pipermail/newlib/2024/021184.html


Corinna


On Jul 20 21:58, Cui Alan wrote:
> Hello,
> I'm build STM32G474 system using newlib-nano.
> While linking, it reported errors:
> /usr/lib/gcc/arm-none-eabi/13.2.1/../../../arm-none-eabi/bin/ld: /usr/lib/gcc/arm-none-eabi/13.2.1/../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libg_nano.a(libc_a-svfwprintf.o): in function `_svfwprintf_r':
> /build/reproducible-path/newlib-4.4.0.20231231/build_nano/arm-none-eabi/thumb/v7e-m+fp/hard/newlib/../../../../../../newlib/libc/stdio/vfwprintf.c:647:(.text+0x2ac): undefined reference to `__ssputws_r'
> /usr/lib/gcc/arm-none-eabi/13.2.1/../../../arm-none-eabi/bin/ld: /build/reproducible-path/newlib-4.4.0.20231231/build_nano/arm-none-eabi/thumb/v7e-m+fp/hard/newlib/../../../../../../newlib/libc/stdio/vfwprintf.c:1445:(.text+0x2d6): undefined reference to `__ssputws_r'
> /usr/lib/gcc/arm-none-eabi/13.2.1/../../../arm-none-eabi/bin/ld: /build/reproducible-path/newlib-4.4.0.20231231/build_nano/arm-none-eabi/thumb/v7e-m+fp/hard/newlib/../../../../../../newlib/libc/stdio/vfwprintf.c:1491:(.text+0x3cc): undefined reference to `__ssputws_r'
> /usr/lib/gcc/arm-none-eabi/13.2.1/../../../arm-none-eabi/bin/ld: /build/reproducible-path/newlib-4.4.0.20231231/build_nano/arm-none-eabi/thumb/v7e-m+fp/hard/newlib/../../../../../../newlib/libc/stdio/vfwprintf.c:1492:(.text+0x416): undefined reference to `__ssputws_r'
> /usr/lib/gcc/arm-none-eabi/13.2.1/../../../arm-none-eabi/bin/ld: /build/reproducible-path/newlib-4.4.0.20231231/build_nano/arm-none-eabi/thumb/v7e-m+fp/hard/newlib/../../../../../../newlib/libc/stdio/vfwprintf.c:1442:(.text+0x42c): undefined reference to `__ssputws_r'
> /usr/lib/gcc/arm-none-eabi/13.2.1/../../../arm-none-eabi/bin/ld: /usr/lib/gcc/arm-none-eabi/13.2.1/../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libg_nano.a(libc_a-svfwprintf.o):/build/reproducible-path/newlib-4.4.0.20231231/build_nano/arm-none-eabi/thumb/v7e-m+fp/hard/newlib/../../../../../../newlib/libc/stdio/vfwprintf.c:1436: more undefined references to `__ssputws_r' follow
> 
> Flags for g++:
> -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard --specs=nosys.specs --specs=nano.specs -DSTM32G474xx -DSTM32G4xx -DUSE_HAL_DRIVER -Wall -Wextra -O0 -g3 -fdata-sections -ffunction-sections -g -std=gnu17 -MD -MT
> 
> Flags for linker(g++):
> -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard --specs=nosys.specs --specs=nano.specs -DSTM32G474xx -DSTM32G4xx -DUSE_HAL_DRIVER -Wall -Wextra -O0 -g3 -fdata-sections -ffunction-sections -fno-rtti -fno-exceptions -fno-threadsafe-statics -g  -T "/home/alancui/ArisaFirmware/src/system.ld" -Wl,-Map=arisafw.map -Wl,--gc-sections -Wl,--start-group -Wl,--end-group -Wl,--print-memory-usage
> 
> gcc version 13.2.1 20231009 (15:13.2.rel1-2) (Debian)
> Package: libstdc++-arm-none-eabi-newlib: 15:13.2.rel1-2+26(Debian)
> 
> After add a proxy forward __ssputws_r  to __ssputs_r as what Cygwin did (newlib/libc/stdio/ssputws_r.c), the system works fine.
> extern int __ssputs_r(struct _reent *ptr, FILE *fp, const char *buf, size_t len); int __ssputws_r(struct _reent *ptr, FILE *fp, const wchar_t *buf, size_t len) {
>     return __ssputs_r(ptr, fp, (const char *)buf, len * sizeof(wchar_t)); }
> 
> I'd like to know is that a configuration error or a bug of newlib.
> 
> Alan



More information about the Newlib mailing list