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
nscddaemon; - 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, thecrypt()function will consult the/proc/sys/crypto/fips_enabledfile 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-lrtto use these functions. This change has the effect that a single-threaded program that uses a function such asclock_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.