https://gcc.gnu.org/g:5fad8874300ef67c577cc204e339dca6bca15467

commit r14-10502-g5fad8874300ef67c577cc204e339dca6bca15467
Author: Detlef Vollmann <d...@vollmann.ch>
Date:   Tue Jul 23 09:25:22 2024 +0100

    libstdc++: Do not use isatty on avr [PR115482]
    
    avrlibc has an incomplete unistd.h that doesn't have isatty.
    So building libstdc++ fails when compiling c++23/print.cc.
    As a workaround I added a check for AVR.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/115482
            * src/c++23/print.cc (__open_terminal) [__AVR__]: Do not use
            isatty.
    
    (cherry picked from commit 8439405e38c56b774cf3c65bdafae5f9e11d470a)

Diff:
---
 libstdc++-v3/src/c++23/print.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libstdc++-v3/src/c++23/print.cc b/libstdc++-v3/src/c++23/print.cc
index 99a19cd45002..558dc149d125 100644
--- a/libstdc++-v3/src/c++23/print.cc
+++ b/libstdc++-v3/src/c++23/print.cc
@@ -75,7 +75,7 @@ namespace
 #ifdef _WIN32
        if (int fd = ::_fileno(f); fd >= 0)
          return check_for_console((void*)_get_osfhandle(fd));
-#elifdef _GLIBCXX_HAVE_UNISTD_H
+#elif defined _GLIBCXX_HAVE_UNISTD_H && ! defined __AVR__
        if (int fd = (::fileno)(f); fd >= 0 && ::isatty(fd))
          return f;
 #endif
@@ -100,7 +100,7 @@ namespace
 #ifdef _WIN32
     if (auto fb = dynamic_cast<filebuf*>(sb))
       return check_for_console(fb->native_handle());
-#elifdef _GLIBCXX_HAVE_UNISTD_H
+#elif defined _GLIBCXX_HAVE_UNISTD_H && ! defined __AVR__
     if (auto fb = dynamic_cast<filebuf*>(sb))
       if (int fd = fb->native_handle(); fd >= 0 && ::isatty(fd))
        return ::fdopen(::dup(fd), "w"); // Caller must call fclose.

Reply via email to