diff options
| author | Simon Ser <contact@emersion.fr> | 2022-01-10 14:51:55 +0100 |
|---|---|---|
| committer | Simon Ser <contact@emersion.fr> | 2022-01-10 15:08:46 +0100 |
| commit | 0d314c4a04ef1b86a1ea66107b2d1a8d1bcd93b9 (patch) | |
| tree | f45fae05026f0cfeaf4ae715f22fc6ccf9d7e905 | |
| parent | tests: use __typeof__ instead of typeof (diff) | |
| download | wayland-0d314c4a04ef1b86a1ea66107b2d1a8d1bcd93b9.tar wayland-0d314c4a04ef1b86a1ea66107b2d1a8d1bcd93b9.tar.gz wayland-0d314c4a04ef1b86a1ea66107b2d1a8d1bcd93b9.tar.bz2 wayland-0d314c4a04ef1b86a1ea66107b2d1a8d1bcd93b9.tar.lz wayland-0d314c4a04ef1b86a1ea66107b2d1a8d1bcd93b9.tar.xz wayland-0d314c4a04ef1b86a1ea66107b2d1a8d1bcd93b9.tar.zst wayland-0d314c4a04ef1b86a1ea66107b2d1a8d1bcd93b9.zip | |
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>
| -rw-r--r-- | cursor/xcursor.c | 1 | ||||
| -rw-r--r-- | meson.build | 10 | ||||
| -rw-r--r-- | tests/display-test.c | 1 | ||||
| -rw-r--r-- | tests/event-loop-test.c | 1 | ||||
| -rw-r--r-- | 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> |
