]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Remove _BSD_SOURCE and _SVID_SOURCE.
authorJoseph Myers <joseph@codesourcery.com>
Tue, 11 Feb 2014 23:40:07 +0000 (23:40 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 11 Feb 2014 23:40:07 +0000 (23:40 +0000)
This is a minimal patch to remove _BSD_SOURCE and _SVID_SOURCE from
the documented user API, making them into aliases for _DEFAULT_SOURCE
with a #warning given, but keeping most of the features.h logic using
those macros and all the exising __USE_* conditionals, on the basis
that all the consequent cleanups will go in followup patches.

Tested x86_64.

* include/features.h: Update comment documenting feature test
macros.
[_BSD_SOURCE || _SVID_SOURCE]: Give #warning.  Define
_DEFAULT_SOURCE.
* manual/creature.texi (_BSD_SOURCE): Remove documentation.
(_SVID_SOURCE): Likewise.
(_DEFAULT_SOURCE): Update description of default features.
(Feature Test Macros): Don't mention _SVID_SOURCE in conjunction
with _GNU_SOURCE.
* manual/filesys.texi (__ftw_func_t): Do not refer to _BSD_SOURCE.
(S_ISVTX): Likewise.
* manual/math.texi (Mathematical Constants): Likewise.
* manual/signal.texi (Interrupted Primitives): Likewise.
* manual/startup.texi (putenv): Do not refer to _SVID_SOURCE.
* math/test-matherr.c (_SVID_SOURCE): Do not define.
* sysvipc/sys/ipc.h [__USE_SVID && !__USE_XOPEN && __GNUC__ >= 2]:
Don't refer to _SVID_SOURCE in warning text.

ChangeLog
NEWS
include/features.h
manual/creature.texi
manual/filesys.texi
manual/math.texi
manual/signal.texi
manual/startup.texi
math/test-matherr.c
sysvipc/sys/ipc.h

index 8480d296b1d4e9ecc90b3e69fa481684f63111da..a4b4f85ffd34504b29934331cd85b6f4619c2fc0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
 2014-02-11  Joseph Myers  <joseph@codesourcery.com>
 
+       * include/features.h: Update comment documenting feature test
+       macros.
+       [_BSD_SOURCE || _SVID_SOURCE]: Give #warning.  Define
+       _DEFAULT_SOURCE.
+       * manual/creature.texi (_BSD_SOURCE): Remove documentation.
+       (_SVID_SOURCE): Likewise.
+       (_DEFAULT_SOURCE): Update description of default features.
+       (Feature Test Macros): Don't mention _SVID_SOURCE in conjunction
+       with _GNU_SOURCE.
+       * manual/filesys.texi (__ftw_func_t): Do not refer to _BSD_SOURCE.
+       (S_ISVTX): Likewise.
+       * manual/math.texi (Mathematical Constants): Likewise.
+       * manual/signal.texi (Interrupted Primitives): Likewise.
+       * manual/startup.texi (putenv): Do not refer to _SVID_SOURCE.
+       * math/test-matherr.c (_SVID_SOURCE): Do not define.
+       * sysvipc/sys/ipc.h [__USE_SVID && !__USE_XOPEN && __GNUC__ >= 2]:
+       Don't refer to _SVID_SOURCE in warning text.
+
        * sysdeps/x86_64/fpu/libm-test-ulps: Update.
 
        * elf/dl-lookup.c (ELF_MACHINE_SYM_NO_MATCH): Define if not
diff --git a/NEWS b/NEWS
index 0f4b8d4f38b4a08c2fa70b91377124b9ffb9a63b..2da97546bff2707c1a63e3d4fb66114e032858a5 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -13,6 +13,14 @@ Version 2.20
 
 * The am33 port, which had not worked for several years, has been removed
   from ports.
+
+* The _BSD_SOURCE and _SVID_SOURCE feature test macros are no longer
+  supported; they now act the same as _DEFAULT_SOURCE (but generate a
+  warning).  Except for cases where _BSD_SOURCE enabled BSD interfaces that
+  conflicted with POSIX (support for which was removed in 2.19), the
+  interfaces those macros enabled remain available when compiling with
+  _GNU_SOURCE defined, with _DEFAULT_SOURCE defined, or without any feature
+  test macros defined.
 \f
 Version 2.19
 
index 21173a28c30c0e120ff4a454e7316320e1785d29..c729a3fc0d1e2a45d49623422fb674f158bb3183 100644 (file)
@@ -37,8 +37,6 @@
    _LARGEFILE_SOURCE   Some more functions for correct standard I/O.
    _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
    _FILE_OFFSET_BITS=N Select default filesystem interface.
-   _BSD_SOURCE         ISO C, POSIX, and 4.3BSD things.
-   _SVID_SOURCE                ISO C, POSIX, and SVID things.
    _ATFILE_SOURCE      Additional *at interfaces.
    _GNU_SOURCE         All of the above, plus GNU extensions.
    _DEFAULT_SOURCE     The default set of features (taking precedence over
    The `-ansi' switch to the GNU C compiler, and standards conformance
    options such as `-std=c99', define __STRICT_ANSI__.  If none of
    these are defined, or if _DEFAULT_SOURCE is defined, the default is
-   to have _SVID_SOURCE, _BSD_SOURCE, and _POSIX_SOURCE set to one and
-   _POSIX_C_SOURCE set to 200809L.  If more than one of these are
-   defined, they accumulate.  For example __STRICT_ANSI__,
-   _POSIX_SOURCE and _POSIX_C_SOURCE together give you ISO C, 1003.1,
-   and 1003.2, but nothing else.
+   to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
+   200809L, as well as enabling miscellaneous functions from BSD and
+   SVID.  If more than one of these are defined, they accumulate.  For
+   example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
+   give you ISO C, 1003.1, and 1003.2, but nothing else.
 
    These are defined by this file and are used by the
    header files to decide what to declare or define:
 # define __GNUC_PREREQ(maj, min) 0
 #endif
 
+/* _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
+   _DEFAULT_SOURCE.  */
+#if defined _BSD_SOURCE || defined _SVID_SOURCE
+# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
+# undef  _DEFAULT_SOURCE
+# define _DEFAULT_SOURCE       1
+#endif
 
 /* If _GNU_SOURCE was defined by the user, turn on all the other features.  */
 #ifdef _GNU_SOURCE
index bbf16b7f272464ea376865590f2b244227c15938..3c686165f1ee44160474e8a37576d4f396fc64e8 100644 (file)
@@ -72,20 +72,6 @@ or equal to @code{199506L}, then the functionality from the 1996
 edition is made available.
 @end defvr
 
-@comment (none)
-@comment GNU
-@defvr Macro _BSD_SOURCE
-If you define this macro, functionality derived from 4.3 BSD Unix is
-included as well as the @w{ISO C}, POSIX.1, and POSIX.2 material.
-@end defvr
-
-@comment (none)
-@comment GNU
-@defvr Macro _SVID_SOURCE
-If you define this macro, functionality derived from SVID is
-included as well as the @w{ISO C}, POSIX.1, POSIX.2, and X/Open material.
-@end defvr
-
 @comment (none)
 @comment X/Open
 @defvr Macro _XOPEN_SOURCE
@@ -192,9 +178,9 @@ precedence.
 @comment GNU
 @defvr Macro _DEFAULT_SOURCE
 If you define this macro, most features are included apart from
-X/Open, LFS and GNU extensions; the effect is similar to defining
-@code{_POSIX_C_SOURCE} to @code{200809L} and @code{_POSIX_SOURCE},
-@code{_SVID_SOURCE}, and @code{_BSD_SOURCE} to 1.  Defining this
+X/Open, LFS and GNU extensions: the effect is to enable features from
+the 2008 edition of POSIX, as well as certain BSD and SVID features
+without a separate feature test macro to control them.  Defining this
 macro, on its own and without using compiler options such as
 @option{-ansi} or @option{-std=c99}, has the same effect as not
 defining any feature test macros; defining it together with other
@@ -229,4 +215,4 @@ it is harmless to define in addition a feature test macro for a subset of
 those features.  For example, if you define @code{_POSIX_C_SOURCE}, then
 defining @code{_POSIX_SOURCE} as well has no effect.  Likewise, if you
 define @code{_GNU_SOURCE}, then defining either @code{_POSIX_SOURCE} or
-@code{_POSIX_C_SOURCE} or @code{_SVID_SOURCE} as well has no effect.
+@code{_POSIX_C_SOURCE} as well has no effect.
index 1c9d7d7707ad932c4a50c8dd814f8a1bbd71bc87..9bf5baf2c244d17be4a34ebb883ea421a2dff7d6 100644 (file)
@@ -893,7 +893,7 @@ seeing this value in a @code{ftw} callback function means the referenced
 file does not exist.  The situation for @code{nftw} is different.
 
 This value is only available if the program is compiled with
-@code{_BSD_SOURCE} or @code{_XOPEN_EXTENDED} defined before including
+@code{_XOPEN_EXTENDED} defined before including
 the first header.  The original SVID systems do not have symbolic links.
 @end vtable
 
@@ -2553,8 +2553,9 @@ the file's modification time onto disk reliably (the idea being that
 no-one cares for a swap file).
 
 This bit is only available on BSD systems (and those derived from
-them).  Therefore one has to use the @code{_BSD_SOURCE} feature select
-macro to get the definition (@pxref{Feature Test Macros}).
+them).  Therefore one has to use the @code{_GNU_SOURCE} feature select
+macro, or not define any feature test macros, to get the definition
+(@pxref{Feature Test Macros}).
 @end table
 
 The actual bit values of the symbols are listed in the table above
index 152744147c1d7a806ab21714299f592e1de4bab2..a884cb7c2952102cacdc1036b00eee65a8c2c83a 100644 (file)
@@ -106,7 +106,7 @@ The reciprocal of the square root of two (also the square root of 1/2).
 @end vtable
 
 These constants come from the Unix98 standard and were also available in
-4.4BSD; therefore they are only defined if @code{_BSD_SOURCE} or
+4.4BSD; therefore they are only defined if
 @code{_XOPEN_SOURCE=500}, or a more general feature select macro, is
 defined.  The default set of features includes these constants.
 @xref{Feature Test Macros}.
index f0e57ddbe41af3b0948d64c1dea420c6b1db9928..51f68b5d3ec59ea8a662c18360a3ba15cebe80ef 100644 (file)
@@ -2141,16 +2141,9 @@ that handler will cause @code{EINTR}.  @xref{Flags for Sigaction}.
 Another way to specify the choice is with the @code{siginterrupt}
 function.  @xref{BSD Handler}.
 
-@c !!! not true now about _BSD_SOURCE
 When you don't specify with @code{sigaction} or @code{siginterrupt} what
 a particular handler should do, it uses a default choice.  The default
-choice in @theglibc{} depends on the feature test macros you have
-defined.  If you define @code{_BSD_SOURCE} or @code{_GNU_SOURCE} before
-calling @code{signal}, the default is to resume primitives; otherwise,
-the default is to make them fail with @code{EINTR}.  (The library
-contains alternate versions of the @code{signal} function, and the
-feature test macros determine which one you really call.)  @xref{Feature
-Test Macros}.
+choice in @theglibc{} is to make primitives fail with @code{EINTR}.
 @cindex EINTR, and restarting interrupted primitives
 @cindex restarting interrupted primitives
 @cindex interrupting primitives
index a5d2d2f5e2945bf7600769b75bc132520192d4c5..9a091a51517e59f50c6a1958ad71b07a9f605866 100644 (file)
@@ -379,9 +379,8 @@ reflect automatically in the environment.  This also requires that
 variable is removed from the environment.  The same applies of course to
 dynamically allocated variables which are freed later.
 
-This function is part of the extended Unix interface.  Since it was also
-available in old SVID libraries you should define either
-@var{_XOPEN_SOURCE} or @var{_SVID_SOURCE} before including any header.
+This function is part of the extended Unix interface.  You should define
+@var{_XOPEN_SOURCE} before including any header.
 @end deftypefun
 
 
index 91657a8cb20db3951f607fce9c3b7a4456ece85e..cd09a3981ce517c5bb2ba0bb0671467d53c513d1 100644 (file)
@@ -1,5 +1,3 @@
-#undef _SVID_SOURCE
-#define _SVID_SOURCE
 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
index 8d5d6ac5df8ab24d6743854c8c75a7e54489cf69..a1af5314f4ceee875c55e0e0f6a6997365e660e7 100644 (file)
@@ -21,7 +21,7 @@
 #include <features.h>
 
 #if !defined __USE_SVID && !defined __USE_XOPEN && __GNUC__ >= 2
-# warning "Files using this header must be compiled with _SVID_SOURCE or _XOPEN_SOURCE"
+# warning "Files using this header must be compiled with _GNU_SOURCE or _XOPEN_SOURCE"
 #endif
 
 /* Get system dependent definition of `struct ipc_perm' and more.  */