mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 21:10:07 +00:00
a778333951
135 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
Joseph Myers
|
7daada0319 |
Fix bits/math-finite.h _MSUF_ expansion namespace (bug 22028).
The current bits/math-finite.h approach to defining functions for different types, involving math.h defining _MSUF_ and _MSUFTO_ for the function suffixes involved, is not namespace-clean if one of those suffixes (f, l, f128) is defined as a macro by the user before math.h is included; too many levels of macro expansion occur. Instead, those suffixes should appear directly in the expansion of the macro using ## so they don't get expanded even if defined as macros by the user (that is, math.h should be defining __REDIRFROM_X and __REDIRTO_X directly to use those suffixes rather than suffixes being passed as an argument by macro callers). This patch makes that change. Tested for x86_64. [BZ #22028] * math/math.h [__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0] (_MSUF_): Remove macro. [__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0] (_MSUFTO_): Likewise. [__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0] (__REDIRFROM_X): New macro. [__FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0] (__REDIRTO_X): Likewise. * math/bits/math-finite.h (__REDIRFROM_X): Remove macro. (__REDIRTO_X): Likewise. (__MATH_REDIRCALL): Do not pass _MSUF_ or _MSUFTO_ macro arguments. (__MATH_REDIRCALL_2): Likewise. (__MATH_REDIRCALL_INTERNAL): Likewise. (__REDIRFROM (lgamma, , _MSUF_)): Likewise. (__REDIRFROM (gamma, , _MSUF_)): Likweise. (__REDIRFROM (__gamma, _r_finite, _MSUF_)): Likewise. (__REDIRFROM (tgamma, , _MSUF_)): Likewise. * math/test-finite-macros.c: New file. * math/Makefile (tests): Add test-finite-macros. (CFLAGS-test-finite-macros.c): New variable. |
||
Joseph Myers
|
23761119fe |
Clean up bits/math-finite.h for aliasing types.
This patch cleans up how bits/math-finite.h handles types that are ABI-aliases of other types. For such types, no __*_finite functions exist; instead, bits/math-finite.h must redirect calls to a the functions for a canonical choice of type for each floating-point format. (For the actual public interfaces, symbols need exporting for each type, even those that are ABI-aliases, because of standard requirements that programs can declare the functions themselves without including <math.h>, but that does not apply to __*_finite.) At present, there is a special-case conditional in bits/math-finite.h on __MATH_DECLARING_LDOUBLE && defined __NO_LONG_DOUBLE_MATH to handle redirecting long double function calls to double __*_finite. This patch replaces this by a more general mechanism. math.h, before each inclusion of bits/math-finite.h, defines _MSUFTO_ as the suffix to use on the target of redirection, in addition to the existing _MSUF_. This way, __MATH_DECLARING_LDOUBLE can go away, as can the special conditional in bits/math-finite.h. With this patch, math.h is now prepared for the case of supporting float128 functions as aliases of long double ones on platforms where long double is binary128, with _MSUFTO_ appropriately defined for that case, and appropriate _MSUFTO_ definitions can easily be included when supporting _Float32 / _Float64 / _Float32x / _Float64x (which will always be ABI-aliases of another type when supported). Tested for x86_64, and did a compilation test for ARM with build-many-glibcs.py to cover the long double = double case. * math/math.h (_MSUFTO_): Define and undefine for each inclusion of <bits/math-finite.h>. (__MATH_DECLARING_LDOUBLE): Do not define and undefine for each inclusion of <bits/math-finite.h>. * math/bits/math-finite.h (__REDIRTO_X): Do not define conditionally on [__MATH_DECLARING_LDOUBLE && defined __NO_LONG_DOUBLE_MATH]. (__MATH_REDIRCALL): Use _MSUFTO_ in __REDIRTO call. (__MATH_REDIRCALL_2): Likewise. (__MATH_REDIRCALL_INTERNAL): Likewise. (__REDIRFROM (lgamma, , _MSUF_)): Likewise. (__REDIRFROM (gamma, , _MSUF_)): Likewise. (__REDIRFROM (tgamma, , _MSUF_)): Likewise. |
||
Gabriel F. T. Gomes
|
33d523d7f8 |
float128: Include math-finite.h for _Float128
All the declarations in math-finite.h are macroized by floating-point type. This patch includes it for float128 and protects the declarations of functions that need not be declared for float128. * math/math.h: Include bits/math-finite.h for float128. (__MATH_DECLARING_FLOATN): Define to control declaration of float128 functions. * math/bits/math-finite.h (pow10): Do not declare for float128. (gamma): Likewise. (scalb): Likewise. |
||
Paul E. Murphy
|
fcee5905d3 |
float128: Add public _Float128 declarations to libm.
This introduces the machine-dependent bits/floatn.h to control the inclusion of _Float128 ABI. * bits/floatn.h: New file. * bits/huge_val_flt128.h: Likewise. * bits/libm-simd-decl-stubs.h (__DECL_SIMD_cosf128): New macro. (__DECL_SIMD_sinf128): Likewise. (__DECL_SIMD_sincosf128): Likewise. (__DECL_SIMD_logf128): Likewise. (__DECL_SIMD_expf128): Likewise. (__DECL_SIMD_powf128): Likewise. * math/Makefile (headers): Install bits/floatn.h and bits/huge_val_flt128.h. * math/bits/cmathcalls.h (_Mdouble_complex_): Only define if not defined. * math/bits/mathcalls.h (pow10, isinf, finite, drem, significand) (isnan, gamma, nexttoward, scalb): Only define if not __MATH_DECLARING_FLOATN. (nextdown, nextup, llogb, roundeven, fromfp, ufromfp, fromfpx) (ufromfpx, fmaxmag, fminmag, totalorder, totalordermag) (canonicalize, getpayload, setpayload, setpayloadsig): Declare for _FloatN even if __STDC_WANT_IEC_60559_BFP_EXT__ is not defined. * math/complex.h: Include bits/libc-header-start.h and bits/floatn.h. Include bits/cmathcalls.h to get the declarations of _Float128 versions of complex functions. [__HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)] (CMPLXF128): Define macro. * math/math.h: Include bits/floatn.h and bits/huge_val_flt128.h. Include bits/mathcalls-helper-functions.h and bits/mathcalls.h to get the declarations of _Float128 versions of math functions. (__MATH_DECLARING_FLOATN): New macro to control declaration of _FloatN types. [__GNUC_PREREQ (6,0)] (signbit): Since GCC 6.0, __builtin_signbit is type-generic, so use it without __MATH_TG. [__HAVE_DISTINCT_FLOAT128] (isinf): This builtin is broken for _Float128 type on GCC < 7.0. Explicitly call __isinff128 for _Float128 type and GCC < 7.0, otherwise use the builtin. [__HAVE_FLOAT128 && defined __USE_GNU] (M_Ef128, M_LOG2Ef128) (M_LOG10Ef128, M_LN2f128, M_LN10f128, M_PIf128, M_PI_2f128) (M_PI_4f128, M_1_PIf128, M_2_PIf128, M_SQRT2f128, M_SQRT1_2f128): New _GNU_SOURCE enabled macros. |
||
Gabriel F. T. Gomes
|
1361e98d56 |
Fix condition for inclusion of math-finite.h for long double
The condition for declaration of long double functions in math-finite.h was #ifdef __MATH_DECLARE_LDOUBLE before the macroization of this file. After the macroization, it was incorreclty changed to #if __MATH_DECLARE_LDOUBLE, which broke the build for arm. * math/math.h: Fix check for __MATH_DECLARE_LDOUBLE. * math/bits/math-finite.h: Likewise. |
||
Gabriel F. T. Gomes
|
f264cca593 |
Macroize inclusion of math-finite.h
This patch macroizes the declarations in math/bits/math-finite.h similarly to what math/bits/mathcalls.h does. For each floating-point type, the file is included once in math/math.h. This will reduce the amount of repetitive boilerplate required when adding float128 versions of these declarations. Tested for powerpc64le and s390x. * math/math.h: Include bits/math-finite.h once per floating-point type. * math/bits/math-finite.h: Macroize all declarations by floating-point type. |
||
Joseph Myers
|
2072f5c34e |
Remove C++ namespace handling from glibc headers.
glibc headers include some code (not particularly consistent or systematic) to put various declarations in C++ namespaces std and __c99, if _GLIBCPP_USE_NAMESPACES is defined. As noted in <https://gcc.gnu.org/ml/libstdc++/2017-03/msg00025.html>, this macro was removed from libstdc++ in 2000. I don't expect compilation with such old versions of libstdc++ to work with current glibc headers anyway (whereas old *binaries* are expected to stay working with current glibc); this patch (which should be a no-op with any libstdc++ version postdating that removal) removes all this code from the glibc headers. The begin-end-check.pl test, whose comments say it is about checking these namespace macro calls, is also removed. The code in that test would have covered __BEGIN_DECLS / __END_DECLS as well, but if those weren't properly matched it would show up with the check-installed-headers-cxx tests, so I don't think there is an actual use for keeping begin-end-check.pl with the namespace code removed. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). * misc/sys/cdefs.h (__BEGIN_NAMESPACE_STD): Remove macro. (__END_NAMESPACE_STD): Likewise. (__USING_NAMESPACE_STD): Likewise. (__BEGIN_NAMESPACE_C99): Likewise. (__END_NAMESPACE_C99): Likewise. (__USING_NAMESPACE_C99): Likewise. * math/math.h (_Mdouble_BEGIN_NAMESPACE): Do not define and undefine macro. (_Mdouble_END_NAMESPACE): Likewise. * ctype/ctype.h: Do not handle C++ namespaces. * libio/bits/stdio-ldbl.h: Likewise. * libio/stdio.h: Likewise. * locale/locale.h: Likewise. * math/bits/mathcalls.h: Likewise. * setjmp/setjmp.h: Likewise. * signal/signal.h: Likewise. * stdlib/bits/stdlib-float.h: Likewise. * stdlib/bits/stdlib-ldbl.h: Likewise. * stdlib/stdlib.h: Likewise. * string/string.h: Likewise. * sysdeps/x86/fpu/bits/mathinline.h: Likewise. * time/bits/types/clock_t.h: Likewise. * time/bits/types/struct_tm.h: Likewise. * time/bits/types/time_t.h: Likewise. * time/time.h: Likewise. * wcsmbs/bits/wchar-ldbl.h: Likewise. * wcsmbs/uchar.h: Likewise. * wcsmbs/wchar.h: Likewise. [_GLIBCPP_USE_NAMESPACES] (wint_t): Remove conditional definition. * wctype/wctype.h: Do not handle C++ namespaces. * scripts/begin-end-check.pl: Remove. * Makefile (installed-headers): Likewise. (tests-special): Do not add $(objpfx)begin-end-check.out. ($(objpfx)begin-end-check.out): Remove. |
||
Gabriel F. T. Gomes
|
ff80ec4283 |
Split helper classification macros from mathcalls.h
The classification macros: finite, fpclassify, iseqsig, isinf, isnan, issignaling, and signbit are defined by ISO C11 and declared in mathcalls.h for each of the floating-point types: float, double, and long double. TS 18661-3 does not mention these macros for float128, however support for them must be present when _Float128 is present. This is true, even when the feature test macro __STDC_WANT_IEC_60559_TYPES_EXT__ is false. Other function declarations in mathcalls.h, on the other hand, depend on __STDC_WANT_IEC_60559_TYPES_EXT__. This patch splits the helper functions (__finite, __fpclassify, __iseqsig, __isinf, __isnan, __issignaling, and __signbit) from mathcalls.h, so that these helper functions can be declared for _Float128, even when __STDC_WANT_IEC_60559_TYPES_EXT__ is false. Tested for powerpc64le, s390x, and x86_64. * include/bits/mathcalls-helper-functions.h: New file. * math/Makefile (headers): Add bits/mathcalls-helper-functions.h. * math/bits/mathcalls.h (__finite, __fpclassify, __iseqsig) (__isinf, __isnan, __issignaling, __signbit): Move declarations to math/bits/mathcalls-helper-functions.h. * math/bits/mathcalls-helper-functions.h: New file. * math/math.h: Include bits/mathcalls-helper-functions.h for float, double, and long double. |
||
Joseph Myers
|
bfff8b1bec | Update copyright dates with scripts/update-copyrights. | ||
Joseph Myers
|
423c2b9d08 |
Add fromfp functions.
TS 18661-1 defines fromfp functions (fromfp, fromfpx, ufromfp, ufromfpx, and float and long double variants) to convert from floating-point to an integer type with any signedness and any given width up to that of intmax_t, in any of the five IEEE rounding modes (the usual four for binary floating point, plus rounding to nearest with ties rounding away from zero), with control of whether in-range non-integer values should result in the "inexact" exception being raised. This patch implements these functions for glibc. These implementations are (apart from raising exceptions) pure integer implementations; it's entirely possible optimized versions could be devised for some architectures. A common math/fromfp.h header provides various common helper code that can readily be shared between the implementations for different types. For each type, the bulk of the implementation is also shared between the four functions, with wrappers that define UNSIGNED and INEXACT macros appropriately before including the main implementation. As the functions return intmax_t and uintmax_t without math.h being allowed to expose those typedef names, they are declared using __intmax_t and __uintmax_t as obtained from <bits/types.h>. The FP_INT_* rounding direction macros are defined as ascending integers in the order the names are listed in the TS; I see no significant value in allowing architectures to vary the values of them. The libm-test machinery is duly adapted to handle unsigned int arguments, and intmax_t and uintmax_t results. Because each test input is generally tested for four functions, five rounding modes and several different widths, the libm-test.inc additions are very large. Thus, the diffs in the body of this message exclude the libm-test.inc changes, with the full patch being attached gzipped. The bulk of the new tests were generated (expanded from a test input plus rounding results and information about where it lies in the relevant interval between integers, to libm-test tests for all relevant combinations of function, rounding direction and width) by a script that's included in the patch as math/gen-fromfp-tests.py (input data math/gen-fromfp-tests-inputs); as an ad hoc script that's not really expected to be rerun, it's not very polished, but it's at least plausibly useful for adding any further tests for these functions in future. I may split the libm-test tests up by function in future (so both libm-test.inc and auto-libm-test-out are split into separate files, and the tests for each function are also built and run separately), but not for 2.25. For no obvious reason, adding tgmath tests for the new functions resulted in -Wuninitialized errors from test-tgmath.c about the variable i being used uninitialized. Those errors were correct - the variable is read by the frexp version in test-tgmath.c (where real frexp would write through that pointer instead of reading it) - but I don't know why this patch would result in the pre-existing issue being newly detected. The patch initializes the variable to avoid those errors. With these changes, glibc 2.25 should have all the library features from TS 18661-1 other than the functions that round result to narrower type (and constant rounding directions, but I'm considering those mainly a compiler feature not a library one). Tested for x86_64, x86, mips64 and powerpc. * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (fromfp): New declaration. [__GLIBC_USE (IEC_60559_BFP_EXT)] (fromfpx): Likewise. [__GLIBC_USE (IEC_60559_BFP_EXT)] (ufromfp): Likewise. [__GLIBC_USE (IEC_60559_BFP_EXT)] (ufromfpx): Likewise. * math/tgmath.h (__TGMATH_TERNARY_FIRST_REAL_RET_ONLY): New macro. [__GLIBC_USE (IEC_60559_BFP_EXT)] (fromfp): Likewise. [__GLIBC_USE (IEC_60559_BFP_EXT)] (ufromfp): Likewise. [__GLIBC_USE (IEC_60559_BFP_EXT)] (fromfpx): Likewise. [__GLIBC_USE (IEC_60559_BFP_EXT)] (ufromfpx): Likewise. * math/math.h: Include <bits/types.h>. [__GLIBC_USE (IEC_60559_BFP_EXT)] (FP_INT_UPWARD): New enum constant and macro. (FP_INT_DOWNWARD): Likewise. (FP_INT_TOWARDZERO): Likewise. (FP_INT_TONEARESTFROMZERO): Likewise. (FP_INT_TONEAREST): Likewise. * math/Versions (fromfp): New libm symbol at version GLIBC_2.25. (fromfpf): Likewise. (fromfpl): Likewise. (ufromfp): Likewise. (ufromfpf): Likewise. (ufromfpl): Likewise. (fromfpx): Likewise. (fromfpxf): Likewise. (fromfpxl): Likewise. (ufromfpx): Likewise. (ufromfpxf): Likewise. (ufromfpxl): Likewise. * math/Makefile (libm-calls): Add s_fromfpF, s_ufromfpF, s_fromfpxF and s_ufromfpxF. * math/gen-fromfp-tests.py: New file. * math/gen-fromfp-tests-inputs: Likewise. * math/libm-test.inc: Include <stdint.h> (check_intmax_t): New function. (check_uintmax_t): Likewise. (struct test_fiu_M_data): New type. (struct test_fiu_U_data): Likewise. (RUN_TEST_fiu_M): New macro. (RUN_TEST_LOOP_fiu_M): Likewise. (RUN_TEST_fiu_U): Likewise. (RUN_TEST_LOOP_fiu_U): Likewise. (fromfp_test_data): New array. (fromfp_test): New function. (fromfpx_test_data): New array. (fromfpx_test): New function. (ufromfp_test_data): New array. (ufromfp_test): New function. (ufromfpx_test_data): New array. (ufromfpx_test): New function. (main): Call fromfp_test, fromfpx_test, ufromfp_test and ufromfpx_test. * math/gen-libm-test.pl (parse_args): Handle u, M and U descriptor characters. * math/test-tgmath-ret.c: Include <stdint.h>. (rm): New variable. (width): Likewise. (CHECK_RET_CONST_TYPE): Take extra arguments and pass them to called function. (CHECK_RET_CONST_FLOAT): Take extra arguments and pass them to CHECK_RET_CONST_TYPE. (CHECK_RET_CONST_DOUBLE): Likewise. (CHECK_RET_CONST_LDOUBLE): Likewise. (CHECK_RET_CONST): Take extra arguments and pass them to calls macros. (fromfp): New CHECK_RET_CONST call. (ufromfp): Likewise. (fromfpx): Likewise. (ufromfpx): Likewise. (do_test): Call check_return_fromfp, check_return_ufromfp, check_return_fromfpx and check_return_ufromfpx. * math/test-tgmath.c: Include <stdint.h> (NCALLS): Increase to 138. (F(compile_test)): Initialize i. Call fromfp functions. (F(fromfp)): New function. (F(fromfpx)): Likewise. (F(ufromfp)): Likewise. (F(ufromfpx)): Likewise. * manual/arith.texi (Rounding Functions): Document FP_INT_UPWARD, FP_INT_DOWNWARD, FP_INT_TOWARDZERO, FP_INT_TONEARESTFROMZERO, FP_INT_TONEAREST, fromfp, fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf, fromfpxl, ufromfpx, ufromfpxf and ufromfpxl. * manual/libm-err-tab.pl (@all_functions): Add fromfp, fromfpx, ufromfp and ufromfpx. * math/fromfp.h: New file. * sysdeps/ieee754/dbl-64/s_fromfp.c: Likewise. * sysdeps/ieee754/dbl-64/s_fromfp_main.c: Likewise. * sysdeps/ieee754/dbl-64/s_fromfpx.c: Likewise. * sysdeps/ieee754/dbl-64/s_ufromfp.c: Likewise. * sysdeps/ieee754/dbl-64/s_ufromfpx.c: Likewise. * sysdeps/ieee754/flt-32/s_fromfpf.c: Likewise. * sysdeps/ieee754/flt-32/s_fromfpf_main.c: Likewise. * sysdeps/ieee754/flt-32/s_fromfpxf.c: Likewise. * sysdeps/ieee754/flt-32/s_ufromfpf.c: Likewise. * sysdeps/ieee754/flt-32/s_ufromfpxf.c: Likewise. * sysdeps/ieee754/ldbl-128/s_fromfpl.c: Likewise. * sysdeps/ieee754/ldbl-128/s_fromfpl_main.c: Likewise. * sysdeps/ieee754/ldbl-128/s_fromfpxl.c: Likewise. * sysdeps/ieee754/ldbl-128/s_ufromfpl.c: Likewise. * sysdeps/ieee754/ldbl-128/s_ufromfpxl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_fromfpl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_fromfpl_main.c: Likewise. * sysdeps/ieee754/ldbl-96/s_fromfpxl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_ufromfpl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_ufromfpxl.c: Likewise. * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fromfp, ufromfp, fromfpx and ufromfpx. (CFLAGS-nldbl-fromfp.c): New variable. (CFLAGS-nldbl-fromfpx.c): Likewise. (CFLAGS-nldbl-ufromfp.c): Likewise. (CFLAGS-nldbl-ufromfpx.c): Likewise. * sysdeps/ieee754/ldbl-opt/nldbl-compat.h: Include <stdint.h>. * sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c: Likewise. * sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c: Likewise. * sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c: Likewise. * sysdeps/nacl/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. |
||
Joseph Myers
|
41c67149b9 |
Add roundeven, roundevenf, roundevenl.
TS 18661-1 defines roundeven functions that round a floating-point number to the nearest integer, in that floating-point type, with ties rounding to even (whereas the round functions round ties away from zero). As with other such functions, they raise no exceptions apart from "invalid" for signaling NaNs. There was a previous user request for this functionality in glibc in <https://sourceware.org/ml/libc-help/2015-02/msg00005.html>. This patch implements these functions for glibc. The implementations use integer bit-manipulation (or roundeven on the high and low parts, in the IBM long double case). It's possible that there may be faster approaches on some architectures (in particular, on AArch64 the frintn instruction should do exactly what's required); I'll leave it to architecture maintainers or others interested to implement such architecture-specific versions if desired. (Where architectures have instructions to round to nearest integer in the current rounding mode, implementations saving and restoring the rounding mode - and dealing with exceptions if those instructions generate "inexact" - are also possible, though their performance depends on the cost of manipulating exceptions / rounding mode state.) Tested for x86_64, x86, mips64 and powerpc. * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (roundeven): New declaration. * math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (roundeven): New macro. * math/Versions (roundeven): New libm symbol at version GLIBC_2.25. (roundevenf): Likewise. (roundevenl): Likewise. * math/Makefile (libm-calls): Add s_roundevenF. * math/libm-test.inc (roundeven_test_data): New array. (roundeven_test): New function. (main): Call roundeven_test. * math/test-tgmath.c (NCALLS): Increase to 134. (F(compile_test)): Call roundeven. (F(roundeven)): New function. * manual/arith.texi (Rounding Functions): Document roundeven, roundevenf and roundevenl. * manual/libm-err-tab.pl (@all_functions): Add roundeven. * include/math.h (roundeven): Use libm_hidden_proto. * sysdeps/ieee754/dbl-64/s_roundeven.c: New file. * sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c: Likewise. * sysdeps/ieee754/flt-32/s_roundevenf.c: Likewise. * sysdeps/ieee754/ldbl-128/s_roundevenl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_roundevenl.c: Likewise. * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add roundeven. (CFLAGS-nldbl-roundeven.c): New variable. * sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c: New file. * sysdeps/nacl/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. |
||
Joseph Myers
|
525f803984 |
Add fmaxmag, fminmag functions.
TS 18661-1 defines fmaxmag and fminmag functions that return the argument with maximum / minimum magnitude (acting like fmax / fmin if the arguments have the same magnitude or either argument is a NaN). These correspond to the IEEE 754-2008 operations maxNumMag and minNumMag. This patch implements these functions for glibc. They are implemented with type-generic templates. Tests are based on those for fmax and fmin. Tested for x86_64, x86, mips64 and powerpc. * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (fmaxmag): New declaration. (fminmag): Likewise. * math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (fmaxmag): New macro. [__GLIBC_USE (IEC_60559_BFP_EXT)] (fminmag): Likewise. * math/Versions (fmaxmag): New libm symbol at version GLIBC_2.25. (fmaxmagf): Likewise. (fmaxmagl): Likewise. (fminmag): Likewise. (fminmagf): Likewise. (fminmagl): Likewise. * math/Makefile (gen-libm-calls): Add s_fmaxmagF and s_fminmagF. * math/s_fmaxmag_template.c: New file. * math/s_fminmag_template.c: Likewise. * math/libm-test.inc (fmaxmag_test_data): New array. (fmaxmag_test): New function. (fminmag_test_data): New array. (fminmag_test): New function. (main): Call fmaxmag_test and fminmag_test. * math/test-tgmath.c (NCALLS): Increase to 132. (F(compile_test)): Call fmaxmag and fminmag. (F(fminmag)): New function. (F(fmaxmag)): Likewise. * manual/arith.texi (Misc FP Arithmetic): Document fminmag, fminmagf, fminmagl, fmaxmag, fmaxmagf and fmaxmagl. * manual/libm-err-tab.pl (@all_functions): Add fmaxmag and fminmag. * sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c: Likewise. * sysdeps/ieee754/ldbl-opt/s_fmaxmagl.c: Likewise. * sysdeps/ieee754/ldbl-opt/s_fminmagl.c: Likewise. * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fmaxmag and fminmag. (CFLAGS-nldbl-fmaxmag.c): New variable. (CFLAGS-nldbl-fminmag.c): Likewise. * sysdeps/nacl/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. |
||
Joseph Myers
|
55a38f8236 |
Add llogb, llogbf, llogbl.
TS 18661-1 defines llogb functions that are like ilogb except that they return long int instead of int. Corresponding FP_LLOGB* macros are defined, whose values are required to have the obvious correspondence to those of the FP_ILOGB* macros. This patch implements these functions and macros for glibc. llogb uses the type-generic infrastructure, with an implementation similar to the wrapper for ilogb but with additional conversion from FP_ILOGB* to FP_LLOGB*; this approach avoids needing to modify or duplicate any of the architecture-specific ilogb implementations. Tests are also based on those for ilogb. Ideally the llogb functions would alias the ilogb ones when long is 32-bit, but such aliasing requires the associated header declarations of the different-type alias to be hidden, typically by defining macros before including the header (see e.g. how sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c defines lround to __hidden_lround before including <math.h>). The infrastructure for type-generic function implementations does not support defining such macros at present (since C code can't define a macro whose name is determined by other macros). So this patch leaves them as separate functions (similar to e.g. scalbln and scalbn being separate in such a case as well), but with the remapping of FP_ILOGB* to FP_LLOGB* conditioned out in the case where it would be the identity map. Tested for x86_64, x86, mips64 and powerpc. * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (llogb): New declaration. * math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (llogb): New macro. * math/math.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (__FP_LONG_MAX): New macro. [__GLIBC_USE (IEC_60559_BFP_EXT)] (FP_LLOGB0): Likewise. [__GLIBC_USE (IEC_60559_BFP_EXT)] (FP_LLOGBNAN): Likewise. * math/Versions (llogb): New libm symbol at version GLIBC_2.25. (llogbf): Likewise. (llogbl): Likewise. * math/Makefile (gen-libm-calls): Add w_llogbF. (tests): Add test-fp-llogb-constants. * math/w_llogb_template.c: New file. Based on math/w_ilogb_template.c. * math/libm-test.inc (llogb_test_data): New array. (llogb_test): New function. (main): Call llogb_test. * math/test-fp-llogb-constants.c: New file. Based on math/test-fp-ilogb-constants.c. * math/test-tgmath-ret.c (llogb): New CHECK_RET_CONST call. (do_test): Call check_return_llogb. * math/test-tgmath.c (NCALLS): Increase to 126. (F(compile_test)): Call llogb. (F(llogb)): New function. * manual/math.texi (Exponents and Logarithms): Document llogb, llogbf, llogbl, FP_LLOGB0 and FP_LLOGBNAN. * manual/libm-err-tab.pl (@all_functions): Add llogb. * sysdeps/ieee754/ldbl-opt/nldbl-llogb.c: New file. * sysdeps/ieee754/ldbl-opt/w_llogbl.c: Likewise. * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add llogb. (CFLAGS-nldbl-llogb.c): New variable. * sysdeps/nacl/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. |
||
Joseph Myers
|
457663a7cd |
Add setpayloadsig, setpayloadsigf, setpayloadsigl.
TS 18661-1 defines functions for manipulating the payloads of NaNs. This patch implements the setpayloadsig functions for glibc; these are like the setpayload functions, but produce a signaling NaN instead of a quiet NaN. The substance of the implementation was included with the setpayload implementation, so the new files here just need to wrap the main files with different defines to build the new functions. Because the functions store a signaling NaN via a pointer and the libm-test macros choose a suitable initial value for the variable in such a case by comparing with the expected value, the relevant macro needs to clear exceptions after FE_INVALID may have been raised by that comparison. Tested for x86_64, x86, mips64 and powerpc. * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (setpayloadsig): New declaration. * math/Versions (setpayloadsig): New libm symbol at version GLIBC_2.25. (setpayloadsigf): Likewise. (setpayloadsigl): Likewise. * math/Makefile (libm-calls): Add s_setpayloadsigF. * math/libm-test.inc (RUN_TEST_Ff_b1): Call feclearexcept (FE_ALL_EXCEPT) after initializing EXTRA_VAR. (setpayloadsig_test_data): New array. (setpayloadsig_test): New function. (main): Call setpayloadsig_test. * manual/arith.texi (FP Bit Twiddling): Document setpayloadsig, setpayloadsigf and setpayloadsigl. * manual/libm-err-tab.pl: Update comment on interfaces without ulps tabulated. * sysdeps/ieee754/dbl-64/s_setpayloadsig.c: New file. * sysdeps/ieee754/flt-32/s_setpayloadsigf.c: Likewise. * sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c: Likewise. * sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c: Likewise. * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add setpayloadsig. (CFLAGS-nldbl-setpayloadsig.c): New variable. * sysdeps/nacl/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. |
||
Joseph Myers
|
eb3c12c784 |
Add setpayload, setpayloadf, setpayloadl.
TS 18661-1 defines functions for manipulating the payloads of NaNs. This patch implements the setpayload functions for glibc; these set a number (pointed to by a function argument) to a quiet NaN with the given payload, or to +0 if the given payload is not valid. The implementations are structured to allow the substance of the implementation to be shared with the setpayloadsig functions when those are added. The semantics in the TS are not entirely clear in the case where the payload passed to the function is zero (see discussion on the WG14 reflector last month). This patch implements what seems the most sensible interpretation, that -0 is never valid to give as the payload, but +0 is valid in the case where the kind of NaN being generated has its high mantissa bit set so payload 0 is actually possible in such a NaN. Tested for x86_64, x86, mips64 and powerpc. * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (setpayload): New declaration. * math/Versions (setpayload): New libm symbol at version GLIBC_2.25. (setpayloadf): Likewise. (setpayloadl): Likewise. * math/Makefile (libm-calls): Add s_setpayloadF. * math/libm-test.inc (struct test_Ffp_b1_data): Rename to struct test_Ff_b1_data. (RUN_TEST_Ff_b1): New macro. (RUN_TEST_LOOP_Ff_b1): Likewise. (canonicalize_test_data): Update type. (setpayload_test_data): New array. (setpayload_test): New function. (main): Call setpayload_test. * manual/arith.texi (FP Bit Twiddling): Document setpayload, setpayloadf and setpayloadl. * manual/libm-err-tab.pl: Update comment on interfaces without ulps tabulated. * sysdeps/ieee754/dbl-64/s_setpayload.c: New file. * sysdeps/ieee754/dbl-64/s_setpayload_main.c: Likewise. * sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c: Likewise. * sysdeps/ieee754/flt-32/s_setpayloadf.c: Likewise. * sysdeps/ieee754/flt-32/s_setpayloadf_main.c: Likewise. * sysdeps/ieee754/ldbl-128/s_setpayloadl.c: Likewise. * sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c: Likewise. * sysdeps/ieee754/ldbl-96/s_setpayloadl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c: Likewise. * sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c: Likewise. * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add setpayload. (CFLAGS-nldbl-setpayload.c): New variable. * sysdeps/nacl/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. |
||
Joseph Myers
|
eaf5ad0bc4 |
Add canonicalize, canonicalizef, canonicalizel.
TS 18661-1 defines canonicalize functions to produce a canonical version of a floating-point representation. This patch implements these functions for glibc. As with the iscanonical macro, these functions are oriented to the decimal floating-point case, where some values have both canonical and noncanonical representations. However, the functions have a return value that says whether they succeeded in storing a canonical result; thus, they can fail for the case of an invalid representation (while still not making any particular choice from among multiple equally canonical valid representations of the same value). Since no floating-point formats in glibc actually have noncanonical valid representations, a type-generic implementation of these functions can be used that expects iscanonical to return 0 only for invalid representations. Now that iscanonical is used within libm.so, libm_hidden_proto / libm_hidden_def are added for __iscanonicall. The definition of these functions is intended to correspond to a convertFormat operation to the same floating-point format. Thus, they convert signaling NaNs to quiet NaNs, raising the "invalid" exception. Such a conversion "should" produce "the canonical version of that signaling NaN made quiet". libm-test.inc is made to check NaN payloads for the output of these functions, a new feature (at some point manipulation functions such as fabs and copysign should have tests added that verify payload preservation for them). As however some architectures may not follow the recommended practice of preserving NaN payloads when converting a signaling NaN to quiet, a new math-tests.h macro SNAN_TESTS_PRESERVE_PAYLOAD is added, and defined to 0 for non-NAN2008 MIPS; any other architectures seeing test failures for lack of payload preservation in this case should also define this macro to 0. (If any cases arise where the sign isn't preserved either, those should have a similar macro added.) The ldbl-96 and ldbl-128ibm tests of iscanonical are renamed and adapted to test canonicalizel as well on the same representations. Tested for x86_64, x86, mips64 and powerpc. * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (canonicalize): New declaration. * math/Versions (canonicalize): New libm symbol at version GLIBC_2.25. (canonicalizef): Likewise. (canonicalizel): Likewise. * math/Makefile (gen-libm-calls): Add s_canonicalizeF. * math/s_canonicalize_template.c: New file. * math/libm-test.inc: Update comment on functions tested and testing of NaN payloads. (TEST_NAN_PAYLOAD): New macro. (NO_TEST_INLINE): Update value. (XFAIL_TEST): Likewise. (ERRNO_UNCHANGED): Likewise. (ERRNO_EDOM): Likewise. (ERRNO_ERANGE): Likewise. (IGNORE_RESULT): Likewise. (NON_FINITE): Likewise. (TEST_SNAN): Likewise. (NO_TEST_MATHVEC): Likewise. (TEST_NAN_PAYLOAD_CANONICALIZE): New macro. (check_float_internal): Check NaN payloads if TEST_NAN_PAYLOAD. (struct test_Ffp_b1_data): New type. (RUN_TEST_Ffp_b1): New macro. (RUN_TEST_LOOP_Ffp_b1): Likewise. (canonicalize_test_data): New array. (canonicalize_test): New function. (main): Call canonicalize_test. * manual/arith.texi (FP Bit Twiddling): Document canonicalize, canonicalizef and canonicalizel. * manual/libm-err-tab.pl: Update comment on interfaces without ulps tabulated. * sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c: New file. * sysdeps/ieee754/ldbl-opt/s_canonicalizel.c: Likewise. * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add canonicalize. (CFLAGS-nldbl-canonicalize.c): New variable. * sysdeps/ieee754/ldbl-128ibm/test-iscanonical-ldbl-128ibm.c: Move to ... * sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c: ... here. (do_test): Also test canonicalizel. * sysdeps/ieee754/ldbl-128ibm/Makefile (tests): Change test-iscanonical-ldbl-128ibm to test-canonical-ldbl-128ibm. * sysdeps/ieee754/ldbl-128ibm/include/bits/iscanonical.h: New file. * sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c (__iscanonicall): Use libm_hidden_def. * sysdeps/ieee754/ldbl-96/test-iscanonical-ldbl-96.c: Move to ... * sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c: ... here. (do_test): Also test canonicalizel. * sysdeps/ieee754/ldbl-96/Makefile (tests): Change test-iscanonical-ldbl-96 to test-canonical-ldbl-96. * sysdeps/ieee754/ldbl-96/include/bits/iscanonical.h: New file. * sysdeps/ieee754/ldbl-96/s_iscanonicall.c (__iscanonicall): Use libm_hidden_def. * sysdeps/generic/math-tests.h (SNAN_TESTS_PRESERVE_PAYLOAD): New macro. * sysdeps/mips/math-tests.h [__mips_hard_float && !__mips_nan2008] (SNAN_TESTS_PRESERVE_PAYLOAD): Likewise. * sysdeps/nacl/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. |
||
Joseph Myers
|
f8e8b8ed9f |
Add getpayload, getpayloadf, getpayloadl.
TS 18661-1 defines functions for manipulating the payloads of NaNs. This patch implements the getpayload functions for glibc; these extract the NaN payload (from an argument passed as a pointer, for which corresponding libm-test support is added) and return it in the same floating-point type. The return value of these functions is unspecified for non-NaN arguments; the patch does the simplest thing to implement, which is that the functions do not check whether the argument is a NaN and just treat the relevant bits of the representation as a payload regardless. A conversion from integer to floating-point is used to produce the required return value, except in the ldbl-128 case; as 128-bit integers are not supported for all configurations using ldbl-128, the code constructs the required floating-point representation of the return value directly instead. Tested for x86_64, x86, mips64 and powerpc. * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (getpayload): New declaration. * math/Versions (getpayload): New libm symbol at version GLIBC_2.25. (getpayloadf): Likewise. (getpayloadl): Likewise. * math/Makefile (libm-calls): Add s_getpayloadF. * math/libm-test.inc: Include <nan-high-order-bit.h>. (struct test_f_f_data): Add comment. (RUN_TEST_fp_f): New macro. (RUN_TEST_LOOP_fp_f): Likewise. (getpayload_test_data): New array. (getpayload_test): New function. (main): Call getpayload_test. * math/gen-libm-test.pl (parse_args): Handle 'p' in argument descriptor. * manual/arith.texi (FP Bit Twiddling): Document getpayload, getpayloadf and getpayloadl. * manual/libm-err-tab.pl: Update comment on interfaces without ulps tabulated. * sysdeps/ieee754/dbl-64/s_getpayload.c: New file. * sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c: Likewise. * sysdeps/ieee754/flt-32/s_getpayloadf.c: Likewise. * sysdeps/ieee754/ldbl-128/s_getpayloadl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_getpayloadl.c: Likewise. * sysdeps/nacl/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. |
||
Joseph Myers
|
cc6a8d7457 |
Add totalordermag, totalordermagf, totalordermagl.
In addition to the totalorder functions, TS 18661-1 defines totalordermag functions, which do the same comparison but on the absolute values of the arguments. This patch implements these functions for glibc, including the type-generic macro in <tgmath.h>. In general the implementations are similar to but simpler than those for the totalorder functions. Tested for x86_64, x86, mips64 and powerpc. * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (totalordermag): New declaration. * math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (totalordermag): New macro. * math/Versions (totalordermag): New libm symbol at version GLIBC_2.25. (totalordermagf): Likewise. (totalordermagl): Likewise. * math/Makefile (libm-calls): Add s_totalordermagF. * math/libm-test.inc (totalordermag_test_data): New array. (totalordermag_test): New function. (main): Call totalordermag_test. * math/test-tgmath.c (NCALLS): Increase to 125. (F(compile_test)): Call totalordermag. (F(totalordermag)): New function. * manual/arith.texi (FP Comparison Functions): Document totalordermag, totalordermagf and totalordermagl. * manual/libm-err-tab.pl: Update comment on interfaces without ulps tabulated. * sysdeps/ieee754/dbl-64/s_totalordermag.c: New file. * sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c: Likewise. * sysdeps/ieee754/flt-32/s_totalordermagf.c: Likewise. * sysdeps/ieee754/ldbl-128/s_totalordermagl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_totalordermagl.c: Likewise. * sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c: Likewise. * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add totalordermag. (CFLAGS-nldbl-totalordermag.c): New variable. * sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c (do_test): Also test totalordermagl. * sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c (do_test): Likewise. * sysdeps/nacl/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. |
||
Joseph Myers
|
5e9d98a3d9 |
Add totalorder, totalorderf, totalorderl.
TS 18661-1 defines totalorder functions implementing the totalOrder comparison operation from IEEE 754-2008. This patch implements these functions for glibc, including the type-generic macro in <tgmath.h>. (The totalordermag functions will be added in a separate patch.) The description of the totalOrder operation is complicated. However, for IEEE interchange binary formats and the preferred quiet NaN convention, what that complicated description means is that you interpret the representation as a sign-magnitude integer (with -0 coming before +0) and do a <= comparison on that interpretation. For finite values and infinities the ordering of the sign-magnitude integers is just the same as the ordering of floating-point values, so this extends that to all representations. (Different representations of the same floating-point value - which includes same quantum in the decimal case - must still be considered equal by this operation, but that issue doesn't arise for IEEE interchange binary formats.) So the complications are: * When MIPS quiet NaN conventions are in use, the representation of NaNs needs adjusting before making such an integer comparison. This patch does this adjustment only when both arguments are NaNs, as there's no need for it if only one is a NaN, and as long as both are NaNs you can just flip the relevant bits without any problems from this turning a NaN into an infinity. * For the m68k version of ldbl-96, where the high mantissa bit is "don't care" for infinities and NaNs, representations where it differs must compare the same. Note: although the testcase for this compiles, I have not actually tested on m68k. * For ldbl-128ibm, the low part must be ignored when the high part is NaN, and low parts of +0 and -0 must be considered the same whatever the high part. The new tests in libm-test.inc are the first tests there specifying particular payloads for input NaNs. Separate tests are also added for the ldbl-96 and ldbl-128ibm special cases where there are different representations of the same value that must compare equal (which can't be covered in libm-test.inc as that only specifies values, not representations). Tested for x86_64, x86, mips64 and powerpc. * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (totalorder): New declaration. * math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (totalorder): New macro. * math/Versions (totalorder): New libm symbol at version GLIBC_2.25. (totalorderf): Likewise. (totalorderl): Likewise. * math/Makefile (libm-calls): Add s_totalorderF. * math/gen-libm-test.pl (parse_args): Escape quotes in test name string. * math/libm-test.inc (PAYLOAD_DIG): New macro. (qnan_value_pl): Likewise. (snan_value_pl): Likewise. (qnan_value): Define using qnan_value_pl. (snan_value): Define using snan_value_pl. (struct test_ff_i_data): Add comment about which tests use this structure. (RUN_TEST_ff_b): New macro. (RUN_TEST_LOOP_ff_b): Likewise. (totalorder_test_data): New array. (totalorder_test): New function. (main): Call totalorder_test. * math/test-tgmath.c (NCALLS): Increase to 122. (F(compile_test)): Call totalorder. (F(totalorder)): New function. * manual/arith.texi (FP Comparison Functions): Document totalorder, totalorderf and totalorderl. * manual/libm-err-tab.pl: Update comment on interfaces without ulps tabulated. * sysdeps/ieee754/dbl-64/s_totalorder.c: New file. * sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c: Likewise. * sysdeps/ieee754/flt-32/s_totalorderf.c: Likewise. * sysdeps/ieee754/ldbl-128/s_totalorderl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_totalorderl.c: Likewise. * sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c: Likewise. * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add totalorder. (CFLAGS-nldbl-totalorder.c): New variable. * sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c: New file. * sysdeps/ieee754/ldbl-128ibm/Makefile [$(subdir) = math] (tests): Add test-totalorderl-ldbl-128ibm. * sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c: New file. * sysdeps/ieee754/ldbl-96/Makefile [$(subdir) = math] (tests): Add test-totalorderl-ldbl-96. * sysdeps/nacl/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. |
||
Joseph Myers
|
1e7c8fcca5 |
Add iseqsig.
TS 18661-1 adds an iseqsig type-generic comparison macro to <math.h>. This macro is like the == operator except that unordered operands result in the "invalid" exception and errno being set to EDOM. This patch implements this macro for glibc. Given the need to set errno, this is implemented with out-of-line functions __iseqsigf, __iseqsig and __iseqsigl (of which the last only exists at all if long double is ABI-distinct from double, so no function aliases or compat support are needed). The present patch ignores excess precision issues; I intend to deal with those in a followup patch. (Like comparison operators, type-generic comparison macros should *not* convert operands to their semantic types but should preserve excess range and precision, meaning that for some argument types and values of FLT_EVAL_METHOD, an underlying function should be called for a wider type than that of the arguments.) The underlying functions are implemented with the type-generic template machinery. Comparing x <= y && x >= y is sufficient in ISO C to achieve an equality comparison with "invalid" raised for unordered operands (and the results of those two comparisons can also be used to tell whether errno needs to be set). However, some architectures have GCC bugs meaning that unordered comparison instructions are used instead of ordered ones. Thus, a mechanism is provided for architectures to use an explicit call to feraiseexcept to raise exceptions if required. If your architecture has such a bug you should add a fix-fp-int-compare-invalid.h header for it, with a comment pointing to the relevant GCC bug report; if such a GCC bug is fixed, that header's contents should have a __GNUC_PREREQ conditional added so that the workaround can eventually be removed for that architecture. Tested for x86_64, x86, mips64, arm and powerpc. * math/math.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (iseqsig): New macro. * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (__iseqsig): New declaration. * math/s_iseqsig_template.c: New file. * math/Versions (__iseqsigf): New libm symbol at version GLIBC_2.25. (__iseqsig): Likewise. (__iseqsigl): Likewise. * math/libm-test.inc (iseqsig_test_data): New array. (iseqsig_test): New function. (main): Call iseqsig_test. * math/Makefile (gen-libm-calls): Add s_iseqsigF. * manual/arith.texi (FP Comparison Functions): Document iseqsig. * manual/libm-err-tab.pl: Update comment on interfaces without ulps tabulated. * sysdeps/generic/fix-fp-int-compare-invalid.h: New file. * sysdeps/powerpc/fpu/fix-fp-int-compare-invalid.h: Likewise. * sysdeps/x86/fpu/fix-fp-int-compare-invalid.h: Likewise. * sysdeps/nacl/libm.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. |
||
Joseph Myers
|
412cb261b0 |
Support __STDC_WANT_IEC_60559_FUNCS_EXT__ feature test macro.
This patch implements support for the __STDC_WANT_IEC_60559_FUNCS_EXT__ feature test macro, following the __GLIBC_USE approach used for other ISO C feature test macros. Currently this only affects the exp10 functions (which glibc has had for a long time). Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). * bits/libc-header-start.h (__GLIBC_USE_IEC_60559_FUNCS_EXT): New macro. * include/features.h (__STDC_WANT_IEC_60559_FUNCS_EXT__): Document. * manual/creature.texi (__STDC_WANT_IEC_60559_FUNCS_EXT__): Document macro. * manual/math.texi (exp10): Document as ISO from TS 18661-4:2015. (exp10f): Likewise. (exp10l): Likewise. * math/bits/mathcalls.h (exp10): Declare if [__GLIBC_USE (IEC_60559_FUNCS_EXT)], not [__USE_GNU]. |
||
Joseph Myers
|
bf91be88ea |
Support __STDC_WANT_IEC_60559_BFP_EXT__ feature test macro.
This patch implements support for the __STDC_WANT_IEC_60559_BFP_EXT__ feature test macro from ISO/IEC 18661-1:2014, following the __GLIBC_USE approach now used for __STDC_WANT_LIB_EXT2__. For this macro, the relevant consideration is whether it is defined or undefined when an affected header is included (not what its value is if defined, and not whether it's defined or undefined when any other unaffected system header is included). Currently this macro only affects the issignaling macro and the nextup and nextdown functions (so they can be enabled by defining this macro, not just by defining _GNU_SOURCE as previously). Any further features from this TS added in future would also be conditioned on this macro. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). * bits/libc-header-start.h (__GLIBC_USE_IEC_60559_BFP_EXT): New macro. * include/features.h (__STDC_WANT_IEC_60559_BFP_EXT__): Document. * manual/arith.texi (issignaling): Document as ISO from TS 18661-1:2014. (nextup): Likewise. (nextupf): Likewise. (nextupl): Likewise. (nextdown): Likewise. (nextdownf): Likewise. (nextdownl): Likewise. * manual/creature.texi (__STDC_WANT_IEC_60559_BFP_EXT__): Document macro. * math/math.h: Define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION and include <bits/libc-header-start.h> instead of including <features.h>. (issignaling): Define if [__GLIBC_USE (IEC_60559_BFP_EXT)], not [__USE_GNU]. * math/bits/mathcalls.h (nextdown): Declare if [__GLIBC_USE (IEC_60559_BFP_EXT)], not [__USE_GNU]. (nextup): Likewise. (__issignaling): Likewise. |
||
Rajalakshmi Srinivasaraghavan
|
41a359e22f |
Add nextup and nextdown math functions
TS 18661 adds nextup and nextdown functions alongside nextafter to provide support for float128 equivalent to it. This patch adds nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf to libm before float128 support. The nextup functions return the next representable value in the direction of positive infinity and the nextdown functions return the next representable value in the direction of negative infinity. These are currently enabled as GNU extensions. |
||
Carlos O'Donell
|
3c47c83a97 |
Ensure isinff, isinfl, isnanf, and isnanl are defined (Bug 19439)
In ICO C++11 mode ensure that isinff, isinfl, isnanf, and isnanl
are defined. These functions were accidentally removed from the
header as part of commit
|
||
Adhemerval Zanella
|
d9b965fa56 |
Fix isinf/isnan declaration conflict with C++11
GLIBC declares isinf and isnan as expected by Unix98 and for C99 programs these functions are hidden by the generics inf and isnan macros. However C++11 defines isinf and isnan with the same semantics as C99 but requires that they are functions not macros (C++11 26.8 [c.math] paragraph 10). This then results in a conflict for perfectly valid C++11 programs: -- using std::isinf; using std::isnan; double d1 = isinf(1.0); double d2 = isnan(1.0); d.cc:3:12: error: ‘constexpr bool std::isinf(double)’ conflicts with a previous declaration using std::isinf; [...] /usr/include/bits/mathcalls.h:201:1: note: previous declaration ‘int isinf(double)’ __MATHDECL_1 (int,isinf,, (_Mdouble_ __value)) __attribute__ ((__const__)); [...] -- This patch fixes the prototypes by leaving the obsolete functions defined for C++98 code (since they do not conflict with any standard function in C++98), however preventing them on C++11. No issues found in libstdc++ tests and check on x86_64 and i686 with glibc testsuite. Patch from Jonathan Wakely <jwakely.gcc@gmail.com>. [BZ #19439] * math/bits/mathcalls.h [!__cplusplus || __cplusplus < 201103L] (isinf): Do not declare prototype. [!__cplusplus || __cplusplus < 201103L] (isnan): Likewise. |
||
Joseph Myers
|
f7a9f785e5 | Update copyright dates with scripts/update-copyrights. | ||
Joseph Myers
|
939fdd1c36 |
Fix finite-math-only lgamma functions signgam setting (bug 19211).
The lgamma inline functions in bits/math-finite.h do not set signgam if __USE_ISOC99, even when other feature test macros mean a standard such as XSI POSIX is selected for which it should be set. (This is essentially the opposite issue to bug 15421, the out-of-line versions setting signgam even when they shouldn't.) This patch fixes those functions to use __USE_MISC || __USE_XOPEN as the condition for when to set signgam, since it's the condition for when math.h declares signgam. The legacy gamma* names are only declared at all if __USE_MISC || __USE_XOPEN, so they just set signgam unconditionally. Tests for certain standards or not using _GNU_SOURCE cannot use test-skeleton.c (this is a known issue noted on the wiki todo list). Thus, the new tests that signgam remains not set in ISO C modes do not use test-skeleton.c. They also define _ISOMAC to avoid running into declarations in the internal include/ headers that only work in _GNU_SOURCE mode. Tested for x86_64 and x86. [BZ #19211] * math/bits/math-finite.h (lgamma): Set signgam if [__USE_MISC || __USE_XOPEN], not if [!__USE_ISOC99]. (lgammaf): Likewise. (lgammal): Likewise. (gamma): Set signgam unconditionally, not if [!__USE_ISOC99]. (gammaf): Likewise. (gammal): Likewise. * math/test-signgam-finite-c11.c: New file. * math/test-signgam-finite-c99.c: Likewise. * math/test-signgam-finite.c: Likewise. * math/Makefile (tests): Add test-signgam-finite, test-signgam-finite-c99 and test-signgam-finite-c11. (CFLAGS-test-signgam-finite.c): New variable. (CFLAGS-test-signgam-finite-c99.c): Likewise. (CFLAGS-test-signgam-finite-c11.c): Likewise. |
||
Joseph Myers
|
8fed86556b |
Don't redirect ldexp to scalbn in bits/math-finite.h (bug 19209).
bits/math-finite.h maps ldexp functions to corresponding scalbn functions. This is (a) a namespace bug for C90, which has ldexp but not scalbn, and (b) in any case useless, since the ldexp and scalbn functions have identical semantics (for floating-point types with radix 2), and since the fix for bug 6803 are actually aliases (presumably the mapping was based around the old bug of scalbn not setting errno). This patch removes the bogus redirections. Tested for x86_64 and x86. [BZ #19209] * math/bits/math-finite.h (ldexp): Remove declaration. (ldexpf): Likewise. (ldexpl): Likewise. |
||
Joseph Myers
|
3bfee8beb8 |
Make bits/math-finite.h conditions match other headers (bug 19205).
bits/math-finite.h declares -ffinite-math-only variants of various functions under conditions not matching those under which the normal versions are declared. * math.h only ever includes bits/mathcalls.h to declare float and long double functions if __USE_ISOC99, but bits/math-finite.h declares some float functions regardless (long double ones are conditioned on __MATH_DECLARE_LDOUBLE). (For C90 functions this isn't a conformance bug because C90 reserves the float and long double names, but is still contrary to good glibc practice. For some other functions in older XSI standards it *is* a conformance bug.) * Some functions are defined as inlines using lgamma_r functions under conditions where those lgamma_r functions are not themselves declared. * hypot is declared under __USE_XOPEN || __USE_ISOC99 in bits/mathcalls.h, __USE_ISOC99 only in bits/math-finite.h. * float and long double versions of Bessel functions should be limited to __USE_MISC (as in bug 18977). * gamma should not be declared for __USE_XOPEN2K (as in bug 18967). * remainder should be restricted to __USE_XOPEN_EXTENDED || __USE_ISOC99, not unconditional. * scalb should not be declared for __USE_XOPEN2K8, and scalbf and scalbl are non-POSIX (as in bug 18967). This patch fixes all these issues (it doesn't seem worth splitting them into separate patches or bugs). I put __USE_ISOC99 conditionals, where needed, around both float and long double declarations, even though formally redundant around the long double declarations because __MATH_DECLARE_LDOUBLE isn't defined without __USE_ISOC99; it seemed clearer that way. The missing declarations of lgamma_r functions are dealt with by directly using declarations of __lgamma*_r_finite, in the implementation namespace, rather than having the inlines rely on asm redirection of lgamma*_r. After this patch, there are some apparently redundant nested __USE_ISOC99 conditionals in lgamma / gamma definitions. These actually reflect a separate bug (the correct condition for the lgamma inline functions to set signgam is __USE_MISC || __USE_XOPEN, the condition under which signgam is declared, rather than disabling setting it if __USE_ISOC99, which includes XSI POSIX versions for which signgam *should* be set). They'll be fixed as part of a fix for that bug, which will also add tests for these inlines. I've put a note about more general conform/ test coverage for -ffinite-math-only on <https://sourceware.org/glibc/wiki/Development_Todo/Master#conformtest_improvements>, alongside other options for which this is also relevant (some of which have also had such bugs in the past relating to mismatched conditionals). I also intend to enable the main libm-test.inc tests for the math-finite.h functions, but some other bugs in __*_finite need fixing first. [BZ #19205] * math/bits/math-finite.h (acosf): Condition declaration on [__USE_ISOC99]. (acosl): Likewise. (acoshf): Likewise. (acoshl): Likewise. (asinf): Likewise. (asinl): Likewise. (atan2f): Likewise. (atan2l): Likewise. (atanhf): Likewise. (atanhl): Likewise. (coshf): Likewise. (coshl): Likewise. (expf): Likewise. (expl): Likewise. (fmodf): Likewise. (fmodl): Likewise. (hypot): Change condition to [__USE_XOPEN || __USE_ISOC99]. (j0f): Change condition to [__USE_MISC && __USE_ISOC99]. (j0l): Likewise. (y0f): Likewise. (y0l): Likewise. (j1f): Likewise. (j1l): Likewise. (y1f): Likewise. (y1l): Likewise. (jnf): Likewise. (jnl): Likewise. (ynf): Likewise. (ynl): Likewise. (lgammaf_r): Condition declaration on [__USE_ISOC99]. (lgammal_r): Likewise. (__lgamma_r_finite): New declaration. (__lgammaf_r_finite): Likewise. (__lgammal_r_finite): Likewise. (lgamma): Use __lgamma_r_finite. (lgammaf): Condition definition on [__USE_ISOC99]. Use __lgammaf_r_finite. (lgammal): Condition definition on [__USE_ISOC99]. Use __lgammal_r_finite. (gamma): Do not define for [!__USE_MISC && __USE_XOPEN2K]. Use __lgamma_r_finite. (gammaf): Condition definition on [__USE_ISOC99]. Use __lgammaf_r_finite. (gammal): Condition definition on [__USE_ISOC99]. Use __lgammal_r_finite. (logf): Condition declaration on [__USE_ISOC99]. (logl): Likewise. (log10f): Likewise. (log10l): Likewise. (ldexpf): Likewise. (ldexpl): Likewise. (powf): Likewise. (powl): Likewise. (remainder): Condition declaration on [__USE_XOPEN_EXTENDED || __USE_ISOC99]. (remainderf): Condition declaration on [__USE_ISOC99]. (remainderl): Likewise. (scalb): Do not declare for [!__USE_MISC && __USE_XOPEN2K8]. (scalbf): Change condition to [__USE_MISC && __USE_ISOC99]. (scalbl): Likewise. (sinhf): Condition declaration on [__USE_ISOC99]. (sinhl): Likewise. (sqrtf): Likewise. (sqrtl): Likewise. |
||
Joseph Myers
|
1f11365a75 |
Don't declare float / long double Bessel functions for XSI POSIX (bug 18977).
The float and long double versions of Bessel function (j0f, y1l, etc.) are not in POSIX; only the double versions are. This patch accordingly limits the declarations of those functions to __USE_MISC, and fixes the conform/ test expectations which matched the previous incorrect declarations. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by this patch). [BZ #18977] * math/bits/mathcalls.h [!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (j0): Do not declare. [!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (j1): Likewise. [!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (jn): Likewise. [!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (y0): Likewise. [!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (y1): Likewise. [!__USE_MISC && __USE_XOPEN && !__MATH_DECLARING_DOUBLE] (yn): Likewise. * conform/data/math.h-data [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j0f): Do not expect function. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j1f): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (jnf): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y0f): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y1f): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (ynf): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j0l): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (j1l): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (jnl): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y0l): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (y1l): Likewise. [!ISO99 && !ISO11 && !POSIX && !POSIX2008] (ynl): Likewise. |
||
Joseph Myers
|
de20571d40 |
Fix math.h, tgmath.h XSI POSIX namespace (gamma, isnan, scalb) (bug 18967).
math.h incorrectly declares various functions for XSI POSIX 2001 and 2008 editions. gamma was removed in the 2001 edition but is still declared, along with gammaf and gammal which were never standard functions. isnan is still declared as a function, along with isnanf and isnanl which were never standard functions, although in 2001 the function was replaced by the type-generic macro. scalbf and scalbl are declared although never standard, and scalb was removed in the 2008 edition but is still declared. The scalb type-generic macro in tgmath.h shouldn't be present for any POSIX version, since POSIX never had such a type-generic macro. This patch disables all those declarations in the relevant cases (as a minimal fix, it leaves them enabled for __USE_MISC). For the matter of declaring scalb but not scalbf or scalbl for the 2001 edition, a new macro __MATH_DECLARING_DOUBLE is added, defined by math.h around includes of bits/mathcalls.h, for bits/mathcalls.h to use to test which type's functions are being declared. Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #18967] * math/math.h (__MATH_DECLARING_DOUBLE): New macro. Define and undefine around includes of <bits/mathcalls.h>. * math/bits/mathcalls.h [!__USE_MISC && __USE_XOPEN2K] (isnan): Do not declare function. [!__USE_MISC && __USE_XOPEN2K] (gamma): Likewise. [!__USE_MISC && (!__MATH_DECLARING_DOUBLE || __USE_XOPEN2K8)] (scalb): Likewise. * math/tgmath.h [!__USE_MISC && __USE_XOPEN_EXTENDED] (scalb): Do not define macro. * conform/Makefile (test-xfail-XOPEN2K/math.h/conform): Remove variable. (test-xfail-XOPEN2K/tgmath.h/conform): Likewise. (test-xfail-XOPEN2K8/math.h/conform): Likewise. (test-xfail-XOPEN2K8/tgmath.h/conform): Likewise. |
||
Andrew Senkevich
|
c9a8c526ac |
Vector sincos for x86_64 and tests.
Here is implementation of vectorized sincos containing SSE, AVX, AVX2 and AVX512 versions according to Vector ABI <https://groups.google.com/forum/#!topic/x86-64-abi/LmppCfN1rZ4>. * NEWS: Mention addition of x86_64 vector sincos. * bits/libm-simd-decl-stubs.h: Added stubs for sincos. * math/math.h (__MATHDECL_VEC): New macro. * math/bits/mathcalls.h: Added sincos declaration with __MATHDECL_VEC. * math/gen-libm-have-vector-test.sh: Added generation of sincos wrapper declaration under condition. * math/test-vec-loop.h (TEST_VEC_LOOP): Refactored. * math/test-double-vlen2.h: Added wrapper for sincos tests, reflected TEST_VEC_LOOP change. * math/test-double-vlen4.h: Likewise. * math/test-double-vlen8.h: Likewise. * math/test-float-vlen16.h: Reflected TEST_VEC_LOOP change. * math/test-float-vlen4.h: Likewise. * math/test-float-vlen8.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/libmvec.abilist: New symbols added. * sysdeps/x86/fpu/bits/math-vector.h: Added sincos SIMD declaration. * sysdeps/x86_64/fpu/Makefile (libmvec-support): Added new files. * sysdeps/x86_64/fpu/Versions: New versions added. * sysdeps/x86_64/fpu/libm-test-ulps: Regenerated. * sysdeps/x86_64/fpu/multiarch/Makefile (libmvec-sysdep_routines): Added build of SSE, AVX2 and AVX512 IFUNC versions. * sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_sincos2_core_sse4.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_sincos4_core_avx2.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.S: New file. * sysdeps/x86_64/fpu/svml_d_sincos2_core.S: New file. * sysdeps/x86_64/fpu/svml_d_sincos4_core.S: New file. * sysdeps/x86_64/fpu/svml_d_sincos4_core_avx.S: New file. * sysdeps/x86_64/fpu/svml_d_sincos8_core.S: New file. * sysdeps/x86_64/fpu/svml_d_sincos_data.S: New file. * sysdeps/x86_64/fpu/svml_d_sincos_data.h: New file. * sysdeps/x86_64/fpu/svml_d_wrapper_impl.h: Added wrappers for sincos. * sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c: Vector sincos tests. * sysdeps/x86_64/fpu/test-double-vlen2.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-avx2.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen8.c: Likewise. |
||
Andrew Senkevich
|
c10b9b13f7 |
Vector pow for x86_64 and tests.
Here is implementation of vectorized pow containing SSE, AVX, AVX2 and AVX512 versions according to Vector ABI <https://groups.google.com/forum/#!topic/x86-64-abi/LmppCfN1rZ4>. * bits/libm-simd-decl-stubs.h: Added stubs for pow. * math/bits/mathcalls.h: Added pow declaration with __MATHCALL_VEC. * sysdeps/unix/sysv/linux/x86_64/libmvec.abilist: New versions added. * sysdeps/x86/fpu/bits/math-vector.h: Added SIMD declaration and asm redirections for pow. * sysdeps/x86_64/fpu/Makefile (libmvec-support): Added new files. * sysdeps/x86_64/fpu/Versions: New versions added. * sysdeps/x86_64/fpu/libm-test-ulps: Regenerated. * sysdeps/x86_64/fpu/multiarch/Makefile (libmvec-sysdep_routines): Added build of SSE, AVX2 and AVX512 IFUNC versions. * sysdeps/x86_64/fpu/svml_d_wrapper_impl.h: Added 2 argument wrappers. * sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S: New file. * sysdeps/x86_64/fpu/svml_d_pow2_core.S: New file. * sysdeps/x86_64/fpu/svml_d_pow4_core.S: New file. * sysdeps/x86_64/fpu/svml_d_pow4_core_avx.S: New file. * sysdeps/x86_64/fpu/svml_d_pow8_core.S: New file. * sysdeps/x86_64/fpu/svml_d_pow_data.S: New file. * sysdeps/x86_64/fpu/svml_d_pow_data.h: New file. * sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c: Added vector pow test. * sysdeps/x86_64/fpu/test-double-vlen2.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-avx2.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen8.c: Likewise. * NEWS: Mention addition of x86_64 vector pow. |
||
Andrew Senkevich
|
9c02f663f6 |
Vector exp for x86_64 and tests.
Here is implementation of vectorized exp containing SSE, AVX, AVX2 and AVX512 versions according to Vector ABI <https://groups.google.com/forum/#!topic/x86-64-abi/LmppCfN1rZ4>. * bits/libm-simd-decl-stubs.h: Added stubs for exp. * math/bits/mathcalls.h: Added exp declaration with __MATHCALL_VEC. * sysdeps/unix/sysv/linux/x86_64/libmvec.abilist: New versions added. * sysdeps/x86/fpu/bits/math-vector.h: Added SIMD declaration and asm redirections for exp. * sysdeps/x86_64/fpu/Makefile (libmvec-support): Added new files. * sysdeps/x86_64/fpu/Versions: New versions added. * sysdeps/x86_64/fpu/libm-test-ulps: Regenerated. * sysdeps/x86_64/fpu/multiarch/Makefile (libmvec-sysdep_routines): Added build of SSE, AVX2 and AVX512 IFUNC versions. * sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S: New file. * sysdeps/x86_64/fpu/svml_d_exp2_core.S: New file. * sysdeps/x86_64/fpu/svml_d_exp4_core.S: New file. * sysdeps/x86_64/fpu/svml_d_exp4_core_avx.S: New file. * sysdeps/x86_64/fpu/svml_d_exp8_core.S: New file. * sysdeps/x86_64/fpu/svml_d_exp_data.S: New file. * sysdeps/x86_64/fpu/svml_d_exp_data.h: New file. * sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c: Added vector exp test. * sysdeps/x86_64/fpu/test-double-vlen2.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-avx2.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen8.c: Likewise. * NEWS: Mention addition of x86_64 vector exp. |
||
Andrew Senkevich
|
6af25acc7b |
Vector log for x86_64 and tests.
Here is implementation of vectorized log containing SSE, AVX, AVX2 and AVX512 versions according to Vector ABI <https://groups.google.com/forum/#!topic/x86-64-abi/LmppCfN1rZ4>. * bits/libm-simd-decl-stubs.h: Added stubs for log. * math/bits/mathcalls.h: Added log declaration with __MATHCALL_VEC. * sysdeps/unix/sysv/linux/x86_64/libmvec.abilist: New versions added. * sysdeps/x86/fpu/bits/math-vector.h: Added SIMD declaration and asm redirections for log. * sysdeps/x86_64/fpu/Makefile (libmvec-support): Added new files. * sysdeps/x86_64/fpu/Versions: New versions added. * sysdeps/x86_64/fpu/libm-test-ulps: Regenerated. * sysdeps/x86_64/fpu/multiarch/Makefile (libmvec-sysdep_routines): Added build of SSE, AVX2 and AVX512 IFUNC versions. * sysdeps/x86_64/fpu/multiarch/svml_d_log2_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_log4_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_log8_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S: New file. * sysdeps/x86_64/fpu/svml_d_log2_core.S: New file. * sysdeps/x86_64/fpu/svml_d_log4_core.S: New file. * sysdeps/x86_64/fpu/svml_d_log4_core_avx.S: New file. * sysdeps/x86_64/fpu/svml_d_log8_core.S: New file. * sysdeps/x86_64/fpu/svml_d_log_data.S: New file. * sysdeps/x86_64/fpu/svml_d_log_data.h: New file. * sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c: Added vector log test. * sysdeps/x86_64/fpu/test-double-vlen2.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-avx2.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen8.c: Likewise. * NEWS: Mention addition of x86_64 vector log. |
||
Andrew Senkevich
|
4b9c2b707b |
Vector sin for x86_64 and tests.
Here is implementation of vectorized sin containing SSE, AVX, AVX2 and AVX512 versions according to Vector ABI <https://groups.google.com/forum/#!topic/x86-64-abi/LmppCfN1rZ4>. * bits/libm-simd-decl-stubs.h: Added stubs for sin. * math/bits/mathcalls.h: Added sin declaration with __MATHCALL_VEC. * sysdeps/unix/sysv/linux/x86_64/libmvec.abilist: New versions added. * sysdeps/x86/fpu/bits/math-vector.h: SIMD declaration for sin. * sysdeps/x86_64/fpu/Makefile (libmvec-support): Added new files. * sysdeps/x86_64/fpu/Versions: New versions added. * sysdeps/x86_64/fpu/libm-test-ulps: Regenerated. * sysdeps/x86_64/fpu/multiarch/Makefile (libmvec-sysdep_routines): Added build of SSE, AVX2 and AVX512 IFUNC versions. * sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_sin2_core_sse4.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_sin4_core_avx2.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core_avx512.S: New file. * sysdeps/x86_64/fpu/svml_d_sin2_core.S: New file. * sysdeps/x86_64/fpu/svml_d_sin4_core.S: New file. * sysdeps/x86_64/fpu/svml_d_sin4_core_avx.S: New file. * sysdeps/x86_64/fpu/svml_d_sin8_core.S: New file. * sysdeps/x86_64/fpu/svml_d_sin_data.S: New file. * sysdeps/x86_64/fpu/svml_d_sin_data.h: New file. * sysdeps/x86_64/fpu/test-double-vlen2-wrappers.c: Added vector sin test. * sysdeps/x86_64/fpu/test-double-vlen2.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-avx2-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-avx2.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen4.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen8-wrappers.c: Likewise. * sysdeps/x86_64/fpu/test-double-vlen8.c: Likewise. * NEWS: Mention addition of x86_64 vector sin. |
||
Andrew Senkevich
|
2193311288 |
Start of series of patches with x86_64 vector math functions.
Here is implementation of cos containing SSE, AVX, AVX2 and AVX512 versions according to Vector ABI which had been discussed in <https://groups.google.com/forum/#!topic/x86-64-abi/LmppCfN1rZ4>. Vector math library build and ABI testing enabled by default for x86_64. * sysdeps/x86_64/fpu/Makefile: New file. * sysdeps/x86_64/fpu/Versions: New file. * sysdeps/x86_64/fpu/svml_d_cos_data.S: New file. * sysdeps/x86_64/fpu/svml_d_cos_data.h: New file. * sysdeps/x86_64/fpu/svml_d_cos2_core.S: New file. * sysdeps/x86_64/fpu/svml_d_cos4_core.S: New file. * sysdeps/x86_64/fpu/svml_d_cos4_core_avx.S: New file. * sysdeps/x86_64/fpu/svml_d_cos8_core.S: New file. * sysdeps/x86_64/fpu/svml_d_wrapper_impl.h: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_cos4_core_avx2.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core.S: New file. * sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core_avx512.S: New file. * sysdeps/x86_64/fpu/multiarch/Makefile (libmvec-sysdep_routines): Added build of SSE, AVX2 and AVX512 IFUNC versions. * sysdeps/x86/fpu/bits/math-vector.h: Added SIMD declaration for cos. * math/bits/mathcalls.h: Added cos declaration with __MATHCALL_VEC. * sysdeps/x86_64/configure.ac: Options for libmvec build. * sysdeps/x86_64/configure: Regenerated. * sysdeps/x86_64/sysdep.h (cfi_offset_rel_rsp): New macro. * sysdeps/unix/sysv/linux/x86_64/libmvec.abilist: New file. * manual/install.texi (Configuring and compiling): Document --disable-mathvec. * INSTALL: Regenerated. * NEWS: Mention addition of libmvec and x86_64 vector cos. |
||
Joseph Myers
|
b168057aaa | Update copyright dates with scripts/update-copyrights. | ||
Siddhesh Poyarekar
|
884ddc5081 |
Revert to defining __extern_inline only for gcc-4.3+ (BZ #17266)
The check for only __GNUC_STDC_INLINE__ and __GNUC_GNU_INLINE__ may not be sufficient since those flags were added during initial support for C99 inlining semantics. There is also a problem with always defining __extern_inline and __extern_always_inline, since it enables inline wrapper functions even when GNU inlining semantics are not guaranteed. This, along with the possibility of such wrappers using redirection (btowc for example) could result in compiler generating an infinitely recusrive call to the function. In fact it was such a recursion that led to this code being written the way it was; see: https://bugzilla.redhat.com/show_bug.cgi?id=186410 The initial change was to fix bugs 14530 and 13741, but they can be resolved by checking if __fortify_function and/or __extern_always_inline are defined, as it has been done in this patch. In addition, I have audited uses of __extern_always_inline to make sure that none of the uses result in compilation errors. There is however a regression in this patch for llvm, since it reverts the llvm expectation that __GNUC_STDC_INLINE__ or __GNUC_GNU_INLINE__ definition imply proper extern inline semantics. 2014-09-16 Siddhesh Poyarekar <siddhesh@redhat.com> Jakub Jelinek <jakub@redhat.com> [BZ #17266] * libio/stdio.h: Check definition of __fortify_function instead of __extern_always_inline to include bits/stdio2.h. * math/bits/math-finite.h [__USE_XOPEN || __USE_ISOC99]: Also check if __extern_always_inline is defined. [__USE_MISC || __USE_XOPEN]: Likewise. [__USE_ISOC99] Likewise. * misc/sys/cdefs.h (__fortify_function): Define only if __extern_always_inline is defined. [!__cplusplus || __GNUC_PREREQ (4,3)]: Revert to defining __extern_always_inline and __extern_inline only for g++-4.3 and newer or a compatible gcc. |
||
Joseph Myers
|
acd7f096d7 |
Complete _BSD_SOURCE / _SVID_source followup cleanup.
This patch completes the headers cleanup consequent on removal of _BSD_SOURCE and _SVID_SOURCE (apart from any subsequent deprecations): * #endif conditionals that referred to BSD or SVID are updated. * Redundant __USE_* tests in cases involving __USE_MISC are removed. This includes cases such as __USE_MISC || __USE_ISOC99, where __USE_MISC is redundant (because __USE_MISC is only ever defined in the default / _DEFAULT_SOURCE / _GNU_SOURCE case, when __USE_ISOC99 is also defined; the same applies to the non-XSI-extended POSIX versions), and cases involving __USE_GNU, where __USE_GNU is redundant (because if __USE_GNU is defined, so are the other __USE_* macros). There may well be other cases of __USE_FOO || __USE_BAR tests that could be simplified because one macro implies the other; this patch only addresses cases involving __USE_MISC. Tested x86_64. * bits/fcntl.h [__USE_MISC]: Remove redundant conditionals. * bits/sigaction.h [__USE_MISC]: Likewise. * bits/waitstatus.h: Update #endif comments. * ctype/ctype.h: Likewise. * dirent/dirent.h: Likewise. [__USE_MISC]: Remove redundant conditionals. * grp/grp.h: Update #endif comments. [__USE_GNU]: Remove redundant conditionals. [__USE_MISC]: Likewise. * inet/netinet/in.h [__USE_GNU]: Likewise. * io/sys/stat.h [__USE_MISC]: Likewise. * libio/bits/stdio-ldbl.h [__USE_MISC]: Likewise. * libio/bits/stdio.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * libio/bits/stdio2.h [__USE_MISC]: Likewise. * libio/stdio.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * math/bits/math-finite.h [__USE_MISC]: Likewise. * math/bits/mathcalls.h [__USE_MISC]: Likewise. * math/math.h: Update #else and #endif comments. [__USE_MISC]: Remove redundant conditionals. * misc/sys/uio.h: Update #endif comments. * posix/bits/unistd.h [__USE_MISC]: Remove redundant conditionals. * posix/glob.h [__USE_MISC]: Likewise. * posix/sys/types.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * posix/sys/wait.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * posix/unistd.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * pwd/pwd.h [__USE_GNU]: Likewise. [__USE_MISC]: Likewise. * resolv/netdb.h [__USE_GNU]: Likewise. * signal/signal.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * stdlib/stdlib.h: Update #else and #endif comments. [__USE_MISC]: Remove redundant conditionals. [__USE_GNU]: Likewise. * string/bits/string2.h [__USE_MISC]: Likewise. * string/string.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * sysdeps/m68k/m680x0/fpu/bits/mathinline.h [__USE_MISC]: Likewise. * sysdeps/mach/hurd/bits/fcntl.h [__USE_MISC]: Likewise. * sysdeps/mach/hurd/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/bits/fcntl-linux.h: Update #endif comments. [__USE_MISC]: Remove redundant conditionals. * sysdeps/unix/sysv/linux/bits/in.h [__USE_GNU]: Likewise. * sysdeps/unix/sysv/linux/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/bits/socket.h [__USE_GNU]: Likewise. * sysdeps/unix/sysv/linux/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/m68k/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/mips/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/mips/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/s390/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/s390/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/unix/sysv/linux/x86/bits/stat.h [__USE_MISC]: Likewise. * sysdeps/x86/bits/string.h: Update #endif comments. * sysdeps/x86/fpu/bits/mathinline.h [__USE_MISC]: Remove redundant conditionals. * time/sys/time.h: Update #endif comments. * time/time.h: Likewise. [__USE_MISC]: Remove redundant conditionals. |
||
Allan McRae
|
d4697bc93d | Update copyright notices with scripts/update-copyrights | ||
Thomas Schwinge
|
572676160d |
New <math.h> macro named issignaling to check for a signaling NaN (sNaN).
It is based on draft TS 18661 and currently enabled as a GNU extension. |
||
Thomas Schwinge
|
67e971f18f | Better distinguish between NaN/qNaN/sNaN. | ||
Joseph Myers
|
828beb132d | Use __extension__ with long long in installed headers. | ||
Joseph Myers
|
568035b787 | Update copyright notices with scripts/update-copyrights. | ||
Mike Frysinger
|
9c89fca6e0 |
math: use existing nonnull attribute define
Signed-off-by: Mike Frysinger <vapier@gentoo.org> |
||
Andreas Schwab
|
ded5180a3b | Don't use long double *_finite functions if no long double math | ||
Paul Eggert
|
59ba27a63a | Replace FSF snail mail address with URLs. | ||
Ulrich Drepper
|
e58ef0f204 | Add const attribute to fmin and fmax | ||
Ulrich Drepper
|
a47a831ad8 | Optimize ldexp and scalbn | ||
Ulrich Drepper
|
a784e50247 |
Remove pre-ISO C support
No more __const. |
||
Marek Polacek
|
8ef4f244ff | Avoid warnings in __*_finite math function declarations with C++ | ||
Ulrich Drepper
|
bcf01e6d80 |
Optimize exp
Add __exp*_finite optimizations and rewrite some wrappers. |
||
Andreas Jaeger
|
556a200797 | Add parameter annotation to modf | ||
Ulrich Drepper
|
0ac5ae2335 |
Optimize libm
libm is now somewhat integrated with gcc's -ffinite-math-only option and lots of the wrapper functions have been optimized. |
||
Ulrich Drepper
|
de1c3ebb59 |
* misc/sys/cdefs.h (__va_arg_pack): Define for GCC 4.3+.
* misc/bits/syslog.h (syslog): When __va_arg_pack is defined, implement as __extern_always_inline function. (vsyslog): Define as __extern_always_inline function unconditionally. * libio/bits/stdio2.h (sprintf, snprintf, printf, fprintf): When __va_arg_pack is defined, implement as __extern_always_inline functions. (vsprintf, vsnprintf, vprintf, vfprintf): Define as __extern_always_inline functions unconditionally. * libio/bits/stdio.h (vprintf): Ifdef out the inline when bits/stdio2.h will be included. * wcsmbs/bits/wchar2.h (__swprintf_alias): New redirect. (swprintf, wprintf, fwprintf): When __va_arg_pack is defined, implement as __extern_always_inline functions. (vswprintf, vwprintf, vfwprintf): Define as __extern_always_inline functions unconditionally. * debug/tst-chk1.c (do_test): Enable remaining tests for C++. 2007-09-03 Jakub Jelinek <jakub@redhat.com> * misc/sys/cdefs.h (__extern_inline, __extern_always_inline): Only define in C++ for GCC 4.3+, in C++ always use __gnu_inline__ attribute. * include/features.h (__USE_EXTERN_INLINES): Define only when __extern_inline is defined. * stdlib/stdlib.h: Include bits/stdlib.h when __extern_always_inline is defined instead of when not __cplusplus. * misc/sys/syslog.h: Include bits/syslog.h when __extern_always_inline is defined instead of when not __cplusplus. * socket/sys/socket.h: Include bits/socket2.h when __extern_always_inline is defined instead of when not __cplusplus. * libio/stdio.h: Include bits/stdio2.h when __extern_always_inline is defined instead of when not __cplusplus. * posix/unistd.h: Include bits/unistd.h when __extern_always_inline is defined instead of when not __cplusplus. * string/string.h: Include bits/string3.h when __extern_always_inline is defined instead of when not __cplusplus. * wcsmbs/wchar.h: Include bits/wchar2.h when __extern_always_inline is defined instead of when not __cplusplus. (btowc, wctob): Don't guard the inlines with ifndef __cplusplus. * io/fcntl.h: Don't include bits/fcntl2.h if __extern_always_inline is not defined. * misc/bits/syslog-ldbl.h: Guard *_chk stuff with defined __extern_always_inline instead of !defined __cplusplus. * libio/bits/stdio-ldbl.h: Likewise. * wcsmbs/bits/wchar-ldbl.h: Likewise. * misc/bits/syslog.h (syslog): Don't define for C++. (vsyslog): Use __extern_always_inline function for C++ instead of a macro. * libio/bits/stdio.h (__STDIO_INLINE): Define to __extern_inline whenever that macro is defined. (vprintf): Don't provide the inline for C++. (fread_unlocked, fwrite_unlocked): Don't define the macros for C++. * libio/bits/stdio2.h (sprintf, snprintf, printf, fprintf): Don't define the macros for C++. (vsprintf, vsnprintf, vprintf, vfprintf): Define as __extern_always_inline functions for C++. * io/sys/stat.h (stat, lstat, fstat, fstatat, mknod, mknodat, stat64, lstat64, fstat64, fstatat64): Don't define if not __USE_EXTERN_INLINES. * wcsmbs/bits/wchar2.h: Fix #error message. (swprintf, wprintf, fwprintf): Don't define the macros for C++. (vswprintf, vwprintf, vfwprintf): Define using __extern_always_inline functions for C++. * string/bits/string3.h: Don't #undef macros if __cplusplus. (memcpy, memmove, mempcpy, memset, bcopy, bzero, strcpy, stpcpy, strncpy, strcat, strncat): Define as __extern_always_inline functions instead of macros for C++. * math/bits/cmathcalls.h: Guard __extern_inline routines with defined __extern_inline. * sysdeps/alpha/fpu/bits/mathinline.h (__MATH_INLINE): Define to __extern_inline whenever that macro is defined. * sysdeps/ia64/fpu/bits/mathinline.h (__MATH_INLINE): Likewise. * sysdeps/i386/fpu/bits/mathinline.h (__MATH_INLINE): Likewise. * sysdeps/i386/i486/bits/string.h (__STRING_INLINE): Likewise. * sysdeps/s390/bits/string.h (__STRING_INLINE): Likewise. * sysdeps/s390/fpu/bits/mathinline.h (__MATH_INLINE): Likewise. * sysdeps/powerpc/fpu/bits/mathinline.h (__MATH_INLINE): Likewise. * sysdeps/x86_64/fpu/bits/mathinline.h (__MATH_INLINE): Likewise. * sysdeps/sparc/fpu/bits/mathinline.h (__MATH_INLINE): Likewise. * sysdeps/unix/sysv/linux/sys/sysmacros.h (gnu_dev_major, gnu_dev_minor, gnu_dev_makedev): Remove __extern_inline from prototypes. Only provide __extern_inline routines if __USE_EXTERN_INLINES. * debug/Makefile: Add rules to build and run tst-{,lfs}chk{4,5,6} tests. * debug/tst-chk1.c (do_prepare, do_test): Allow compilation as C++. For now avoid some *printf tests in C++. Skip all testing if __USE_FORTIFY_LEVEL is defined, but __extern_always_inline macro is not. * debug/tst-chk4.cc: New file. * debug/tst-chk5.cc: New file. * debug/tst-chk6.cc: New file. * debug/tst-lfschk4.cc: New file. * debug/tst-lfschk5.cc: New file. * debug/tst-lfschk6.cc: New file. * include/wchar.h (__vfwprintf_chk, __vswprintf_chk): Avoid prototypes in C++. * include/stdio.h (__sprintf_chk, __snprintf_chk, __vsprintf_chk, __vsnprintf_chk, __printf_chk, __fprintf_chk, __vprintf_chk, __vfprintf_chk, __fgets_unlocked_chk, __fgets_chk): Likewise. |
||
Ulrich Drepper
|
b037a293a4 |
* configure.in (libc_cv_gnu89_inline): Test for -fgnu89-inline.
* config.make.in (gnu89-inline-CFLAGS): New variable. * Makeconfig (CFLAGS): Use $(gnu89-inline-CFLAGS) together with -std=gnu99. * misc/sys/cdefs.h (__extern_inline, __extern_always_inline): Define. * argp/argp.h: Use it. * bits/mathinline.h: Likewise. * bits/sigset.h: Likewise. * bits/string.h: Likewise. * ctype/ctype.h: Likewise. * hurd/hurd.h: Likewise. * hurd/hurd/fd.h: Likewise. * hurd/hurd/port.h: Likewise. * hurd/hurd/signal.h: Likewise. * hurd/hurd/threadvar.h: Likewise. * hurd/hurd/userlink.h: Likewise. * io/sys/stat.h: Likewise. * libio/bits/stdio.h: Likewise. * libio/bits/stdio2.h: Likewise. * mach/lock-intern.h: Likewise. * mach/mach/mig_support.h: Likewise. * math/bits/cmathcalls.h: Likewise. * posix/bits/unistd.h: Likewise. * socket/bits/socket2.h: Likewise. * stdlib/bits/stdlib.h: Likewise. * stdlib/stdlib.h: Likewise. * string/argz.h: Likewise. * string/bits/string2.h: Likewise. * string/bits/string3.h: Likewise. * sysdeps/alpha/fpu/bits/mathinline.h: Likewise. * sysdeps/generic/inttypes.h: Likewise. * sysdeps/generic/machine-lock.h: Likewise. * sysdeps/generic/machine-sp.h: Likewise. * sysdeps/i386/fpu/bits/mathinline.h: Likewise. * sysdeps/i386/i486/bits/string.h: Likewise. * sysdeps/ia64/fpu/bits/mathinline.h: Likewise. * sysdeps/mach/alpha/machine-lock.h: Likewise. * sysdeps/mach/alpha/machine-sp.h: Likewise. * sysdeps/mach/i386/machine-lock.h: Likewise. * sysdeps/mach/powerpc/machine-lock.h: Likewise. * sysdeps/mach/powerpc/machine-sp.h: Likewise. * sysdeps/powerpc/fpu/bits/mathinline.h: Likewise. * sysdeps/s390/bits/string.h: Likewise. * sysdeps/s390/fpu/bits/mathinline.h: Likewise. * sysdeps/sparc/fpu/bits/mathinline.h: Likewise. * sysdeps/unix/bsd/bsd4.4/bits/socket.h: Likewise. * sysdeps/unix/sysv/linux/bits/sigset.h: Likewise. * sysdeps/unix/sysv/linux/bits/socket.h: Likewise. * sysdeps/unix/sysv/linux/sys/sysmacros.h: Likewise. * sysdeps/x86_64/fpu/bits/mathinline.h: Likewise. * wcsmbs/bits/wchar2.h: Likewise. * wcsmbs/wchar.h: Likewise. * stdlib/gmp.h: Likewise. Include <features.h> to get __extern_inline definition. * locale/programs/ld-ctype.c (find_translit): Return NULL if ctype is NULL. |
||
Roland McGrath
|
d36421fa25 |
* math/bits/mathcalls.h: Guard __END_NAMESPACE_C99 with the
same #if condition as corresponding __BEGIN_NAMESPACE_C99. (scalb): Don't define only if __USE_ISOC99. |
||
Roland McGrath
|
c6251f036c |
* math/math.h [__NO_LONG_DOUBLE_MATH] (__nldbl_nexttowardf): New
prototype. (nexttowardf): Redirect to __nldbl_nexttowardf. (nexttoward): Redirect to nextafter. (__MATHDECL_2, __MATHDECL_1): Redirect *l functions to non-*l versions if __LONG_DOUBLE_MATH_OPTIONAL and __NO_LONG_DOUBLE_MATH. * math/complex.h (__MATHDECL_1): Likewise. * math/bits/mathcalls.h (nexttoward): Don't prototype if __LDBL_COMPAT. * misc/sys/cdefs.h: Include <bits/wordsize.h>. (__LDBL_COMPAT, __LDBL_REDIR1, __LDBL_REDIR, __LDBL_REDIR1_NTH, __LDBL_REDIR_NTH, __LDBL_REDIR_DECL): New macros. * libio/bits/stdio-ldbl.h: New file. * libio/Makefile (headers): Add it. * libio/stdio.h [__LDBL_COMPAT]: #include it. * libio/bits/libio-ldbl.h: New file. * libio/Makefile (headers): Add it. * libio/libio.h [__LDBL_COMPAT]: #include it. * libio/libioP.h: Include <math_ldbl_opt.h>. * include/wchar.h (__fwprintf, __vfwprintf): Fix commented out attribute. (__vfwprintf_chk): New prototype. Add libc_hidden_proto. * wcsmbs/bits/wchar-ldbl.h: New file. * wcsmbs/Makefile (headers): Add it. * wcsmbs/wchar.h [__LDBL_COMPAT]: #include it. * wcsmbs/bits/wchar2.h (__vswprintf_alias): Removed. (vswprintf): Define as a macro rather than inline function. * stdio-common/bits/printf-ldbl.h: New file. * stdio-common/Makefile (headers): Add it. * stdio-common/printf.h [__LDBL_COMPAT]: #include it. * libio/fwprintf.c: Include libioP.h. (fwprintf): Use ldbl_weak_alias instead of weak_alias. * libio/fwscanf.c: Include libioP.h. (fwscanf): Rename to __fwscanf and add ldbl_strong_alias. * libio/iovdprintf.c (vdprintf): Use ldbl_weak_alias instead of weak_alias. * libio/iovsprintf.c (_IO_vsprintf): Rename to __IO_vsprintf, add ldbl_strong_alias and use INTDEF2 instead of INTDEF. (vsprintf): Use ldbl_weak_alias instead of weak_alias. * libio/iovsscanf.c (__vsscanf, vsscanf): Use ldbl_weak_alias instead of weak_alias. * libio/iovswscanf.c (vswscanf): Rename to __vswscanf, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. * libio/obprintf.c (obstack_printf, obstack_vprintf): Use ldbl_weak_alias instead of weak_alias. * libio/swprintf.c: Include libioP.h. (swprintf): Rename to __swprintf and add ldbl_strong_alias. * libio/swscanf.c: Include libioP.h. (swscanf): Rename to __swscanf and add ldbl_strong_alias. * libio/vasprintf.c (vasprintf): Use ldbl_weak_alias instead of weak_alias. * libio/vscanf.c (vscanf): Use ldbl_weak_alias instead of weak_alias. * libio/vsnprintf.c (__vsnprintf, vsnprintf): Use ldbl_weak_alias instead of weak_alias. * libio/vswprintf.c (__vswprintf): Remove alias. (vswprintf): Use ldbl_weak_alias instead of weak_alias. * libio/vwprintf.c: Include libioP.h. (vwprintf): Rename to __vwprintf and add ldbl_strong_alias. * libio/vwscanf.c (vwscanf): Rename to __vwscanf and add ldbl_strong_alias. * libio/wprintf.c: Include libioP.h. (wprintf): Rename to __wprintf and add ldbl_strong_alias. * libio/wscanf.c: Include libioP.h. (wscanf): Rename to __wscanf and add ldbl_strong_alias. * stdio-common/asprintf.c (__asprintf): Rename to ___asprintf, add ldbl_strong_alias and use INTDEF2 instead of INTDEF. (asprintf): Use ldbl_weak_alias instead of weak_alias. * stdio-common/dprintf.c (dprintf): Rename to __dprintf, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. * stdio-common/fprintf.c: Include libioP.h. (fprintf): Rename to __fprintf, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. (_IO_fprintf): Use ldbl_weak_alias instead of weak_alias. * stdio-common/fscanf.c: Include libioP.h. (fscanf): Rename to __fscanf and add ldbl_strong_alias. * stdio-common/printf.c: Include libioP.h. (printf): Rename to __printf and add ldbl_strong_alias. (_IO_printf): Use ldbl_strong_alias instead of strong_alias. * stdio-common/printf_fp.c (__printf_fp): Rename to __printf_fp, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. * stdio-common/printf_size.c (printf_size): Rename to __printf_size and add ldbl_strong_alias. * stdio-common/scanf.c (scanf): Rename to __scanf and add ldbl_strong_alias. * stdio-common/snprintf.c (snprintf): Use ldbl_weak_alias instead of weak_alias. * stdio-common/sprintf.c (sprintf): Rename to __sprintf, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. (_IO_sprintf): Use ldbl_strong_alias instead of strong_alias. * stdio-common/sscanf.c: Include libioP.h instead of iolibio.h. (sscanf): Rename to __sscanf and add ldbl_strong_alias. * stdio-common/vfprintf.c (vfprintf): Define to _IO_vfprintf_internal. Use ldbl_strong_alias instead. Use ldbl_hidden_def instead of libc_hidden_def. (_IO_vfprintf_internal): Clear is_long_double if __ldbl_is_dbl, handle the argument as double if it is non-zero. (vfwprintf): Use ldbl_weak_alias instead of weak_alias. (_IO_vfprintf): Add ldbl_strong_alias. * stdio-common/vfscanf.c (_IO_vfscanf): Rename to _IO_vfscanf_internal, don't use strtold if __ldbl_is_dbl, add ldbl_strong_alias. (vfwscanf): Use ldbl_weak_alias instead of weak_alias. (__vfscanf): Rename to ___vfscanf, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. (vfscanf): Use ldbl_weak_alias instead of weak_alias. * stdio-common/vprintf.c: Include libioP.h. (vprintf): Rename to __vprintf and add ldbl_strong_alias. * debug/fprintf_chk.c (__fprintf_chk): Rename to ___fprintf_chk and add ldbl_strong_alias. * debug/printf_chk.c (__printf_chk): Rename to ___printf_chk and add ldbl_strong_alias. * debug/snprintf_chk.c: Include libioP.h. (__snprintf_chk): Rename to ___snprintf_chk and add ldbl_strong_alias. * debug/sprintf_chk.c: Include libioP.h. (__sprintf_chk): Rename to ___sprintf_chk and add ldbl_strong_alias. * debug/vfprintf_chk.c (__vfprintf_chk): Rename to ___vfprintf_chk, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. * debug/vfwprintf_chk.c (__vfwprintf_chk): Add libc_hidden_def. * debug/vprintf_chk.c (__vprintf_chk): Rename to ___vprintf_chk and add ldbl_strong_alias. * debug/vsnprintf_chk.c (__vsnprintf_chk): Rename to ___vsnprintf_chk, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. * debug/vsprintf_chk.c (__vsprintf_chk): Rename to ___vsprintf_chk, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. * stdlib/stdlib.h (strtold): Don't define inline if [!__LDBL_COMPAT]. * wcsmbs/wchar.h (wcstold): Likewise. * stdlib/strtod_l.c: Include math_ldbl_opt.h. (____STRTOF_INTERNAL): Define. (INTERNAL (__STRTOF)): Rename to ____STRTOF_INTERNAL. (__STRTOF): Call ____STRTOF_INTERNAL instead. [LONG_DOUBLE_COMPAT] (strtold_l, wcstold_l, __strtold_l, __wcstold_l): Add compatibility symbols. * stdlib/strtod.c: Include math_ldbl_opt.h. [LONG_DOUBLE_COMPAT] (strtold, wcstold, __strtold_internal, __wcstold_internal): Add compatibility symbols. * stdlib/strtold.c: Include bits/wordsize.h, wchar.h. (NEW, NEW1): Define. (__new_strtold, __new_wcstold): New prototypes. (____new_strtold_internal, ____new_wcstold_internal): Likewise. Add libc_hidden_proto. (STRTOF): Define to NEW (*told). [__LONG_DOUBLE_MATH_OPTIONAL] (wcstold, strtold): Add long_double_symbol. [__LONG_DOUBLE_MATH_OPTIONAL] (__wcstold_internal, __strtold_internal): Likewise. Add libc_hidden_ver. * stdlib/bits/stdlib-ldbl.h: New file. * stdlib/Makefile (headers): Add it. * stdlib/stdlib.h [__LDBL_COMPAT]: #include it. * include/stdlib.h (ecvt_r, fcvt_r, qecvt_r, qfcvt_r): Remove libc_hidden_proto. (__ecvt, __fcvt, __gcvt, __ecvt_r, __fcvt_r, __qecvt, __qfcvt, __qgcvt, __qecvt_r, __qfcvt_r): New prototypes. * misc/efgcvt_r.c: Include shlib-compat.h. (LONG_DOUBLE_CVT): Define. (__APPEND, __APPEND2): Define. (*fcvt_r): Use __APPEND instead of APPEND. Remove libc_hidden_def. (*ecvt_r): Likewise. (cvt_symbol): Define. Use it on fcvt_r and ecvt_r. * misc/efgcvt.c: Include shlib-compat.h. (LONG_DOUBLE_CVT): Define. (__APPEND, __APPEND2): Define. (fcvt): Use __APPEND instead of APPEND. Remove libc_hidden_def. (ecvt, gcvt): Likewise. (cvt_symbol): Define. Use it on fcvt, ecvt and gcvt. * stdlib/bits/monetary-ldbl.h: New file. * stdlib/Makefile (headers): Add it. * stdlib/monetary.h [__LDBL_COMPAT]: #include it. * stdlib/strfmon.c: Include math_ldbl_opt.h. (strfmon): Rename to __strfmon and add ldbl_strong_alias. * stdlib/strfmon_l.c: Remove all traces of [!USE_IN_LIBIO]. (__vstrfmon_l): Don't set is_long_double if __ldbl_is_dbl. (__strfmon_l): Rename to ___strfmon_l and add ldbl_strong_alias. (strfmon_l): Use ldbl_weak_alias instead of weak_alias. * misc/bits/syslog-ldbl.h: New file. * misc/Makefile (headers): Add it. * misc/sys/syslog.h [__LDBL_COMPAT]: #include it. * misc/syslog.c: Include math_ldbl_opt.h. (syslog): Rename to __syslog and add ldbl_strong_alias, use ldbl_hidden_def instead of libc_hidden_def. (vsyslog): Rename to __vsyslog and add ldbl_strong_alias, use ldbl_hidden_def instead of libc_hidden_def. * sysdeps/generic/math_ldbl_opt.h: New file. * math/w_j1l.c (j1l, y1l): Rename to __ prefixed variants. Add weak_alias. * math/w_j0l.c (j0l, y0l): Likewise. * math/w_jnl.c (jnl, ynl): Likewise. * sysdeps/ieee754/ldbl-96/s_nexttoward.c (__nexttowardl): Remove strong_alias. (nexttowardl): Remove weak_alias. * sysdeps/ieee754/ldbl-96/s_erfl.c (__erfl, __erfcl): Remove strong_alias. (erfl, erfcl): Remove weak_alias. * sysdeps/ieee754/ldbl-64-128/s_asinhl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_atanl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_cbrtl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_ceill.c: New file. * sysdeps/ieee754/ldbl-64-128/s_copysignl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_cosl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_erfl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_expm1l.c: New file. * sysdeps/ieee754/ldbl-64-128/s_fabsl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_finitel.c: New file. * sysdeps/ieee754/ldbl-64-128/s_floorl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_frexpl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_ilogbl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_isinfl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_isnanl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_llrintl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_llroundl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_log1pl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_logbl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_lrintl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_lroundl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_modfl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_nearbyintl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_nextafterl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_nexttoward.c: New file. * sysdeps/ieee754/ldbl-64-128/s_nexttowardf.c: New file. * sysdeps/ieee754/ldbl-64-128/s_nexttowardfd.c: New file. * sysdeps/ieee754/ldbl-64-128/s_remquol.c: New file. * sysdeps/ieee754/ldbl-64-128/s_rintl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_roundl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_scalblnl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_scalbnl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_signbitl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_sincosl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_sinl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_tanhl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_tanl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_truncl.c: New file. * sysdeps/ieee754/ldbl-64-128/strtold_l.c: New file. * sysdeps/ieee754/ldbl-64-128/w_expl.c: New file. * sysdeps/ieee754/ldbl-opt/configure.in: New file. * sysdeps/ieee754/ldbl-opt/configure: New file. * sysdeps/ieee754/ldbl-opt/Makefile: New file. * sysdeps/ieee754/ldbl-opt/Versions: New file. * sysdeps/ieee754/ldbl-opt/cabs.c: New file. * sysdeps/ieee754/ldbl-opt/cabsl.c: New file. * sysdeps/ieee754/ldbl-opt/carg.c: New file. * sysdeps/ieee754/ldbl-opt/cargl.c: New file. * sysdeps/ieee754/ldbl-opt/cimag.c: New file. * sysdeps/ieee754/ldbl-opt/cimagl.c: New file. * sysdeps/ieee754/ldbl-opt/conj.c: New file. * sysdeps/ieee754/ldbl-opt/conjl.c: New file. * sysdeps/ieee754/ldbl-opt/creal.c: New file. * sysdeps/ieee754/ldbl-opt/creall.c: New file. * sysdeps/ieee754/ldbl-opt/math_ldbl_opt.c: New file. * sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h: New file. * sysdeps/ieee754/ldbl-opt/nldbl-acos.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-acosh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-asin.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-asinh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-atan.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-atan2.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-atanh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cabs.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cacos.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cacosh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-carg.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-casin.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-casinh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-catan.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-catanh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cbrt.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ccos.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ccosh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ceil.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cexp.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cimag.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-clog.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-clog10.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-compat.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-compat.h: New file. * sysdeps/ieee754/ldbl-opt/nldbl-conj.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-copysign.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cos.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cosh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cpow.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cproj.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-creal.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-csin.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-csinh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-csqrt.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ctan.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ctanh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-dprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-drem.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-erf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-erfc.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-exp.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-exp10.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-exp2.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-expm1.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fabs.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fdim.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-finite.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-floor.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fma.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fmax.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fmin.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fmod.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-frexp.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fwprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fwprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-gamma.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-hypot.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ilogb.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-isinf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-isnan.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-j0.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-j1.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-jn.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ldexp.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-lgamma.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-lgamma_r.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-llrint.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-llround.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-log.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-log10.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-log1p.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-log2.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-logb.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-lrint.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-lround.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-modf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-nan.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-nearbyint.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-nextafter.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-nexttoward.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-nexttowardf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-obstack_printf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-obstack_vprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-pow.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-pow10.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-printf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-printf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-printf_fp.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-printf_size.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-qecvt_r.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-qfcvt_r.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-remainder.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-remquo.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-rint.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-round.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-scalb.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-scalbln.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-scalbn.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-scanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-signbit.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-significand.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sin.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sincos.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sinh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-snprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-snprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sqrt.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-strfmon.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-strtold.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-strtoldint.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-swprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-swprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-syslog.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-syslog_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-tan.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-tanh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-tgamma.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-trunc.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vasprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vdprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vfprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vfprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vswprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vswprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsyslog_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vwprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vwprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-wcstold.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-wcstoldint.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-wprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-wprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-y0.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-y1.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-yn.c: New file. * sysdeps/ieee754/ldbl-opt/s_asinh.c: New file. * sysdeps/ieee754/ldbl-opt/s_atan.c: New file. * sysdeps/ieee754/ldbl-opt/s_cacos.c: New file. * sysdeps/ieee754/ldbl-opt/s_cacosh.c: New file. * sysdeps/ieee754/ldbl-opt/s_cacoshl.c: New file. * sysdeps/ieee754/ldbl-opt/s_cacosl.c: New file. * sysdeps/ieee754/ldbl-opt/s_casin.c: New file. * sysdeps/ieee754/ldbl-opt/s_casinh.c: New file. * sysdeps/ieee754/ldbl-opt/s_casinhl.c: New file. * sysdeps/ieee754/ldbl-opt/s_casinl.c: New file. * sysdeps/ieee754/ldbl-opt/s_catan.c: New file. * sysdeps/ieee754/ldbl-opt/s_catanh.c: New file. * sysdeps/ieee754/ldbl-opt/s_catanhl.c: New file. * sysdeps/ieee754/ldbl-opt/s_catanl.c: New file. * sysdeps/ieee754/ldbl-opt/s_cbrt.c: New file. * sysdeps/ieee754/ldbl-opt/s_ccos.c: New file. * sysdeps/ieee754/ldbl-opt/s_ccosh.c: New file. * sysdeps/ieee754/ldbl-opt/s_ccoshl.c: New file. * sysdeps/ieee754/ldbl-opt/s_ccosl.c: New file. * sysdeps/ieee754/ldbl-opt/s_ceil.c: New file. * sysdeps/ieee754/ldbl-opt/s_cexp.c: New file. * sysdeps/ieee754/ldbl-opt/s_cexpl.c: New file. * sysdeps/ieee754/ldbl-opt/s_clog.c: New file. * sysdeps/ieee754/ldbl-opt/s_clog10.c: New file. * sysdeps/ieee754/ldbl-opt/s_clog10l.c: New file. * sysdeps/ieee754/ldbl-opt/s_clogl.c: New file. * sysdeps/ieee754/ldbl-opt/s_copysign.c: New file. * sysdeps/ieee754/ldbl-opt/s_cpow.c: New file. * sysdeps/ieee754/ldbl-opt/s_cpowl.c: New file. * sysdeps/ieee754/ldbl-opt/s_cproj.c: New file. * sysdeps/ieee754/ldbl-opt/s_cprojl.c: New file. * sysdeps/ieee754/ldbl-opt/s_csin.c: New file. * sysdeps/ieee754/ldbl-opt/s_csinh.c: New file. * sysdeps/ieee754/ldbl-opt/s_csinhl.c: New file. * sysdeps/ieee754/ldbl-opt/s_csinl.c: New file. * sysdeps/ieee754/ldbl-opt/s_csqrt.c: New file. * sysdeps/ieee754/ldbl-opt/s_csqrtl.c: New file. * sysdeps/ieee754/ldbl-opt/s_ctan.c: New file. * sysdeps/ieee754/ldbl-opt/s_ctanh.c: New file. * sysdeps/ieee754/ldbl-opt/s_ctanhl.c: New file. * sysdeps/ieee754/ldbl-opt/s_ctanl.c: New file. * sysdeps/ieee754/ldbl-opt/s_erf.c: New file. * sysdeps/ieee754/ldbl-opt/s_expm1.c: New file. * sysdeps/ieee754/ldbl-opt/s_fabs.c: New file. * sysdeps/ieee754/ldbl-opt/s_fdim.c: New file. * sysdeps/ieee754/ldbl-opt/s_fdiml.c: New file. * sysdeps/ieee754/ldbl-opt/s_finite.c: New file. * sysdeps/ieee754/ldbl-opt/s_floor.c: New file. * sysdeps/ieee754/ldbl-opt/s_fma.c: New file. * sysdeps/ieee754/ldbl-opt/s_fmal.c: New file. * sysdeps/ieee754/ldbl-opt/s_fmax.c: New file. * sysdeps/ieee754/ldbl-opt/s_fmaxl.c: New file. * sysdeps/ieee754/ldbl-opt/s_fmin.c: New file. * sysdeps/ieee754/ldbl-opt/s_fminl.c: New file. * sysdeps/ieee754/ldbl-opt/s_frexp.c: New file. * sysdeps/ieee754/ldbl-opt/s_ilogb.c: New file. * sysdeps/ieee754/ldbl-opt/s_isinf.c: New file. * sysdeps/ieee754/ldbl-opt/s_isnan.c: New file. * sysdeps/ieee754/ldbl-opt/s_ldexp.c: New file. * sysdeps/ieee754/ldbl-opt/s_ldexpl.c: New file. * sysdeps/ieee754/ldbl-opt/s_llrint.c: New file. * sysdeps/ieee754/ldbl-opt/s_llround.c: New file. * sysdeps/ieee754/ldbl-opt/s_log1p.c: New file. * sysdeps/ieee754/ldbl-opt/s_logb.c: New file. * sysdeps/ieee754/ldbl-opt/s_lrint.c: New file. * sysdeps/ieee754/ldbl-opt/s_lround.c: New file. * sysdeps/ieee754/ldbl-opt/s_modf.c: New file. * sysdeps/ieee754/ldbl-opt/s_nan.c: New file. * sysdeps/ieee754/ldbl-opt/s_nanl.c: New file. * sysdeps/ieee754/ldbl-opt/s_nearbyint.c: New file. * sysdeps/ieee754/ldbl-opt/s_nextafter.c: New file. * sysdeps/ieee754/ldbl-opt/s_remquo.c: New file. * sysdeps/ieee754/ldbl-opt/s_rint.c: New file. * sysdeps/ieee754/ldbl-opt/s_round.c: New file. * sysdeps/ieee754/ldbl-opt/s_scalbln.c: New file. * sysdeps/ieee754/ldbl-opt/s_scalbn.c: New file. * sysdeps/ieee754/ldbl-opt/s_significand.c: New file. * sysdeps/ieee754/ldbl-opt/s_significandl.c: New file. * sysdeps/ieee754/ldbl-opt/s_sin.c: New file. * sysdeps/ieee754/ldbl-opt/s_sincos.c: New file. * sysdeps/ieee754/ldbl-opt/s_tan.c: New file. * sysdeps/ieee754/ldbl-opt/s_tanh.c: New file. * sysdeps/ieee754/ldbl-opt/s_trunc.c: New file. * sysdeps/ieee754/ldbl-opt/w_acos.c: New file. * sysdeps/ieee754/ldbl-opt/w_acosh.c: New file. * sysdeps/ieee754/ldbl-opt/w_acoshl.c: New file. * sysdeps/ieee754/ldbl-opt/w_acosl.c: New file. * sysdeps/ieee754/ldbl-opt/w_asin.c: New file. * sysdeps/ieee754/ldbl-opt/w_asinl.c: New file. * sysdeps/ieee754/ldbl-opt/w_atan2.c: New file. * sysdeps/ieee754/ldbl-opt/w_atan2l.c: New file. * sysdeps/ieee754/ldbl-opt/w_atanh.c: New file. * sysdeps/ieee754/ldbl-opt/w_atanhl.c: New file. * sysdeps/ieee754/ldbl-opt/w_cosh.c: New file. * sysdeps/ieee754/ldbl-opt/w_coshl.c: New file. * sysdeps/ieee754/ldbl-opt/w_drem.c: New file. * sysdeps/ieee754/ldbl-opt/w_dreml.c: New file. * sysdeps/ieee754/ldbl-opt/w_exp.c: New file. * sysdeps/ieee754/ldbl-opt/w_exp10.c: New file. * sysdeps/ieee754/ldbl-opt/w_exp10l.c: New file. * sysdeps/ieee754/ldbl-opt/w_fmod.c: New file. * sysdeps/ieee754/ldbl-opt/w_fmodl.c: New file. * sysdeps/ieee754/ldbl-opt/w_hypot.c: New file. * sysdeps/ieee754/ldbl-opt/w_hypotl.c: New file. * sysdeps/ieee754/ldbl-opt/w_j0.c: New file. * sysdeps/ieee754/ldbl-opt/w_j0l.c: New file. * sysdeps/ieee754/ldbl-opt/w_j1.c: New file. * sysdeps/ieee754/ldbl-opt/w_j1l.c: New file. * sysdeps/ieee754/ldbl-opt/w_jn.c: New file. * sysdeps/ieee754/ldbl-opt/w_jnl.c: New file. * sysdeps/ieee754/ldbl-opt/w_lgamma.c: New file. * sysdeps/ieee754/ldbl-opt/w_lgamma_r.c: New file. * sysdeps/ieee754/ldbl-opt/w_lgammal.c: New file. * sysdeps/ieee754/ldbl-opt/w_lgammal_r.c: New file. * sysdeps/ieee754/ldbl-opt/w_log.c: New file. * sysdeps/ieee754/ldbl-opt/w_log10.c: New file. * sysdeps/ieee754/ldbl-opt/w_log10l.c: New file. * sysdeps/ieee754/ldbl-opt/w_log2.c: New file. * sysdeps/ieee754/ldbl-opt/w_log2l.c: New file. * sysdeps/ieee754/ldbl-opt/w_logl.c: New file. * sysdeps/ieee754/ldbl-opt/w_pow.c: New file. * sysdeps/ieee754/ldbl-opt/w_powl.c: New file. * sysdeps/ieee754/ldbl-opt/w_remainder.c: New file. * sysdeps/ieee754/ldbl-opt/w_remainderl.c: New file. * sysdeps/ieee754/ldbl-opt/w_scalb.c: New file. * sysdeps/ieee754/ldbl-opt/w_scalbl.c: New file. * sysdeps/ieee754/ldbl-opt/w_sinh.c: New file. * sysdeps/ieee754/ldbl-opt/w_sinhl.c: New file. * sysdeps/ieee754/ldbl-opt/w_sqrt.c: New file. * sysdeps/ieee754/ldbl-opt/w_sqrtl.c: New file. * sysdeps/ieee754/ldbl-opt/w_tgamma.c: New file. * sysdeps/ieee754/ldbl-opt/w_tgammal.c: New file. * sysdeps/unix/sysv/linux/sparc/bits/wordsize.h: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/Implies: New file. * sysdeps/sparc/sparc32/Implies: Move ldbl-128 first and flt-32 after dbl-64. * sysdeps/unix/sysv/linux/sparc/sparc32/Versions (NLDBL_VERSION): %define this to to GLIBC_2.4. * sysdeps/sparc/sparc32/fpu/e_sqrtl.c: New file. * sysdeps/sparc/sparc32/fpu/s_fabs.c: New file. * sysdeps/sparc/sparc32/fpu/s_fabsf.S: New file. * sysdeps/sparc/sparc32/fpu/s_fabsl.c: New file. * sysdeps/sparc/sparc32/soft-fp/q_qtoui.c: Removed. * sysdeps/sparc/sparc32/soft-fp/q_qtoux.c: Removed. * sysdeps/sparc/sparc32/soft-fp/q_qtox.c: Removed. * sysdeps/sparc/sparc32/soft-fp/q_uitoq.c: Removed. * sysdeps/sparc/sparc32/soft-fp/q_uxtoq.c: Removed. * sysdeps/sparc/sparc32/soft-fp/q_xtoq.c: Removed. * sysdeps/sparc/sparc32/soft-fp/q_lltoq.c: New file. * sysdeps/sparc/sparc32/soft-fp/q_qtoll.c: New file. * sysdeps/sparc/sparc32/soft-fp/q_qtou.c: New file. * sysdeps/sparc/sparc32/soft-fp/q_qtoull.c: New file. * sysdeps/sparc/sparc32/soft-fp/q_ulltoq.c: New file. * sysdeps/sparc/sparc32/soft-fp/q_utoq.c: New file. * sysdeps/sparc/sparc32/soft-fp/Versions: New file. * sysdeps/sparc/fpu/bits/mathinline.h (__unordered_cmp, __unordered_v9cmp): Define differently depending on -m32 -mlong-double-{64,128}. (__signbitl, sqrtl, __ieee754_sqrtl): New inlines. * sysdeps/sparc/fpu/bits/mathdef.h (__NO_LONG_DOUBLE_MATH): Remove. * sysdeps/sparc/sparc32/soft-fp/Makefile (sparc32-quad-routines): Set. (sysdep-routines): Add sparc32-quad-routines. * sysdeps/sparc/sparc32/soft-fp/sfp-machine.h: Include stdlib.h. (FP_HANDLE_EXCEPTIONS): Call ___Q_simulate_exceptions as a normal function. * sysdeps/sparc/sparc32/soft-fp/q_sqrt.c (__ieee754_sqrtl): New alias to _Q_sqrt. * sysdeps/sparc/sparc32/soft-fp/q_div.c (_Q_div): Fix a typo. * sysdeps/sparc/sparc64/soft-fp/sfp-machine.h: Include stdlib.h. * sysdeps/sparc/sparc32/fpu/libm-test-ulps: Update. * libio/libio.h (_IO_vfscanf, _IO_vfprintf): Remove __THROW. (_IO_vfwscanf, _IO_vfwprintf): Likewise. * libio/libioP.h (_IO_vdprintf): Likewise. |
||
Ulrich Drepper
|
a334319f65 | (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. | ||
Jakub Jelinek
|
0ecb606cb6 | 2.5-18.1 | ||
Andreas Jaeger
|
27caaf41af | Round is a const function. | ||
Ulrich Drepper
|
7a5affebe8 | Prepare headers for use in ISO C++ compliant implementations. | ||
Ulrich Drepper
|
f4efd06825 |
Update.
2001-11-26 Ulrich Drepper <drepper@redhat.com> * stdio-common/vfscanf.c: If incomplete nan of inf(inity) strings are found call conv_error and not input_error [PR libc/2669]. * math/bits/mathcalls.h: Mark ceil and floor as const. Reported by David Mosberger. 2001-11-21 Jim Meyering <meyering@lucent.com> * posix/regex.c (iswctype, mbrtowc, wcslen, wcscoll, wcrtomb) [_LIBC]: Define to be __-prefixed. Remove unnecessary duplication in `#ifdef _LIBC' blocks. |
||
Andreas Jaeger
|
41bdb6e20c |
Update to LGPL v2.1.
2001-07-06 Paul Eggert <eggert@twinsun.com> * manual/argp.texi: Remove ignored LGPL copyright notice; it's not appropriate for documentation anyway. * manual/libc-texinfo.sh: "Library General Public License" -> "Lesser General Public License". 2001-07-06 Andreas Jaeger <aj@suse.de> * All files under GPL/LGPL version 2: Place under LGPL version 2.1. |
||
Ulrich Drepper
|
28d2fb9ad9 |
Update.
2001-03-29 Ulrich Drepper <drepper@redhat.com> * math/bits/mathcalls.h: Remove infnan declaration. 2001-03-29 H.J. Lu <hjl@gnu.org> * include/endian.h: Define BIG_ENDI, LITTLE_ENDI, HIGH_HALF, and LOW_HALF only if _LIBC is defined and _ISOMAC is not defined. * stdlib/isomac.c (fmt): Define _LIBC and _ISOMAC. . 2001-03-29 Isamu Hasegawa <isamu@yamato.ibm.com> * posix/regex.c: Fix typo and add a sentinel. 2001-03-29 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/shm_open.c: Open new file always with O_NOFOLLOW. Suggested by Christoph Roland. |
||
Ulrich Drepper
|
ec28fc7c4f | (Finding Tokens in a String): Document XPG basename() and dirname(), aswell as GNU basename(). | ||
Ulrich Drepper
|
5985c77210 |
Update.
* math/complex.h: Don't define _Complex macro for gcc 3. Add __extension__ to _Complex_I definition since gcc warns if -pedantic. * math/bits/cmathcalls.h (conj): Add __extension__ since we use ~. |
||
Ulrich Drepper
|
8ca91b369d |
Update.
2000-07-12 Andreas Jaeger <aj@suse.de> * elf/Makefile (SYSCONF-FLAGS): Added to pass sysconfdir to compiler. (CFLAGS-cache.c): Added, uses SYSCONF-FLAGS. (CFLAGS-dl-cache.c): Likewise. (CFLAGS-ldconfig.c): Added, passes directory locations. * sysdeps/generic/dl-cache.h (LD_SO_CACHE): Use SYSCONFDIR to locate cache. * elf/ldconfig.c (LD_SO_CONF): Likewise. (main): Use configured LIBDIR and SLIBDIR. 2000-07-11 Jakub Jelinek <jakub@redhat.com> * math/bits/cmathcalls.h (cimag): Add __THROW. (creal, conj): Likewise. * wctype/wctype.h (_ISwbit): Avoid warnings about shifting left by negative value. |
||
Ulrich Drepper
|
0ed99ce46d |
Update.
2000-02-27 Ulrich Drepper <drepper@redhat.com> * conform/conformtest.pl (@headers): Add wordexp.h, wctype.h, wchar.h, varargs.h, utmpx.h, utime.h, unistd.h, ulimit.h, ucontext.h, time.h, termios.h, tar.h, sys/wait.h, sys/uio.h, sys/types.h, sys/times.h, sys/timeb.h, sys/time.h, sys/statvfs.h, sys/stat.h, sys/shm.h, sys/sem.h, and sys/resource.h. Implement handling of allow-header. * conform/data/fcntl.h-data: Correct various bugs. * conform/data/fnmatch.h-data: Likewise. * conform/data/math.h-data: Likewise. * conform/data/ndbm.h-data: Likewise. * conform/data/nl_types.h-data: Likewise. * conform/data/poll.h-data: Likewise. * conform/data/pthread.h-data: Likewise. * conform/data/semaphore.h-data: Likewise. * conform/data/setjmp.h-data: Likewise. * conform/data/signal.h-data: Likewise. * conform/data/stdarg.h-data: Likewise. * conform/data/stddef.h-data: Likewise. * conform/data/stdio.h-data: Likewise. * conform/data/stdlib.h-data: Likewise. * conform/data/string.h-data: Likewise. * conform/data/strings.h-data: Likewise. * conform/data/stropts.h-data: Likewise. * conform/data/syslog.h-data: Likewise. * conform/data/sys/ipc.h-data: Likewise. * conform/data/sys/mman.h-data: Likewise. * conform/data/sys/msg.h-data: Likewise. * conform/data/tar.h-data: New file. * conform/data/termios.h-data: New file. * conform/data/time.h-data: New file. * conform/data/ucontext.h-data: New file. * conform/data/ulimit.h-data: New file. * conform/data/unistd.h-data: New file. * conform/data/utime.h-data: New file. * conform/data/utmpx.h-data: New file. * conform/data/varargs.h-data: New file. * conform/data/wchar.h-data: New file. * conform/data/wctype.h-data: New file. * conform/data/wordexp.h-data: New file. * conform/data/sys/resource.h-data: New file. * conform/data/sys/sem.h-data: New file. * conform/data/sys/shm.h-data: New file. * conform/data/sys/stat.h-data: New file. * conform/data/sys/statvfs.h-data: New file. * conform/data/sys/time.h-data: New file. * conform/data/sys/timeb.h-data: New file. * conform/data/sys/times.h-data: New file. * conform/data/sys/types.h-data: New file. * conform/data/sys/uio.h-data: New file. * conform/data/sys/wait.h-data: New file. * grp/grp.h (getgrent_r): Declare only if __USE_GNU. * include/sys/time.h (__itimes): Fix type of second parameter. * io/sys/stat.h (S_IFLNK): Define also if __USE_XOPEN. (S_ISVTX): Likewise. * io/sys/statvfs.h: Define fsblkcnt_t and fsfilcnt_t. * locale/langindo.h: Make ERA_YEAR, INT_CURR_SYMBOL, CURRENCY_SYMBOL, MON_DECIMAL_POINT, MON_THOUSANDS_SEP, MON_GROUPING, POSITIVE_SIGN, NEGATIVE_SIGN, INT_FRAC_DIGITS, FRAC_DIGITS, P_CS_PRECEDES, P_SEP_BY_SPACE, N_CS_PRECEDES, N_SEP_BY_SPACE, P_SIGN_POSN, N_SIGN_POSN, DECIMAL_POINT, THOUSANDS_SEP, GROUPING, YESEXPR, NOEXPR, YESSTR, and NOSTR only available if __USE_GNU. * math/bits/mathcalls.h: Don't declare tgamma and scalbn if only __USE_XOPEN. * posix/unistd.h: Don't define ptrdiff_t. (sbrk): Correct type of parameter. * sysdeps/generic/sbrk.c: Likewise. * sysdeps/mach/hurd/sbrk.c: Likewise. * posix/sys/types.h: Allow id_t, suseconds_t, fsblkcnt_t, and fsfilcnt_t being defined elsewhere. * resource/sys/resource.h: Define id_t. If __USE_XOPEN use int for type of first parameter if getrlimit, getrlimit64, setrlimit, setrlimit64, getrusage, getpriority, and setpriority. * sysdeps/generic/getpriority.c: Fix type of second parameter. * sysdeps/generic/setpriority.c: Likewise. * sysdeps/mach/hurd/getpriority.c: Likewise. * sysdeps/mach/hurd/setpriority.c: Likewise. * sysdeps/unix/sysv/irix4/getpriority.c: Likewise. * sysdeps/unix/sysv/irix4/setpriority.c: Likewise. * sysdeps/unix/sysv/linux/getpriority.c: Likewise. * sysdeps/generic/utimes.c: Fix parameter of third parameter. * sysdeps/mach/hurd/utimes.c: Likewise. * sysdeps/posix/utimes.c: Likewise. * sysdeps/generic/bits/shm.h: Define shmatt_t type and use it in struct shmid_ds definition. * sysdeps/gnu/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/shm.h: Likewise. * sysvipc/sys/shm.h: Define time_t. * sysvipc/sys/sem.h (struct sembuf): Make sem_num field unsigned. * sysdeps/gnu/bits/sem.h: Rename anonymous type struct sem_queue and struct sem_undo to struct __sem_queue and struct __sem_undo resp. * time/time.h: Define suseconds_t if not already done. * sysdeps/unix/sysv/linux/bits/statvfs.h: Rename f_spare to __f_spare. * sysdeps/unix/sysv/linux/fstatvfs64.c: Likewise. * sysdeps/unix/sysv/linux/statvfs64.c: Likewise. * sysdeps/unix/sysv/linux/internal_statvfs.c: Likewise. * intl/bindtextdom.c: Use rwlock to avoid surprising results in multithreaded applications. * intl/dcigettext.c: Likewise. * intl/textdomain.c: Likewise. * intl/*.c: Update copyright. * sysdeps/generic/bits/libc-lock.h: Define __libc_rwlock_* stubs. 2000-02-27 Andreas Jaeger <aj@suse.de> * sysdeps/unix/sysv/linux/configure.in: Treat also "/usr/" as prefix especially. 2000-02-27 Ulrich Drepper <drepper@redhat.com> * po/de.po: Update from translation team. * po/ko.po: Likewise. |
||
Ulrich Drepper
|
ec751a23c0 |
Update.
1999-10-31 Ulrich Drepper <drepper@cygnus.com> * includes/features.h: Replace __USE_ISOC9X by __USE_ISOC99 and also recognize _ISOC99_SOURCE. * libio/stdio.h: Likewise. * math/math.h: Likewise. * math/bits/mathcalls.h: Likewise. * math/stdio.h: Likewise. * stdlib/stdlib.h: Likewise. * sysdeps/alpha/fpu/bits/mathdef.h: Likewise. * sysdeps/alpha/fpu/bits/mathinline.h: Likewise. * sysdeps/arm/bits/huge_val.h: Likewise. * sysdeps/generic/bits/mathdef.h: Likewise. * sysdeps/i386/bits/huge_val.h: Likewise. * sysdeps/i386/fpu/bits/mathdef.h: Likewise. * sysdeps/i386/fpu/bits/mathinline.h: Likewise. * sysdeps/ieee754/bits/huge_val.h: Likewise. * sysdeps/m68k/bits/huge_val.h: Likewise. * sysdeps/m68k/fpu/bits/mathdef.h: Likewise. * sysdeps/m68k/fpu/bits/mathinline.h: Likewise. * sysdeps/powerpc/bits/mathdef.h: Likewise. * sysdeps/powerpc/bits/mathinline.h: Likewise. * sysdeps/sparc/fpu/bits/mathdef.h: Likewise. * sysdeps/sparc/fpu/bits/mathinline.h: Likewise. * sysdeps/sparc/sparc32/fpu/bits/huge_val.h: Likewise. * wcsmbs/wchar.h: Likewise. * sysdeps/powerpc/bits/mathdef.h: Moved to... * sysdeps/powerpc/fpu/bits/mathdef.h: ...here. * sysdeps/powerpc/bits/mathinline.h: Moved to... * sysdeps/powerpc/fpu/bits/mathinline.h: ...here. 1999-10-31 Andreas Jaeger <aj@suse.de> * manual/math.texi (Errors in Math Functions): Correct TeX code. 1999-10-31 Andreas Jaeger <aj@suse.de> * math/libm-test.inc: Change comments to use ISO C99 instead of ISO C9x. * math/w_lgamma.c: Likewise. * math/w_lgammaf.c: Likewise. * math/w_lgammal.c: Likewise. * math/test-fenv.c: Likewise. * sysdeps/ieee754/ldbl-96/printf_fphex.c: Likewise. * sysdeps/ieee754/ldbl-128/printf_fphex.c: Likewise. * sysdeps/generic/printf_fphex.c: Likewise. 1999-10-31 Andreas Jaeger <aj@suse.de> * manual/arith.texi (Parsing of Floats): Remove C from ISO C comment. * manual/math.texi: Change ISO C9x to ISO C99. * manual/startup.texi: Likewise. * manual/stdio.texi: Likewise. 1999-10-31 Andreas Jaeger <aj@suse.de> * manual/arith.texi: Change ISO C9x to ISO C99. * manual/time.texi (Low-Level Time String Parsing): Likewise. |
||
Ulrich Drepper
|
a164874646 |
Update.
1999-09-24 Andreas Jaeger <aj@suse.de> * stdio-common/tst-printf.c (main): Add a testcase for large precision. Reported by Tymm Twillman <tymm@coe.missouri.edu>. 1999-09-24 Andreas Schwab <schwab@suse.de> * math/bits/mathcalls.h: Fix last change. Also declare __finite. 1999-09-24 Andreas Jaeger <aj@suse.de> * intl/finddomain.c (_nl_find_domain): Fix memory leak: Free normalized_codeset. Reported by Belicky Zsolt <zsolt@prolan.hu>. 1999-09-23 Mark Kettenis <kettenis@gnu.org> * sysdeps/unix/sysv/linux/Makefile [malloc] (CFLAGS-malloc.c): New variable. Define MORECORE_CLEARS to 2. * malloc/malloc.c (cALLOc): Correctly handle systems where sbrk doesn't clear the contents of memory that is reallocated after decrementing the break value first. Update comment about MORECORE_CLEARS, explaining the meaning of the values it can be set to. |
||
Ulrich Drepper
|
6833780818 |
Update.
1999-09-10 Ulrich Drepper <drepper@cygnus.com> * wcsmbs/wchar.h (WCHAR_MIN, WCHAR_MAX): Use all-numeric values. * sysdeps/generic/stdint.h: Correct WCHAR_MIN, WCHAR_MAX, and WINT_MAX values. * wctype/wctype.h: Remove incorrect towlower/towupper optimizations. 1999-09-09 Andreas Schwab <schwab@suse.de> * elf/link.h: Fix comment. 1999-09-10 Ulrich Drepper <drepper@cygnus.com> * math/bits/mathcalls.h: Add __isnan declaration [PR libc/1294]. * math/math.h: Pretty print. |
||
Ulrich Drepper
|
219aa9e9f9 |
Update.
1999-08-18 Ulrich Drepper <drepper@cygnus.com> * Rules: When generating stdio_lim.h also rewrite IOV_MAX definition. * stdio-common/stdio_lim.h.in: Add IOV_MAX template. * include/bits/xopen_lim.h: Don't define IOV_MAX here, get it from stdio_lim.h. Define LONG_BIT and WORD_BIT. * include/features.h: Define __USE_XOPEN2K if _XOPEN_SOURCE == 600. * libio/stdio.h: Don't declare cuserid and getopt for X/Open issue 6. * misc/search.h: Don't define NULL. * posix/sys/types.h: Define blksize_t if it hasn't happened. Only define key_t and blkcnt_t if it hasn't happened before. Define blksize_t if not happened before. * io/sys/stat.h: Don't define pid_t. Define blkcnt_t and blksize_t. * sysdeps/generic/bits/types.h: Define __blksize_t. * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/types.h: Likewise. * sysdeps/unix/sysv/sysv4/solaris2/bits/types.h: Likewise. * sysdeps/mach/hurd/bits/stat.h (struct stat): Use __blksize_t for st_blksize member. (struct stat64): Likewise. * sysdeps/unix/bsd/bits/stat.h: Likewise. * sysdeps/unix/bsd/osf/alpha/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise. * sysdeps/unix/sysv/sysv4/i386/bist/stat.h: Likewise. * sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h: Likewise. * stdlib/getsubopt.c: Correct type of second argument. * stdlib/stdlib.h: Likewise. * stdlib/monetary.h: Don't include sys/types.h. Define only size_t and ssize_t. * sysdeps/generic/putenv.c: Correct type of parameter. * stdlib/stdlib.h: Likewise. * sysdeps/generic/msgsnd.c: Correct type of second parameter. * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. * sysvips/sys/msg.h: Likewise. * sysdeps/generic/semop.c: Correct type of third parameter. * sysdeps/unix/sysv/linux/semop.c: Likewise. * sysvipc/sys/sem.h: Likewise. Don't include sys/types.h, define size_t. * sysdeps/generic/shmget.c: Correct type of second parameter. * sysdeps/unix/sysv/linux/shmget.c: Likewise. * sysvips/sys/shm.h: Likewise. Don't include unistd.h and sys/types.h. Declare __getpagesize here. * sysdeps/generic/bits/ipc.h: Include bits/types.h instead of sys/types.h. * sysdeps/gnu/bits/ipc.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/ipc.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/ipc.h: Likewise. * sysvipc/sys/ipc.h: Define uid_t, gid_t, mode_t, and key_t if not already done. * sysdeps/unix/bsd/usleep.c: Correct type of parameter. * debug/versions: Export __cyg_profile_func_enter and __cyg_profile_func_exit. * math/bits/mathcalls.h: Pretty print. |
||
Ulrich Drepper
|
4caef86ca6 |
Update.
1999-01-23 Ulrich Drepper <drepper@cygnus.com> * nss/nss_files/files-XXX.c (internal_getent): Make sure the buffer has at least two bytes (not one). Correct buflen parameter type. * nss/nss_files/files-alias.c (get_next_alias): Make sure buffer has at least two bytes. Use fgets_unlocked instead of fgets. * ctype/ctype.h: Don't user __tolower directly for tolower implementation. Use inline function which tests for the range first. Make _tolower equivalent to old tolower macros. Likewise for toupper. * ctype/ctype.c: Change tolower/toupper definition accordingly. * argp/argp-help.c: Use _tolower instead of tolower if possible. * inet/ether_aton_r.c: Likewise. * inet/ether_line.c: Likewise. * inet/rcmd.c: Likewise. * intl/l10nflist.c: Likewise. * locale/programs/ld-collate.c: Likewise. * locale/programs/linereader.c: Likewise. * locale/programs/localedef.c: Likewise. * nis/nss_nis/nis-alias.c: Likewise. * nis/nss_nis/nis-network.c: Likewise. * posix/regex.c: Likewise. * resolv/inet_net_pton.c: Likewise. * stdio-common/printf_fp.c: Likewise. * stdio-common/vfscanf.c: Likewise. * sysdeps/generic/strcasestr.c: Likewise. * math/bits/mathcalls.h: Fix typo. |
||
Ulrich Drepper
|
36fe9ac901 |
Update.
1999-01-19 Ulrich Drepper <drepper@cygnus.com> * math/Makefile (libm-calls): Rename s_nextafterx to s_nexttoward. * math/Versions: Likewise. * math/bits/mathcalls.h: Likewise. * manual/arith.texi: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Likewise. * sysdeps/libm-ieee754/s_nextafterx.c: Replaced by... * sysdeps/libm-ieee754/s_nexttoward.c: New file. * sysdeps/libm-ieee754/s_nextafterxf.c: Replaced by... * sysdeps/libm-ieee754/s_nexttowardf.c: New file. * sysdeps/libm-ieee754/s_nextafterxl.c: Replaced by... * sysdeps/libm-ieee754/s_nexttowardl.c: New file. * time/Makefile (routines): Removed strfxtime. * time/Versions: Likewise. * time/strfxtime.c: Removed. * time/time.h: Remove _LOCALTIME, _NO_LEAP_SECONDS, struct tmx, mkxtime, and strfxtime. |
||
Ulrich Drepper
|
7d6a833849 |
Update.
1998-11-23 Ulrich Drepper <drepper@cygnus.com> * Makeconfig: Don't read sysd-sorted unless sysd-dirs is read. Patch by Zack Weinberg. * math/bits/mathcalls.h: Adjust comments. Remove gamma_r prototype. * sysdeps/i386/fpu/bits/mathinline.h: Make log2 only available if __USE_ISOC9X is defined. Provide rint optimization. 1998-11-21 H.J. Lu <hjl@gnu.org> * libio/Versions (_IO_popen, _IO_proc_open, _IO_proc_close, popen, pclose): Add to GLIBC_2.1. * libio/Makefile (routines): Add oldiopopen and oldpclose. (shared-only-routines): Likewise. * libio/pclose.c (pclose): Make it default for GLIBC_2.1. * libio/iopopen.c (_IO_proc_open, _IO_popen, popen, _IO_proc_close): Likewise. * libio/iolibio.h (_IO_new_popen, _IO_old_popen, __new_pclose, __old_pclose): New prototypes. * libio/libioP.h (_IO_new_file_jumps): Removed. (_IO_old_proc_jumps): Added. (_IO_new_proc_open, _IO_old_proc_open): New prototypes. * libio/oldiopopen.c: New file. * libio/oldpclose.c: New file. 1998-11-22 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * nss/Makefile: Build and install getent. * nss/getent.c: New, get entries from administrative database. |
||
Ulrich Drepper
|
1792d4dbda |
Update.
1998-11-09 18:16 Ulrich Drepper <drepper@cygnus.com> * math/complex.h: Include bits/mathdef.h to get __NO_LONG_DOUBLE_MATH is needed. Don't define long double functions if __NO_LONG_DOUBLE_MATH is defined. Don't define `complex' but instead `_Complex'. The later is the reserved keyword. * math/bits/cmathcalls.c: Define _Mdouble_complex_ using _Complex, not complex. 1998-11-07 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * manual/libc.texinfo: Remove colon from category name. * manual/Makefile (dir-add.info): Likewise. 1998-11-07 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * configure.in: Avoid autoconf bug. 1998-10-28 H.J. Lu <hjl@gnu.org> * posix/getopt.h: Add "__" to arguments in prototypes. 1998-11-05 H.J. Lu <hjl@gnu.org> * libio/iofgets.c (_IO_fgets): Don't report error if something was read in and errno is set to EAGAIN. * libio/iofgets_u.c (fgets_unlocked): Likewise. 1998-11-05 Philip Blundell <philb@gnu.org> * sysdeps/unix/sysv/linux/net/if_packet.h: Don't include kernel header; it defines too much. Provide a local definition of struct sockaddr_pkt and a comment advising against its use. 1998-11-06 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * extra-lib.mk: Avoid empty include list. 1998-11-04 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * extra-lib.mk: Add support for $(lib)-shared-only-routines. * elf/Makefile (libdl-routines): Add dlopenold only if doing versioning. (libdl-shared-only-routines): New variable. 1998-11-06 Paul Eggert <eggert@twinsun.com> Don't invoke localtime_r or gmtime_r unless it's the GNU C library's localtime_r and gmtime_r; there are too many buggy implementations of localtime_r and gmtime_r out there, and it's not worth keeping track of all the different bugs. * time/mktime.c (__EXTENSIONS__): Remove. (<unistd.h>): No need to include. Remove. (my_mktime_localtime_r): Renamed from localtime_r; all uses changed. Base it on localtime unless _LIBC. * time/strftime.c (my_strftime_gmtime_r): Renamed from gmtime_r; all uses changed. (my_strftime_localtime_r): Renamed from localtime_r; all uses changed. Base them on localtime/gmtime if not _LIBC. |
||
Ulrich Drepper
|
bfce746a87 |
Update.
1998-08-31 15:56 Ulrich Drepper <drepper@cygnus.com> * db2/db_int.h: Use <db.h> instead of "db.h" to find header in include. * include/stdio.h: Add __vsscanf. * libio/stdio.h: Make vfscanf, scanf, and vsscanf available if __USE_ISOC9X. Remove __vsscanf declaration. Always declare fgetpos and fsetpos. * math/math.h: Define isinf as macro. * math/bits/mathcalls.h: Change to declare __isinf all the time. Don't declare scalb for ISO C 9x. * math/tgmath.h: Define fma. Rewrite the underlying macros. * stdlib/stdlib.h: Declare strtof and strtold is __USE_ISOC9X. * sysdeps/unix/sysv/linux/bits/sigcontext.h: Allow inclusion from sys/ucontext.h. * sysdeps/wordsize-32/inttypes.h: Define missing PRI* and SCN* macros. 1998-08-31 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/standalone/bits/errno.h (ENOMSG): Remove duplicate. Reported by jreising@frequentis.com [PR libc/767]. 1998-08-31 Andreas Jaeger <aj@arthur.rhein-neckar.de> * io/lockf.c (lockf): Move initilisation of fl.l_whence and fl.l_start at beginning of function. Patch by Geoff. Dash <geoffd@zeta.org.au> [PR libc/769]. |
||
Ulrich Drepper
|
e852e88944 |
Update.
1998-07-28 Ulrich Drepper <drepper@cygnus.com> * math/libm-test.c (tgamma_test): Remove redundant tests. 1998-07-28 16:20 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/glob.c: Correct problems with */foo and GLOB_NOCHECK where foo does not exist in any of the subdirectories. Reported by Paul D. Smith <psmith@BayNetworks.COM>. * posix/globtest.sh: Add test for this bug. 1998-07-28 Mark Kettenis <kettenis@phys.uva.nl> * io/sys/statfs.h: Fix typos. * io/sys/statvfs.h: Fix typos. 1998-07-28 Ulrich Drepper <drepper@cygnus.com> * version.h (VERSION): Bump to 2.0.95. * math/Makefile (libm-calls): Remove w_gamma, add w_tgamma. * math/Versions [GLIBC_2.1]: Add tgamma, tgammaf, and tgammal. * math/libm-test.c: Split old gamma_test and move half of it in new function tgamma_test. * math/bits/mathcalls.h: Add declaration of tgamma. * sysdeps/libm-ieee754/k_standard.c: Change gamma errors into tgamma errors. * sysdeps/libm-ieee754/w_gamma.c: Remove lgamma compatibility code and rename to ... * sysdeps/libm-ieee754/w_tgamma.c: ... this. New file. * sysdeps/libm-ieee754/w_gammaf.c: Remove lgammaf compatibility code and rename to ... * sysdeps/libm-ieee754/w_tgammaf.c: ... this. New file. * sysdeps/libm-ieee754/w_gammal.c: Remove lgammal compatibility code and rename to ... * sysdeps/libm-ieee754/w_tgammal.c: ... this. New file. * sysdeps/libm-ieee754/w_lgamma.c: Add gamma as weak alias. * sysdeps/libm-ieee754/w_lgammaf.c: Likewise. * sysdeps/libm-ieee754/w_lgammal.c: Likewise. * stgdio-common/printf-parse.h: Implement handling of j, t, and z modifiers. * stdio-common/vfprintf.c: Likewise. * stdio-common/vfscanf.c: Likewise. * manual/stdio.texi: Document new printf/scanf modifiers. * sysdeps/unix/sysv/linux/recvmsg.c: Remove alias __recvmsg. * sysdeps/unix/sysv/linux/sendmsg.c: Remove alias __sendmsg. 1998-07-28 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * sunrpc/Makefile (routines): Add clnt_unix and svc_unix. * sunrpc/Versions: Add new *unix_create functions. * sunrpc/clnt_gen.c: Add support for RPC over AF_UNIX. * sunrpc/clnt_unix.c: New, client side of RPC over AF_UNIX. * sunrpc/key_call.c: Use RPC over AF_UNIX for communication with keyserv daemon. * sunrpc/rpc/clnt.h: Add AF_UNIX based RPC function prototypes. * sunrpc/rpc/svc.h: Likewise. * sunrpc/svc_authux.c: Copy internal auth flavor if none is given. * sunrpc/svc_tcp.c: Fix typos. * sunrpc/svc_unix.c: New, server side of AF_UNIX based RPC. * nis/Makefile: Remove currently not working cache functions. * nis/Versions: Add __nisbind_* functions for rpc.nisd. * nis/nis_call.c: Rewrite binding to a NIS+ server to reuse CLIENT handles. * nis/nis_file.c: Fix memory leaks. * nis/nis_intern.h: Move internal structs from here ... * nis/rpcsvc/nislib.h: ... to here for NIS+ server and tools. * nis/nis_lookup.c: Try at first if last client handle works. * nis/nis_table.c: Likewise. * nis/nis_checkpoint.c: Adjust __do_niscall2 parameters. * nis/nis_mkdir.c: Likewise. * nis/nis_ping.c: Likewise. * nis/nis_rmdir.c: Likewise. * nis/nis_server.c: Likewise. * nis/nis_util.c: Likewise. * nis/nis_findserv.c (__nis_findfastest): Little optimization. 1998-07-28 Andreas Jaeger <aj@arthur.rhein-neckar.de> * stdlib/strtol.c (STRTOL_LONG_MAX): Correct typo in last patch - define as LONG_MAX. 1998-07-28 09:31 Ulrich Drepper <drepper@cygnus.com> * nscd/connections.c (gr_send_answer): Deal with missing UIO_MAXIOV. Correct test whether writev send all data. * nscd/nscd_getgr_r.c (__nscd_getgr_r): Correct test whether readv received all data. 1998-07-28 Mark Kettenis <kettenis@phys.uva.nl> * nscd/nscd_getgr_r.c (__nscd_getgr_r): Deal with missing UIO_MAXIOV. 1998-07-28 Mark Kettenis <kettenis@phys.uva.nl> * sysdeps/mach/hurd/dl-sysdep.c (open_file): Change assert call to allow mode to be 0. (__xstat): New function. (__fxstat): New function. (_dl_sysdep_read_whole_file): Removed. The implementation in `elf/dl-misc.c' now also works for the Hurd. |
||
Ulrich Drepper
|
e918a7feeb |
Update.
1998-07-09 13:34 Ulrich Drepper <drepper@cygnus.com> * grp/grp.h: Define gid_t also for __USE_XOPEN. * io/fcntl.h: Include <sys/stat.h> also for __USE_XOPEN. * io/utime.h: Define time_t also for __USE_XOPEN. * io/sys/stat.h: Define time_t also for __USE_XOPEN. Define *_t types except for pid_t also for __USE_XOPEN. Define S_* macros also for __USE_XOPEN. * locale/langinfo.h: Define CODESET, CRNCYSTR, RADIXCHAR, and THOUSEP also for __USE_XOPEN. * math/math.c: Define M_* macros also for __USE_XOPEN. * math/bits/mathcalls.h: Declare hypot also for __USE_XOPEN. * posix/fnmatch.h: Define FNM_NOSYS and for if _XOPEN_SOURCE is defined. * posix/glob.h: Likewise for GLOB_NOSYS. * posix/regex.h: Likewise for REG_NOSYS. * posix/wordexp.h: Likewise for WRDE_NOSYS. * posix/unistd.h: Define *_t types also for __USE_XOPEN. * posix/sys/wait.h: Define pid_t for __USE_XOPEN. * pwd/pwd.h: Define gid_t and pid_t also for __USE_XOPEN. * signal/signal.h: Define pid_t also fir __USE_XOPEN. * sysdeps/unix/sysv/linux/bits/fcntl.h: Define _RSYNC and O_DSYNC also for __USE_POSIX199309. * sysdeps/unix/sysv/linux/bits/termios.h: Define the various B* constants also for __USE_XOPEN. * wcsmbs/wchar.h: For XPG4 include wctype.h. * intl/dcgettext.c (find_msg): Initialize act to prevent warning. * locale/setlocale.c (new_composite_name): Likewise for last_len. * libio/stdio.h: Don't declare fclose_unlocked. * sysdeps/posix/fpathconf.c: Handle _PC_FILESIZEBITS. 1998-07-08 Mark Kettenis <kettenis@phys.uva.nl> * stdio/stdio.h: Add prototypes for fflush_unlocked, getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked, fgets_unlocked, fread_unlocked, fwrite_unlocked, clearerr_unlocked, feof_unlocked, ferror_unlocked, fileno_unlocked, flockfile, ftrylockfile, funlockfile. [__USE_XOPEN && !__USE_GNU] Declare optarg, optind, opterr. Add prototype for getopt. * stdio/clearerr.c (clearerr_unlocked): Weak alias for clearerr. * stdio/feof.c (feof_unlocked): Weak alias for feof. * stdio/ferror.c (ferror_unlocked): Weak alias for ferror. * stdio/fflush.c (fflush_unlocked): Weak alias for fflush. * stdio/fgets.c (fgets_unlocked): Weak alias for fgets. * stdio/fileno.c (fileno_unlocked): Weak alias for fileno. * stdio/fputc.c (fputc_unlocked): Weak alias for fputc. * stdio/fread.c (fread_unlocked): Weak alias for fread. * stdio/fwrite.c (fwrite_unlocked): Weak alias for fwrite. * stdio/getc.c (getchar_unlocked): Weak alias for getc. * stdio/getchar.c (getchar_unlocked): Weak alias for getchar. * stdio/putc.c (putc_unlocked): Weak alias for putc. * stdio/putchar.c (putchar_unlocked): Weak alias for putchar. * stdio/Versions [GLIBC_2.1]: Add clearerr_unlocked, feof_unlocked, ferror_unlocked, fflush_unlocked, fgets_unlocked, fileno_unlocked, fputc_unlocked, fread_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked, putc_unlocked and putchar_unlocked. * libio/Versions: Move flockfile, ftrylockfile and funlockfile from here ... * stdio-common/Versions: ... to here. 1998-07-09 Andreas Jaeger <aj@arthur.rhein-neckar.de> * Makerules (versioning): Correct typo. |
||
Ulrich Drepper
|
4bbac92a0a |
Update.
1998-06-09 18:16 Ulrich Drepper <drepper@cygnus.com> * math/Makefile (libm-calls): Add w_exp10 and e_exp10. * math/libm.map: Add exp10{,f,l} and pow10{,f,l}. * math/math_private.h: Add prototypes for __ieee754_exp10{,f,l}. * math/bits/mathcalls.h: Add definitions for exp10 and pow10 prototypes. * sysdeps/libm-i387/e_exp10.S: New file. * sysdeps/libm-i387/e_exp10f.S: New file. * sysdeps/libm-i387/e_exp10l.S: New file. * sysdeps/libm-ieee754/e_exp10.c: New file. * sysdeps/libm-ieee754/e_exp10f.c: New file. * sysdeps/libm-ieee754/e_exp10l.c: New file. * sysdeps/libm-ieee754/w_exp10.c: New file. * sysdeps/libm-ieee754/w_exp10f.c: New file. * sysdeps/libm-ieee754/w_exp10l.c: New file. * sysdeps/libm-ieee754/k_standard.c: Add exception code for exp10. 1998-05-25 22:18 H.J. Lu <hjl@gnu.org> * sysdeps/unix/sysv/linux/i386/Makefile (sysdep_headers): Add sys/elf.h and sys/reg.h. * sysdeps/unix/sysv/linux/i386/sys/elf.h: New file. * sysdeps/unix/sysv/linux/i386/sys/reg.h: New file. * sysdeps/unix/sysv/linux/i386/sys/procfs.h: New file. * sysdeps/unix/sysv/linux/i386/sys/user.h: New file. * sysdeps/unix/sysv/linux/sys/ptrace.h (PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS, PTRACE_SETFPREGS): Added. |
||
Ulrich Drepper
|
af6f39063b |
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com> * libio/genops.c: Partial undo of last patch. * libio/stdfiles.c: Likewise. * libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus. * libio/iopopen.c: Likewise. * libio/iovdprintf.c: Likewise. * libio/libio.h: Remove duplicated `;'. * libio/stdio.c: Remove misleading comment. * libio/stdio.h: Declare standard streams as variables. * login/Makefile (distribute): Add README.utmpd. * login/README.utmpd: New file. Provided by Mark M. Kettenis <kettenis@phys.uva.nl>. * manual/job.texi: Document tcgetsid. * manual/pattern.texi: Document globfree. * manual/terminal.texi: Document B38400 ... B460800. * posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS. * posix/unistd.h: Add explanation of _POSIX_* constants. * posix/unists.h: Add prototypes for __pread, __pread64, __pwrite and __pwrite64. * sysdeps/generic/pread.c: Define as __pread and make pread weak alias. * sysdeps/generic/pread64.c: Likewise. * sysdeps/generic/pwrite.c: Likewise. * sysdeps/generic/pwrite64.c: Likewise. * sysdeps/posix/pread.c: Likewise. * sysdeps/posix/pwrite.c: Likewise. * sysdeps/posix/pread64.c: New file. * sysdeps/posix/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines): Add s_pread64 and s_pwrite64. * sysdeps/unix/sysv/linux/pread.c: New file. * sysdeps/unix/sysv/linux/pread64.c: New file. * sysdeps/unix/sysv/linux/pwrite.c: New file. * sysdeps/unix/sysv/linux/pwrite64.c: New file. * sysdeps/unix/sysv/linux/s_pread64.c: New file. * sysdeps/unix/sysv/linux/s_pwrite64.c: New file. * sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite. * sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file. * sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file. * sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file. * sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file. * sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite with weak aliases for *64 functions. * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. * string/bits/string2.h: Add casts to allow void * arguments. * sysdeps/i386/i486/bits/string.h: Define index and rindex only if __USE_BSD or __USE_XOPEN_EXTENDED. * sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other SCM_* constants from kernel header. * termios/termios.h: Add prototype for tcgetsid. 1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * sunrpc/clnt_perr.c: Add trailing '\0' to strings. * sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes. * sunrpc/pmap_clnt.c: Use get_myaddress from header file. 1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com> * configure.in: Punt if any directory mentioned in the enable-add-on parameter does not exist. 1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com> * termios/Makefile (routines): Add tcgetsid. * termios/tcgetsid.c: New file. Provided by Mark M. Kettenis <kettenis@phys.uva.nl>. 1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com> * stdlib/stdlib.h: Remove mblen optimization. * stdlib/mblen.c: Rewrite to make sure global state is not changed. Reported by anderson@metrolink.com. 1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de> * malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get} interface for thread-specific data. 1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com> * elf/dl-addr.c: Use braces for correct logical grouping. Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>. 1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au> * io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more convenient; that caused this test to break. * sysdeps/powerpc/dl-machine.h: Fix typo. * sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers when -msoft-float is in effect, because this causes compilation to stop. * sysdeps/powerpc/bits/mathinlines.h: Likewise. * rpm/template: Add description, use RPM flags rather than the ones used to build the spec. Build in a temporary directory, not /. * elf/dl-lookup.c: Don't include _itoa.h, it's not used. * elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that _itoa is the only routine that ld.so uses that requires something from libgcc.a on powerpc, so it would be best to avoid it in ld.so. * elf/rtld.c: Likewise. * sysdeps/generic/_strerror.c: Likewise. * stdio-common/_itoa.c: Split out digits strings. * stdio-common/itoa-digits.c: New file. * stdio-common/Makefile: Add itoa-digits. 1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de> * manual/filesys.texi (Scanning Directory Content): Document error case more. * dirent/scandir.c (scandir): Ignore errors from select function. Suggested by urbanw@cs.umu.se (closes PR libc/316). 1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections. Patch by Erik Troan <ewt@redhat.com>. 1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact matching of version function if both the general (1) and glibc-specific (3) entry are present. 1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * sunrpc/rpc/clnt.h: Add get_myaddress prototype. * nis/libnsl.map: Fix typo. * nis/nis_call.c: Fix memory leak. 1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/memcmp.c: Define __P if not defined before. Patch by Jim Meyering <meyering@eng.ascend.com>. 1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch <rgooch@atnf.csiro.au>. 1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com> * misc/syslog.c (vsyslog): Open console with O_NOCTTY. Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>. 1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com> * posix/wordexp.c: Improve handling of $... expressions. Patch by Tim Waugh <tim@cyberelk.demon.co.uk>. 1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com> * manual/string.texi: Correct return values of bcopy and bzero. Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>. 1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com> * sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some elements in struct msghdr and struct cmsghdr, to keep in step with the kernel. 1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another bug in startup code. Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>. 1997-10-16 20:17 Richard Henderson <rth@cygnus.com> * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the stack and give the kernel a pointer. Use the sysdep.h macros. 1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com> * sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly. Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>. 1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo. 1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com> * manual/pattern.texi: Document globfree. 1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com> * sysdeps/unix/sysv/linux/net/if_packet.h: New file. * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add net/if_packet.h. * sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for 64Mbps ASH. (ARPHRD_ETHER): This is used for 100Mbps networks too. 1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de> * Makerules (install): Use full pathnames for linker script. This is to work around a limitation in `ld' while no better solution is possible. 1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de> * malloc/malloc.c (mmap_chunk): Put inline before static in function definition to avoid compiler warning. (malloc_extend): Likewise. * sysdeps/generic/des_impl.c: Include "des.h" to avoid warning. 1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de> * NEWS: Fix @gnu.ai.mit.edu -> @gnu.org. * README.template: Likewise. * db/makedb.c: Likewise. * elf/ldd.bash.in: Likewise. * elf/ldd.sh.in: Likewise. * intl/locale.alias: Likewise. * login/programs/utmpd.c: Likewise. * libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list. 1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Rules: Remove all empty.* files. (shared-only-routines): Correct implementation. 1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/libm-ieee754/s_lrintl.c: Make compilable. * sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized. 1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * elf/ldd.bash.in: Only prepend ./ if the file contains no slash at all. * elf/ldd.sh.in: Likewise. 1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/sys/ucontext.h: New file. 1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/fpu/s_scalbln.c: New (empty) file. * sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file. * sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file. * sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias. * sysdeps/m68k/fpu/s_scalbnf.c: Adapted. * sysdeps/m68k/fpu/s_scalbnl.c: Adapted. * sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff. * sysdeps/m68k/fpu/s_lrintf.c: New file. * sysdeps/m68k/fpu/s_lrintl.c: New file. * sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update lrint and scalbn. (__m81_inline) [__cplusplus]: Define to __inline. * math/bits/mathcalls.h: Remove whitespace before second argument of __MATHDECL. Add note explaining this. 1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * manual/arith.texi (Absolute Value): Spelling fix. 1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly parenthesize the macro parameter. * Rules: Remove rules to magically install <subdir>.h headers. |
||
Ulrich Drepper
|
dfd2257ad9 |
Update.
1997-10-12 05:09 Ulrich Drepper <drepper@cygnus.com> * libio/Makefile (routines): Remove iofprintf. * stdio-common/fprintf.c [USE_IN_LIBIO]: Define _IO_fprintf. * libio/filedoalloc.c: Use _G_stat64 instead of stat. * libio/fileops.c (_IO_file_open): Change to take extra argument indicating whether 32 or 64 bit mode is wanted. * libio/iofopen.c: Call _IO_file_open with extra argument set to 0. * libio/iofopen64.c: Call _IO_file_open with extra argument set to 0. * libio/iolibio.h (_IO_freopen, _IO_freopen64): Likewise. * libio/iofgetpos.c: Pretty print. * libio/iofgetpos64.c: Use _IO_fpos64_t for local variable `pos'. * manual/conf.texi: Document all the _SC_ and _CS_ constants. * manual/creature.texi: Document _LARGEFILE_SOURCE, _LARGEFILE64_SOURCE and _FILE_OFFSET_BITS. * manual/llio.texi: Document truncate and ftruncate. * manual/stdio.texi: Document positional parameters for printf. * math/Makefile (headers): Add tgmath.h. (libm-support): Remove s_lrint, s_llrint, s_lround, and s_llround and move to ... (libm-calls): ... here. Add scalbln, s_nextafterx and s_fma. * math/libm-test.c (lround_test, llround_test): Test for all FP formats by using FUNC(). * math/libm.map: Add fma, fmaf, fmal, nextafterx, nextafterxf, nextafterxl, scalbln, scalblnf, scalblnl, lrintf, lrintl, llrintf, llrintl, lroundf, lroundl, llroundf, and llroundl. * math/math.h: Document new platform specific macros from mathdef.h. Remove declaration of lrint, llrint, lround, and llround. * math/test-double.c: Define TEST_DOUBLE. * math/test-idouble.c: Likewise. * math/test-float.c: Define TEST_FLOAT. * math/test-ifloat.c: Likewise. * math/tgmath.h: New file. * math/bits/mathcalls.h: Add nextafterx, scalbln, fma, lrint, llrint, lround, and llround. Change second argument of scalbn to `int'. * sysdeps/libm-ieee754/s_fma.S: New file. * sysdeps/libm-ieee754/s_fmaf.S: New file. * sysdeps/libm-ieee754/s_fmal.S: New file. * sysdeps/libm-i387/s_fma.S: New file. * sysdeps/libm-i387/s_fmaf.S: New file. * sysdeps/libm-i387/s_fmal.S: New file. * sysdeps/libm-i387/s_llrint.S: Change to take double argument. * sysdeps/libm-i387/s_lrint.S: Likewise. * sysdeps/libm-i387/s_llrintf.S: New file. * sysdeps/libm-i387/s_llrintl.S: New file. * sysdeps/libm-i387/s_lrintf.S: New file. * sysdeps/libm-i387/s_lrintl.S: New file. * sysdeps/libm-ieee754/s_llrint.c: Remove version which works on 80bit double. * sysdeps/libm-ieee754/s_lrint.c: Likewise. * sysdeps/libm-ieee754/s_llrintf.S: New file. * sysdeps/libm-ieee754/s_llrintl.S: New file. * sysdeps/libm-ieee754/s_lrintf.S: New file. * sysdeps/libm-ieee754/s_lrintl.S: New file. * sysdeps/libm-i387/s_scalbln.c: New file. Empty file. * sysdeps/libm-i387/s_scalblnf.c: New file. Empty file. * sysdeps/libm-i387/s_scalblnl.c: New file. Empty file. * sysdeps/libm-i387/s_scalbn.c: Add scalbln as alias. * sysdeps/libm-i387/s_scalbnf.c: Add scalblnf as alias. * sysdeps/libm-i387/s_scalbnl.c: Add scalblnl as alias. * sysdeps/libm-ieee754/s_llround.c: Remove version which works on 80bit double. * sysdeps/libm-ieee754/s_lround.c: Likewise. * sysdeps/libm-ieee754/s_llroundf.c: Likewise. * sysdeps/libm-ieee754/s_llroundl.c: Likewise. * sysdeps/libm-ieee754/s_lroundf.c: Likewise. * sysdeps/libm-ieee754/s_lroundl.c: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Add alias fo nextafterxl. * sysdeps/libm-ieee754/s_nextafterx.c: New file. * sysdeps/libm-ieee754/s_nextafterxf.c: New file. * sysdeps/libm-ieee754/s_nextafterxl.c: New file. * sysdeps/libm-ieee754/s_scalbln.c: New file. * sysdeps/libm-ieee754/s_scalblnf.c: New file. * sysdeps/libm-ieee754/s_scalblnl.c: New file. * sysdeps/libm-ieee754/s_scalbn.c: Change to take `int' as second arg. * sysdeps/libm-ieee754/s_scalbnf.c: Likewise. * sysdeps/libm-ieee754/s_scalbnl.c: Likewise. * stdlib/stdlib.h: Protect declarations of __strto*l_internal functions by #ifdefs since they are duplicated in inttypes.h. * sysdeps/wordsize-32/inttypes.h: Add definition of strtoimax and strtoumax plus needed declarations. * sysdeps/generic/confname.h (_SC_AIO_LISTIO_MAX): Fix typo. 1997-10-09 Andreas Jaeger <aj@arthur.rhein-neckar.de> * locale/programs/locfile.c (locfile_read): Correct while loop. * db2/makedb.c (main): Add missing parameter for error output. (process_input): Likewise. * resolv/gethnamaddr.c (getanswer): Rewrite a bit to avoid warning. 1997-10-12 05:05 Ulrich Drepper <drepper@cygnus.com> * libc-map: Add __bzero, __mempcpy. 1997-10-10 18:51 David S. Miller <davem@tanya.rutgers.edu> * sysdeps/unix/sysv/linux/sparc/bits/ioctls.h: Remove dependencies on kernel_termios.h 1997-10-09 10:24 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> Add the changes from the Solaris 2.6 header files, use the new public defines/functions. * nis/nis_addmember.c: Updated. * nis/nis_checkpoint.c: Updated. * nis/nis_creategroup.c: updated. * nis/nis_destroygroup.c: Updated. * nis/nis_getservlist.c: Updated. * nis/nis_ismember.c: Updated. * nis/nis_lookup.c: Updated. * nis/nis_modify.c: Updated. * nis/nis_ping.c: Updated. * nis/nis_print.c: Updated. * nis/nis_print_group_entry.c: Updated. * nis/nis_remove.c: Updated. * nis/nis_removemember.c: Updated. * nis/nis_xdr.c: Updated. * nis/nss_nisplus/nisplus-alias.c: Updated. * nis/nss_nisplus/nisplus-ethers.c: Updated. * nis/nss_nisplus/nisplus-hosts.c: Updated. * nis/nss_nisplus/nisplus-network.c: Updated. * nis/nss_nisplus/nisplus-parser.c: Updated. * nis/nss_nisplus/nisplus-proto.c: Updated. * nis/nss_nisplus/nisplus-rpc.c: Updated. * nis/nss_nisplus/nisplus-service.c: Updated. * nis/rpcsvc/nis.h: Updated. * nis/rpcsvc/nis.x: Updated. * nis/rpcsvc/nis_object.x: Updated. * nis/rpcsvc/nis_tags.h: Updated. * nis/rpcsvc/nislib.h: Updated. * nis/lckcache.c: Removed, since Sun has dropped the directory signatures. The old cache version is now a security risk and not longer supported by Sun. * nis/nis_cache.c: Likewise. * nis/rpcsvc/nis_cache.h: Likewise. * nis/rpcsvc/nis_cache.x: Likewise. * nis/nis_call.c: Remove calls to the cache functions. * nis/libnsl.map: Remove cache and depending functions. * nis/nis_intern.h: Likewise. * nis/nis_add.c: Remove #include <rpcsvc/nislib.h>. * nis/nis_domain_of.c: Likewise. * nis/nis_domain_of_r.c: Likewise. * nis/nis_error.c: Likewise. * nis/nis_file.c: Likewise. * nis/nis_local_names.c: Likewise. * nis/nis_mkdir.c: Likewise. * nis/nis_rmdir.c: Likewise. * nis/nis_subr.c: Likewise. * nis/nis_verifygroup.c: Likewise. * nis/nis_clone.c: Removed, replaced by ... * nis/nis_clone_dir.c: New. * nis/nis_clone_obj.c: New. * nis/nis_clone_res.c: New. * nis/nis_table.c: Fixed bugs shown through the new clone functions. * nis/nis_defaults.c: Fixed a lot of race conditions. * nis/nis_free.c: Rewritten. * sunrpc/auth_des.c: Fix use of free'ed pointer. * nis/Makefile (libnsl-routines): Remove nis_clone, nis_cache and lckcache. Add nis_clone_dir, nis_clone_obj, and nis_clone_res. 1997-10-09 Andreas Jaeger <aj@arthur.rhein-neckar.de> * wctype/test_wctype.c (TEST): Add parens to avoid ambiguity. 1997-10-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * include/features.h: Don't crash if _XOPEN_SOURCE is defined to be empty. 1997-10-09 05:54 Ulrich Drepper <drepper@cygnus.com> * nss/digits_dots.c: Place `result' in resbuf and not in `buffer'. * nss/getXXbyYY_r.c: Make sure digits_dots.c sees `resbuf' as struct and not a pointer. Little optimizations. 1997-10-09 05:00 Ulrich Drepper <drepper@cygnus.com> * sysdeps/stub/getenv.c: Remove unused file. * sysdeps/stub/lxstat.c: Likewise. * sysdeps/stub/morecore.c: Likewise. * sysdeps/stub/putenv.c: Likewise. * sysdeps/stub/sbrk.c: Likewise. * sysdeps/stub/setenv.c: Likewise. * sysdeps/stub/sysd-stdio.c: Likewise. * sysdeps/stub/sysdep.h: Likewise. Reported by Zack Weinberg <zack@rabi.phys.columbia.edu>. 1997-10-09 04:58 Ulrich Drepper <drepper@cygnus.com> * configure.in: Add __bzero definition to DWARF2 unwind test. Reported by David S. Miller <davem@caip.rutgers.edu>. 1997-10-07 Paul Eggert <eggert@twinsun.com> * intl/loadmsgcat.c (_nl_load_domain): Fix &&/|| typo when checking file size. Check for overflow when stuffing off_t into size_t. 1997-10-07 18:11 Ulrich Drepper <drepper@cygnus.com> * time/africa: Update from tzdata1997i. 1997-10-07 Andreas Jaeger <aj@arthur.rhein-neckar.de> * posix/globtest.sh: Add arguments for name of dynamic linker and call dynamic linker to execute globtest. * posix/Makefile (tests): Supply arguments to globtest.sh. 1997-10-07 Andreas Jaeger <aj@arthur.rhein-neckar.de> * nis/rpcsvc/ypupd.h: Add missing __END_DECLS. 1997-10-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * libc.map: Add mempcpy, prctl. 1997-09-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/generic/memcmp.c: Avoid warnings. * sysdeps/generic/memset.c: Likewise. * sysdeps/generic/strchr.c: Likewise. * sysdeps/generic/strlen.c: Likewise. 1997-09-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * malloc/Makefile ($(objpfx)mtrace): Fix typo. 1997-09-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/dl-machine.h (elf_machine_rela): Fix last change. The R_68K_GLOB_DAT and R_68K_JMP_SLOT relocations really ignore the addend, Richard. (elf_machine_fixup_plt): Don't add the addend. (elf_machine_plt_value): New function. * sysdeps/alpha/dl-machine.h (elf_machine_plt_value): New function. * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_plt_value): New function. * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_plt_value): New function. * sysdeps/powerpc/dl-machine.h (elf_machine_plt_value): New function. * sysdeps/i386/dl-machine.h (elf_machine_plt_value): New function. * elf/dl-runtime.c (fixup, profile_fixup): Don't add in the addend, instead let the machine dependent setup decide. 1997-09-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/m68020/bits/string.h: New file. 1997-10-07 04:27 Richard Henderson <rth@cygnus.com> * Makeconfig (+includes): Add -I$(objpfx). * stdlib/longlong.h [__sparc__]: Prototype __udiv_qrnnd. * sysdeps/alpha/setjmp.S: __setjmp is the same as _setjmp. Make the former a strong symbol and the later a weak alias. * sysdeps/sparc/sparc32/setjmp.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S: Likewise. 1997-10-06 21:01 David S. Miller <davem@tanya.rutgers.edu> * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Make ino_t 64-bits. * sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h: Make st_ino member 64-bits as well, to match the kernel. 1997-10-06 19:35 Ulrich Drepper <drepper@cygnus.com> * sysdeps/sparc/sparc64/sub_n.S: Fix typo. Patch by Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>. 1997-10-06 01:09 Zack Weinberg <zack@rabi.phys.columbia.edu> * time/README: Correct list of files from tzcode package. Add contact information for tzcode/tzdata maintainers. Correct spelling of author's name. Compact lists. 1997-10-06 01:48 Ulrich Drepper <drepper@cygnus.com> * malloc/malloc.h: Remove hook definition without caller argument. * malloc/malloc.c: Likewise. * string/tester.c: Correct strsep test. * string/bits/string2.h: Define __string2_1bptr_p and use it. Patch by David S. Miller <davem@tanya.rutgers.edu>. * math/Makefile (routines): Add s_clog10. * math/libm-test.c: Add test for clog10. * math/libm.map: Add clog10{,f,l}. * math/bits/cmathcalls.h [__USE_GNU]: Add clog10. * sysdeps/libm-ieee754/s_clog10.c: New file. * sysdeps/libm-ieee754/s_clog10f.c: New file. * sysdeps/libm-ieee754/s_clog10l.c: New file. * manual/math.texi: Describe clog10. * config.h.in: Add USE_REGPARMS and define internal_function based on this. * configure.in: Define USE_REGPARMS for ix86 machines. * gmon/gmon.c: Mark write_hist, write_call_graph and write_bb_counts as internal functions. * inet/getnameinfo.c: Likewise for nrl_domainname. * inet/getnetgrent_r.c: Likewise for __internal_setnetgrent_reuse. * inet/rcmd.c: Likewise for __icheckhost. * intl/dcgettext.c: Likewise for category_to_name and guess_category_value. * intl/localealias.c: Likewise for read_alias_file. * io/fts.c: Likewise for fts_alloc, fts_build, fts_lfree, fts_maxarglen, fts_padjust, fts_palloc, fts_sort, and fts_stat. * libio/genops.c: Likewise for save_for_backup. * malloc/malloc.c (chunk_free, chunk_alloc, chunk_realloc, chunk_align, main_trim, heap_trim): Likewise. * malloc/mtrace.c (tr_where): Likewise. * misc/fstab.c (mnt2fs): Likewise. * misc/getttyent.c (skip, value): Likewise. * misc/syslog.c (openlog_internal): Likewise. * misc/tsearch.c (trecurse, tdestroy_internal): Likewise. * nss/nsswitch.c (nss_lookup_function, nss_parse_file, nss_getline, nss_parse_service_list, nss_new_service): Likewise. * posix/wordexp.c (parse_dollars, parse_backtick, eval_expr): Likewise. * resolv/inet_ntop.c (inet_ntop4, inet_ntop6): Likewise. * resolv/inet_pton.c (inet_pton4, inet_pton6): Likewise. * resolv/res_init.c (res_setoptions): Likewise. * stdio-common/printf_fp.c (group_number): Likewise. * stdio-common/vfprintf.c (buffered_vfprintf, group_number): Likewise. * stdlib/fmtmsg.c (internal_addseverity): Likewise. * sunrpc/auth_des.c (synchronize): Likewise. * sunrpc/auth_unix.c (marshal_new_auth): Likewise. * sunrpc/clnt_perr.c (auth_errmsg): Likewise. * sunrpc/key_call.c (key_call): Likewise. * sunprc/pmap_rmt.c (getbroadcastnets): Likewise. * sunrpc/svc_tcp.c (makefd_xprt): Likewise. * sunrpc/svcauth_des.c (cache_init, cache_spot, cache_ref, invalidate): Likewise. * sunrpc/xdr_rec.c (fix_buf_size, skip_input_bytes, flush_out, set_input_fragment, get_input_bytes): Likewise. * sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path, phys_pages_info): Likewise. * sysdeps/unix/sysv/linux/if_index.c (opensock): Likewise. * sysdeps/unix/sysv/linux/poll.c (__emulate_poll): Likewise. * sysdeps/unix/sysv/linux/readv.c (__atomic_readv_replacement): Likewise. * sysdeps/unix/sysv/linux/readv.c (__atomic_writev_replacement): Likewise. * time/strptime.c (strptime_internal): Likewise. * time/tzfile.c (find_transition, compute_tzname_max): Likewise. * time/tzset.c (compute_change, tz_compute, tzset_internal): Likewise. * libc.map: Remove _libio_using_thunks, add _fp_hw and _dl_addr. * ctype/ctype.h: Pretty print. * grp/grp.h: Likewise. * include/libc-symbols.h: Likewise. * include/limits.h: Likewise. * include/values.h: Likewise. * io/fcntl.h: Likewise. * io/sys/stat.h: Likewise. * libio/stdio.h: Likewise. * malloc/malloc.h: Likewise. * misc/err.h: Likewise. * misc/regexp.h: Likewise. * misc/sys/cdefs.h: Likewise. * misc/sys/file.h: Likewise. * posix/sys/utsname.h: Likewise. * posix/sys/wait.h: Likewise. * pwd/pwd.h: Likewise. * resolv/netdb.h: Likewise. * signal/signal.h: Likewise. * stdlib/stdlib.h: Likewise. * string/endian.h: Likewise. * string/memory.h: Likewise. * sysdeps/mach/hurd/bits/fcntl.h: Likewise. * sysdeps/mach/hurd/sys/param.h: Likewise. * sysdeps/unix/sysv/linux/sys/param.h: Likewise. * termios/termios.h: Likewise. * wcsmbs/wchar.h: Likewise. * wctype/wctype.h: Likewise. * sysdeps/unix/bsd/bsd4.4/wait3.c: Use __WAIT_STATUS in definition. Implement Large File Support API. * include/features.h: Add suuport for _LARGEFILE_SOURCE, _LARGEFILE64_SOURCE, and _FILE_OFFSET_BITS. * libc.map: Add new functions for LFS. * dirent/Makefile (routines): Add readdir64 and readdir64_r. * dirent/dirent.h: Update readdir prototype for LFS and add new prototypes for above functions. * io/Makefile (routines): Add xstat64, fxstat64, lxstat64, statfs64, fstatfs64, lstat64, open64, lseek64, creat64, and ftw64. * io/creat64.c: New file. * io/fstat64.c: New file. * io/lstat64.c: New file. * io/stat64.c: New file. * io/ftw64.c: New file. * io/ftw.c: Rewrite to allow easy definition of ftw64. * io/ftw.h: Add LFS interface. * io/fcntl.h: Likewise. * io/sys/stat.h: Likewise. * io/sys/statfs.h: Likewise. * libio/Makefile (routines): Add iofgetpos64, iofopen64, iofsetpos64, freopen64, fseeko64, and ftello64. * libcio/fseeko64.c: New file. * libio/ftello64.c: New file. * libio/iofgetpos64.c: New file. * libio/iofopen64.c: New file. * libio/iofsetpos64.c: New file. * libio/fileops.c (_IO_file_fopen): Change to use _IO_off64_t. (_IO_file_attach): Likewise. (_IO_do_write): Likewise. (_IO_file_sync): Likewise. (_IO_file_seek): Likewise. (_IO_file_seekoff): Likewise. Use _G_stat64. (_IO_file_fopen64): New function. (_IO_file_jumps): Initialize showmanyc and imbue. * libio/genops.c (_IO_default_seekpos): Change to use _IO_fpos64_t. (_IO_default_seekoff): Likewise. (_IO_default_seek): Likewise. (_IO_default_showmanyc, _IO_default_imbue): New functions. * libio/iofopncook.c (_IO_cookie_seek): Change to use _IO_off64_t. * libio/iolibio.h: Add prototypes for LFS functions. * libio/ioseekoff.c: Change to use _IO_fpos64_t. * libio/ioseekpos.c: Likewise. * libio/libio.h: Define _IO_fpos64_t and _IO_off64_t. (_IO_FILE): Move _offset field to end and change type to _IO_off64_t. (_IO_seekoff, _IO_seekpos): Change prototype. * libio/libioP.h (_IO_seekoff_t, _IO_seekpos_t, _IO_seek_t): Change to use _IO_off64_t. Change prototypes for function from the *ops.c files. * libio/stdio.h: Add LFS interface definition. * libio/strops.c (_IO_str_seekoff): Change to use _IO_fpos64_t. * posix/Makefile (routines): Add pread64 and pwrite64. * posix/confstr.c: Handle _CS_LFS* requests. * posix/getconf.c: Handle LFS* requests. * sysdeps/generic/confname.h: Add _CS_LFS* constants. * posix/unistd.h: Document _LFS64_LARGEFILE and _LFS64_STDIO. Define off_t and off64_t appropriately. Change prototypes of LFS functions. * posix/sys/types.h: Add LFS types. * resources/Makefile (routines): Add getrlimit64 and setlimit64. * resource/sys/resource.h: Change prototypes of LFS functions. * stdio-common/Makefile (routines): Add tmpfile64. * stdio-common/tmpfile64.c: New file. * sysdeps/generic/_G_config.h: Define _G_fpos64_t and _G_off64_t. Define _G_OPEN64, _G_LSEEK64, _G_FSTAT64. * sysdeps/unix/sysv/linux/_G_config.h: Likewise. * sysdeps/generic/bits/resource.h: Add LFS definitions. * sysdeps/unix/bsd/sun/sunos4/bits/resource.h: Likewise. * sysdeps/unix/sysv/linux/bits/resource.h: Likewise. * sysdeps/generic/statfs.h: Use __fsblkcnt_t for some of the fields. * sysdeps/unix/sysv/linux/bits/statfs.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/statfs.h: Likewise. * sysdeps/generic/types.h: Define LFS types. * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise. * sysdeps/generic/sys/mman.h: Add LFS definitions. * sysdeps/unix/sysv/linux/sys/mman.h: Likewise. * sysdeps/generic/mach/hurd/bits/fcntl.h: Add flock LFS extensions. * sysdeps/unix/bsd/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise. * sysdeps/generic/mach/hurd/bits/stat.h: Add stat LFS extensions. * sysdeps/unix/bsd/bits/stat.h: Likewise. * sysdeps/unix/bsd/osf/alpha/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/stat.h: Likewise. * sysdeps/unix/sysv/sysv4/i386/bits/stat.h: Likewise. * sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h: Likewise. * sysdeps/posix/open64.c: New file. * sysdeps/stub/fstatfs64.c: New file. * sysdeps/stub/fxstat64.c: New file. * sysdeps/stub/getrlimit64.c: New file. * sysdeps/stub/lseek64.c: New file. * sysdeps/stub/lxstat64.c: New file. * sysdeps/stub/open64.c: New file. * sysdeps/stub/pread64.c: New file. * sysdeps/stub/pwrite64.c: New file. * sysdeps/stub/readdir64.c: New file. * sysdeps/stub/readdir64_r.c: New file. * sysdeps/stub/setrlimit64.c: New file. * sysdeps/stub/statfs64.c: New file. * sysdeps/stub/xstat64.c: New file. * sysdeps/unix/sysv/linux/llseek.c: Define as __llseek and make llseek and lseek64 weak aliases. * sysdeps/unix/sysv/linux/lseek64.c: New file. Empty. * sysdeps/unix/sysv/linux/alpha/bits/dirent.h: New file. * sysdeps/unix/sysv/linux/bits/dirent.h: Add LFS definitions. * sysdeps/posix/tempname.c: Add extra argument to trigger use of open64. * sysdeps/stub/tempname.c: Likewise. * stdio-common/tempnam.c: Call __stdio_gen_tempname with extra argument. * stdio-common/tmpfile.c: Likewise. * stdio-common/tmpnam.c: Likewise. * stdio-common/tmpnam_r.c: Likewise. * libio/libioP.h: Add definition ofr showmanyc and imbue callbacks. * libio/fileops.c (_IO_file_jumps): Initialize showmanyc and imbue. * libio/iofopncook.c (_IO_cookie_jumps): Likewise. * libio/iopopen.c (_IO_proc_jumps): Likewise. * libio/memstream.c (_IO_mem_jumps): Likewise. * libio/obprintf.c (_IO_obstack_jumps): Likewise. * libio/vsnprintf.c (_IO_strn_jumps): Likewise. * libio/strops.c (_IO_str_jumps): Likewise. * manual/arith.texi: Add a few words why cabs should be used. * manual/llio.texi: Describe sync, fsync, fdatasync. Tell about cleanup handlers & fcntl,lseek,write,read,close,open. * manual/process.texi: Tell about cleanup handlers & system,waitpid, wait. * manual/signal.texi: Likewise for pause. * manual/terminal.texi: Likewise for tcdrain. * manual/time.texi: Document nanosleep. * posix/exevp.c: Don't use nested function. * stdlib/ucontext.h: New file. * sysdeps/i386/sys/ucontext.h: New file. SysV/i386 API definitions. * sunrpc/xcrypt.c (hexval): Make a macro for efficiency. * sysdeps/i386/setjmp.h: Make `here` label local. * sysdeps/i386/elf/start.S: Define _fp_hw "variable". * sysdeps/stub/fstatfs.c: Correct warning. * sysdeps/stub/fxstat.c: Likewise. * sysdeps/stub/lxstat.c: Likewise. * sysdeps/unix/sysv/i386/i686/time.S: New file. 1997-10-03 20:56 Jason Merrill <jason@yorick.cygnus.com> * malloc/obstack.h (obstack_empty_p): New macro. 1997-10-04 17:41 Philip Blundell <Philip.Blundell@pobox.com> * inet/getnameinfo.c (getnameinfo): Remove spurious `#if INET6'. 1997-09-30 Zack Weinberg <zack@rabi.phys.columbia.edu> * maint.texi: Add copyright terms for libdb (Sleepycat, Harvard). Document new --with-binutils switch; delete reference to --with-gnu-as, --with-gnu-ld, --with-gnu-binutils. Add to description of --without-fp: a kernel FPU emulator is adequate (from FAQ) * INSTALL: Regenerated. 1997-09-30 17:29 Richard Henderson <rth@cygnus.com> * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Move _dl_hwcap declaration to ... (elf_machine_fixup_plt): ... here. |
||
Ulrich Drepper
|
5107cf1d7d |
Update.
1997-06-21 02:48 Ulrich Drepper <drepper@cygnus.com> * config.h.in: Add DO_STATIC_NSS. * config.make.in: Add build-static-nss. * elf/eval.c: Use __getdelim instead of __getline. * locale/programs/locale.c: Correct comment. * manual/libc.texinfo: Update copyright and date. Remove A4 option. * sysdeps/libm-ieee754/k_standard.c: Always return HUGE_VAL for gamma overflow. * sysdeps/libm-ieee754/w_gamma.c: Handle SVID and ISO C behaviour. * sysdeps/libm-ieee754/w_gammaf.c: Likewise. * sysdeps/libm-ieee754/w_gammalp.c: Likewise. * po/ko.po: Update. 1997-06-13 10:06 Richard Henderson <rth@tamu.edu> The Great Bit File Move: * configure.in (AC_INIT): Look in include/ for features.h. (sysnames): Add include as the final search directory. (AC_OUTPUT): Create a bits directory in the build directory. * Makeconfig (CPPFLAGS): Look in include/ for libc-symbols.h. * Makefile: Make sure the target directory exists when installing <gnu/stubs.h> and <gnu/lib-names.h>. * csu/Makefile: Use $(compile.S) and $(compile.c) instead of invoking $(CC) directly, as the former have the full include path. * ansidecl.h: Removed. * aliases.h: Moved to include/. * alloca.h: Likewise. * argp.h: Likewise. * argz.h: Likewise. * arpa/ftp.h: Likewise. * arpa/inet.h: Likewise. * arpa/nameser.h: Likewise. * arpa/telnet.h: Likewise. * arpa/tftp.h: Likewise. * assert.h: Likewise. * ctype.h: Likewise. * db.h: Likewise. * dirent.h: Likewise. * dlfcn.h: Likewise. * elf.h: Likewise. * endian.h: Likewise. * envz.h: Likewise. * err.h: Likewise. * errno.h: Likewise. * error.h: Likewise. * fcntl.h: Likewise. * features.h: Likewise. * fnmatch.h: Likewise. * ftw.h: Likewise. * getopt.h: Likewise. * glob.h: Likewise. * gnu-versions.h: Likewise. * grp.h: Likewise. * langinfo.h: Likewise. * libc-symbols.h: Likewise. * libgen.h: Likewise. * libintl.h: Likewise. * limits.h: Likewise. * linewrap.h: Likewise. * link.h: Likewise. * locale.h: Likewise. * malloc.h: Likewise. * math.h: Likewise. * mathcalls.h: Likewise. * mcheck.h: Likewise. * memory.h: Likewise. * netdb.h: Likewise. * netgroup.h: Likewise. * netinet/ether.h: Likewise. * netinet/in.h: Likewise. * nlist.h: Likewise. * nss.h: Likewise. * nsswitch.h: Likewise. * obstack.h: Likewise. * poll.h: Likewise. * posix1_lim.h: Likewise. * posix2_lim.h: Likewise. * printf.h: Likewise. * protocols/routed.h: Likewise. * protocols/rwhod.h: Likewise. * protocols/talkd.h: Likewise. * protocols/timed.h: Likewise. * pwd.h: Likewise. * regex.h: Likewise. * resolv.h: Likewise. * rpc/auth_unix.h: Likewise. * rpc/clnt.h: Likewise. * rpc/netdb.h: Likewise. * rpc/pmap_clnt.h: Likewise. * rpc/pmap_prot.h: Likewise. * rpc/pmap_rmt.h: Likewise. * rpc/rpc.h: Likewise. * rpc/rpc_msg.h: Likewise. * rpc/svc.h: Likewise. * rpc/svc_auth.h: Likewise. * rpc/types.h: Likewise. * rpc/xdr.h: Likewise. * sched.h: Likewise. * search.h: Likewise. * set-hooks.h: Likewise. * setjmp.h: Likewise. * sgtty.h: Likewise. * shadow.h: Likewise. * signal.h: Likewise. * stab.def: Likewise. * stab.h: Likewise. * stdio.h: Likewise. * stdlib.h: Likewise. * string.h: Likewise. * strings.h: Likewise. * sys/bitypes.h: Likewise. * sys/cdefs.h: Likewise. * sys/dir.h: Likewise. * sys/errno.h: Likewise. * sys/fcntl.h: Likewise. * sys/file.h: Likewise. * sys/gmon.h: Likewise. * sys/ioctl.h: Likewise. * sys/ipc.h: Likewise. * sys/msg.h: Likewise. * sys/poll.h: Likewise. * sys/queue.h: Likewise. * sys/resource.h: Likewise. * sys/select.h: Likewise. * sys/sem.h: Likewise. * sys/shm.h: Likewise. * sys/signal.h: Likewise. * sys/socket.h: Likewise. * sys/stat.h: Likewise. * sys/statfs.h: Likewise. * sys/syslog.h: Likewise. * sys/termios.h: Likewise. * sys/time.h: Likewise. * sys/timeb.h: Likewise. * sys/times.h: Likewise. * sys/types.h: Likewise. * sys/uio.h: Likewise. * sys/un.h: Likewise. * sys/unistd.h: Likewise. * sys/utsname.h: Likewise. * sys/vlimit.h: Likewise. * sys/vtimes.h: Likewise. * sys/wait.h: Likewise. * syscall.h: Likewise. * syslog.h: Likewise. * tar.h: Likewise. * termios.h: Likewise. * time.h: Likewise. * ttyent.h: Likewise. * unistd.h: Likewise. * utime.h: Likewise. * utmp.h: Likewise. * values.h: Likewise. * wchar.h: Likewise. * wctype.h: Likewise. * wordexp.h: Likewise. * xlocale.h: Likewise. * xopen_lim.h: Likewise. * linuxthreads/sysdeps/alpha/semaphorebits.h: -> .../bits/semaphore.h. * linuxthreads/sysdeps/powerpc/semaphorebits.h: Likewise. * linuxthreads/sysdeps/pthread/cmpxchg/semaphorebits.h: Likewise. * linuxthreads/sysdeps/pthread/no-cmpxchg/semaphorebits.h: Likewise. * linuxthreads/sysdeps/pthread/libc-lock.h: -> bits/ * sysdeps/mach/libc-lock.h: Likewise. * sysdeps/stub/libc-lock.h: Likewise. * linuxthreads/sysdeps/pthread/stdio-lock.h: Likewise. * linuxthreads/sysdeps/unix/sysv/linux/local_lim.h: Likewise. * sysdeps/mach/hurd/local_lim.h: Likewise. * sysdeps/stub/local_lim.h: Likewise. * sysdeps/unix/sysv/linux/local_lim.h: Likewise. * sysdeps/unix/sysv/local_lim.h: Likewise. * sysdeps/unix/sysv/sco3.2/local_lim.h: Likewise. * linuxthreads/sysdeps/unix/sysv/linux/posix_opt.h: Likewise. * sysdeps/mach/hurd/posix_opt.h: Likewise. * sysdeps/stub/posix_opt.h: Likewise. * sysdeps/unix/bsd/posix_opt.h: Likewise. * sysdeps/unix/bsd/ultrix4/posix_opt.h: Likewise. * sysdeps/unix/sysv/linux/posix_opt.h: Likewise. * math/cmathcalls.h: -> bits/ * math/mathcalls.h: Likewise. * misc/stab.def: -> bits/ * posix/posix1_lim.h: -> bits/ * posix/posix2_lim.h: Likewise. * sysdeps/alpha/__math.h: -> .../fpu/bits/mathinline.h * sysdeps/i386/fpu/__math.h: Likewise. * sysdeps/m68k/fpu/__math.h: Likewise. * sysdeps/m68k/fpu/switch/__math.h: Likewise. * sysdeps/powerpc/__math.h: Likewise. * sysdeps/stub/__math.h: Likewise. * sysdeps/alpha/bytesex.h: -> .../bits/endian.h * sysdeps/arm/bytesex.h: Likewise. * sysdeps/i386/bytesex.h: Likewise. * sysdeps/m68k/bytesex.h: Likewise. * sysdeps/mips/bytesex.h: Likewise. * sysdeps/mips/dec/bytesex.h: Likewise. * sysdeps/mips/mipsel/bytesex.h: Likewise. * sysdeps/mips/p40/bytesex.h: Likewise. * sysdeps/sparc/bytesex.h: Likewise. * sysdeps/stub/bytesex.h: Likewise. * sysdeps/alpha/fpu/fenvbits.h: -> .../bits/fenv.h * sysdeps/i386/fpu/fenvbits.h: Likewise. * sysdeps/m68k/fpu/fenvbits.h: Likewise. * sysdeps/powerpc/fenvbits.h: Likewise. * sysdeps/stub/fenvbits.h: Likewise. * sysdeps/alpha/jmp_buf.h: -> .../bits/setenv.h * sysdeps/arm/jmp_buf.h: Likewise. * sysdeps/i386/jmp_buf.h: Likewise. * sysdeps/m68k/jmp_buf.h: Likewise. * sysdeps/mips/jmp_buf.h: Likewise. * sysdeps/sparc/jmp_buf.h: Likewise. * sysdeps/powerpc/jmp_buf.h: Likewise. * sysdeps/stub/jmp_buf.h: Likewise. * sysdeps/vax/jmp_buf.h: Likewise. * sysdeps/generic/confname.h: -> bits/ * sysdeps/unix/sysv/irix4/confname.h: Likewise. * sysdeps/unix/sysv/sco3.2.4/confname.h: Likewise. * sysdeps/generic/gnu/types.h: -> ../bits/types.h * sysdeps/unix/sysv/linux/alpha/gnu/types.h: Likewise. * sysdeps/unix/sysv/linux/gnu/types.h: Likewise. * sysdeps/generic/ioctl-types.h: -> bits/ * sysdeps/unix/sysv/linux/ioctl-types.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/ioctl-types.h: Likewise. * sysdeps/generic/iovec.h: -> .../bits/uio.h * sysdeps/unix/sysv/linux/iovec.h: Likewise. * sysdeps/generic/mathbits.h: -> .../bits/mathdef.h * sysdeps/i386/fpu/mathbits.h: Likewise. * sysdeps/m68k/fpu/mathbits.h: Likewise. * sysdeps/powerpc/mathbits.h: Likewise. * sysdeps/generic/resourcebits.h: -> .../bits/resource.h * sysdeps/unix/bsd/sun/sunos4/resourcebits.h: Likewise. * sysdeps/unix/sysv/linux/resourcebits.h: Likewise. * sysdeps/generic/schedbits.h: -> .../bits/sched.h * sysdeps/unix/sysv/linux/schedbits.h: Likewise. * sysdeps/generic/selectbits.h: -> .../bits/select.h * sysdeps/i386/selectbits.h: Likewise. * sysdeps/generic/sigaction.h: -> bits/ * sysdeps/unix/bsd/osf/sigaction.h: Likewise. * sysdeps/unix/sysv/linux/alpha/sigaction.h: Likewise. * sysdeps/unix/sysv/linux/sigaction.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sigaction.h: Likewise. * sysdeps/unix/sysv/minix/sigaction.h: Likewise. * sysdeps/unix/sysv/sco3.2.4/sigaction.h: Likewise. * sysdeps/unix/sysv/sysv4/sigaction.h: Likewise. * sysdeps/generic/sigset.h: -> bits/ * sysdeps/unix/sysv/linux/sigset.h: Likewise. * sysdeps/unix/sysv/sysv4/sigset.h: Likewise. * sysdeps/generic/sockaddrcom.h: -> .../bits/sockaddr.h * sysdeps/unix/bsd/bsd4.4/sockaddrcom.h: Likewise. * sysdeps/generic/socketbits.h: -> .../bits/socket.h * sysdeps/unix/sysv/linux/socketbits.h: Likewise. * sysdeps/generic/statfsbuf.h: -> .../bits/statfs.h * sysdeps/unix/sysv/linux/statfsbuf.h: Likewise. * sysdeps/generic/termbits.h: -> .../bits/termios.h * sysdeps/unix/bsd/sun/sunos4/termbits.h: Likewise. * sysdeps/unix/sysv/linux/alpha/termbits.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/termbits.h: Likewise. * sysdeps/unix/sysv/linux/sparc/termbits.h: Likewise. * sysdeps/unix/sysv/linux/termbits.h: Likewise. * sysdeps/generic/ustatbits.h: -> .../bits/ustat.h * sysdeps/unix/sysv/linux/ustatbits.h: Likewise. * sysdeps/generic/utmpbits.h: -> .../bits/utmp.h * sysdeps/gnu/utmpbits.h: Likewise. * sysdeps/unix/sysv/utmpbits.h: Likewise. * sysdeps/generic/utsnamelen.h: -> .../bits/utsname.h * sysdeps/unix/bsd/sun/sunos4/utsnamelen.h: Likewise. * sysdeps/unix/bsd/ultrix4/utsnamelen.h: Likewise. * sysdeps/unix/sysv/linux/utsnamelen.h: Likewise. * sysdeps/unix/sysv/sysv4/utsnamelen.h: Likewise. * sysdeps/unix/sysv/utsnamelen.h: Likewise. * sysdeps/generic/waitstatus.h: -> bits/ * sysdeps/i386/huge_val.h: -> bits/ * sysdeps/ieee754/huge_val.h: Likewise. * sysdeps/m68k/huge_val.h: Likewise. * sysdeps/stub/huge_val.h: Likewise. * sysdeps/vax/huge_val.h: Likewise. * sysdeps/ieee754/nan.h: Likewise. * sysdeps/stub/nan.h: Likewise. * sysdeps/mach/hurd/alpha/sigcontext.h: -> bits/ * sysdeps/mach/hurd/hppa/sigcontext.h: Likewise. * sysdeps/mach/hurd/i386/sigcontext.h: Likewise. * sysdeps/mach/hurd/mips/sigcontext.h: Likewise. * sysdeps/stub/sigcontext.h: Likewise. * sysdeps/unix/bsd/sun/m68k/sigcontext.h: Likewise. * sysdeps/unix/bsd/sun/sparc/sigcontext.h: Likewise. * sysdeps/unix/bsd/ultrix4/mips/sigcontext.h: Likewise. * sysdeps/unix/sysv/linux/sigcontext.h: Likewise. * sysdeps/mach/hurd/errnos.h: -> .../bits/errno.h * sysdeps/standalone/arm/errnos.h: Likewise. * sysdeps/stub/errnos.h: Likewise. * sysdeps/unix/bsd/bsd4.4/errnos.h: Likewise. * sysdeps/unix/sysv/linux/errnos.h: Likewise. * sysdeps/mach/hurd/fcntlbits.h: -> .../bits/fcntl.h * sysdeps/stub/fcntlbits.h: Likewise. * sysdeps/unix/bsd/bsd4.4/fcntlbits.h: Likewise. * sysdeps/unix/bsd/fcntlbits.h: Likewise. * sysdeps/unix/bsd/sun/sunos4/fcntlbits.h: Likewise. * sysdeps/unix/bsd/ultrix4/fcntlbits.h: Likewise. * sysdeps/unix/common/fcntlbits.h: Likewise. * sysdeps/unix/sysv/fcntlbits.h: Likewise. * sysdeps/unix/sysv/irix4/fcntlbits.h: Likewise. * sysdeps/unix/sysv/linux/alpha/fcntlbits.h: Likewise. * sysdeps/unix/sysv/linux/fcntlbits.h: Likewise. * sysdeps/unix/sysv/linux/sparc/fcntlbits.h: Likewise. * sysdeps/mach/hurd/ioctls.h: -> bits/ * sysdeps/stub/ioctls.h: Likewise. * sysdeps/unix/bsd/bsd4.4/ioctls.h: Likewise. * sysdeps/unix/sysv/linux/alpha/ioctls.h: Likewise. * sysdeps/unix/sysv/linux/ioctls.h: Likewise. * sysdeps/unix/sysv/linux/sparc/ioctls.h: Likewise. * sysdeps/mach/hurd/statbuf.h: -> .../bits/stat.h * sysdeps/stub/statbuf.h: Likewise. * sysdeps/unix/bsd/osf/alpha/statbuf.h: Likewise. * sysdeps/unix/bsd/statbuf.h: Likewise. * sysdeps/unix/sysv/irix4/statbuf.h: Likewise. * sysdeps/unix/sysv/linux/alpha/statbuf.h: Likewise. * sysdeps/unix/sysv/linux/statbuf.h: Likewise. * sysdeps/unix/sysv/statbuf.h: Likewise. * sysdeps/unix/sysv/sysv4/i386/statbuf.h: Likewise. * sysdeps/unix/sysv/sysv4/solaris2/statbuf.h: Likewise. * sysdeps/standalone/stdio_lim.h: -> bits/ * sysdeps/stub/stdio_lim.h: Likewise. * sysdeps/stub/direntry.h: -> ../bits/dirent.h * sysdeps/unix/bsd/bsd4.4/direntry.h: Likewise. * sysdeps/unix/bsd/direntry.h: Likewise. * sysdeps/unix/common/direntry.h: Likewise. * sysdeps/unix/sysv/direntry.h: Likewise. * sysdeps/unix/sysv/linux/direntry.h: Likewise. * sysdeps/stub/elfclass.h: -> bits/ * sysdeps/wordsize-32/elfclass.h: Likewise. * sysdeps/wordsize-64/elfclass.h: Likewise. * sysdeps/stub/signum.h: -> bits/ * sysdeps/unix/bsd/signum.h: Likewise. * sysdeps/unix/bsd/sun/signum.h: Likewise. * sysdeps/unix/sysv/irix4/signum.h: Likewise. * sysdeps/unix/sysv/linux/alpha/signum.h: Likewise. * sysdeps/unix/sysv/linux/signum.h: Likewise. * sysdeps/unix/sysv/linux/sparc/signum.h: Likewise. * sysdeps/unix/sysv/signum.h: Likewise. * sysdeps/unix/sysv/sysv4/signum.h: Likewise. * sysdeps/unix/sysv/sysv4/solaris2/signum.h: Likewise. * sysdeps/stub/sys/ipc_buf.h: -> .../bits/ipc.h * sysdeps/unix/sysv/linux/alpha/sys/ipc_buf.h: Likewise. * sysdeps/unix/sysv/linux/sys/ipc_buf.h: Likewise. * sysdeps/stub/sys/msq_buf.h: -> .../bits/msq.h * sysdeps/unix/sysv/linux/sys/msq_buf.h: Likewise. * sysdeps/stub/sys/sem_buf.h: -> .../bits/sem.h * sysdeps/unix/sysv/linux/sys/sem_buf.h: Likewise. * sysdeps/stub/sys/shm_buf.h: -> .../bits/shm.h * sysdeps/unix/sysv/linux/sys/shm_buf.h: Likewise. * sysdeps/stub/timebits.h: -> .../bits/time.h * sysdeps/unix/sysv/linux/alpha/timebits.h: Likewise. * sysdeps/unix/sysv/linux/timebits.h: Likewise. * sysdeps/stub/waitflags.h: -> bits/ * sysdeps/unix/bsd/waitflags.h: Likewise. * sysdeps/unix/sysv/linux/waitflags.h: Likewise. * sysdeps/unix/sysv/sysv4/waitflags.h: Likewise. * sysdeps/unix/sysv/linux/alpha/sys/kernel_termios.h: -> ../ * sysdeps/unix/sysv/linux/powerpc/sys/kernel_termios.h: Likewise. * sysdeps/unix/sysv/linux/sys/kernel_termios.h: Likewise. * sysdeps/unix/sysv/linux/sys/socketcall.h: -> ../ * argp/argp-fmtstream.h: Standardize the multiple-include protect. * argp/argp.h: Likewise. * catgets/nl_types.h: Likewise. * crypt/sysdeps/unix/crypt.h: Likewise. * ctype/ctype.h: Likewise. * db/db.h: Likewise. * db/mpool.h: Likewise. * db/ndbm.h: Likewise. * dirent/dirent.h: Likewise. * elf/dlfcn.h: Likewise. * elf/elf.h: Likewise. * elf/link.h: Likewise. * gmon/sys/gmon.h: Likewise. * gmon/sys/gmon_out.h: Likewise. * grp/grp.h: Likewise. * inet/aliases.h: Likewise. * inet/arpa/ftp.h: Likewise. * inet/arpa/inet.h: Likewise. * inet/arpa/telnet.h: Likewise. * inet/arpa/tftp.h: Likewise. * inet/netinet/ether.h: Likewise. * inet/netinet/icmp6.h: Likewise. * inet/netinet/in.h: Likewise. * inet/netinet/ip6.h: Likewise. * inet/protocols/routed.h: Likewise. * inet/protocols/rwhod.h: Likewise. * inet/protocols/talkd.h: Likewise. * inet/protocols/timed.h: Likewise. * intl/libintl.h: Likewise. * io/fcntl.h: Likewise. * io/fts.h: Likewise. * io/ftw.h: Likewise. * io/sys/poll.h: Likewise. * io/sys/stat.h: Likewise. * io/sys/statfs.h: Likewise. * io/utime.h: Likewise. * linuxthreads/semaphore.h: Likewise. * linuxthreads/sysdeps/pthread/pthread.h: Likewise. * locale/locale.h: Likewise. * login/pty.h: Likewise. * login/utmp.h: Likewise. * malloc/malloc.h: Likewise. * malloc/obstack.h: Likewise. * math/complex.h: Likewise. * math/fenv.h: Likewise. * math/math.h: Likewise. * md5-crypt/md5.h: Likewise. * misc/ar.h: Likewise. * misc/err.h: Likewise. * misc/error.h: Likewise. * misc/fstab.h: Likewise. * misc/libgen.h: Likewise. * misc/nlist.h: Likewise. * misc/sys/cdefs.h: Likewise. * misc/sys/file.h: Likewise. * misc/sys/ioctl.h: Likewise. * misc/sys/queue.h: Likewise. * misc/sys/select.h: Likewise. * misc/sys/syslog.h: Likewise. * misc/sys/uio.h: Likewise. * misc/sysexits.h: Likewise. * misc/ttyent.h: Likewise. * nss/nss.h: Likewise. * posix/fnmatch.h: Likewise. * posix/getopt.h: Likewise. * posix/glob.h: Likewise. * posix/regex.h: Likewise. * posix/sys/times.h: Likewise. * posix/sys/types.h: Likewise. * posix/sys/utsname.h: Likewise. * posix/sys/wait.h: Likewise. * posix/tar.h: Likewise. * posix/unistd.h: Likewise. * posix/wordexp.h: Likewise. * pwd/pwd.h: Likewise. * resolv/arpa/nameser.h: Likewise. * resolv/netdb.h: Likewise. * resolv/resolv.h: Likewise. * resource/sys/resource.h: Likewise. * resource/sys/vlimit.h: Likewise. * resource/sys/vtimes.h: Likewise. * setjmp/setjmp.h: Likewise. * shadow/shadow.h: Likewise. * socket/sys/socket.h: Likewise. * socket/sys/un.h: Likewise. * stdlib/exit.h: Likewise. * stdlib/fmtmsg.h: Likewise. * stdlib/monetary.h: Likewise. * stdlib/stdlib.h: Likewise. * string/argz.h: Likewise. * string/envz.h: Likewise. * string/memory.h: Likewise. * string/string.h: Likewise. * string/strings.h: Likewise. * sunrpc/rpc/rpc.h: Likewise. * sunrpc/rpc/svc.h: Likewise. * sunrpc/rpc/types.h: Likewise. * sunrpc/rpc/xdr.h: Likewise. * termios/sys/ttychars.h: Likewise. * termios/termios.h: Likewise. * argp/argp-parse.c: <foo.h> -> <bits/foo.h>. * crypt/sysdeps/unix/crypt_util.c: Likewise. * dirent/dirent.h: Likewise. * elf/link.h: Likewise. * grp/fgetgrent.c: Likewise. * grp/grp.h: Likewise. * hurd/hurd/ioctl.h: Likewise. * inet/getnameinfo.c: Likewise. * inet/getnetgrent_r.c: Likewise. * inet/inet_ntoa.c: Likewise. * inet/netinet/in.h: Likewise. * io/fcntl.h: Likewise. * io/ftw.h: Likewise. * io/sys/stat.h: Likewise. * io/sys/statfs.h: Likewise. * io/utime.h: Likewise. * libio/_G_config.h: Likewise. * libio/libio.h: Likewise. * libio/libioP.h: Likewise. * libio/stdio.h: Likewise. * linuxthreads/lockfile.c: Likewise. * linuxthreads/semaphore.h: Likewise. * locale/duplocale.c: Likewise. * locale/freelocale.c: Likewise. * locale/lc-time.c: Likewise. * locale/setlocale.c: Likewise. * login/getutent_r.c: Likewise. * login/getutid_r.c: Likewise. * login/getutline_r.c: Likewise. * login/lastlog.h: Likewise. * login/pty.h: Likewise. * login/utmp.h: Likewise. * login/utmpname.c: Likewise. * malloc/mtrace.c: Likewise. * malloc/thread-m.h: Likewise. * math/complex.h: Likewise. * math/fenv.h: Likewise. * math/libm-test.c: Likewise. * math/math.h: Likewise. * misc/sgtty.h: Likewise. * misc/stab.h: Likewise. * misc/sys/ioctl.h: Likewise. * misc/sys/select.h: Likewise. * misc/sys/uio.h: Likewise. * misc/sys/ustat.h: Likewise. * misc/syslog.c: Likewise. * nis/nss_compat/compat-grp.c: Likewise. * nis/nss_compat/compat-pwd.c: Likewise. * nis/nss_compat/compat-spwd.c: Likewise. * nis/nss_nis/nis-alias.c: Likewise. * nis/nss_nis/nis-ethers.c: Likewise. * nis/nss_nis/nis-grp.c: Likewise. * nis/nss_nis/nis-hosts.c: Likewise. * nis/nss_nis/nis-netgrp.c: Likewise. * nis/nss_nis/nis-network.c: Likewise. * nis/nss_nis/nis-proto.c: Likewise. * nis/nss_nis/nis-publickey.c: Likewise. * nis/nss_nis/nis-pwd.c: Likewise. * nis/nss_nis/nis-rpc.c: Likewise. * nis/nss_nis/nis-service.c: Likewise. * nis/nss_nis/nis-spwd.c: Likewise. * nss_nisplus/nisplus-alias.c: Likewise. * nis/nss_nisplus/nisplus-ethers.c: Likewise. * nis/nss_nisplus/nisplus-grp.c: Likewise. * nis/nss_nisplus/nisplus-hosts.c: Likewise. * nis/nss_nisplus/nisplus-netgrp.c: Likewise. * nis/nss_nisplus/nisplus-netgrp.c: Likewise. * nis/nss_nisplus/nisplus-proto.c: Likewise. * nis/nss_nisplus/nisplus-pwd.c: Likewise. * nis/nss_nisplus/nisplus-rpc.c: Likewise. * nis/nss_nisplus/nisplus-service.c: Likewise. * nis/nss_nisplus/nisplus-spwd.c: Likewise. * nis/ypclnt.c: Likewise. * nss/getXXbyYY.c: Likewise. * nss/getXXent.c: Likewise. * nss/getXXent_r.c: Likewise. * nss/nss_db/db-XXX.c: Likewise. * nss/nss_db/db-alias.c: Likewise. * nss/nss_db/db-netgrp.c: Likewise. * nss/nss_files/files-XXX.c: Likewise. * nss/nss_files/files-alias.c: Likewise. * nss/nsswitch.c: Likewise. * posix/sched.h: Likewise. * posix/sys/types.h: Likewise. * posix/sys/utsname.h: Likewise. * posix/sys/wait.h: Likewise. * posix/unistd.h: Likewise. * pwd/fgetpwent.c: Likewise. * pwd/pwd.h: Likewise. * resource/sys/resource.h: Likewise. * setjmp/setjmp.h: Likewise. * shadow/fgetspent.c: Likewise. * shadow/lckpwdf.c: Likewise. * shadow/sgetspent.c: Likewise. * signal/signal.h: Likewise. * signal/sigsetops.c: Likewise. * socket/sys/socket.h: Likewise. * socket/sys/un.h: Likewise. * stdio/stdio.h: Likewise. * stdio-common/vfprintf.c: Likewise. * stdio-common/vfscanf.c: Likewise. * stdlib/atexit.c: Likewise. * stdlib/fmtmsg.c: Likewise. * stdlib/random.c: Likewise. * string/endian.h: Likewise. * sysdeps/alpha/w_sqrt.S: Likewise. * sysdeps/arm/__longjmp.S: Likewise. * sysdeps/arm/setjmp.S: Likewise. * sysdeps/generic/abort.c: Likewise. * sysdeps/generic/netinet/ip.h: Likewise. * sysdeps/generic/setenv.c: Likewise. * generic/sys/mman.h: Likewise. * sysdeps/i386/__longjmp.S: Likewise. * sysdeps/i386/setjmp.S: Likewise. * sysdeps/mach/hurd/dirstream.h: Likewise. * sysdeps/mach/hurd/jmp-unwind.c: Likewise. * sysdeps/posix/mk-stdiolim.c: Likewise. * sysdeps/powerpc/__longjmp.S: Likewise. * sysdeps/powerpc/setjmp.S: Likewise. * sysdeps/sparc/__longjmp.S: Likewise. * sysdeps/sparc/setjmp.S: Likewise. * sysdeps/standalone/close.c: Likewise. * sysdeps/standalone/filedesc.h: Likewise. * sysdeps/standalone/open.c: Likewise. * sysdeps/unix/bsd/bsd4.4/tcsetattr.c: Likewise. * sysdeps/unix/bsd/m68k/sysdep.S: Likewise. * sysdeps/unix/bsd/osf/sys/mman.h: Likewise. * sysdeps/unix/bsd/sun/m68k/sethostid.S: Likewise. * sysdeps/unix/bsd/sun/sparc/sethostid.S: Likewise. * sysdeps/unix/bsd/sun/sunos4/sys/mman.h: Likewise. * sysdeps/unix/bsd/ultrix4/sys/mman.h: Likewise. * sysdeps/unix/bsd/vax/sysdep.S: Likewise. * sysdeps/unix/dirstream.h: Likewise. * sysdeps/unix/i386/sysdep.S: Likewise. * sysdeps/unix/mips/sysdep.S: Likewise. * sysdeps/unix/mk-local_lim.c: Likewise. * sysdeps/unix/sparc/sysdep.S: Likewise. * sysdeps/unix/sysv/irix4/sys/mman.h: Likewise. * sysdeps/unix/sysv/linux/alpha/brk.S: Likewise. * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise. * sysdeps/unix/sysv/linux/arm/clone.S: Likewise. * sysdeps/unix/sysv/linux/i386/clone.S: Likewise. * sysdeps/unix/sysv/linux/m68k/clone.S: Likewise. * sysdeps/unix/sysv/linux/netinet/ip.h: Likewise. * sysdeps/unix/sysv/linux/netinet/tcp.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/clone.S: Likewise. * sysdeps/unix/sysv/linux/sys/mman.h: Likewise. * sysdeps/unix/sysv/linux/sys/syscall.h: Likewise. * sysdeps/unix/sysv/linux/tcgetattr.c: Likewise. * sysdeps/unix/sysv/sco3.2.4/sysconf.S: Likewise. * sysdeps/unix/sysv/sysv4/i386/sysdep.h: Likewise. * sysdeps/unix/sysv/sysv4/solaris2/sparc/sysdep.S: Likewise. * sysvipc/sys/ipc.h: Likewise. * sysvipc/sys/msg.h: Likewise. * sysvipc/sys/sem.h: Likewise. * sysvipc/sys/shm.h: Likewise. * termios/termios.h: Likewise. * time/localtime.c: Likewise. * time/sys/time.h: Likewise. * time/time.h: Likewise. * time/tzset.c: Likewise. * sysdeps/unix/sysv/linux/arm/socket.S: socketcall.h change. * sysdeps/unix/sysv/linux/i386/socket.S: Likewise. * sysdeps/unix/sysv/linux/m68k/socket.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/socket.S: Likewise. * sysdeps/unix/sysv/linux/sparc/socket.S: Likewise. * Makefile (headers): foo.h -> bits/foo.h. * dirent/Makefile: Likewise. * elf/Makefile: Likewise. * io/Makefile: Likewise. * linuxthreads/Makefile: Likewise. * linuxthreads/sysdeps/pthread/Makefile: Likewise. * login/Makefile: Likewise. * math/Makefile: Likewise. * misc/Makefile: Likewise. * posix/Makefile: Likewise. * resource/Makefile: Likewise. * setjmp/Makefile: Likewise. * signal/Makefile: Likewise. * socket/Makefile: Likewise. * stdio-common/Makefile: Likewise. * sysdeps/unix/sysv/linux/Makefile: Likewise. * sysvipc/Makefile: Likewise. * termios/Makefile: Likewise. * time/Makefile: Likewise. * sysdeps/generic/Makefile (make_siglist-CFLAGS): Likewise. * sysdeps/posix/Makefile: stdio_lim.h -> bits/stdio_lim.h * sysdeps/unix/Makefile: Likewise with local_lim.h, errnos.h, ioctls.h, termbits.h. * sysdeps/unix/sysv/linux/Dist: sys/kernel_termios.h -> kernel_termios.h, sys/socketcall.h -> socketcall.h * elf/elf.h: Use <inttypes.h> definitions instead of __attribute__ for getting the proper length on the ELF types to be friendly to non-gcc compilers. * posix/sys/types.h: Notice when int8_t and friends are defined and don't redefine them. * sysdeps/wordsize-32/inttypes.h: Likewise. * sysdeps/wordsize-64/inttypes.h: Likewise. * sysdeps/unix/sysv/linux/arm/profil-counter.h: Get sigcontext via <signal.h> instead. * sysdeps/unix/sysv/linux/i386/profil-counter.h: Likewise. * sysdeps/unix/sysv/linux/sparc/profil-counter.h: Likewise. 1997-06-20 17:59 Kazumoto Kojima <kkojima@kk.info.kanagawa-u.ac.jp> * hurd/intr-msg.c: More 64bit changes. * mach/msg-destroy.c: Likewise. * sysdeps/mach/hurd/ioctl.c: Likewise. * sysdeps/mach/hurd/ioctls.h: Likewise. * sysdeps/mach/hurd/select.c: Likewise. * sysdeps/mach/hurd/statbuf.h: Likewise. * sysdeps/mach/hurd/mips/dl-machine.c: Hurd/MIPS64 patches. * sysdeps/mach/hurd/mips/exc2signal.c: Likewise. * sysdeps/mach/hurd/mips/init-fault.c: Likewise. * sysdeps/mach/hurd/mips/init-first.c: Likewise. * sysdeps/mach/hurd/mips/intr-msg.h: Likewise. * sysdeps/mach/hurd/mips/longjmp-ctx.c: Likewise. * sysdeps/mach/hurd/mips/longjmp-ts.c: Likewise. * sysdeps/mach/hurd/mips/sigcontext.h: Likewise. * sysdeps/mach/hurd/mips/sigreturn.c: Likewise. * sysdeps/mach/hurd/mips/trampoline.c: Likewise. * sysdeps/mach/mips/cacheflush.c: Likewise. * sysdeps/mach/mips/machine-lock.h: Likewise. * sysdeps/mach/mips/machine-sp.h: Likewise. * sysdeps/mach/mips/syscall.S: Likewise. * sysdeps/mach/mips/sysdep.h: Likewise. * sysdeps/mach/mips/thread_state.h: Likewise. * sysdeps/mach/start.c: Likewise. * sysdeps/mips/dl-machine.h: MIPS changes. * sysdeps/mips/elf/start.S: Likewise. * sysdeps/mips/init-first.c: Likewise. * sysdeps/mips/fpu_control.h: Likewise. * sysdeps/mips/machine-gmon.h: Likewise. * sysdeps/mips/jmp_buf.h: Likewise. * sysdeps/mips/__longjmp.c: Likewise. * sysdeps/mips/bsd-_setjmp.S: Likewise. * sysdeps/mips/bsd-setjmp.S: Likewise. * sysdeps/mips/setjmp.S: Likewise. * sysdeps/mips/setjmp_aux.c: Likewise. * sysdeps/mips/mips64/gmp-mparam.h: Likewise. * sysdeps/mips/add_n.S: New file. * sysdeps/mips/addmul_1.S: Likewise. * sysdeps/mips/lshift.S: Likewise. * sysdeps/mips/mul_1.S: Likewise. * sysdeps/mips/rshift.S: Likewise. * sysdeps/mips/sub_n.S: Likewise. * sysdeps/mips/submul_1.S: Likewise. * sysdeps/mips/mips64/Implies: Likewise. * sysdeps/mips/mips64/add_n.S: Likewise. * sysdeps/mips/mips64/addmul_1.S: Likewise. * sysdeps/mips/mips64/lshift.S: Likewise. * sysdeps/mips/mips64/mul_1.S: Likewise. * sysdeps/mips/mips64/rshift.S: Likewise. * sysdeps/mips/mips64/sub_n.S: Likewise. * sysdeps/mips/mips64/submul_1.S: Likewise. * sysdeps/mips/add_n.S: Removed. * sysdeps/mips/addmul_1.S: Likewise. * sysdeps/mips/lshift.S: Likewise. * sysdeps/mips/mul_1.S: Likewise. * sysdeps/mips/rshift.S: Likewise. * sysdeps/mips/sub_n.S: Likewise. * sysdeps/mips/submul_1.S: Likewise. * nss/Makefile: Prepare for static NSS. * resolv/Makefile: Likewise. * nss/nsswitch.c: Add code for static NSS. * nss/function.def: Define functions for static NSS. 1997-06-19 11:10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * libc.map: Add yet more symbols. 1997-06-19 20:33 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * elf/dl-lookup.c (_dl_lookup_versioned_symbol): Don't pass NULL as object name to _dl_signal_error. (do_lookup): Skip objects that could not be opened. * sysdeps/m68k/dl-machine.h (elf_machine_rela): Check that the symbol was found. * sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise. * sysdeps/powerpc/dl-machine.h (elf_machine_rela): Likewise. 1997-06-20 03:13 Kazumoto Kojima <kkojima@kk.info.kanagawa-u.ac.jp> * ctype/ctype-info.c: Use int32_t where `int' with 4 bytes is assumed. * ctype/ctype.h: Likewise. * math/math_private.h: Likewise. * inet/netinet/in.h: Likewise. * wctype/wctype.h: Likewise. * nss/Makefile: Only inhibit nss_files and nss_db modules if static NSS modules are not enabled. * resolv/Makefile: Likewise for nss_dns. * nss/function.def: New file. List all available lookup functions for static NSS. * nss/nsswitch.c: Add code for static NSS. 1997-06-15 21:15 Andreas Jaeger <aj@arthur.rhein-neckar.de> * math/libm-test.c (gamma_test): Test for _SVID_ and for normal behaviour. 1997-06-15 20:32 Andreas Jaeger <aj@arthur.rhein-neckar.de> * math/libm.map: Add all necessary functions, correct existing entries. 1997-06-20 02:35 a sun <asun@zoology.washington.edu> * sysdeps/unix/sysv/linux/netipx/ipx.h: Don't use kernel header. 1997-06-19 18:43 Andreas Jaeger <aj@arthur.rhein-neckar.de> * nis/nss_nisplus/nisplus-spwd.c (_nss_nisplus_parse_spent): Compare pointer with NULL. * login/logout.c (logout): Compare pututline result with NULL. * inet/rcmd.c: Correct a few typos. Reported by Erik Troan. |