[Mesa-dev] [PATCH mesa] meson/configure: detect endian.h instead of trying to guess when it's available

Eric Engestrom eric.engestrom at imgtec.com
Wed Mar 21 18:00:35 UTC 2018


On Wednesday, 2018-03-21 17:53:08 +0000, Emil Velikov wrote:
> On 21 March 2018 at 17:09, Eric Engestrom <eric.engestrom at imgtec.com> wrote:
> > Cc: Maxin B. John <maxin.john at gmail.com>
> > Cc: Khem Raj <raj.khem at gmail.com>
> > Suggested-by: Jon Turney <jon.turney at dronecode.org.uk>
> > Signed-off-by: Eric Engestrom <eric.engestrom at imgtec.com>
> > ---
> >  configure.ac        | 1 +
> >  meson.build         | 2 +-
> >  src/util/u_endian.h | 2 +-
> >  3 files changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/configure.ac b/configure.ac
> > index 29d3c3457a7cdaefc36a..36c56da787e4fab5a355 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -865,6 +865,7 @@ fi
> >  AC_HEADER_MAJOR
> >  AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"])
> >  AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
> > +AC_CHECK_HEADER([endian.h], [DEFINES="$DEFINES -DHAVE_ENDIAN_H"])
> >  AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
> >  AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"])
> >  AC_CHECK_FUNC([timespec_get], [DEFINES="$DEFINES -DHAVE_TIMESPEC_GET"])
> Just hit me - why are we using any of these instead of AC_CHECK_FUNCS
> and AC_CHECK_HEADERS (note the S at the end).
> Those take a list + automatically set the HAVE_ macros for us.
> 
> Off the top of my head - we could even use the _ONCE version which
> should lead to smaller configure file + faster runtime.
> 
> I'm thinking out loud here ^^, no changes needed ;-)

I'll leave autotools refactors to you, I myself consider it in
maintenance-only mode :P

> 
> > diff --git a/meson.build b/meson.build
> > index 88518ec0f0e9b81759a7..1132b4bd37075d8c9d21 100644
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -904,7 +904,7 @@ elif cc.has_header_symbol('sys/mkdev.h', 'major')
> >    pre_args += '-DMAJOR_IN_MKDEV'
> >  endif
> >
> > -foreach h : ['xlocale.h', 'sys/sysctl.h', 'linux/futex.h']
> > +foreach h : ['xlocale.h', 'sys/sysctl.h', 'linux/futex.h', 'endian.h']
> >    if cc.compiles('#include <@0@>'.format(h), name : '@0@ works'.format(h))
> >      pre_args += '-DHAVE_ at 0@'.format(h.to_upper().underscorify())
> >    endif
> > diff --git a/src/util/u_endian.h b/src/util/u_endian.h
> > index 22d011ec0086ee77e11c..e11b381588dbc960e8c3 100644
> > --- a/src/util/u_endian.h
> > +++ b/src/util/u_endian.h
> > @@ -27,7 +27,7 @@
> >  #ifndef U_ENDIAN_H
> >  #define U_ENDIAN_H
> >
> > -#if defined(__GLIBC__) || defined(ANDROID) || defined(__CYGWIN__)
> > +#ifdef HAVE_ENDIAN_H
> I'd either keep the ANDROID hunk here, or add -DHAVE_ENDIAN_H to
> Android.common.mk
> With slight inclination towards the latter ;-)

Same, I just asked RobHer what he thinks.

> 
> With that the patch is
> Reviewed-by: Emil Velikov <emil.velikov at collabora.com>

Thanks!

> Cc: <mesa-stable at lists.freedesktop.org>

Good point, didn't think about that!

> 
> -Emil


More information about the mesa-dev mailing list