pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/54722: devel/glib2 still does not compile on Solaris 11.3



The following reply was made to PR pkg/54722; it has been noted by GNATS.

From: Jonathan Perkin <jperkin%joyent.com@localhost>
To: =?iso-8859-1?Q?Clausen=2C_J=F6rn?= <joern.clausen%uni-bielefeld.de@localhost>
Cc: gnats-bugs%netbsd.org@localhost, pkg-manager%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
	pkgsrc-bugs%netbsd.org@localhost
Subject: Re: pkg/54722: devel/glib2 still does not compile on Solaris 11.3
Date: Wed, 27 Nov 2019 09:20:10 +0000

 * On 2019-11-27 at 09:01 GMT, Clausen, Jörn wrote:
 
 > >   _XOPEN_SOURCE=1 is completely incompatible with C99 that glib2
 > >   requires.  I guess Solaris 11.x removed the feature tests errors?
 > 
 > Oracle reworked /usr/include/sys/feature_tests.h with a recent patch to
 > 11.3. I had problems compiling several packages before upgrading to the
 > latest patch level of Solaris 11.3. Sometimes adding random combinations of
 > _XOPEN_SOURCE or _XPG* to CPPFLAGS helped, sometimes not. Using the latest
 > version of 11.3, these "fixes" were not necessary any more.
 > 
 > glib2 is the exception to this rule, see pkg/54634. But after taking a
 > closer look at /usr/include/sys/socket.h, I can offer this patch:
 > 
 > --- Makefile    2019/11/27 07:23:05     1.1
 > +++ Makefile    2019/11/27 08:58:20
 > @@ -13,6 +13,7 @@
 > 
 >  MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/output/gio:${WRKSRC}/output/glib:${WRKSRC}/output/gobject:${WRKSRC}/output/gmodule
 > 
 > +CPPFLAGS.SunOS+=-D_XPG4_2 -D__EXTENSIONS__
 
 So the tl;dr is that you should never set _XPG*, I don't know if
 Solaris removed the comment from feature tests too but it should be
 documented in there not to set them.
 
 The correct way to set _XPG* is via _XOPEN_SOURCE, and setting
 _XOPEN_SOURCE depends on your C compilation environment.  I've tried
 to summarise how to fix this here;
 
   https://gist.github.com/jperkin/b08f9108daf8d0ac695067d71f882a9d
 
 In the case of glib2, we already set USE_LANGUAGES=c99 so in theory do
 not need to perform any of the __STDC_VERSION__ checks, and can just
 explicitly require _XOPEN_SOURCE=600.  If you set that I assume it
 still works for you?
 
 There's a separate question of why this is failing on Solaris 11.x and
 not on illumos, especially as building with _XOPEN_SOURCE < 600 with a
 C99 compiler should be a hard fail.
 
 -- 
 Jonathan Perkin  -  Joyent, Inc.  -  www.joyent.com
 


Home | Main Index | Thread Index | Old Index