diff options
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | WHATSNEW | 76 |
2 files changed, 77 insertions, 1 deletions
@@ -1 +1 @@ -1.1.16 +1.1.17 @@ -1776,3 +1776,79 @@ arch-specific bugs fixed: - wrong pread/pwrite syscall calling convention on sh - wrong preadv2/pwritev2 syscall numbers on x32 - mrand48/jrand48 produced wrong-signedness results on 64-bit archs + + +1.1.17 release notes + +new features: +- RTLD_LAZY deferred symbol binding, functionally equivalent to lazy binding +- safeguard against dlopen of multiple libc versions/instances +- new posix_spawn flag POSIX_SPAWN_SETSID +- posix_spawnattr_setflags now reports unknown flags as error +- ldso option --argv0 to set argv[0] +- added _NL_LOCALE_NAME extension to nl_langinfo + +compatibility: +- dlopen local-to-global promotion no longer changes existing symbols +- gettext now searches locale name variants for translation files +- increased locale name length limit from 15 to 23 bytes +- setlocale(LC_ALL, 0) returns single name if all categories are same +- realloc no longer fails when mremap doesn't work +- getservby* no longer treat numeric port strings as service records +- mmap now works around incorrect EPERM error codes from kernel +- impact of REG_* namespace pollution in x86[_64] signal.h is reduced +- arm atomic asm now assembles correctly with new binutils +- PAGE_SIZE on arm is no longer constant (quiet upstream ABI relaxation) +- lsearch/lfind now pass args to compare callback in canonical order +- STB_WEAK and STB_GNU_UNIQUE symbols now behave same as STB_GLOBAL +- better clang CFLAGS checks in configure +- global vis.h hack, which made lld refuse to link to libc.so, is disabled + +performance: +- single-instruction optimized math functions for aarch64, s390x, powerpc64 +- fast path for ASCII in towupper/towlower +- new mostly-integer-math fma function + +semantic bugs fixed: +- POSIX-format TZ dst time transitions were wrong for southern hemisphere +- regex REG_NEWLINE semantics were wrong with negated brackets +- various bugs in strptime %j, %p, %C formats +- iconv mapped some characters to legacy 8bit encodings incorrectly +- glob failed to match "/" +- UTF-8 decoder accepted invalid f4 9x xx xx code sequences +- scanf %% conversion failed to consume whitespace +- glob with GLOB_PERIOD wrongly descended into . and .. +- nftw gave incorrect base name offset when pathname ends in "/" +- functional regression in resolv.conf attempts option +- scalbn could produce wrong result due to double rounding in subnormal range +- strftime %y format wrong with negative years +- mbsnrtowcs and wcsnrtombs mishandled input limits +- minor issues with error codes for various functions + +safety/consistency bugs fixed: +- stack-based buffer overflow in dns response processing +- invalid free in regexec on certain error paths +- invalid free in globfree after failed glob +- one-byte buffer overflow in legacy getpass function +- failed dlopen corrupted thread-local storage module list +- race in pthread_create with priority attributes could leave signals masked +- multithreaded set*id() functions could induce spurious EINTRs +- dl_iterate_phdr reported wrong base address in static PIE +- fd leak and wrong cancellation state after dns socket failure +- memory leaks and other issues in environment-modification functions +- read-after-free race in pthread_detach +- memmem performed single-byte over-read in short-needle code paths +- read via uninitialized pointer in gettext core +- bindtextdomain broke bindings for all other domains +- various silent undefined behavior +- getopt clobbered optopt on success + +arch-specific bugs fixed: +- x32 dynamic TLS accesses crashed +- s390x was missing dlsym entry point (needed for RTLD_NEXT) +- powerpc64 ldso startup could crash depending on link order +- powerpc64 setjmp/longjmp didn't properly save/restore TOC pointer +- thumb2 setjmp/longjmp silently broke at ld-time with text not aligned +- fchown was broken on archs without SYS_fchown syscall +- fstatat was broken on mips64 +- various incorrect constants in powerpc64 and mips headers |