diff --git a/components/esp_libc/CMakeLists.txt b/components/esp_libc/CMakeLists.txt index 83fe92efe3d..2d11737adae 100644 --- a/components/esp_libc/CMakeLists.txt +++ b/components/esp_libc/CMakeLists.txt @@ -77,9 +77,7 @@ else() list(APPEND srcs "src/picolibc/picolibc_init.c" "src/picolibc/rand.c" - "src/picolibc/errno.c" - "src/picolibc/bufio_setvbuf.c") # TODO IDF-15494: remove this and the following lines - list(APPEND EXTRA_LINK_FLAGS "-Wl,--wrap=__bufio_setvbuf") + "src/picolibc/errno.c") if(CONFIG_LIBC_PICOLIBC_NEWLIB_COMPATIBILITY) list(APPEND srcs "src/picolibc/getreent.c") list(APPEND srcs "src/picolibc/fopencookie.c") diff --git a/components/esp_libc/src/picolibc/bufio_setvbuf.c b/components/esp_libc/src/picolibc/bufio_setvbuf.c deleted file mode 100644 index 5a925631338..00000000000 --- a/components/esp_libc/src/picolibc/bufio_setvbuf.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ -#include -#include -#include - -int __real___bufio_setvbuf(FILE *f, char *buf, int mode, size_t size); -int __wrap___bufio_setvbuf(FILE *f, char *buf, int mode, size_t size) -{ - // File lock is already acquired by the caller - int ret = -1; - bool workaround = false; - if (mode == _IONBF) { - workaround = true; - mode = _IOFBF; - size = 1; - buf = malloc(size); - if (buf == NULL) { - goto exit; - } - } - ret = __real___bufio_setvbuf(f, buf, mode, size); - if (workaround) { - struct __file_bufio *bf = (struct __file_bufio *)f; - - // Free buf if not applied - if (ret != 0 || bf->buf != buf) { - free(buf); - goto exit; - } - bf->bflags |= __BALL; - } - -exit: - return ret; -}