public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* xfsprogs compile warnings: _BSD_SOURCE is deprecated in glibc 2.20.
@ 2015-04-28 11:09 Jan Ťulák
  2015-04-28 21:12 ` Dave Chinner
  0 siblings, 1 reply; 4+ messages in thread
From: Jan Ťulák @ 2015-04-28 11:09 UTC (permalink / raw)
  To: xfs

In glibc 2.20, _BSD_SOURCE and _SVID_SOURCE were deprecated and should be
replaced with _DEFAULT_SOURCE. Currently, compiling xfsprogs on a system with
glibc in said or newer version (like current Fedora) produces tons of warnings
like this one:

In file included from /usr/include/stdio.h:27:0,
                  from ../include/xfs/platform_defs.h:24,
                 from ../include/xfs/libxfs.h:25,
                 from xfs_mkfs.c:19:
/usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
 # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"

It can be fixed with the single line patch bellow, but I'm not sure if we can
remove the deprecated version because of compatiblity. Glibc 2.19, which added
_DEFAULT_SOURCE, was released in 2014, and I'm not sure how much it is
backported and how much xfsprogs are backported too. So, do we need a better
patch to take care of this and provide differend _SOURCE based on glibc
version, or this patch is enough?

Source: man 7 feature_test_macros
Here is a link in case you older version:
http://man7.org/linux/man-pages/man7/feature_test_macros.7.html


Signed-off-by: Jan Ťulák <jtulak@redhat.com>
---
 include/builddefs.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/builddefs.in b/include/builddefs.in
index 944bcf6..6e6097a 100644
--- a/include/builddefs.in
+++ b/include/builddefs.in
@@ -109,7 +109,7 @@ GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall
 #	   -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-decl
 
 ifeq ($(PKG_PLATFORM),linux)
-PCFLAGS = -D_GNU_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 $(GCCFLAGS)
+PCFLAGS = -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 $(GCCFLAGS)
 ifeq ($(HAVE_UMODE_T),yes)
 PCFLAGS += -DHAVE_UMODE_T
 endif
-- 
2.1.0

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: xfsprogs compile warnings: _BSD_SOURCE is deprecated in glibc 2.20.
  2015-04-28 11:09 xfsprogs compile warnings: _BSD_SOURCE is deprecated in glibc 2.20 Jan Ťulák
@ 2015-04-28 21:12 ` Dave Chinner
  2015-04-29  8:13   ` [PATCH] xfsprogs: Removing deprecated _BSD_SOURCE definition Jan Ťulák
  2015-04-29  8:23   ` xfsprogs compile warnings: _BSD_SOURCE is deprecated in glibc 2.20 Jan Tulak
  0 siblings, 2 replies; 4+ messages in thread
From: Dave Chinner @ 2015-04-28 21:12 UTC (permalink / raw)
  To: Jan Ťulák; +Cc: xfs

On Tue, Apr 28, 2015 at 01:09:04PM +0200, Jan Ťulák wrote:
> In glibc 2.20, _BSD_SOURCE and _SVID_SOURCE were deprecated and should be
> replaced with _DEFAULT_SOURCE. Currently, compiling xfsprogs on a system with
> glibc in said or newer version (like current Fedora) produces tons of warnings
> like this one:
> 
> In file included from /usr/include/stdio.h:27:0,
>                   from ../include/xfs/platform_defs.h:24,
>                  from ../include/xfs/libxfs.h:25,
>                  from xfs_mkfs.c:19:
> /usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
>  # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
> 
> It can be fixed with the single line patch bellow, but I'm not sure if we can
> remove the deprecated version because of compatiblity. Glibc 2.19, which added
> _DEFAULT_SOURCE, was released in 2014, and I'm not sure how much it is
> backported and how much xfsprogs are backported too. So, do we need a better
> patch to take care of this and provide differend _SOURCE based on glibc
> version, or this patch is enough?
> 
> Source: man 7 feature_test_macros
> Here is a link in case you older version:
> http://man7.org/linux/man-pages/man7/feature_test_macros.7.html

/me smacks head against wall

Really? glibc has decided to break the build of half the world?

> Signed-off-by: Jan Ťulák <jtulak@redhat.com>
> ---
>  include/builddefs.in | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/builddefs.in b/include/builddefs.in
> index 944bcf6..6e6097a 100644
> --- a/include/builddefs.in
> +++ b/include/builddefs.in
> @@ -109,7 +109,7 @@ GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall
>  #	   -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-decl
>  
>  ifeq ($(PKG_PLATFORM),linux)
> -PCFLAGS = -D_GNU_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 $(GCCFLAGS)
> +PCFLAGS = -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 $(GCCFLAGS)

Quoting that man page:

"
_GNU_SOURCE
[...]
	Since glibc 2.19, defining _GNU_SOURCE also has the effect
	of implicitly defining _DEFAULT_SOURCE.  In glibc versions
	before 2.20, defining _GNU_SOURCE also had the effect of
	implicitly defining _BSD_SOURCE and _SVID_SOURCE.
"

IOWs, glibc is just being an obnoxious. I'd just drop the
-D_BSD_SOURCE altogether, as _GNU_SOURCE should pull in everything
we need. And looking at it further, it also defines _XOPEN_SOURCE to
>= 500, so that could probably be dropped, too.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH] xfsprogs: Removing deprecated _BSD_SOURCE definition.
  2015-04-28 21:12 ` Dave Chinner
@ 2015-04-29  8:13   ` Jan Ťulák
  2015-04-29  8:23   ` xfsprogs compile warnings: _BSD_SOURCE is deprecated in glibc 2.20 Jan Tulak
  1 sibling, 0 replies; 4+ messages in thread
From: Jan Ťulák @ 2015-04-29  8:13 UTC (permalink / raw)
  To: david; +Cc: xfs

In glibc 2.20, _BSD_SOURCE was deprecated in favor of _DEFAULT_SOURCE.
_DEFAULT_SOURCE is included with _GNU_SOURCE, as well as _XOPEN_SOURCE >= 500,
so the obsolete and unnecessary definitions are removed.

For more details, see man 7 feature_test_macros for glibc >= 2.20.

Signed-off-by: Jan Ťulák <jtulak@redhat.com>
---
 include/builddefs.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/builddefs.in b/include/builddefs.in
index 944bcf6..7e9f53d 100644
--- a/include/builddefs.in
+++ b/include/builddefs.in
@@ -109,7 +109,7 @@ GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall
 #	   -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-decl
 
 ifeq ($(PKG_PLATFORM),linux)
-PCFLAGS = -D_GNU_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 $(GCCFLAGS)
+PCFLAGS = -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $(GCCFLAGS)
 ifeq ($(HAVE_UMODE_T),yes)
 PCFLAGS += -DHAVE_UMODE_T
 endif
-- 
2.1.0

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: xfsprogs compile warnings: _BSD_SOURCE is deprecated in glibc 2.20.
  2015-04-28 21:12 ` Dave Chinner
  2015-04-29  8:13   ` [PATCH] xfsprogs: Removing deprecated _BSD_SOURCE definition Jan Ťulák
@ 2015-04-29  8:23   ` Jan Tulak
  1 sibling, 0 replies; 4+ messages in thread
From: Jan Tulak @ 2015-04-29  8:23 UTC (permalink / raw)
  To: Dave Chinner; +Cc: xfs

----- Original Message -----
> From: "Dave Chinner" <david@fromorbit.com>
> To: "Jan Ťulák" <jtulak@redhat.com>
> Cc: xfs@oss.sgi.com
> Sent: Tuesday, 28 April, 2015 11:12:59 PM
> Subject: Re: xfsprogs compile warnings: _BSD_SOURCE is deprecated in glibc	2.20.
> 
> On Tue, Apr 28, 2015 at 01:09:04PM +0200, Jan Ťulák wrote:
> > In glibc 2.20, _BSD_SOURCE and _SVID_SOURCE were deprecated and should be
> > replaced with _DEFAULT_SOURCE. Currently, compiling xfsprogs on a system
> > with
> > glibc in said or newer version (like current Fedora) produces tons of
> > warnings
> > like this one:
> > 
> > In file included from /usr/include/stdio.h:27:0,
> >                   from ../include/xfs/platform_defs.h:24,
> >                  from ../include/xfs/libxfs.h:25,
> >                  from xfs_mkfs.c:19:
> > /usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and
> > _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
> >  # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use
> >  _DEFAULT_SOURCE"
> > 
> > It can be fixed with the single line patch bellow, but I'm not sure if we
> > can
> > remove the deprecated version because of compatiblity. Glibc 2.19, which
> > added
> > _DEFAULT_SOURCE, was released in 2014, and I'm not sure how much it is
> > backported and how much xfsprogs are backported too. So, do we need a
> > better
> > patch to take care of this and provide differend _SOURCE based on glibc
> > version, or this patch is enough?
> > 
> > Source: man 7 feature_test_macros
> > Here is a link in case you older version:
> > http://man7.org/linux/man-pages/man7/feature_test_macros.7.html
> 
> /me smacks head against wall
> 
> Really? glibc has decided to break the build of half the world?
> 
> > Signed-off-by: Jan Ťulák <jtulak@redhat.com>
> > ---
> >  include/builddefs.in | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/include/builddefs.in b/include/builddefs.in
> > index 944bcf6..6e6097a 100644
> > --- a/include/builddefs.in
> > +++ b/include/builddefs.in
> > @@ -109,7 +109,7 @@ GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall
> >  #	   -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-decl
> >  
> >  ifeq ($(PKG_PLATFORM),linux)
> > -PCFLAGS = -D_GNU_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=500
> > -D_FILE_OFFSET_BITS=64 $(GCCFLAGS)
> > +PCFLAGS = -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=500
> > -D_FILE_OFFSET_BITS=64 $(GCCFLAGS)
> 
> Quoting that man page:
> 
> "
> _GNU_SOURCE
> [...]
> 	Since glibc 2.19, defining _GNU_SOURCE also has the effect
> 	of implicitly defining _DEFAULT_SOURCE.  In glibc versions
> 	before 2.20, defining _GNU_SOURCE also had the effect of
> 	implicitly defining _BSD_SOURCE and _SVID_SOURCE.
> "
> 
> IOWs, glibc is just being an obnoxious. I'd just drop the
> -D_BSD_SOURCE altogether, as _GNU_SOURCE should pull in everything
> we need. And looking at it further, it also defines _XOPEN_SOURCE to
> >= 500, so that could probably be dropped, too.
> 

All right, so I dropped it too. We could make a glibc fork instead, but this seems to be... a bit easier. :P

Cheers.
-- 
Jan Tulak
jtulak@redhat.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-04-29  8:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-28 11:09 xfsprogs compile warnings: _BSD_SOURCE is deprecated in glibc 2.20 Jan Ťulák
2015-04-28 21:12 ` Dave Chinner
2015-04-29  8:13   ` [PATCH] xfsprogs: Removing deprecated _BSD_SOURCE definition Jan Ťulák
2015-04-29  8:23   ` xfsprogs compile warnings: _BSD_SOURCE is deprecated in glibc 2.20 Jan Tulak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox