bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

get-rusage-data: avoid warnings on Mac OS X


From: Bruno Haible
Subject: get-rusage-data: avoid warnings on Mac OS X
Date: Sat, 22 Apr 2017 14:59:25 +0200
User-agent: KMail/5.1.3 (Linux/4.4.0-72-generic; KDE/5.18.0; x86_64; ; )

On Mac OS X, with CPPFLAGS=-Wall, I'm seeing these warnings:

get-rusage-data.c:230:30: warning: 'sbrk' is deprecated 
[-Wdeprecated-declarations]
            void *new_page = sbrk (pagesize);
                             ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/unistd.h:587:7:
 note: 'sbrk' has been explicitly marked deprecated here
void    *sbrk(int);
         ^
get-rusage-data.c:235:17: warning: 'sbrk' is deprecated 
[-Wdeprecated-declarations]
                sbrk (- pagesize);
                ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/unistd.h:587:7:
 note: 'sbrk' has been explicitly marked deprecated here
void    *sbrk(int);
         ^
get-rusage-data.c:274:30: warning: 'sbrk' is deprecated 
[-Wdeprecated-declarations]
            void *new_page = sbrk (pagesize);
                             ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/unistd.h:587:7:
 note: 'sbrk' has been explicitly marked deprecated here
void    *sbrk(int);
         ^
get-rusage-data.c:279:17: warning: 'sbrk' is deprecated 
[-Wdeprecated-declarations]
                sbrk (- pagesize);
                ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/unistd.h:587:7:
 note: 'sbrk' has been explicitly marked deprecated here
void    *sbrk(int);
         ^
get-rusage-data.c:363:15: warning: 'sbrk' is deprecated 
[-Wdeprecated-declarations]
  brk_value = sbrk (0);
              ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/unistd.h:587:7:
 note: 'sbrk' has been explicitly marked deprecated here
void    *sbrk(int);
         ^

This fixes it.


2017-04-22  Bruno Haible  <address@hidden>

        get-rusage-data: Avoid warnings on Mac OS X.
        * lib/get-rusage-data.c: On Mac OS X, don't define
        get_rusage_data_via_setrlimit nor get_rusage_data_via_iterator.
        (get_rusage_data) [Mac OS X]: Just return 0.

diff --git a/lib/get-rusage-data.c b/lib/get-rusage-data.c
index 62293ad..1fc8202 100644
--- a/lib/get-rusage-data.c
+++ b/lib/get-rusage-data.c
@@ -148,13 +148,16 @@
 #include "vma-iter.h"
 
 
-#if HAVE_SETRLIMIT && defined RLIMIT_DATA
+#if !(defined __APPLE__ && defined __MACH__) || defined TEST
+/* Implement get_rusage_data_via_setrlimit().  */
 
-# ifdef _AIX
-#  define errno_expected() (errno == EINVAL || errno == EFAULT)
-# else
-#  define errno_expected() (errno == EINVAL)
-# endif
+# if HAVE_SETRLIMIT && defined RLIMIT_DATA
+
+#  ifdef _AIX
+#   define errno_expected() (errno == EINVAL || errno == EFAULT)
+#  else
+#   define errno_expected() (errno == EINVAL)
+#  endif
 
 static uintptr_t
 get_rusage_data_via_setrlimit (void)
@@ -163,7 +166,7 @@ get_rusage_data_via_setrlimit (void)
 
   struct rlimit orig_limit;
 
-# ifdef __hpux
+#  ifdef __hpux
   /* On HP-UX 11.00, setrlimit() RLIMIT_DATA of does not work: It cannot
      restore the previous limits.
      On HP-UX 11.11, setrlimit() RLIMIT_DATA of does not work: It sometimes
@@ -177,7 +180,7 @@ get_rusage_data_via_setrlimit (void)
             || strcmp (buf.release + strlen (buf.release) - 5, "11.11") == 0))
       return 0;
   }
-# endif
+#  endif
 
   /* Record the original limit.  */
   if (getrlimit (RLIMIT_DATA, &orig_limit) < 0)
@@ -310,7 +313,7 @@ get_rusage_data_via_setrlimit (void)
   return result;
 }
 
-#else
+# else
 
 static uintptr_t
 get_rusage_data_via_setrlimit (void)
@@ -318,10 +321,15 @@ get_rusage_data_via_setrlimit (void)
   return 0;
 }
 
+# endif
+
 #endif
 
 
-#if VMA_ITERATE_SUPPORTED
+#if !(defined __APPLE__ && defined __MACH__) || defined TEST
+/* Implement get_rusage_data_via_iterator().  */
+
+# if VMA_ITERATE_SUPPORTED
 
 struct locals
 {
@@ -346,7 +354,7 @@ vma_iterate_callback (void *data, uintptr_t start, 
uintptr_t end,
 static uintptr_t
 get_rusage_data_via_iterator (void)
 {
-# if ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined 
__BEOS__ || defined __HAIKU__
+#  if ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || 
defined __BEOS__ || defined __HAIKU__
   /* On native Windows, there is no sbrk() function.
      On Haiku, sbrk(0) always returns 0.  */
   static void *brk_value;
@@ -357,13 +365,13 @@ get_rusage_data_via_iterator (void)
       if (brk_value == NULL)
         return 0;
     }
-# else
+#  else
   void *brk_value;
 
   brk_value = sbrk (0);
   if (brk_value == (void *)-1)
     return 0;
-# endif
+#  endif
 
   {
     struct locals l;
@@ -376,7 +384,7 @@ get_rusage_data_via_iterator (void)
   }
 }
 
-#else
+# else
 
 static uintptr_t
 get_rusage_data_via_iterator (void)
@@ -384,13 +392,20 @@ get_rusage_data_via_iterator (void)
   return 0;
 }
 
+# endif
+
 #endif
 
 
 uintptr_t
 get_rusage_data (void)
 {
-#if (defined __APPLE__ && defined __MACH__) || defined __CYGWIN__ /* Mac OS X, 
Cygwin */
+#if (defined __APPLE__ && defined __MACH__) /* Mac OS X */
+  /* get_rusage_data_via_setrlimit() does not work: it always returns 0.
+     get_rusage_data_via_iterator() does not work: it always returns 0x400000.
+     And sbrk() is deprecated.  */
+  return 0;
+#elif defined __CYGWIN__ /* Cygwin */
   /* get_rusage_data_via_setrlimit() does not work.
      Prefer get_rusage_data_via_iterator().  */
   return get_rusage_data_via_iterator ();




reply via email to

[Prev in Thread] Current Thread [Next in Thread]