🥇Release of the OpenMandriva Lx 4.1 distribution | ProHoster

After six months of development has been published release of the system library GNU C Library (glibc) 2.31, which fully complies with the standards of ISO C11 and POSIX.1-2008. The new release includes contributions from 58 developers.

Implemented in Glibc 2.31 improvements notable mentions include:

  • The _ISOC2X_SOURCE macro has been added to enable features defined in the draft of the future ISO standard C2X. These features are also enabled when using the _GNU_SOURCE macro or when building with gcc using the flag “-std=gnu2x”;
  • For certain functions defined in the header file 'math.h' that round their results to a smaller type, corresponding generic type macros are proposed in 'tgmath.h', as required by the specifications TS 18661-1:2014 and TS 18661-3:2015;
  • The pthread_clockjoin_np() function has been added, which waits for a thread to complete with a timeout (if the timeout occurs before completion, the function returns an error). Unlike pthread_timedjoin_np(), pthread_clockjoin_np() allows specifying the timer type for calculating the timeout — CLOCK_MONOTONIC (which accounts for time spent by the system in sleep mode) or CLOCK_REALTIME;
  • Support for the trust-ad option has been added to the DNS resolver in /etc/resolv.conf and the RES_TRUSTAD flag in _res.options, which, when set, enable the transmission of the DNSSEC flag in DNS queries AD (authenticated data). In this mode, the AD flag set by the server becomes accessible to applications calling functions like res_search(). By default, if the suggested options are not set, glibc does not send the AD flag in queries and automatically clears it in responses, indicating a lack of DNSSEC verification;
  • To build working bindings for system calls for Glibc, it is now not required to install the Linux kernel header files. The exception is the 64-bit architecture RISC-V;
  • Resolved vulnerability CVE-2019-19126, which allows bypassing the protection
    ASLR in programs with the setuid flag and determining the address layout in loaded libraries by manipulating the LD_PREFER_MAP_32BIT_EXEC environment variable.

Changes that break compatibility:

  • In totalorder(), totalordermag(), and similar functions for other floating-point types, pointers are now accepted as arguments to exclude warnings about converting values in the state NaN, in accordance with the recommendations of TS 18661-1, proposed for the future C2X standard.
    Existing executables, in which floating-point arguments are passed directly, will continue to work without modification;
  • The long-deprecated stime function is now unavailable for binaries linked with glibc, and its definition has been removed from time.h. The clock_settime function should be used to set the system time. In the future, the deprecated ftime function and the header file sys/timeb.h are also planned to be removed (use gettimeofday or clock_gettime instead of ftime);
  • The gettimeofday function no longer passes information about the system's timezone (this feature was relevant during the 4.2-BSD era and has been deprecated for many years). A null pointer should now be passed in the ‘tzp’ argument, and to obtain information about the timezone relative to the current time, the localtime() function should be used. When gettimeofday is called with a non-null ‘tzp’ argument, empty fields tz_minuteswest and tz_dsttime will be returned in the timezone structure. The gettimeofday function itself is considered deprecated in POSIX (clock_gettime is recommended instead of gettimeofday), but it is not planned to be removed from glibc;
  • Support for simultaneously passing parameters to set the time and the corrective time offset has been discontinued in settimeofday. When calling settimeofday, one of the arguments (time or offset) must now be set to null, otherwise the function call will end with error EINVAL. Like gettimeofday, the settimeofday function is considered deprecated in POSIX and the clock_settime function or the adjtime family of functions are recommended instead;
  • Support for SPARC ISA v7 architecture has been discontinued (v8 support is still maintained, but only for processors with CAS instruction support, such as LEON processors, but not SuperSPARC processors).
  • In case of binding failure in “lazy“ mode, where the linker does not resolve function symbols until the first call to that function, the dlopen function now forcefully terminates the process (previously, NULL was returned on failure);
  • For the MIPS hard-float ABI, an executable stack is now used unless a constraint on the use of Linux kernel 4.8+ is explicitly specified during compilation with the parameter “—enable-kernel=4.8.0” (with kernels up to 4.8, crashes are observed for some MIPS configurations);
  • Wrappers over system calls related to time manipulation have been transitioned to the use of the time64 system call when available (on 32-bit glibc systems, it initially attempts to use the new system calls that manipulate the 64-bit type for time, and if they are unavailable, it reverts to the old 32-bit calls).

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster