Here is the latest version of my list of differences between glibc and EGLIBC, classified according to my expectations for what will happen to them (whether, and to what extent, they will end up in glibc). We are on track for EGLIBC 2.19 being the last EGLIBC release branch, as previously discussed, with no merges from FSF glibc to EGLIBC trunk happening after the 2.19 release (merges to EGLIBC release branches are expected to continue for as long as the corresponding glibc release branches are active, after which the EGLIBC repository, issue tracker and website may be made read-only).
I am working on, or plan to work on, merging the following changes to glibc. 1. One localedef bug fix that was entangled with the cross-localedef changes, as submitted at <https://sourceware.org/ml/libc-alpha/2013-10/msg00143.html>. I have no such plans for the remaining unmerged pieces of cross-localedef (see below). 2. The e500 port, as submitted at <https://sourceware.org/ml/libc-alpha/2013-10/msg00384.html> (with six associated Linux kernel patches linked from there). Note that to avoid some soft-fp functions built with this port using uninitialized values, two soft-fp patches <https://sourceware.org/ml/libc-alpha/2013-10/msg00351.html> and <https://sourceware.org/ml/libc-alpha/2013-10/msg00393.html> are needed as well. Note that this has ABI incompatibilities with the version currently in EGLIBC, as detailed at <http://www.eglibc.org/archives/patches/msg01291.html> (4 July), for existing binaries using one or more of the following libc symbols: atosfix16 atosfix32 atosfix64 atoufix16 atoufix32 atoufix64 strtosfix16 strtosfix32 strtosfix64 strtoufix16 strtoufix32 strtoufix64, or (e500v1 only) __adddf3 __divdf3 __eqdf2 __extendsfdf2 __feraiseexcept_soft __fixdfsi __fixunsdfsi __floatsidf __gedf2 __ledf2 __muldf3 __negdf2 __sqrtdf2 __subdf3 __truncdfsf2 __floatundidf __floatunsidf __gtdf2 __ltdf2 __nedf2 __unorddf2, or one or more of the following libm symbols: __fe_nomask_env feclearexcept fegetexceptflag feraiseexcept fesetexceptflag fetestexcept feenableexcept fedisableexcept fegetexcept. Once this is in glibc, it will replace the EGLIBC version at the next merge from glibc to EGLIBC. I have no such plans for the SPE PIM functions (see below). 3. bits/predefs.h to allow __STDC_IEC_559__ and __STDC_IEC_559_COMPLEX__ to be defined only conditionally. My plan is to make GCC predefine macros to indicate the intent of GCC's compilation mode (combination of target features and architecture-independent options such as -ffast-math and -fcx-limited-range), which stdc-predef.h would then use to determine whether to predefine these macros. As with other such macros, they would continue to describe *intent* rather than *completeness*. I believe other people are working on, or plan to work on, merging the following changes to glibc. 4. Robustness for ldd with non-bash shells (really only makes sense if properly converted to be a POSIX shell script). P. J. McDermott has posted a patch <https://sourceware.org/ml/libc-alpha/2013-09/msg00415.html>; the copyright assignment is on file. He's also posted patches more generally avoiding $"" in installed shell scripts (glibc bug 13853); see <https://sourceware.org/ml/libc-alpha/2013-06/msg01151.html>. 5. Avoid __block identifier in installed headers (glibc bug 11157; I think __glibc_reserved_block would meet the agreed convention now). Meador Inge intends to work on this. As far as I am aware, there are no plans to merge the following changes to glibc, and so they will effectively go away as the separate EGLIBC source tree is obsoleted. If you or your users are relying on any of these changes, now would be a good time to (complete your copyright assignment and) contribute them to glibc. 6. powerpc 8xx cache line workaround (r2503). 7. resolv.conf timestamp checks (note multiple followup fixes); originated in a SUSE patch. 8. Option group support. Any work on of this should take into account Steve Longerbeam's patches that didn't get checked in - that is, start by locating the final versions of those patches, retesting them, writing proper GNU ChangeLog entries for them and resubmitting them. Then start from the resulting version of option group support (probably one option group at a time). (See <http://www.eglibc.org/archives/patches/msg01049.html> (8 Dec 2011).) Note however that as I said at <http://www.eglibc.org/archives/patches/msg01284.html> (28 June), certain option groups do not make sense and should be removed. 9. SPE PIM functions (and associated testcases) from e500 port. They could move into a separate library libspe (as they were in Aldy's add-on). The implementations use some of the MPN functions, like strtod does, so the library would naturally be a glibc add-on that could pick up the relevant objects also used in libc.so, or the symbols could be exported at GLIBC_PRIVATE from libc.so (I can see possible use for these functions in libm in future as well). Such an add-on might or might not be in the glibc repository. 10. Remaining parts of cross-localedef: that is, the separate build system and a few miscellaneous changes in localedef that have no significance as long as it's just built along with the glibc it's linked against. (All the changes needed for localedef to generate output for another system - everything needed for the output to be system-independent apart from the endianness controlled by the --big-endian / --little-endian options - are now in glibc, as are those options. But you may need to build glibc for your build system, matching the version being built for the system for which you want to build locales, to use them.) 11. SH __fpscr_values. In general symbols should not be added to old symbol versions, but there's a question here of whether actually most or all SH glibc users are in fact using glibc with this patch so it is part of the de facto ABI. See <https://sourceware.org/ml/libc-alpha/2012-05/msg01988.html>. 12. A Linuxthreads manpage change. Insubstantial, but there's no glibc git repository for Linuxthreads (it's never been converted from CVS). It still appears to be the case that the man-pages project does not have a manpage for pthread_mutex_init / pthread_mutex_unlock (the one in question), and that Linuxthreads is being used to provide a manpage for those functions by Ubuntu, for example. I believe it is also the case that Linuxthreads is still being used by GNU/kFreeBSD, so if that gets merged to glibc then there may be a case for merging in the Linuxthreads history. 13. Installation of *_pic.a and associated .map files for use of mklibs. Same question applies as for option groups about whether this is still useful (the original use case of mklibs having been for boot *floppies*). 14. Backwards compatibility with the install-bootstrap-headers mechanism, and for the cross-test-wrapper variable name (the glibc name is test-wrapper), and EGLIBC.cross-building and EGLIBC.cross-testing documentation files. I am also not aware of any plans to transfer any relevant issues from the EGLIBC issue tracker to the glibc tracker. I encourage people not to file issues in the EGLIBC tracker any more, and anyone interested to file issues for glibc corresponding to any EGLIBC issues that actually apply to current glibc. -- Joseph S. Myers [email protected] -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

