10.2. GLIBC
10.2. GLIBC In Red Hat Enterprise Linux 7, the glibc libraries ( libc , libm , libpthread , NSS plug-ins, and others) are based on the glibc 2.17 release, which includes numerous enhancements and bug fixes relative to the Red Hat Enterprise Linux 6 equivalent. Notable highlights of the Red Hat Enterprise Linux 7 glibc libraries are the following: Experimental ISO C11 support; New Linux interfaces: prlimit , prlimit64 , fanotify_init , fanotify_mark , clock_adjtime , name_to_handle_at , open_by_handle_at , syncfs , setns , sendmmsg , process_vm_readv , process_vm_writev ; New optimized string functions for AMD64 and Intel 64 architectures using Streaming SIMD Extensions (SSE), Supplemental Streaming SIMD Extensions 3 (SSSE3), Streaming SIMD Extensions 4.2 (SSE4.2), and Advanced Vector Extensions (AVX); New optimized string functions for IBM PowerPC and IBM POWER7; New optimized string functions for IBM S/390 and IBM System z with specifically optimized routines for IBM System z10 and IBM zEnterprise 196; New locales: os_RU, bem_ZA, en_ZA, ff_SN, sw_KE, sw_TZ, lb_LU, wae_CH, yue_HK, lij_IT, mhr_RU, bho_IN, unm_US, es_CU, ta_LK, ayc_PE, doi_IN, ia_FR, mni_IN, nhn_MX, niu_NU, niu_NZ, sat_IN, szl_PL, mag_IN; New encodings: CP770, CP771, CP772, CP773, CP774; New interfaces: scandirat , scandirat64 ; Checking versions of the FD_SET, FD_CLR, FD_ISSET, poll, and ppoll file descriptors added; Caching of the netgroup database is now supported in the nscd daemon; The new function secure_getenv() allows secure access to the environment, returning NULL if running in a SUID or SGID process. This function replaces the internal function __secure_getenv() ; The crypt() function now fails if passed salt bytes that violate the specification for those values. On Linux, the crypt() function will consult the /proc/sys/crypto/fips_enabled file to determine if FIPS mode is enabled, and fail on encrypted strings using the Message-Digest algorithm 5 (MD5) or Data Encryption Standard (DES) algorithm when the mode is enabled; The clock_* suite of functions (declared in <time.h>) is now available directly in the main C library. Previously it was necessary to link with -lrt to use these functions. This change has the effect that a single-threaded program that uses a function such as clock_gettime() (and is not linked with -lrt ) will no longer implicitly load the pthreads library at runtime and so will not suffer the overheads associated with multi-thread support in other code such as the C++ runtime library; New header <sys/auxv.h> and function getauxval() allow easy access to the AT_* key-value pairs passed from the Linux kernel. The header also defines the HWCAP_* bits associated with the AT_HWCAP key; A new class of installed header has been documented for low-level platform-specific functionality. PowerPC added the first instance with a function to provide time base register access.