[PATCH libdrm] meson: Fix sys/mkdev.h detection on Solaris

Eric Engestrom eric.engestrom at intel.com
Sat Sep 14 21:35:22 UTC 2019


On Friday, 2019-09-13 16:26:55 -0700, Alan Coopersmith wrote:
> On 9/10/19 5:55 AM, Eric Engestrom wrote:
> > On Monday, 2019-09-09 16:51:16 -0700, Alan Coopersmith wrote:
> > > On Solaris, sys/sysmacros.h has long-deprecated copies of major() & minor()
> > > but not makedev().  sys/mkdev.h has all three and is the preferred choice.
> > > 
> > > So we check for sys/mkdev.h first, as autoconf's AC_HEADER_MAJOR does.
> > 
> > Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>
> > 
> > Alternatively, how about this?
> > ---8<---
> > diff --git a/meson.build b/meson.build
> > index bc5cfc588d0c621a9725..263f691ab2b9107f5be1 100644
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -183,9 +183,14 @@ foreach header : ['sys/sysctl.h', 'sys/select.h', 'alloca.h']
> >     config.set('HAVE_' + header.underscorify().to_upper(),
> >       cc.compiles('#include <@0@>'.format(header), name : '@0@ works'.format(header)))
> >   endforeach
> > -if cc.has_header_symbol('sys/sysmacros.h', 'major')
> > +if (cc.has_header_symbol('sys/sysmacros.h', 'major') and
> > +  cc.has_header_symbol('sys/sysmacros.h', 'minor') and
> > +  cc.has_header_symbol('sys/sysmacros.h', 'makedev'))
> >     config.set10('MAJOR_IN_SYSMACROS', true)
> > -elif cc.has_header_symbol('sys/mkdev.h', 'major')
> > +endif
> > +if (cc.has_header_symbol('sys/mkdev.h', 'major') and
> > +  cc.has_header_symbol('sys/mkdev.h', 'minor') and
> > +  cc.has_header_symbol('sys/mkdev.h', 'makedev'))
> >     config.set10('MAJOR_IN_MKDEV', true)
> >   endif
> >   config.set10('HAVE_OPEN_MEMSTREAM', cc.has_function('open_memstream'))
> > --->8---
> > 
> > Makes both checks independent and represent the reality of what's wanted
> > more accurately (despite the historical name of the macro).
> 
> That works:
> 
> Header <sys/sysmacros.h> has symbol "major" : YES (cached)
> Header <sys/sysmacros.h> has symbol "minor" : YES
> Header <sys/sysmacros.h> has symbol "makedev" : NO
> Header <sys/mkdev.h> has symbol "major" : YES
> Header <sys/mkdev.h> has symbol "minor" : YES
> Header <sys/mkdev.h> has symbol "makedev" : YES
> 
> Would you like me to resubmit with that, or do you want to submit it?
> 
> If you want to go ahead, then:
> 
> Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>
> Tested-by: Alan Coopersmith <alan.coopersmith at oracle.com>

Just pushed it as 827a2a2042359ac93a9b082ee9584b43baa1a3f7; thanks for
testing it!

I've also tagged you on a Mesa MR to the same effect, in case you want
to give it a go :)

> 
> -- 
> 	-Alan Coopersmith-               alan.coopersmith at oracle.com
> 	 Oracle Solaris Engineering - https://blogs.oracle.com/alanc
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list