[PATCH weston 16/18] configure.ac: Enable AC_USE_SYSTEM_EXTENSIONS

ppaalanen at gmail.com ppaalanen at gmail.com
Wed May 22 08:03:19 PDT 2013


From: Daniel Stone <daniel at fooishbar.org>

AC_USE_SYSTEM_EXTENSIONS enables _XOPEN_SOURCE, _GNU_SOURCE and similar
macros to expose the largest extent of functionality supported by the
underlying system.  This is required since these macros are often
limiting rather than merely additive, e.g. _XOPEN_SOURCE will actually
on some systems hide declarations which are not part of the X/Open spec.

Since this goes into config.h rather than the command line, ensure all
source is consistently including config.h before anything else,
including system libraries.  This doesn't need to be guarded by a
HAVE_CONFIG_H ifdef, which was only ever a hangover from the X.Org
modular transition.

Signed-off-by: Daniel Stone <daniel at fooishbar.org>

[pq: rebased and converted more files]
---
 clients/window.c              | 4 +---
 configure.ac                  | 2 ++
 shared/cairo-util.c           | 2 +-
 shared/config-parser.c        | 3 ++-
 shared/image-loader.c         | 2 +-
 shared/matrix.c               | 2 ++
 shared/option-parser.c        | 2 ++
 shared/os-compatibility.c     | 2 +-
 src/animation.c               | 2 ++
 src/bindings.c                | 2 ++
 src/clipboard.c               | 2 +-
 src/cms-helper.c              | 4 +---
 src/cms-static.c              | 5 +----
 src/compositor-drm.c          | 6 +-----
 src/compositor-fbdev.c        | 2 +-
 src/compositor-headless.c     | 4 +---
 src/compositor-rdp.c          | 4 +---
 src/compositor-rpi.c          | 4 +---
 src/compositor-wayland.c      | 5 +----
 src/compositor-x11.c          | 4 +---
 src/compositor.c              | 2 --
 src/evdev-touchpad.c          | 2 ++
 src/evdev.c                   | 2 ++
 src/filter.c                  | 2 ++
 src/gl-renderer.c             | 2 +-
 src/gl-renderer.h             | 7 +++----
 src/launcher-util.c           | 2 ++
 src/libbacklight.c            | 2 +-
 src/log.c                     | 2 ++
 src/noop-renderer.c           | 2 +-
 src/pixman-renderer.c         | 2 +-
 src/rpi-renderer.c            | 4 ++--
 src/screenshooter.c           | 2 ++
 src/shell.c                   | 2 ++
 src/tablet-shell.c            | 2 ++
 src/text-backend.c            | 2 ++
 src/tty.c                     | 2 ++
 src/udev-seat.c               | 2 ++
 src/weston-launch.c           | 2 --
 src/xwayland/launcher.c       | 2 +-
 src/xwayland/selection.c      | 2 +-
 src/xwayland/window-manager.c | 2 +-
 src/zoom.c                    | 2 ++
 43 files changed, 62 insertions(+), 54 deletions(-)

diff --git a/clients/window.c b/clients/window.c
index 3f54111..28df2ca 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -21,9 +21,7 @@
  * OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE
-
-#include "../config.h"
+#include "config.h"
 
 #include <stdint.h>
 #include <stdio.h>
diff --git a/configure.ac b/configure.ac
index 323bd87..68a54e7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,6 +18,8 @@ AC_SUBST([WESTON_VERSION], [weston_version])
 
 AC_CONFIG_HEADERS([config.h])
 
+AC_USE_SYSTEM_EXTENSIONS
+
 AM_INIT_AUTOMAKE([1.11 parallel-tests foreign no-dist-gzip dist-xz color-tests])
 
 AM_SILENT_RULES([yes])
diff --git a/shared/cairo-util.c b/shared/cairo-util.c
index 8b41f41..c3a966a 100644
--- a/shared/cairo-util.c
+++ b/shared/cairo-util.c
@@ -21,7 +21,7 @@
  * OF THIS SOFTWARE.
  */
 
-#include "../config.h"
+#include "config.h"
 
 #include <stdint.h>
 #include <stdlib.h>
diff --git a/shared/config-parser.c b/shared/config-parser.c
index 652da1f..a49e29e 100644
--- a/shared/config-parser.c
+++ b/shared/config-parser.c
@@ -20,7 +20,8 @@
  * OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE   /* for stchrnul() */
+#include "config.h"
+
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/shared/image-loader.c b/shared/image-loader.c
index 9f65dea..35dadd3 100644
--- a/shared/image-loader.c
+++ b/shared/image-loader.c
@@ -21,7 +21,7 @@
  * OF THIS SOFTWARE.
  */
 
-#include "../config.h"
+#include "config.h"
 
 #include <stdlib.h>
 #include <stdio.h>
diff --git a/shared/matrix.c b/shared/matrix.c
index 3ff4089..4f0b6b7 100644
--- a/shared/matrix.c
+++ b/shared/matrix.c
@@ -21,6 +21,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <float.h>
 #include <string.h>
 #include <stdlib.h>
diff --git a/shared/option-parser.c b/shared/option-parser.c
index a7e497f..c00349a 100644
--- a/shared/option-parser.c
+++ b/shared/option-parser.c
@@ -20,6 +20,8 @@
  * OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 #include <stdint.h>
 #include <stdio.h>
diff --git a/shared/os-compatibility.c b/shared/os-compatibility.c
index 21d4d02..4f96dd4 100644
--- a/shared/os-compatibility.c
+++ b/shared/os-compatibility.c
@@ -20,7 +20,7 @@
  * OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE
+#include "config.h"
 
 #include <sys/types.h>
 #include <sys/socket.h>
diff --git a/src/animation.c b/src/animation.c
index 7dd3683..80b200e 100644
--- a/src/animation.c
+++ b/src/animation.c
@@ -20,6 +20,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
diff --git a/src/bindings.c b/src/bindings.c
index e560b61..8022f55 100644
--- a/src/bindings.c
+++ b/src/bindings.c
@@ -20,6 +20,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 
 #include "compositor.h"
diff --git a/src/clipboard.c b/src/clipboard.c
index 11edc71..eb0b230 100644
--- a/src/clipboard.c
+++ b/src/clipboard.c
@@ -20,7 +20,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE
+#include "config.h"
 
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/cms-helper.c b/src/cms-helper.c
index 2c7b57f..c063c77 100644
--- a/src/cms-helper.c
+++ b/src/cms-helper.c
@@ -20,9 +20,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
 
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/cms-static.c b/src/cms-static.c
index 94fea99..be2004a 100644
--- a/src/cms-static.c
+++ b/src/cms-static.c
@@ -20,11 +20,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
 
-#define _GNU_SOURCE
 #include <stdlib.h>
 #include <string.h>
 
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 35019e0..7340a1b 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -21,11 +21,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#define _GNU_SOURCE
+#include "config.h"
 
 #include <errno.h>
 #include <stdlib.h>
diff --git a/src/compositor-fbdev.c b/src/compositor-fbdev.c
index 21028a5..7b092d3 100644
--- a/src/compositor-fbdev.c
+++ b/src/compositor-fbdev.c
@@ -23,7 +23,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE
+#include "config.h"
 
 #include <errno.h>
 #include <stdlib.h>
diff --git a/src/compositor-headless.c b/src/compositor-headless.c
index 0df0f7d..6115ecd 100644
--- a/src/compositor-headless.c
+++ b/src/compositor-headless.c
@@ -21,9 +21,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
 
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/compositor-rdp.c b/src/compositor-rdp.c
index 0dae963..0293486 100644
--- a/src/compositor-rdp.c
+++ b/src/compositor-rdp.c
@@ -20,9 +20,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
 
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/compositor-rpi.c b/src/compositor-rpi.c
index 64ef0ff..f1f920b 100644
--- a/src/compositor-rpi.c
+++ b/src/compositor-rpi.c
@@ -22,7 +22,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE
+#include "config.h"
 
 #include <errno.h>
 #include <stdlib.h>
@@ -35,8 +35,6 @@
 
 #include <libudev.h>
 
-#include "config.h"
-
 #ifdef HAVE_BCM_HOST
 #  include <bcm_host.h>
 #else
diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c
index 4112401..3368ee1 100644
--- a/src/compositor-wayland.c
+++ b/src/compositor-wayland.c
@@ -20,12 +20,9 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
 
 #include <stddef.h>
-#define _GNU_SOURCE
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/compositor-x11.c b/src/compositor-x11.c
index ea0d4b9..07ca824 100644
--- a/src/compositor-x11.c
+++ b/src/compositor-x11.c
@@ -22,9 +22,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
 
 #include <assert.h>
 #include <stddef.h>
diff --git a/src/compositor.c b/src/compositor.c
index aa5baaf..4654d83 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -22,8 +22,6 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE
-
 #include "config.h"
 
 #include <fcntl.h>
diff --git a/src/evdev-touchpad.c b/src/evdev-touchpad.c
index 4f9bb03..a21ae0b 100644
--- a/src/evdev-touchpad.c
+++ b/src/evdev-touchpad.c
@@ -20,6 +20,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 #include <math.h>
 #include <string.h>
diff --git a/src/evdev.c b/src/evdev.c
index 9289b1c..122a2d9 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -20,6 +20,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 #include <string.h>
 #include <linux/input.h>
diff --git a/src/filter.c b/src/filter.c
index 91e588d..a55ebf2 100644
--- a/src/filter.c
+++ b/src/filter.c
@@ -20,6 +20,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 #include <stdint.h>
 #include <limits.h>
diff --git a/src/gl-renderer.c b/src/gl-renderer.c
index 4915b90..ff7920c 100644
--- a/src/gl-renderer.c
+++ b/src/gl-renderer.c
@@ -20,7 +20,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE
+#include "config.h"
 
 #include <GLES2/gl2.h>
 #include <GLES2/gl2ext.h>
diff --git a/src/gl-renderer.h b/src/gl-renderer.h
index a2e8690..4919a1e 100644
--- a/src/gl-renderer.h
+++ b/src/gl-renderer.h
@@ -20,10 +20,9 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include  "compositor.h"
+#include "config.h"
+
+#include "compositor.h"
 
 #ifdef ENABLE_EGL
 
diff --git a/src/launcher-util.c b/src/launcher-util.c
index 9196e4f..6f6ee11 100644
--- a/src/launcher-util.c
+++ b/src/launcher-util.c
@@ -20,6 +20,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/libbacklight.c b/src/libbacklight.c
index 98a20be..b3acc63 100644
--- a/src/libbacklight.c
+++ b/src/libbacklight.c
@@ -29,7 +29,7 @@
  *    Tiago Vignatti <vignatti at freedesktop.org>
  */
 
-#define _GNU_SOURCE
+#include "config.h"
 
 #include "libbacklight.h"
 #include <stdio.h>
diff --git a/src/log.c b/src/log.c
index e5430d6..1c05e25 100644
--- a/src/log.c
+++ b/src/log.c
@@ -20,6 +20,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdio.h>
 #include <stdarg.h>
 #include <stdlib.h>
diff --git a/src/noop-renderer.c b/src/noop-renderer.c
index a0b1679..c0765f2 100644
--- a/src/noop-renderer.c
+++ b/src/noop-renderer.c
@@ -20,7 +20,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE
+#include "config.h"
 
 #include <stdlib.h>
 
diff --git a/src/pixman-renderer.c b/src/pixman-renderer.c
index 36563c6..b036135 100644
--- a/src/pixman-renderer.c
+++ b/src/pixman-renderer.c
@@ -21,7 +21,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE
+#include "config.h"
 
 #include <errno.h>
 #include <stdlib.h>
diff --git a/src/rpi-renderer.c b/src/rpi-renderer.c
index e429d2e..c361185 100644
--- a/src/rpi-renderer.c
+++ b/src/rpi-renderer.c
@@ -20,12 +20,12 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 #include <assert.h>
 #include <string.h>
 
-#include "config.h"
-
 #ifdef HAVE_BCM_HOST
 #  include <bcm_host.h>
 #else
diff --git a/src/screenshooter.c b/src/screenshooter.c
index dde052f..ee2585b 100644
--- a/src/screenshooter.c
+++ b/src/screenshooter.c
@@ -20,6 +20,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
diff --git a/src/shell.c b/src/shell.c
index e0d579a..e46c30f 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -22,6 +22,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdbool.h>
diff --git a/src/tablet-shell.c b/src/tablet-shell.c
index cae8acf..91fbaed 100644
--- a/src/tablet-shell.c
+++ b/src/tablet-shell.c
@@ -20,6 +20,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <sys/wait.h>
 #include <unistd.h>
 #include <stdlib.h>
diff --git a/src/text-backend.c b/src/text-backend.c
index 3d1670b..67cacf6 100644
--- a/src/text-backend.c
+++ b/src/text-backend.c
@@ -21,6 +21,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/src/tty.c b/src/tty.c
index 05e5e20..2324f6c 100644
--- a/src/tty.c
+++ b/src/tty.c
@@ -20,6 +20,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <termios.h>
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/src/udev-seat.c b/src/udev-seat.c
index 7e62429..05b8163 100644
--- a/src/udev-seat.c
+++ b/src/udev-seat.c
@@ -20,6 +20,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
diff --git a/src/weston-launch.c b/src/weston-launch.c
index 42b2506..bd621a0 100644
--- a/src/weston-launch.c
+++ b/src/weston-launch.c
@@ -20,8 +20,6 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE
-
 #include "config.h"
 
 #include <stdio.h>
diff --git a/src/xwayland/launcher.c b/src/xwayland/launcher.c
index 664cf6c..a8ad478 100644
--- a/src/xwayland/launcher.c
+++ b/src/xwayland/launcher.c
@@ -20,7 +20,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE
+#include "config.h"
 
 #include <stdlib.h>
 #include <stdio.h>
diff --git a/src/xwayland/selection.c b/src/xwayland/selection.c
index 69665b7..66cb5fe 100644
--- a/src/xwayland/selection.c
+++ b/src/xwayland/selection.c
@@ -20,7 +20,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE
+#include "config.h"
 
 #include <stdlib.h>
 #include <string.h>
diff --git a/src/xwayland/window-manager.c b/src/xwayland/window-manager.c
index b4b0a83..366f2e0 100644
--- a/src/xwayland/window-manager.c
+++ b/src/xwayland/window-manager.c
@@ -20,7 +20,7 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define _GNU_SOURCE
+#include "config.h"
 
 #include <stdlib.h>
 #include <stdio.h>
diff --git a/src/zoom.c b/src/zoom.c
index ccc5d49..292aed6 100644
--- a/src/zoom.c
+++ b/src/zoom.c
@@ -20,6 +20,8 @@
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 
 #include "compositor.h"
-- 
1.8.1.5



More information about the wayland-devel mailing list