All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.