grub-devel.gnu.org archive mirror
 help / color / mirror / Atom feed
From: Andrei Borzenkov <arvidjaar@gmail.com>
To: grub-devel@gnu.org
Subject: Re: [PATCH] build: Use AC_HEADER_MAJOR to find device macros
Date: Sun, 17 Apr 2016 08:53:07 +0300	[thread overview]
Message-ID: <571324C3.7080605@gmail.com> (raw)
In-Reply-To: <1460842498-23914-1-git-send-email-floppym@gentoo.org>

17.04.2016 00:34, Mike Gilbert пишет:
> Depending on the OS/libc, device macros may be found in 3 places:
> 

Mentioning OS and libc versions that have problem would be helpful.

> sys/types.h
> sys/mkdev.h
> sys/sysmacros.h
> 
> glibc currenctly defines the major/minor/makedev macros in sys/sysmacros.h
> and includes this from sys/types.h. Based on mailing list discussion,
> this may be removed from sys/types.h in a future glibc release.
> ---
>  configure.ac                         | 3 ++-
>  grub-core/osdep/devmapper/getroot.c  | 6 ++++++
>  grub-core/osdep/devmapper/hostdisk.c | 5 +++++
>  grub-core/osdep/linux/getroot.c      | 6 ++++++

All those files are linux only. Do you mean there are some linux flavors
that have these definitions in non-standard place? Could you name them?

>  grub-core/osdep/unix/getroot.c       | 4 +++-
>  5 files changed, 22 insertions(+), 2 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 57e1713..9ddfc53 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -388,7 +388,8 @@ fi
>  
>  # Check for functions and headers.
>  AC_CHECK_FUNCS(posix_memalign memalign getextmntent)
> -AC_CHECK_HEADERS(sys/param.h sys/mount.h sys/mnttab.h sys/mkdev.h limits.h)
> +AC_CHECK_HEADERS(sys/param.h sys/mount.h sys/mnttab.h limits.h)
> +AC_HEADER_MAJOR
>  
>  AC_CHECK_MEMBERS([struct statfs.f_fstypename],,,[$ac_includes_default
>  #include <sys/param.h>
> diff --git a/grub-core/osdep/devmapper/getroot.c b/grub-core/osdep/devmapper/getroot.c
> index 05eda50..72e5582 100644
> --- a/grub-core/osdep/devmapper/getroot.c
> +++ b/grub-core/osdep/devmapper/getroot.c
> @@ -40,6 +40,12 @@
>  #include <limits.h>
>  #endif
>  
> +#if defined(MAJOR_IN_MKDEV)
> +#include <sys/mkdev.h>
> +#elif defined(MAJOR_IN_SYSMACROS)
> +#include <sys/sysmacros.h>
> +#endif
> +
>  #include <libdevmapper.h>
>  
>  #include <grub/types.h>
> diff --git a/grub-core/osdep/devmapper/hostdisk.c b/grub-core/osdep/devmapper/hostdisk.c
> index 19c1101..a697bcb 100644
> --- a/grub-core/osdep/devmapper/hostdisk.c
> +++ b/grub-core/osdep/devmapper/hostdisk.c
> @@ -24,6 +24,11 @@
>  #include <errno.h>
>  #include <limits.h>
>  
> +#if defined(MAJOR_IN_MKDEV)
> +#include <sys/mkdev.h>
> +#elif defined(MAJOR_IN_SYSMACROS)
> +#include <sys/sysmacros.h>
> +#endif
>  
>  #ifdef HAVE_DEVICE_MAPPER
>  # include <libdevmapper.h>
> diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c
> index 10480b6..09e7e6e 100644
> --- a/grub-core/osdep/linux/getroot.c
> +++ b/grub-core/osdep/linux/getroot.c
> @@ -35,6 +35,12 @@
>  #include <limits.h>
>  #endif
>  
> +#if defined(MAJOR_IN_MKDEV)
> +#include <sys/mkdev.h>
> +#elif defined(MAJOR_IN_SYSMACROS)
> +#include <sys/sysmacros.h>
> +#endif
> +
>  #include <grub/types.h>
>  #include <sys/ioctl.h>         /* ioctl */
>  #include <sys/mount.h>
> diff --git a/grub-core/osdep/unix/getroot.c b/grub-core/osdep/unix/getroot.c
> index 1079a91..4bf37b0 100644
> --- a/grub-core/osdep/unix/getroot.c
> +++ b/grub-core/osdep/unix/getroot.c
> @@ -51,8 +51,10 @@
>  #endif
>  
>  #include <sys/types.h>
> -#if defined(HAVE_SYS_MKDEV_H)
> +#if defined(MAJOR_IN_MKDEV)
>  #include <sys/mkdev.h>
> +#elif defined(MAJOR_IN_SYSMACROS)
> +#include <sys/sysmacros.h>
>  #endif
>  

The names are really misleading. All that this macro checks for is
whether these headers are present, so it is entirely equivalent to
AC_CHECK_HEADERS([sys/mkdev.h sys/sysmacros.h]). Which returns us to the
question which systems have sys/sysmacros.h :)

>  #if defined(HAVE_LIBZFS) && defined(HAVE_LIBNVPAIR)
> 



  reply	other threads:[~2016-04-17  5:53 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-16 21:34 [PATCH] build: Use AC_HEADER_MAJOR to find device macros Mike Gilbert
2016-04-17  5:53 ` Andrei Borzenkov [this message]
2016-04-17 15:28   ` Mike Gilbert
2016-04-17 17:33     ` Andrei Borzenkov
2016-04-17 18:27       ` [PATCH v2] " Mike Gilbert
2016-04-18  6:11         ` Vladimir 'phcoder' Serbinenko
2016-04-18 15:32         ` Mike Gilbert
2016-04-19 18:27           ` [PATCH v3] " Mike Gilbert
2016-04-24  5:13             ` Andrei Borzenkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=571324C3.7080605@gmail.com \
    --to=arvidjaar@gmail.com \
    --cc=grub-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).