This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Puzzled!


> Perhaps someone among the glibc developers may reassure me?

In general the answer to any report about old versions is that you (they)
should try the tests on the current version (2.3.1) before bugging us.

I have answered some below.  But bottom line, whoever reports these
problems needs to try 2.3.1 and report bugs if they find them.  Period.

> This version of Glibc supports the C95 standard with no failures, and 
> partially supports the optional math tests. The math functions are all 
> declared, but the accuracy of these optional functions is not always 
> good. The following list of math functions failed to pass our accuracy 

Some math functions have definitely changed.

>     * The |islpha|, |isalnum|,
>       |iscntrl|,|isdigit|,|islower|,|isprint|,|ispunct|,|isspace|,|isupper|,
>       and |isxdigit| functions in |ctype.h| are defend as macros.

This is not a bug.

>     * The macro |LC_MESSAGE| is not defined in |locale.h|.

This seems like a testsuite bug.  It's LC_MESSAGES.

>     * The overloads for |abs(double)| and |pow(double, int)| in |math.h|
>       are not declared.

That is C++.

>     * The type |va_list| is not defined in |stdarg.h|.

That is obviously just plain not true, which makes the whole list pretty
suspect.  Anyway, stdarg.h is from GCC, not from glibc.

>     * Not all the signatures called for by the C++ Standard for
>       |memchr|,|strchr|,|strpbrk|,|strchr|, and |strstr| are declared in
>       |string.h|.

This is the C library, so we don't worry about the C++ standard.  But if
those functions are specified to be as they are in the C standard, then
this item is clearly bogus.  Those functions have always been declared.  If
you are talking about some insane overloading that C++ specifies because
they are on crack, then no, the C library doesn't provide C++ declarations.
Duh.

>     * Not all the signatures called for by the C++ Standard for
>       |wmemchr|,|wcspbrk|,|wcschr|,|wcsrchr|, and |wcsstr| are declared
>       in |wchar.h|.
>     * The |float| and the |long double| versions of |ceil|, |fabs|,
>       |floor|,
>       |fmod|,|frexp|,|ldexp|,|modf|,|acos|,|asin|,|atan|,|atan2|,|cos|,|sin|,|tan|,|cosh|,|exp|,|log|,|log10|,|sinh|,|sqrt|,
>       and |tanh| functions are not declared in |math.h|.
>     * The |long int| overloads of the functions |abs| and |div| are not
>       defined in |stdlib.h|.

All C++, has nothing to do with glibc.

>     * The macro |math_errhandling| is not defined in |math.h|

>From glibc/CONFORMANCE:

	Implementing MATH_ERRNO, MATH_ERREXCEPT and math_errhandling in
	<math.h> needs compiler support: see

	http://sources.redhat.com/ml/libc-hacker/2000-06/msg00008.html
	http://sources.redhat.com/ml/libc-hacker/2000-06/msg00014.html
	http://sources.redhat.com/ml/libc-hacker/2000-06/msg00015.html

>     * |_Exit| is not declared in |stdlib|.

Yes it is.

>     * The |hh| specifier for |d|, |i|,|o|,|u|,|x|, or |X| conversion
>       specifier does not convert the value to a |signed| or |unsigned|
>       char before printing. This applies to both the wide and narrow
>       versions of the input/output functions.

Yes it does.

>     * If |L""| is passed as the format parameter to |vwprintf| a
>       negative value is returned, indicating an error occurred.

Not true.

>     * |fsetpos| and |fgetpos| do not work on a stream that has had wide
>       characters written to the stream.

Not true.  Many wchar issues have been fixed in 2.3.

>     * The |SCN| macros for unsigned integers that correspond to the |X|
>       specifier for |fscanf| in |inttypes.h| are not implemented.

Are there supposed to be SCNX* in addition to SCNx*?

> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]