[gcc r14-6058] ada: Fix Ada bootstrap on macOS

Rainer Orth ro@gcc.gnu.org
Fri Dec 1 15:47:53 GMT 2023


https://gcc.gnu.org/g:c55c2ac8db2a6447db4dd6fa8ad5c2b2ebcba298

commit r14-6058-gc55c2ac8db2a6447db4dd6fa8ad5c2b2ebcba298
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date:   Fri Dec 1 16:47:28 2023 +0100

    ada: Fix Ada bootstrap on macOS
    
    The recent warning changes broke Ada bootstrap on macOS:
    
    adaint.c: In function '__gnat_copy_attribs':
    adaint.c:3336:10: error: implicit declaration of function 'utimes'; did you
    mean 'utime'? [-Wimplicit-function-declaration]
     3336 |      if (utimes (to, tbuf) == -1) {
          |          ^~~~~~
          |          utime
    adaint.c: In function '__gnat_kill':
    adaint.c:3597:3: error: implicit declaration of function 'kill'
    [-Wimplicit-function-declaration]
     3597 |   kill (pid, sig);
          |   ^~~~
    terminals.c: In function 'allocate_pty_desc':
    terminals.c:1196:12: error: implicit declaration of function 'openpty'; did
    you mean 'openat'? [-Wimplicit-function-declaration]
     1196 |   status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL);
          |            ^~~~~~~
          |            openat
    terminals.c: In function '__gnat_setup_winsize':
    terminals.c:1392:6: error: implicit declaration of function 'kill'
    [-Wimplicit-function-declaration]
     1392 |      kill (desc->child_pid, SIGWINCH);
          |      ^~~~
    
    This patch fixes this by including the necessary headers: <sys/time.h>
    for utimes, <signal.h> for kill, and <util.h> for openpty.  With those
    changes, the build completed on x86_64-apple-darwin2[0-3] (make check
    still running).
    
    2023-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
    
            gcc/ada:
            * adaint.c [__APPLE__]: Include <signal.h>, <sys/time.h>.
            * terminals.c [!_WIN32]: Include <signal.h>.
            [__APPLE__]: Include <util.h>.
            Fix typos.

Diff:
---
 gcc/ada/adaint.c    | 2 ++
 gcc/ada/terminals.c | 8 ++++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
index 9bb3054d6a3..cbff393258e 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -85,6 +85,8 @@
 
 #if defined (__APPLE__)
 #include <unistd.h>
+#include <signal.h>
+#include <sys/time.h>
 #include <TargetConditionals.h>
 #endif
 
diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
index c0ee4a16bb1..14de0feb32a 100644
--- a/gcc/ada/terminals.c
+++ b/gcc/ada/terminals.c
@@ -31,7 +31,7 @@
 
 #define ATTRIBUTE_UNUSED __attribute__((unused))
 
-/* First all usupported platforms. Add stubs for exported routines. */
+/* First all unsupported platforms. Add stubs for exported routines. */
 
 #if defined (VMS) || defined (__vxworks) || defined (__Lynx__) \
   || defined (__ANDROID__) || defined (__PikeOS__) || defined(__DJGPP__)
@@ -1089,7 +1089,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
 {
 }
 
-#else /* defined(_WIN32, implementatin for all UNIXes */
+#else /* defined(_WIN32, implementation for all UNIXes */
 
 /* First defined some macro to identify easily some systems */
 #if defined (__FreeBSD__) \
@@ -1104,6 +1104,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <signal.h>
 #include <sys/ioctl.h>
 #include <termios.h>
 #include <fcntl.h>
@@ -1121,6 +1122,9 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
 #if defined (__hpux__)
 #   include <sys/stropts.h>
 #endif
+#if defined (__APPLE__)
+#   include <util.h>
+#endif
 
 #define CDISABLE _POSIX_VDISABLE


More information about the Gcc-cvs mailing list