Differences between revisions 6 and 7
Revision 6 as of 2014-02-25 16:08:53
Size: 5451
Comment:
Revision 7 as of 2014-02-26 02:05:05
Size: 5510
Comment:
Deletions are marked like this. Additions are marked like this.
Line 101: Line 101:
|| Feature Test Macro || Version 2.19 || Version 2.20 ||
|| `_BSD_SOURCE` || Supported. ISO C, POSIX, and 4.3BSD things.|| Supported, but issues a warning if `_DEFAULT_SOURCE` is not defined. ||
|| `_SVID_SOURCE` || Supported. ISO C, POSIX, and SVID things. || Supported, but issues a warning if `_DEFAULT_SOURCE` is not defined. ||
|| `_DEFAULT_SOURCE` || Unsupported (ignored). || Supported. The default set of features (taking precedence over `__STRICT_ANSI__`). ||
|| Feature Test Macro || Version 2.18 || Version 2.19 || Version 2.20 ||
|| `_BSD_SOURCE` || Supported. ISO C, POSIX, and 4.3BSD things. || Supported. || Supported, but issues a warning if `_DEFAULT_SOURCE` is not defined. ||
|| `_SVID_SOURCE` || Supported. ISO C, POSIX, and SVID things. || Supported. || Supported, but issues a warning if `_DEFAULT_SOURCE` is not defined. ||
|| `_DEFAULT_SOURCE` || Unsupported (ignored). || Supported. || Supported. The default set of features (taking precedence over `__STRICT_ANSI__`). ||

Release/2.20

1. Current status

The release branch of glibc-2.20 is maintained by USER (USER@EMAIL) and is planned for release July 31st 2014.

The ref structure of this branch is:

  • release/2.20/master: main branch
  • glibc-2.20.N: revision releases tagged out of release/2.20/master

These people are interested in contents and further revisions tagged on the branch:

  • PERSON1
  • PERSON2
  • ...

The general policies for release branches apply to this branch. Do you think a certain bugfix should be included in this branch?

  1. Is the fix committed in master? It has to be, unless it's not applicable to master (e.g. code has been rewritten meantime).
  2. Do you have commit permissions? If so, go ahead if you think it's reasonably safe. break;
  3. Can you handle Git yourself? Then you can clone the glibc repository, cherry-pick the appropriate fixes, push your branch out and send a pull request at libc-alpha. break;
  4. Add the glibc_2.20 keyword to the appropriate bug report.
  5. If there is no appropriate bug report, send a request for the fix to be included to libc-alpha.

A revision release is tagged either when some critical bug-fix appears, or after some period of real-world testing, usually mainly in some SUSE distribution branch (but other distributions are welcome to run latest release/2.20/master as well, more so if they tell me about it!).

2. Planning

What things do we want to accomplish this release?

2.1. Release blockers?

2.2. Desirable this release?

3. Known Issues

3.1. Build and test issues

Describe build and test issues for each architecture, or confirm a clean build with no testsuite failures. The list below is not a complete list of ABI variants; testing should try to cover the different ABI variants as far as possible.

Build system: UNAME -a, GCC?, Binutils?, Kernel ?

TRIMMED LIST OF FAILURES.

3.1.1. Architecture-independent

3.1.2. AArch64

3.1.3. Alpha

3.1.4. ARM

3.1.5. HPPA

3.1.6. IA64

3.1.7. M68K

3.1.8. MicroBlaze

3.1.9. MIPS

3.1.10. PowerPC (32-bit soft-float)

3.1.11. PowerPC (32-bit hard-float)

3.1.12. PowerPC (64-bit hard-float)

3.1.13. S/390 (32-bit)

3.1.14. S/390 (64-bit)

3.1.15. SH

3.1.16. SPARC (32-bit)

3.1.17. SPARC (64-bit)

3.1.18. TILE-Gx

3.1.19. TILEPro

3.1.20. x86 (32-bit, Linux)

3.1.21. x86_64 (64-bit, Linux)

3.1.22. x86_64 (x32, Linux)

3.1.23. x86 (32-bit, Hurd)

3.2. Packaging Changes

Describe any distribution packing changes that may be required:

3.2.1. Deprecation of _BSD_SOURCE and _SVID_SOURCE feature macros

The _BSD_SOURCE and _SVID_SOURCE feature macros are in the process of being deprecated for a cleaner interface for enabling or disabling all the additional features normally defined in the GNU C Library. The replacement is _DEFAULT_SOURCE, and provides everything provided by the previous two macros e.g. all options enabled by default if the compiler options would not restrict them.

Summary Table:

Feature Test Macro

Version 2.18

Version 2.19

Version 2.20

_BSD_SOURCE

Supported. ISO C, POSIX, and 4.3BSD things.

Supported.

Supported, but issues a warning if _DEFAULT_SOURCE is not defined.

_SVID_SOURCE

Supported. ISO C, POSIX, and SVID things.

Supported.

Supported, but issues a warning if _DEFAULT_SOURCE is not defined.

_DEFAULT_SOURCE

Unsupported (ignored).

Supported.

Supported. The default set of features (taking precedence over __STRICT_ANSI__).

The _BSD_SOURCE and _SVID_SOURCE feature macros are not yet deprecated, but use of those macros will produce the following warning:

In file included from /usr/include/stdio.h:27:0,
                 from test3.c:2:
/usr/include/features.h:152: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"
   ^

The recommend process for removing the warning is to the following:

  • Remove the defines for _BSD_SOURCE and _SVID_SOURCE to determine if your application actually needs them. Several of these define are cargo culted from older sources without a clear understanding of the interfaces they enable. The application may in fact not need either of these defines.

  • If the application does indeed need _BSD_SOURCE and/or _SVID_SOURCE, you only support glibc >= 2.20 and you're on Linux then define _DEFAULT_SOURCE instead like this:

#if defined __linux__
# define _DEFAULT_SOURCE 1
#else
# define _BSD_SOURCE 1
# define _SVID_SOURCE 1
#endif
  • If the application does indeed need _BSD_SOURCE and/or _SVID_SOURCE and you must support glibc < 2.19 and glibc >= 2.20 then define all three unconditionally:

/* Legacy feature macros.  */
#define _BSD_SOURCE 1
#define _SVID_SOURCE 1
/* New feature macro that provides everything _BSD_SOURCE and 
   _SVID_SOURCE provided and possibly more.  */
#define _DEFAULT_SOURCE 1

Eventually when _BSD_SOURCE and _SVID_SOURCE are removed your application will need to define _DEFAULT_SOURCE to continue to operate correctly. For more information on _DEFAULT_SOURCE see the glibc manual.

None: Release/2.20 (last edited 2014-07-24 07:29:24 by FlorianWeimer)