[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Patches] Differences between glibc and EGLIBC

Here is a further updated version of my list
<http://www.eglibc.org/archives/patches/msg01208.html> of changes
between glibc and EGLIBC that should be got into glibc (possibly in a
reworked form not based on the original patch, but implementing the
desired featuers) or reverted from EGLIBC if they no longer serve a
useful purpose.  It would still be useful for more people to help
picking up patches and working on getting the associated features into

Miscellaneous changes (that should not be too much effort to get in)
include the following (as usual, look at the current version in EGLIBC
after merges from upstream and any bugfixes made in EGLIBC, which may
differ from the originally committed version).  In some cases, if it
can clearly be justified that the change is no longer relevant, it
should be reverted.

1. dl-profile.c here_cg_arc_record alignment (r1699; see
   <http://www.eglibc.org/archives/patches/msg00126.html> for detailed
   analysis; the motivation was for an e500 build failure, but atomic
   operations on unaligned objects seem wrong in any case).

2. m68k no-FPU ColdFire fixes (r1833, plus subsequent changes because
   of changes to the affected code in glibc).

3. powerpc 8xx cache line workaround (r2503).

4. Robustness for ldd with non-bash shells (really only makes sense if
   properly converted to be a POSIX shell script).  Patches making ldd
   a POSIX shell script, and generally avoiding $"" in installed
   scripts (glibc bug 13853), were posted to libc-alpha in November
   2012, but will need a copyright assignment to be completed before
   they can go in.

5. Differences between the glibc and EGLIBC versions of math.h and
   complex.h regarding the handling of the no-long-double case.  See
   <http://www.eglibc.org/archives/patches/msg01032.html> - may no
   longer be needed (glibc bug 14033 was fixed).

6. Avoid __block identifier (I think __glibc_reserved_block would meet
   the agreed convention now).

7. dl-load.c error message for mprotect failure (glibc bug 12492).

8. malloc/Makefile use of libc_nonshared.a (and removing the
   ARM-specific workaround); possibly linking miscellaneous .so files
   (in general) more like they would be linked with an installed
   library is the right solution.

9. resolv.conf timestamp checks (note multiple followup fixes);
   originated in a SUSE patch.

Changes that are likely to involve more work (maybe substantial
reworking) or be more controversial include the following.

10. Option group support.  (I think Carlos expressed an interest in
    this, at least as regards the option groups corresponding to POSIX
    profiles.)  Any submission 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>.  Khem Raj
    expressed an interest in this merge.)

11. e500 port.  (Should probably involve rearranging powerpc32/fpu/
    files in glibc in a similar way to the m68k port, to reflect the
    different incompatible floating-point implementations for the

12. Making --disable-versioning work.

13. Cross-localedef.  (Multiple parts; maybe the support for options
    to localedef to specify endianness and uint32_t alignment would be
    the least controversial, and also the largest so most valuable to

14. SH __fpscr_values.

15. bits/predefs.h to allow __STDC_IEC_559__ and
    __STDC_IEC_559_COMPLEX__ to be defined only conditionally
    (possibly should be done through appropriate GCC features

16. ColdFire MMAP2_PAGE_SHIFT (there were some objections when it was
    previously proposed for glibc, though such a thing *ought* to be
    straightforward).  Now a lot of ColdFire code has gone into
    kernel.org kernels, maybe the ABI can be confirmed there?

17. 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.

18. Installation of *_pic.a and associated .map files for use of

19. Extra test debug/tst-backtrace6 (may need new interfaces for a
    test of this functionality to pass reliably, see discussion
    starting at

There are also a few differences deliberately kept for compatibility
with EGLIBC ways of cross-building and cross-testing, although glibc
now has support for those things in slightly different ways.

Joseph S. Myers
Patches mailing list