scons: Bump C standard to gnu11 on macOS 10.15.
authorVinson Lee <vlee@freedesktop.org>
Thu, 28 Nov 2019 08:05:13 +0000 (00:05 -0800)
committerEric Engestrom <eric@engestrom.ch>
Fri, 29 Nov 2019 12:38:29 +0000 (12:38 +0000)
Fix build error on macOS 10.15 Catalina.

src/util/u_queue.c:179:7: error: implicit declaration of function 'timespec_get' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
      timespec_get(&ts, TIME_UTC);
      ^

timespec_get needs C11 starting with macOS 10.15.

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/time.h
   193 #if (__DARWIN_C_LEVEL >= __DARWIN_C_FULL) && \
   194         ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
   195         (defined(__cplusplus) && __cplusplus >= 201703L))
   196 /* ISO/IEC 9899:201x 7.27.2.5 The timespec_get function */
   197 #define TIME_UTC 1 /* time elapsed since epoch */
   198 __API_AVAILABLE(macosx(10.15), ios(13.0), tvos(13.0), watchos(6.0))
   199 int timespec_get(struct timespec *ts, int base);
   200 #endif

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Acked-by: Eric Engestrom <eric@engestrom.ch>
scons/gallium.py

index c0f6f6c91cac77b7ce9fdbc23302d05ebff8a910..ea212d15a95714356e3aa6c97faa9ce310f635cf 100755 (executable)
@@ -491,8 +491,11 @@ def generate(env):
             '-Werror=missing-prototypes',
             '-Werror=return-type',
             '-Werror=incompatible-pointer-types',
-            '-std=gnu99',
         ]
+        if platform == 'darwin' and host_platform.mac_ver()[0] >= '10.15':
+            cflags += ['-std=gnu11']
+        else:
+            cflags += ['-std=gnu99']
     if icc:
         cflags += [
             '-std=gnu99',