[PATCH] configure.ac: use AC_HEADER_MAJOR to detect major()/minor()
Quentin Glidic
sardemff7+wayland at sardemff7.net
Tue May 23 10:03:40 UTC 2017
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 <slyfox at 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
More information about the wayland-devel
mailing list