[libc-commits] [clang] [libc] [libc] Support opaque FILE* on baremetal (PR #168931)
Paul Kirth via libc-commits
libc-commits at lists.llvm.org
Wed Dec 17 11:25:55 PST 2025
ilovepi wrote:
One of our runtimes CI bots is failing after this change to llvm libc.
Error Message:
```
FAILED: libc/src/stdfix/CMakeFiles/libc.src.stdfix.abshk.dir/abshk.cpp.obj
/b/s/w/ir/x/w/llvm_build/bin/clang++ --target=riscv32-unknown-elf -DLIBC_NAMESPACE=__llvm_libc_22_0_0_git -I/b/s/w/ir/x/w/llvm-llvm-project/libc -isystem /b/s/w/ir/x/w/llvm_build/bin/include/riscv32-unknown-unknown-elf --target=riscv32-unknown-elf -march=rv32imc_zicsr_zifencei -mabi=ilp32 -Wno-atomic-alignment "-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)" "-Dfprintf(stream, format, ...)=printf(format)" "-Dfputs(string, stream)=puts(string)" "-Dgettimeofday(tv, tz)" -D_LIBCPP_PRINT=1 -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -ffunction-sections -fdata-sections -ffile-prefix-map=/b/s/w/ir/x/w/llvm_build/runtimes/runtimes-riscv32-unknown-elf=../../../llvm-llvm-project -ffile-prefix-map=/b/s/w/ir/x/w/llvm-llvm-project/= -no-canonical-prefixes -O2 -g -DNDEBUG -std=gnu++17 --target=riscv32-unknown-elf -DLIBC_QSORT_IMPL=LIBC_QSORT_HEAP_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=element -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=element "-DLIBC_MATH=(LIBC_MATH_SKIP_ACCURATE_PASS | LIBC_MATH_SMALL_TABLES | LIBC_MATH_NO_ERRNO | LIBC_MATH_INTERMEDIATE_COMP_IN_FLOAT)" -fno-math-errno -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_EXTERNAL -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_SINGLE -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -DLIBC_TARGET_OS_IS_BAREMETAL -fpie -ffreestanding -DLIBC_FULL_BUILD -nostdlibinc -ffixed-point -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -DLIBC_COPT_PUBLIC_PACKAGING -MD -MT libc/src/stdfix/CMakeFiles/libc.src.stdfix.abshk.dir/abshk.cpp.obj -MF libc/src/stdfix/CMakeFiles/libc.src.stdfix.abshk.dir/abshk.cpp.obj.d -o libc/src/stdfix/CMakeFiles/libc.src.stdfix.abshk.dir/abshk.cpp.obj -c /b/s/w/ir/x/w/llvm-llvm-project/libc/src/stdfix/abshk.cpp
In file included from /b/s/w/ir/x/w/llvm-llvm-project/libc/src/stdfix/abshk.cpp:11:
In file included from /b/s/w/ir/x/w/llvm-llvm-project/libc/src/__support/fixed_point/fx_bits.h:26:
/b/s/w/ir/x/w/llvm_build/bin/include/riscv32-unknown-unknown-elf/stdio.h:57:5: error: conflicting types for 'printf'
57 | int printf(const char *__restrict, ...) __NOEXCEPT;
| ^
/b/s/w/ir/x/w/llvm_build/bin/include/riscv32-unknown-unknown-elf/stdio.h:43:5: note: previous declaration is here
43 | int fprintf(FILE *__restrict, const char *__restrict, ...) __NOEXCEPT;
| ^
<command line>:3:38: note: expanded from macro 'fprintf'
3 | #define fprintf(stream, format, ...) printf(format)
| ^
1 error generated.
```
Bot: https://ci.chromium.org/ui/p/fuchsia/builders/toolchain.ci/clang-target-riscv32-unknown-elf/b8695210183276689777/overview
Can you take a look?
https://github.com/llvm/llvm-project/pull/168931
More information about the libc-commits
mailing list