On Wednesday, 2018-03-28 14:05:00 +1100, Jonathan Gray wrote: > On Tue, Mar 27, 2018 at 07:36:17PM +0100, Emil Velikov wrote: > > On 25 March 2018 at 09:06, Jonathan Gray <j...@jsg.id.au> wrote: > > > On Wed, Mar 21, 2018 at 05:09:17PM +0000, Eric Engestrom wrote: > > >> Cc: Maxin B. John <maxin.j...@gmail.com> > > >> Cc: Khem Raj <raj.k...@gmail.com> > > >> Suggested-by: Jon Turney <jon.tur...@dronecode.org.uk> > > >> Signed-off-by: Eric Engestrom <eric.engest...@imgtec.com> > > >> --- > > >> configure.ac | 1 + > > >> meson.build | 2 +- > > >> src/util/u_endian.h | 2 +- > > >> 3 files changed, 3 insertions(+), 2 deletions(-) > > > > > > OpenBSD and I suspect other systems have an endian.h that does not have > > > the __ defines like glibc. > > > > > Sigh, I guess the C/POSIX commitee should really wake up and add that > > to the standard. > > ... one way or another. > > > > Jonathan can you play around with AC_CHECK_DECLS and send a patch that > > works on your end? > > > > Thanks > > Emil > > > > [1] > > https://www.gnu.org/software/autoconf/manual/autoconf-2.62/html_node/Generic-Declarations.html > > Or just change the header?
Or just add `_DEFAULT_SOURCE` to the build, allowing glibc to use non-underscored names? I was meaning to send a patch with this, but I'm swamped right now and haven't have a change to do this, but I'd rather not duplicate the block like suggested below. Automatic ack from me on a patch that adds this define to all the build systems, replaces all 3 names with their non-underscored variants and adds a `#ifndef BYTE_ORDER #error "BYTE_ORDER undefined" #endif`. > > Some care is needed as '#if undefined == undefined' becomes '#if 0 == 0' > which is true... Agreed :) > > diff --git a/src/util/u_endian.h b/src/util/u_endian.h > index e11b381588..bf3b8707a1 100644 > --- a/src/util/u_endian.h > +++ b/src/util/u_endian.h > @@ -30,9 +30,17 @@ > #ifdef HAVE_ENDIAN_H > #include <endian.h> > > -#if __BYTE_ORDER == __LITTLE_ENDIAN > +/* glibc */ > +#if defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN) > # define PIPE_ARCH_LITTLE_ENDIAN > -#elif __BYTE_ORDER == __BIG_ENDIAN > +#elif defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN) > +# define PIPE_ARCH_BIG_ENDIAN > +#endif > + > +/* OpenBSD */ > +#if defined(BYTE_ORDER) && (BYTE_ORDER == LITTLE_ENDIAN) > +# define PIPE_ARCH_LITTLE_ENDIAN > +#elif defined(BYTE_ORDER) && (BYTE_ORDER == BIG_ENDIAN) > # define PIPE_ARCH_BIG_ENDIAN > #endif > > @@ -54,8 +62,8 @@ > # define PIPE_ARCH_BIG_ENDIAN > #endif > > -#elif defined(__OpenBSD__) || defined(__NetBSD__) || \ > - defined(__FreeBSD__) || defined(__DragonFly__) > +#elif defined(__NetBSD__) || defined(__FreeBSD__) || \ > + defined(__DragonFly__) > #include <sys/types.h> > #include <machine/endian.h> > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev