109 lines
3.1 KiB
Diff
109 lines
3.1 KiB
Diff
|
From 0d314c4a04ef1b86a1ea66107b2d1a8d1bcd93b9 Mon Sep 17 00:00:00 2001
|
||
|
From: Simon Ser <contact@emersion.fr>
|
||
|
Date: Mon, 10 Jan 2022 14:51:55 +0100
|
||
|
Subject: [PATCH] build: don't rely on implicit GNU extensions
|
||
|
|
||
|
Currently libwayland assumes GNU extensions will be available, but
|
||
|
doesn't define the C standard to use. Instead, let's unconditionally
|
||
|
enable POSIX extensions, and enable GNU extensions on a case-by-case
|
||
|
basis as needed.
|
||
|
|
||
|
Signed-off-by: Simon Ser <contact@emersion.fr>
|
||
|
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
|
||
|
[james.hilliard1@gmail.com: backport from upstream commit
|
||
|
0d314c4a04ef1b86a1ea66107b2d1a8d1bcd93b9]
|
||
|
---
|
||
|
cursor/xcursor.c | 1 +
|
||
|
meson.build | 10 ++++++++--
|
||
|
tests/display-test.c | 1 +
|
||
|
tests/event-loop-test.c | 1 +
|
||
|
tests/fixed-test.c | 1 +
|
||
|
5 files changed, 12 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/cursor/xcursor.c b/cursor/xcursor.c
|
||
|
index 0506680..188be7c 100644
|
||
|
--- a/cursor/xcursor.c
|
||
|
+++ b/cursor/xcursor.c
|
||
|
@@ -23,6 +23,7 @@
|
||
|
* SOFTWARE.
|
||
|
*/
|
||
|
|
||
|
+#define _GNU_SOURCE
|
||
|
#include "xcursor.h"
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
diff --git a/meson.build b/meson.build
|
||
|
index 07bbd29..cab267e 100644
|
||
|
--- a/meson.build
|
||
|
+++ b/meson.build
|
||
|
@@ -14,6 +14,12 @@ config_h = configuration_data()
|
||
|
config_h.set_quoted('PACKAGE', meson.project_name())
|
||
|
config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
|
||
|
|
||
|
+cc_args = []
|
||
|
+if host_machine.system() != 'freebsd'
|
||
|
+ cc_args += ['-D_POSIX_C_SOURCE=200809L']
|
||
|
+endif
|
||
|
+add_project_arguments(cc_args, language: 'c')
|
||
|
+
|
||
|
compiler_flags = [
|
||
|
'-Wno-unused-parameter',
|
||
|
'-Wstrict-prototypes',
|
||
|
@@ -79,7 +85,7 @@ if get_option('libraries')
|
||
|
]
|
||
|
|
||
|
foreach d: decls
|
||
|
- if not cc.has_header_symbol(d['header'], d['symbol'], dependencies: epoll_dep)
|
||
|
+ if not cc.has_header_symbol(d['header'], d['symbol'], dependencies: epoll_dep, args: cc_args)
|
||
|
error('@0@ is needed to compile Wayland libraries'.format(d['symbol']))
|
||
|
endif
|
||
|
endforeach
|
||
|
@@ -87,7 +93,7 @@ if get_option('libraries')
|
||
|
rt_dep = []
|
||
|
if not cc.has_function('clock_gettime', prefix: '#include <time.h>')
|
||
|
rt_dep = cc.find_library('rt')
|
||
|
- if not cc.has_function('clock_gettime', prefix: '#include <time.h>', dependencies: rt_dep)
|
||
|
+ if not cc.has_function('clock_gettime', prefix: '#include <time.h>', dependencies: rt_dep, args: cc_args)
|
||
|
error('clock_gettime not found')
|
||
|
endif
|
||
|
endif
|
||
|
diff --git a/tests/display-test.c b/tests/display-test.c
|
||
|
index 763adc9..a6f410d 100644
|
||
|
--- a/tests/display-test.c
|
||
|
+++ b/tests/display-test.c
|
||
|
@@ -24,6 +24,7 @@
|
||
|
* SOFTWARE.
|
||
|
*/
|
||
|
|
||
|
+#define _GNU_SOURCE
|
||
|
#include <stdbool.h>
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
diff --git a/tests/event-loop-test.c b/tests/event-loop-test.c
|
||
|
index 9d43c91..a51ba8f 100644
|
||
|
--- a/tests/event-loop-test.c
|
||
|
+++ b/tests/event-loop-test.c
|
||
|
@@ -24,6 +24,7 @@
|
||
|
* SOFTWARE.
|
||
|
*/
|
||
|
|
||
|
+#define _GNU_SOURCE
|
||
|
#include <stdlib.h>
|
||
|
#include <stdint.h>
|
||
|
#include <assert.h>
|
||
|
diff --git a/tests/fixed-test.c b/tests/fixed-test.c
|
||
|
index 47a4dae..0b58797 100644
|
||
|
--- a/tests/fixed-test.c
|
||
|
+++ b/tests/fixed-test.c
|
||
|
@@ -23,6 +23,7 @@
|
||
|
* SOFTWARE.
|
||
|
*/
|
||
|
|
||
|
+#define _GNU_SOURCE
|
||
|
#include <stdlib.h>
|
||
|
#include <stdio.h>
|
||
|
#include <assert.h>
|
||
|
--
|
||
|
2.25.1
|
||
|
|