[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Patches] Status of remaining glibc/EGLIBC differences 2013-10-11
- To: <patches@xxxxxxxxxx>, <debian-glibc@xxxxxxxxxxxxxxxx>
- Subject: [Patches] Status of remaining glibc/EGLIBC differences 2013-10-11
- From: "Joseph S. Myers" <joseph@xxxxxxxxxxxxxxxx>
- Date: Fri, 11 Oct 2013 16:57:52 +0000
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
joseph@xxxxxxxxxxxxxxxx
_______________________________________________
Patches mailing list
Patches@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/patches