Remove obsolete notes at top level of source tree.

* BUGS, CONFORMANCE, NAMESPACE, WUR-REPORT: Deleted.
 * README.pretty-printers, README.tunables: Move to manual/.
This commit is contained in:
Zack Weinberg 2017-09-01 08:04:22 -04:00
parent f4a6be2582
commit da162bf234
6 changed files with 0 additions and 337 deletions

69
BUGS
View File

@ -1,69 +0,0 @@
List of known bugs (certainly very incomplete)
----------------------------------------------
Time-stamp: <2007-10-27 18:37:51 drepper>
This following list contains those bugs which I'm aware of. Please
make sure that bugs you report are not listed here. If you can fix one
of these bugs/limitations I'll certainly be glad to receive a patch.
Another source of information about bugs is the problem data base of the
GNU project. There is an easy to use WWW interface available at
http://sourceware.org/bugzilla/
I would appreciate it very much if you could verify the problem was
not reported before by looking through the database. Before reporting
a bug please check the FAQ since it discusses also a lot of
problematic situations.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Severity: [ *] to [***]
[ **] Closing shared objects in statically linked binaries most of the
times leads to crashes during the dlopen(). Hard to fix.
[ **] The RPC code is not 64 bit clean. This is getting slowly fixed
but expect incompatible changes on 64 bit platforms like Alpha.
[ *] The precision of the `sinhl' and/or `asinhl' function do not seem
to be the best.
[ *] On Linux, there should be a way to prevent defining the symbol
NGROUPS_MAX in the <linux/limits.h> header file. In glibc it
is defined in <posix1_lim.h> which must not make the other
symbols in <linux/limits.h> available.
[PR libc/140]
[ *] The libm-ieee `gamma' function gives wrong results (at least for
-0.5).
[ *] The libm-ieee `scalb' function gives wrong results for
non-integral second parameters.
[ *] Several (most?) collation specifications are broken. The code which
is currently there is in most cases inherited from the originial
author (in case there is a LC_COLLATE specification in the locale
file) or is defined using the default (if iso14651_t1 is included).
In any case we are missing information to correct the specification.
If you find the specification for your language be faulty please
send a report with instruction on what to fix. You don't have to
fix the specification yourself.
The way it finally should look like (if the generic specification
is not correct) can be seen in the sv_SE file. Quite a few changes
on top of the generic specification can be made without duplication
of the whole LC_COLLATE description.
[ *] Some of the functions which also handled IPv6 are currently broken.
IPv6 and IPv4 lookups occasionally happen when not needed. This
happens in getaddrinfo() and getnameinfo(). IPv4 handling of
these functions is OK though and there are patches available to fix
the IPv6 code as well.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ulrich Drepper
drepper@redhat.com

View File

@ -1,168 +0,0 @@
Conformance of the GNU libc with various standards
==================================================
The GNU libc is designed to be conformant with existing standard as
far as possible. To ensure this I've run various tests. The results
are presented here.
Open Group's hdrchk
===================
The hdrchk test suite is available from the Open Group at
ftp://ftp.rdg.opengroup.org/pub/unsupported/stdtools/hdrchk/
I've last run the suite on 2004-04-17 on a Linux/x86 system running
a Fedora Core 2 test 2 + updates with the following results [*]:
FIPS No reported problems
POSIX90 No reported problems
XPG3 Prototypes are now in the correct header file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*** Starting unistd.h
Missing: extern char * cuserid();
Missing: extern int rename();
*** Completed unistd.h
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
XPG4 Prototype is now in the correct header file
and the _POSIX2_C_VERSION symbol has been removed
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*** Starting unistd.h
Missing: extern char * cuserid();
Missing: #define _POSIX2_C_VERSION (-1L)
*** Completed unistd.h
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
POSIX96 Prototype moved
(using "base realtime threads" subsets)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*** Starting unistd.h
Missing: extern int pthread_atfork();
*** Completed unistd.h
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
UNIX98 Prototypes moved and _POSIX2_C_VERSION removed
(using "base realtime threads mse lfs" subset)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*** Starting unistd.h
Missing: extern char * cuserid();
Missing: #define _POSIX2_C_VERSION (-1L)
Missing: extern int pthread_atfork();
*** Completed unistd.h
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
That means all the reported issues are due to the headers having been
cleaned up for recent POSIX/Unix specification versions. Duplicated
prototypes have been removed and obsolete symbols have been removed.
Which means that as far as the tests performed by the script go, the
headers files comply to the current POSIX/Unix specification.
[*] Since the scripts are not clever enough for the way gcc handles
include files (namely, putting some of them in gcc-local directory) I
copied over the iso646.h, float.h, and stddef.h headers and ignored the
problems resulting from the split limits.h file).
Technical C standards conformance issues in glibc
=================================================
If you compile programs against glibc with __STRICT_ANSI__ defined
(as, for example, by gcc -ansi, gcc -std=c89, gcc -std=iso1990:199409
or gcc -std=c99), and use only the headers specified by the version of
the C standard chosen, glibc will attempt to conform to that version
of the C standard (as indicated by __STDC_VERSION__):
GCC options Standard version
-ansi ISO/IEC 9899:1990
-std=c89 ISO/IEC 9899:1990
-std=iso9899:199409 ISO/IEC 9899:1990 as amended by Amd.1:1995
-std=c99 ISO/IEC 9899:1999
(Note that -std=c99 is not available in GCC 2.95.2, and that no
version of GCC presently existing implements the full C99 standard.)
You may then define additional feature test macros to enable the
features from other standards, and use the headers defined in those
standards (for example, defining _POSIX_C_SOURCE to be 199506L to
enable features from ISO/IEC 9945-1:1996).
There are some technical ways in which glibc is known not to conform
to the supported versions of the C standard, as detailed below. Some
of these relate to defects in the standard that are expected to be
fixed, or to compiler limitations.
Defects in the C99 standard
===========================
Some defects in C99 were corrected in Technical Corrigendum 1 to that
standard. glibc follows the corrected specification.
Implementation of library functions
===================================
The implementation of some library functions does not fully follow the
standard specification:
C99 added additional forms of floating point constants (hexadecimal
constants, NaNs and infinities) to be recognised by strtod() and
scanf(). The effect is to change the behavior of some strictly
conforming C90 programs; glibc implements the C99 versions only
irrespective of the standard version selected.
C99 added %a as another scanf format specifier for floating point
values. This conflicts with the glibc extension where %as, %a[ and
%aS mean to allocate the string for the data read. A strictly
conforming C99 program using %as, %a[ or %aS in a scanf format string
will misbehave under glibc if it does not include <stdio.h> and
instead declares scanf itself; if it gets the declaration of scanf
from <stdio.h>, it will use a C99-conforming version.
Compiler limitations
====================
The macros __STDC_IEC_559__, __STDC_IEC_559_COMPLEX__ and
__STDC_ISO_10646__ are properly supposed to be constant throughout the
translation unit (before and after any library headers are included).
However, they mainly relate to library features, and GCC only knows to
preinclude <stdc-predef.h> to get their definitions in version 4.8 and
later. Programs that test them before including any standard headers
may misbehave with older compilers.
GCC doesn't support the optional imaginary types. Nor does it
understand the keyword _Complex before GCC 3.0. This has the
corresponding impact on the relevant headers.
glibc's <tgmath.h> implementation is arcane but thought to work
correctly; a clean and comprehensible version requires compiler
builtins.
For most of the headers required of freestanding implementations,
glibc relies on GCC to provide correct versions. (At present, glibc
provides <stdint.h>, and GCC doesn't before version 4.5.)
The definition of math_errhandling conforms so long as no translation
unit using math_errhandling is compiled with -fno-math-errno,
-fno-trapping-math or options such as -ffast-math that imply these
options. math_errhandling is only conditionally defined depending on
__FAST_MATH__; the compiler does not provide the information needed
for more exact definitions based on settings of -fno-math-errno and
-fno-trapping-math, possibly for only some source files in a program.
Issues with headers
===================
None known.

View File

@ -1,66 +0,0 @@
Header Prefix Suffix
aio.h aio_, lio_, AIO_, LIO_
complex.h cerf{,f,l}, cerfc{,f,l}, cexp2{,f,l},
cexpm1{,f,l}, clog10{,f,l}, clog1p{,f,l},
clog2{,f,l}, clgamma{,f,l}, ctgamma{,f,l}
ctype.h is[a-z], to[a-z]
dirent.h d_
dlfcn.h RTLD_
errno.h E
fcntl.h l_, F_, O_, S_
fmtmsg.h MM_
fnmatch.h FNM_
ftw.h FTW
glob.h gl_, GLOB_
grp.h gr_
inttypes.h PRI[a-zX], SCN[a-zX]
limits.h _MAX
locale.h LC_[A-Z]
mqueue.h mq_, MQ_
ndbm.h dbm_, DBM_
nl_types.h NL_
poll.h pd_, ph_, ps_, POLL
pthread.h pthread_, PTHREAD_
pwd.h pw_
regex.h re_, rm_, REG_
sched.h sched_, SCHED_
semaphore.h sem_, SEM_
signal.h sa_, uc_, SIG[A-Z], SIG_[A-Z], SIG_[0-9a-z_]
ss_, sv_
si_, SI_, sigev_, SIGEV_, sival_, SA_,
BUS_, CLD_, FPE_, ILL_, POLL_, SEGV_, SS_, SV_, TRAP_
stdint.h int*_t, uint*_t, INT*_MAX, INT*_MIN,
INT*_C, UINT*_MAX, UINT*_MIN, UINT*_C
stdlib.h str[a-z]
string.h str[a-z], wcs[a-z]
stropts.h bi_, ic_, l_, sl_, str_,
FLUSH[A-Z], I_, M_, MUXID_R[A-Z], S_, SND[A-Z], STR
syslog.h LOG_
sys/ipc.h ipc_, IPC_
sys/mman.h shm_, MAP_, MCL_, MS_, PROT_
sys/msg.h msg, MSG[A-Z], MSG_[A-Z]
sys/resource.h rlim_, ru_, PRIO_, RLIM_, RLIMIT_, RUSAGE_
sys/sem.h sem, SEM_
sys/shm.h shm, SHM[A-Z], SHM_[A-Z]
sys/socket.h AF_, MSG_, PF_, SO
sys/stat.h st_, S_
sys/statvfs.h f_, ST_
sys/time.h fds_, it_, tv_, FD_, ITIMER_
sys/times.h tms_
sys/uio.h iov_, IOV_
sys/utsname.h uts_
sys/wait.h si_, W[A-Z], P_,
BUS_, CLD_, FPE_, ILL_, POLL_, SEGV_, SI_, TRAP_
termios.h c_, V, I, O, TC, B[0-9]
time.h tm_
clock_, timer_, it_, tv_,
CLOCK_, TIMER_
ucontext.h uc_, SS_
ulimit.h UL_
utime.h utim_
utmpx.h ut_ _LVL, _TIME, _PROCESS
wchar.h wcs[a-z]
wctype.h is[a-z], to[a-z]
wordexp.h we_, WRDE_
ANY header _t

View File

@ -1,34 +0,0 @@
<unistd.h>:
lssek: Probably should be __wur but lseek(fd,SEEK_SET,0) will succeed if
the descriptor is fine.
lseek64: same
<stdio.h>:
setvbuf: if stream and buffer are fine and other parameters constant,
it cannot really fail.
fseek: see lseek
fseeko: likewise
fgetpos: similarly
fsetpos: likewise
<stdlib.h>:
atexit: it is guaranteed that a certain number of handlers can be
registered, so some calls might need not be checked
on_exit: same
random functions: one might want to discard a number of results. In any
case, no security problem
putenv: probably SHOULD be marked, but we'll wait a bit.
setenv: likewise
unsetenv: likewise
clearenv: likewise
mbstowcs: probably SHOULD be marked
wcstombs: likewise
ptsname_r: probably SHOULD be marked