10.2. GLIBC

download PDF
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.
Red Hat logoGithubRedditYoutubeTwitter


Try, buy, & sell


About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.