Upstream commit: db9a8ad4ff3fc58e3773a9a4d0cabe3c1bc9c94c
- gethostid: Missing NULL check for gethostbyname_r result (#1631338)
- stdlib/tst-setcontext9 test suite failure (#1623519)
The file list geneation for the main package and subpackages was
unorganized and poorly structured. With this commit we change this
in three siginifcant ways:
* All file lists are built independent of each other from a master
list of files e.g. rpm.list. This is the important cleanup.
* All files are installed into %{glibc_sysroot}, which defaults
to $RPM_BUILD_ROOT. This supports future experimentation with
alternate glibc installs via this new variable.
* Redundant code is removed which is no longer required, like the
debuginfo list de-duplication; simplifying the install process.
The changes were tested by carrying out a file-by-file comparison
to ensure no file changed packages or installed location after
the patch.
The %install phase is reorganized into 3 distinct phases, the
first phase where files are modified, a second phase where file
lists are generated, and a final phase where files are only
removed based on list information.
This cleanup makes it very clear when we are done installing
files, and therefore creates a place where we can put ABI
instrumentation to compare the resulting ABI before stripping
and debuginfo generation.
No ABI instrumentation is added by this patch, and before-and-after
testing verifies the %install phase remains functionally the same.
Upstream commit: 93304f5f7a32f73b551266c5a181db51d97a71e4
- Install <bits/statx.h> header
- Put the correct Unicode version number 11.0.0 into the generated files
Upstream commit: fd70af45528d59a00eb3190ef6706cb299488fcd
- Add the statx function
- regexec: Fix off-by-one bug in weight comparison (#1582229)
- nss_files: Fix re-reading of long lines (swbz#18991)
- aarch64: add HWCAP_ATOMICS to HWCAP_IMPORTANT
- aarch64: Remove HWCAP_CPUID from HWCAP_IMPORTANT
- conform/conformtest.pl: Escape literal braces in regular expressions
- x86: Use AVX_Fast_Unaligned_Load from Zen onwards.
CFLAGS is not generally used when calling assembler, and this eventually
exposes a design issue in the annobin notes handling; see bug 1576362.
This reverts commit 7c1047805b.
The following commit removes the requirement for patches to be
placed in 1000, 2000, or 3000 ID blocks depending on their
upstream status. Instead upstream status is documented in the
header of the patch with some semi-standard notation as described
in template.patch. The patches are re-numbered and defined and
applied in the same order. Verified that before and after the
patch that the source tree does not change. The patch definition
is resorted to match the patch application order.
glibc-common already depends on /bin/sh, so it would be installed at a
time when trigger runs.
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
not supported even by GCC 7.3.1 on this architecture.
Apparently it requires architecture-specific support. In any case it
does not work with GCC 7.3.1 on riscv64:
stage3:/# gcc --version
gcc (GCC) 7.3.1 20180129
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
stage3:/# gcc -fstack-clash-protection
gcc: error: unrecognized command line option '-fstack-clash-protection'; did you mean '-fstack-protector'?
gcc: fatal error: no input files
compilation terminated.
Since time immemorial, Red Hat/Fedora packagers have been required
to add a stanza to spec files for packages containing libraries to
update the ldconfig cache.
```
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
```
To say this is annoying is to put it mildly. However, there was no
standard mechanism to make this boilerplate go away. Now with RPM 4.13+,
we should change this to file triggers and make all of that go away.
In the case of the transaction file triggers that run on the regular
link library paths, the performance benefit is minimal, and being greedy
does not hurt in this case. It's still an improvement over running
ldconfig every time anyway.
With the introduction of these triggers, we can start removing the
ldconfig boilerplate from Fedora package specs, and new packages will
not need to add it.
Pirority (-P) is not strictly needed, but we want to run our ldconfig
"first" before rest of scriptlets so it would speed up them (we would
build ldconfig cache beforehand).
References: https://bugzilla.redhat.com/1380878
Originally-proposed-by: Neal Gompa <ngompa13@gmail.com>
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
Add applicable Requires on libxcrypt
Back in June, Björn Esser proposed to add OpenBSD-compatible bcrypt
support to our implementation of crypt(3), and Zack Weinberg replied
that it might actually make more sense to _remove_ libcrypt from
glibc, freeing up libcrypt.so.1 and crypt.h to be provided by a
separate project that could move faster. (For instance, libxcrypt:
https://github.com/besser82/libxcrypt)
This commit is the glibc part of:
https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt
Upstream commit: 4612268a0ad8e3409d8ce2314dd2dd8ee0af5269
- Correct the list of static PIE architectures
- glibc_post_upgrade: Remove process restart logic
- glibc_post_upgrade: Integrate into the build process
- glibc_post_upgrade: Do not clean up tls subdirectories
- glibc_post_upgrade: Drop ia64 support
- Remove architecture-specific symbolic link for iconvconfig
- powerpc: Fix syscalls during early process initialization (swbz#22685)
This gives us access to the relevant definitions and also enables
us to perform a static PIE build without replicate the entire
compiler invocation.
Due to the move into the glibc build process, the program had to
be cleaned up to compile without warnings.
Its purpose is not entirely clear. glibc_post_upgrade invokes
iconvconfig with explicit paths, so it does not matter for which
multilib variant the binary was built.
Upstream commit: 64f63cb4583ecc1ba16c7253aacc192b6d088511
- Enable static PIE support
- Remove add-on support (already gone upstream)
- Rework test suite status reporting
- malloc: Fix integer overflows in memalign and malloc functions (swbz#22343)
- x86-64: Properly align La_x86_64_retval to VEC_SIZE (swbz#22715)
- aarch64: Update bits/hwcap.h for Linux 4.15
- Add NT_ARM_SVE to elf.h
Upstream commit: 860b0240a5645edd6490161de3f8d1d1f2786025
- CVE-2018-1000001: Make getcwd fail if it cannot obtain an absolute path
(#1533837)
- elf: Synchronize DF_1_* flags with binutils (#1439328)
- aarch64: fix static pie enabled libc when main is in a shared library
- malloc: Ensure that the consolidated fast chunk has a sane size
Upstream commit: 9a08a366a7e7ddffe62113a9ffe5e50605ea0924
- libnsl: Do not install libnsl.so, libnsl.a (#1531540)
- Use unversioned Supplements: for langpacks (#1490725)
- hu_HU locale: Avoid double space (swbz#22657)
- math: Make default libc_feholdsetround_noex_ctx use __feholdexcept
(swbz#22702)
Upstream commit: f1a844ac6389ea4e111afc019323ca982b5b027d
- CVE-2017-16997: elf: Check for empty tokens before DST expansion (#1526866)
- Remove sln (#1531546)
- Remove Sun RPC interfaces (#1531540)
- Rebuild with newer GCC to fix pthread_exit stack unwinding issue (#1529549)
- i386: In makecontext, align the stack before calling exit (swbz#22667)
- x86, armhfp: sync sys/ptrace.h with Linux 4.15 (swbz#22433)
- elf: check for rpath emptiness before making a copy of it
- elf: remove redundant is_path argument
- elf: remove redundant code from is_dst
- elf: remove redundant code from _dl_dst_substitute
- scandir: fix wrong assumption about errno (swbz#17804)
- Deprecate external use of libio.h and _G_config.h
A whole lot has changed since `sln` was introduced into glibc upstream with
this comment:
```
1998-07-21 07:10 H.J. Lu <hjl@gnu.org>
* elf/sln.c: New file.
```
Upstream glibc commit 9d141cae00c957096045d08fe504b4a2be66ab75
```
Author: Ulrich Drepper <drepper@redhat.com>
AuthorDate: Thu Aug 13 19:44:05 1998 +0000
```
Among other things for example, dynamic linking has been in use for the nearly
20 years that have passed and is now quite reliable. Further, many Fedora
systems now use an initramfs (dracut) which is basically a large filesystem of
utilities as a single blob; while it would require rebooting, one can easily
make hardlinks there.
Futher of course there's the increasing use of ostree in Fedora which which
consistently captures *all* of userspace and supports rollback, and additionaly
its presents a "read only" nature to admin tools and other processes that adds
significantly to system resilience.
The failure scenarios that could be recovered via `sln` seem to me to be very
small.
Applying this patch allows dropping a downstream Fedora patch to hardlink `sln` to `ldconfig`,
which was the source of a tricky bug:
https://github.com/projectatomic/rpm-ostree/pull/1173#issuecomment-355014583
that also impacts rpm-ostree. In practice today SELinux policy is fixed
in updates, but given there's no real reason for this binary to exist
anymore, let's drop it.
Upstream commit bad7a0c81f501fbbcc79af9eaa4b8254441c4a1f
- copy_file_range: New function to copy file data
- nptl: Consolidate pthread_{timed,try}join{_np}
- nptl: Implement pthread_self in libc.so (swbz#22635)
- math: Provide a C++ version of iseqsig (swbz#22377)
- elf: remove redundant __libc_enable_secure check from fillin_rpath
- math: Avoid signed shift overflow in pow (swbz#21309)
- x86: Add feature_1 to tcbhead_t (swbz#22563)
- x86: Update cancel_jmp_buf to match __jmp_buf_tag (swbz#22563)
- ld.so: Examine GLRO to detect inactive loader (swbz#20204)
- nscd: Fix nscd readlink argument aliasing (swbz#22446)
- elf: do not substitute dst in $LD_LIBRARY_PATH twice (swbz#22627)
- ldconfig: set LC_COLLATE to C (swbz#22505)
- math: New generic sincosf
- powerpc: st{r,p}cpy optimization for aligned strings
- CVE-2017-1000409: Count in expanded path in _dl_init_path (#1524867)
- CVE-2017-1000408: Compute correct array size in _dl_init_paths (#1524867)
- x86-64: Remove sysdeps/x86_64/fpu/s_cosf.S
- aarch64: Improve strcmp unaligned performance
Upstream commit: 37ac8e635a29810318f6d79902102e2e96b2b5bf
- Add elision tunables. Drop related configure flag.
- Linux: Implement interfaces for memory protection keys
- math: Add _Float64, _Float32x function aliases
- math: Use sign as double for reduced case in sinf
- math: fix sinf(NAN)
- math: s_sinf.c: Replace floor with simple casts
- et_EE locale: Base collation on iso14651_t1 (swbz#22517)
- tr_TR locale: Base collation on iso14651_t1 (swbz#22527)
- hr_HR locale: Avoid single code points for digraphs in LC_TIME (swbz#10580)
- S390: Fix backtrace in vdso functions
Upstream commit: 7863a7118112fe502e8020a0db0fa74fef281f29
- math: New generic sinf (swbz#5997)
- is_IS locale: Base collation on iso14651_t1 (swbz#22519)
- intl: Improve reproducibility by using bison (swbz#22432)
- sr_RS, bs_BA locales: make collation rules the same as for hr_HR (wbz#22534)
- hr_HR locale: various updates (swbz#10580)
- x86: Make a space in jmpbuf for shadow stack pointer
- malloc: Fix integer overflow when tcache is enabled (swbz#22375)
- locale: make forward accent sorting the default in collating (swbz#17750)
Upstream commit: a55430cb0e261834ce7a4e118dd9e0f2b7fb14bc
- elf: Properly compute offsets of note descriptor and next note (swbz#22370)
- cs_CZ locale: Base collation on iso14651_t1 (swbz#22336)
- Implement the mlock2 function
- Add _Float64x function aliases
- elf: Consolidate link map sorting
- pl_PL locale: Base collation on iso14651_t1 (swbz#22469)
- nss: Export nscd hash function as __nss_hash (swbz#22459)