On 3/13/17 11:40 AM, Sergei Trofimovich wrote:
Before the change build failed on Gentoo as:

   libweston/weston_launch-weston-launch.o: In function `handle_open':
   weston/libweston/weston-launch.c:363: undefined reference to `major'
   weston/libweston/weston-launch.c:365: undefined reference to `major'
   weston/libweston/weston-launch.c:325: undefined reference to `major'
   weston/libweston/weston-launch.c:326: undefined reference to `major'
   libweston/weston_launch-weston-launch.o: In function `setup_tty':
   weston/libweston/weston-launch.c:548: undefined reference to `major'
   weston/libweston/weston-launch.c:548: undefined reference to `minor'
   weston/libweston/weston-launch.c:555: undefined reference to `major'
   weston/libweston/weston-launch.c:558: undefined reference to `minor'
   libweston/weston_launch-weston-launch.o: In function `close_input_fds':
   weston/libweston/weston-launch.c:451: undefined reference to `major'

glibc plans to remove <sys/sysmacros.h> from glibc's <sys/types.h>:
     https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html

Gentoo already applied glibc patch to experimental glibc-2.24
to start preparingfor the change.

Autoconf has AC_HEADER_MAJOR to find out which header defines
reqiured macros:
     
https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Particular-Headers.html

This change should also increase portability across other libcs.

Bug: https://bugs.gentoo.org/610652
Signed-off-by: Sergei Trofimovich <sly...@gentoo.org>

We added sys/sysmacros.h includes in c4d7f66c12853b9575366dd9f4a7960ec5694934.
This patch is still relevant, but needs rebasing.

Also, please move the #ifdef and #include where we currently have the sysmacros.h #include. And no "# include" indentation.

Thanks,


---
  configure.ac                       | 1 +
  libweston/launcher-direct.c        | 8 ++++++++
  libweston/launcher-logind.c        | 8 ++++++++
  libweston/launcher-weston-launch.c | 7 +++++++
  libweston/weston-launch.c          | 8 ++++++++
  5 files changed, 32 insertions(+)

diff --git a/configure.ac b/configure.ac
index 9df85d20..b99e7fdd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -34,6 +34,7 @@ AC_CONFIG_MACRO_DIR([m4])
AC_USE_SYSTEM_EXTENSIONS
  AC_SYS_LARGEFILE
+AC_HEADER_MAJOR
AM_INIT_AUTOMAKE([1.11 parallel-tests foreign no-dist-gzip dist-xz color-tests subdir-objects]) diff --git a/libweston/launcher-direct.c b/libweston/launcher-direct.c
index 4195cf65..16bac5f4 100644
--- a/libweston/launcher-direct.c
+++ b/libweston/launcher-direct.c
@@ -46,6 +46,14 @@
  #define KDSKBMUTE     0x4B51
  #endif
+/* major()/minor() */
+#ifdef MAJOR_IN_MKDEV
+#    include <sys/mkdev.h>
+#endif
+#ifdef MAJOR_IN_SYSMACROS
+#    include <sys/sysmacros.h>
+#endif
+
  #ifdef HAVE_LIBDRM
#include <xf86drm.h>
diff --git a/libweston/launcher-logind.c b/libweston/launcher-logind.c
index 8de1ed11..663cff28 100644
--- a/libweston/launcher-logind.c
+++ b/libweston/launcher-logind.c
@@ -44,6 +44,14 @@
#define DRM_MAJOR 226 +/* major()/minor() */
+#ifdef MAJOR_IN_MKDEV
+#    include <sys/mkdev.h>
+#endif
+#ifdef MAJOR_IN_SYSMACROS
+#    include <sys/sysmacros.h>
+#endif
+
  struct launcher_logind {
        struct weston_launcher base;
        struct weston_compositor *compositor;
diff --git a/libweston/launcher-weston-launch.c 
b/libweston/launcher-weston-launch.c
index 930f4e0c..3f7dde50 100644
--- a/libweston/launcher-weston-launch.c
+++ b/libweston/launcher-weston-launch.c
@@ -74,6 +74,13 @@ drmSetMaster(int drm_fd)
#endif +/* major()/minor() */
+#ifdef MAJOR_IN_MKDEV
+#    include <sys/mkdev.h>
+#endif
+#ifdef MAJOR_IN_SYSMACROS
+#    include <sys/sysmacros.h>
+#endif
union cmsg_data { unsigned char b[4]; int fd; }; diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c
index 140fde1d..5fe0c4a9 100644
--- a/libweston/weston-launch.c
+++ b/libweston/weston-launch.c
@@ -92,6 +92,14 @@ drmSetMaster(int drm_fd)
#endif +/* major()/minor() */
+#ifdef MAJOR_IN_MKDEV
+#    include <sys/mkdev.h>
+#endif
+#ifdef MAJOR_IN_SYSMACROS
+#    include <sys/sysmacros.h>
+#endif
+
  struct weston_launch {
        struct pam_conv pc;
        pam_handle_t *ph;



--

Quentin “Sardem FF7” Glidic
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to