[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Patches] Differences between glibc and EGLIBC
- To: <patches@xxxxxxxxxx>
- Subject: [Patches] Differences between glibc and EGLIBC
- From: "Joseph S. Myers" <joseph@xxxxxxxxxxxxxxxx>
- Date: Fri, 26 Oct 2012 01:03:05 +0000
In the course of preparing cross-testing changes for glibc, I looked
through the diffs between glibc and EGLIBC. It's clear there are
quite a few miscellaneous changes that ought not now be too hard to
get into glibc (possibly in a reworked form, but getting in the
underlying feature). I've sent in a few, but it would be useful if
more contributors help picking up miscellaneous changes (their own or
other people's) to help reduce the unnecessary divergence. The
following lists of logical changes are intended to be complete, but I
expect a few have been missed.
Miscellaneous changes (that should not be too much effort to get in)
include the following (as usual, look at the current version in glibc
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.
* dl-profile.c here_cg_arc_record alignment (r1699).
* m68k no-FPU ColdFire fixes (r1833).
* powerpc 8xx cache line workaround (r2503).
* Changes to bits/wchar.h - likely no longer needed, but investigation
* Support for building with -Os (the r4355 changes may no longer be
needed, as people have reported successful -Os builds without them,
but in that case an investigation resulting a rationale for
reversion is needed).
* Robustness for ldd with non-bash shells (really only makes sense if
properly converted to be a POSIX shell script).
* Avoid issue with dash running tst-cancel7 (being discussed on
* 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).
* Avoid __block identifier (I think __glibc_reserved_block would meet
the agreed convention now).
* dl-load.c error message for mprotect failure (glibc bug 12492).
* 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.
* resolv.conf timestamp checks (note multiple followup fixes);
originated in a SUSE patch.
* __NO_FPRS__ for sysdeps/powerpc/powerpc32/dl-trampoline.S (which I
recently pinged for glibc).
* CFLAGS-backtrace.c for SH (which I accidentally omitted when sending
an SH backtrace patch to glibc).
* Extra tests for backtrace.
* Cross-getconf (building usr/libexec/getconf/ files when
* Casts in ports/sysdeps/mips/dl-machine.h (I haven't investigated
whether these still serve any purpose; MIPS builds are pretty noisy
anyway regarding compiler warnings, which could do with being
Changes that are likely to involve more work (maybe substantial
reworking) or be more controversial include the following.
* 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).
* 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
architecture.) Some fragments of improvements to powerpc header
files for no-FPRS or soft-float may be able to go in independently.
* --with-pkgversion and --with-bugurl.
* Making --disable-versioning work.
* 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
* SH __fpscr_values.
* 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 instead).
* 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?
* A Linuxthreads manpage change. Insubstantial, but there's no glibc
git repository for Linuxthreads (it's never been converted from
* Installation of *_pic.a and associated .map files for use of mklibs.
* dl-reloc.c change for ELF_MACHINE_NO_PLT. Doesn't actually work any
more; should be replaced by a different fix for the underlying bug
(glibc bug 2981).
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