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)
Upstream commit: cccb6d4e87053ed63c74aee063fa84eb63ebf7b8
- sigwait can fail with EINTR (#1516394)
- Add memfd_create function
- resolv: Fix p_secstodate overflow handling (swbz#22463)
- resolv: Obsolete p_secstodate
- Avoid use of strlen in getlogin_r (swbz#22447)
- lv_LV locale: fix collation (swbz#15537)
- S390: Add cfi information for start routines in order to stop unwinding
- aarch64: Optimized memset for falkor
Upstream commit: 6b86036452b9ac47b4ee7789a50f2f37df7ecc4f
- CVE-2017-15804: glob: Fix buffer overflow during GLOB_TILDE unescaping
- powerpc: Use latest string function optimization for internal function calls
- math: No _Float128 support for ppc64le -mlong-double-64 (swbz#22402)
- tpi_PG locale: Fix wrong d_fmt
- aarch64: Disable lazy symbol binding of TLSDESC
- tpi_PG locale: fix syntax error (swbz#22382)
- i586: Use conditional branches in strcpy.S (swbz#22353)
- ffsl, ffsll: Declare under __USE_MISC, not just __USE_GNU
- csb_PL locale: Fix abmon/mon for March (swbz#19485)
- locale: Various yesstr/nostr/yesexpr/noexpr fixes (swbz#15260, swbz#15261)
- localedef: Add --no-warnings/--warnings option
- powerpc: Replace lxvd2x/stxvd2x with lvx/stvx in P7's memcpy/memmove
- locale: Use ASCII as much as possible in LC_MESSAGES
- Add new locale yuw_PG (swbz#20952)
- malloc: Add single-threaded path to malloc/realloc/calloc/memalloc
- i386: Replace assembly versions of e_powf with generic e_powf.c
- i386: Replace assembly versions of e_log2f with generic e_log2f.c
- x86-64: Add powf with FMA
- x86-64: Add logf with FMA
- i386: Replace assembly versions of e_logf with generic e_logf.c
- i386: Replace assembly versions of e_exp2f with generic e_exp2f.c
- x86-64: Add exp2f with FMA
- i386: Replace assembly versions of e_expf with generic e_expf.c
Upstream commit: 63b4baa44e8d22501c433c4093aa3310f91b6aa2
- Use make -O to serialize make output
- sysconf: Fix missing definition of UIO_MAXIOV on Linux (#1504165)
- Install correct bits/long-double.h for MIPS64 (swbz#22322)
- malloc: Fix deadlock in _int_free consistency check
- x86-64: Don't set GLRO(dl_platform) to NULL (swbz#22299)
- math: Add _Float128 function aliases
- locale: Add new locale mjw_IN (swbz#13994)
- aarch64: Rewrite elf_machine_load_address using _DYNAMIC symbol
- powerpc: fix check-before-set in SET_RESTORE_ROUND
- locale: Use U+202F as thousands separators in pl_PL locale (swbz#16777)
- math: Use __f128 to define FLT128_* constants in include/float.h for old GCC
- malloc: Improve malloc initialization sequence (swbz#22159)
- malloc: Use relaxed atomics for malloc have_fastchunks
- locale: New locale ca_ES@valencia (swbz#2522)
- math: Let signbit use the builtin in C++ mode with gcc < 6.x (swbz#22296)
- locale: Place monetary symbol in el_GR, el_CY after the amount (swbz#22019)
The former is more reliable because glibcsrcdir changes in case of a
release off the release/*/master branch (which does not have a
tarball), but glibcversion remains the same.
Upstream commit: c38a4bfd596db2be2b9c1f96715bdc833eab760a
- Switch to .9000 version numbers during development
- malloc: Use compat_symbol_reference in libmcheck (swbz#22050)
Upstream commit: 596f70134a8f11967c65c1d55a94a3a2718c731d
- Silence -O3 -Wall warning in malloc/hooks.c with GCC 7 (swbz#22052)
- locale: No warning for non-symbolic character (swbz#22295)
- locale: Allow "" int_curr_Symbol (swbz#22294)
- locale: Fix localedef exit code (swbz#22292)
- nptl: Preserve error in setxid thread broadcast in coredumps (swbz#22153)
- powerpc: Avoid putting floating point values in memory (swbz#22189)
- powerpc: Fix the carry bit on mpn_[add|sub]_n on POWER7 (swbz#22142)
- Support profiling PIE (swbz#22284)
Upstream commit: 1e26d35193efbb29239c710a4c46a64708643320
- malloc: Fix tcache leak after thread destruction (swbz#22111)
- powerpc: Fix IFUNC for memrchr.
- aarch64: Optimized implementation of memmove for Qualcomm Falkor
- Always do locking when iterating over list of streams (swbz#15142)
- abort: Do not flush stdio streams (swbz#15436)
Upstream commit: f4a6be2582b8dfe8adfa68da3dd8decf566b3983
- malloc: Abort on heap corruption, without a backtrace (swbz#21754)
- getaddrinfo: Return EAI_NODATA for gethostbyname2_r with NO_DATA (swbz#21922)
- getaddrinfo: Fix error handling in gethosts (swbz#21915) (swbz#21922)
- Place $(elf-objpfx)sofini.os last (swbz#22051)
- Various locale fixes (swbz#15332, swbz#22044)
Upstream commit: 5f9409b787c5758fc277f8d1baf7478b752b775d
- Drop glibc-rh952799.patch, applied upstream (#952799, swbz#22025)
- Various locale fixes (swbz#22022, swbz#22038, swbz#21951, swbz#13805,
swbz#21971, swbz#21959)
- MIPS/o32: Fix internal_syscall5/6/7 (swbz#21956)
- AArch64: Fix procfs.h not to expose stdint.h types
- iconv_open: Fix heap corruption on gconv_init failure (swbz#22026)
- iconv: Mangle __btowc_fct even without __init_fct (swbz#22025)
- Fix bits/math-finite.h _MSUF_ expansion namespace (swbz#22028)
- Provide a C++ version of iszero that does not use __MATH_TG (swbz#21930)
Addressed by this upstream commit in a different way:
commit eac43cbb8d808a40004aa0a4a286f5c5155beccb
Author: Florian Weimer <fweimer@redhat.com>
Date: Thu Aug 10 15:58:28 2017 +0200
malloc: Avoid optimizer warning with GCC 7 and -O3
The Perl Info generator in Texinfo 5.0 uses the input basename in the
output file, so the multi-arch conflict no longer happens, and the
Makefile tweak is not needed anymore.
This commit drops an overridden -fasynchronous-unwind-tables flag, which
had no effect.
We compile all of glibc with -fno-asynchronous-unwind-tables, so we can
drop glibc-fedora-ppc-unwind.patch.
Upstream commit: 2585d7b839559e665d5723734862fbe62264b25d
- Do not use generic selection in C++ mode
- Do not use __builtin_types_compatible_p in C++ mode (#1481205)
- x86-64: Check FMA_Usable in ifunc-mathvec-avx2.h (swbz#21966)
- Various locale fixes (swbz#21750, swbz#21960, swbz#21959, swbz#19852)
- Fix sigval namespace (swbz#21944)
- x86-64: Optimize e_expf with FMA (swbz#21912)
- Adjust glibc-rh827510.patch.
- Remove 'Buildroot' tag, 'Group' tag, and '%clean' section, and don't
remove the buildroot in %install, all per Fedora Packaging Guidelines
(#1476839)
Using eval affects command line parsing in the shell script. Call the
script directly, but do not quote $find_debuginfo_args, to splice its
contents into the argument list.
This works around an RPM change in the processing of macro argument lists.
Newer RPM versions split the argument list, so that %1 contains just eo,
and not the whole language list.
Instead, use %language_list directly. This is compatible with earlier
RPM versions, too.
Auto-sync with upstream release/2.26/master
Upstream commit: 2aad4b04ad7b17a2e6b0e66d2cb4bc559376617b
- Update to released 2.26 branch.
- getaddrinfo: Release resolver context on error in gethosts (swbz#21885)
Upstream commit: 91ac3a7d8474480685632cd25f844d3154c69fdf
- Drop glibc-rh1467518.patch in favor of upstream patch (#1467518)
- Fix pointer alignment in NSS group merge result construction (#1471985)
- Various locale fixes
Upstream commit: de895ddcd7fc45caeeeb0ae312311b8bd31d82c5:
- Added Fiji Hindi language locale for Fiji (swbz#21694).
- Added yesstr/nostr for nds_DE and nds_NL (swbz#21756).
- Added yesstr and nostr for Tigrinya (swbz#21759).
- Fix LC_MESSAGES and LC_ADDRESS for anp_IN (swbz#21760).
- Added yesstr/nostr and fix yesexpr for pap_AW and pap_CW (swbz#21757).
- Added Tongan language locale for Tonga (swbz#21728).
- [ARM] Fix ld.so crash when built using Binutils 2.29.
- Added yesstr and nostr for aa_ET (swbz#21768).
- New locale for bi_VU (swbz#21767).
- Disable single thread optimization for open_memstream
Dropped patches:
- armv7hl: Drop 32-bit ARM build fix, already in upstream master.
- s390x: Apply glibc fix again, removing PTRACE_GETREGS etc. (#1469536).
Upstream commit: 30200427a99e5ddac9bad08599418d44d54aa9aa
- Add per-thread cache to malloc
- Add Samoan language locale for Samoa
- Add Awajún / Aguaruna locale for Peru
- CVE-2010-3192: Avoid backtrace from __stack_chk_fail (swbz#12189)
- Add preadv2, writev2 RWF_NOWAIT flag (swbz#21738)
- Fix abday strings for ar_JO/ar_LB/ar_SY locales (swbz#21749)
- Fix abday strings for ar_SA locale (swbz#21748, swbz#19066)
- Set data_fmt for da_DK locale (swbz#17297)
- Add yesstr and nostr for the zh_HK locale (swbz#21733)
- Fix abday strings for the ksIN@devanagari locale (swbz#21743)
- Do not include _dl_resolv_conflicts in libc.a (swbz#21742)
- Test __memmove_chk, __memset_chk only in libc.so (swbz#21741)
- Add iI and eE to yesexpr and noexpr respectively for ts_ZA locale
- Add yesstr/nostr for kw_GB locale (swbz#21734)
- Add yesstr and nostr for the ts_ZA locale (swbz#21727)
- Fix LC_NAME for hi_IN locale (swbz#21729)
- Add yesstr and nostr for the xh_ZA locale (swbz#21724)
- Add yesstr and nostr for the zh_CN locale (swbz#21723)
- Fix full weekday names for the ks_IN@devanagari locale (swbz#21721)
- Various fixes to Arabic locales after CLDR import
Upstream commit: e237357a5a0559dee92261f1914d1fa2cd43a1a8
- Support an arbitrary number of search domains in the stub resolver (#168253)
- Detect and apply /etc/resolv.conf changes in libresolv (#1374239)
- Increase malloc alignment on i386 to 16 (swbz#21120)
- Make RES_ROTATE start with a random name server (swbz#19570)
- Fix tgmath.h totalorder, totalordermag return type (swbz#21687)
- Miscellaneous sys/ucontext.h namespace fixes (swbz#21457)
- Rename struct ucontext tag (swbz#21457)
- Call exit system call directly in clone (swbz#21512)
- powerpc64le: Enable float128
- getaddrinfo: Merge IPv6 addresses and IPv4 addresses (swbz#21295)
- Avoid .symver on common symbols (swbz#21666)
- inet_pton: Reject IPv6 addresses with many leading zeros (swbz#16637)
- Update to final released glibc 2.25.
The glibc rawhide builds must stay on 2.25 branch until
F26 branches from rawhide. This assures that we have ABI/API
guarantees provided by upstream. Please do not rebase rawhide
against glibc master.
Provide libcrypt and libcrypt-nss subpackages.
glibc has a Recommends: to prefer the NSS-based implementation.
glibc-devel requires that one of the two packages is installed.
Move NSS modules to subpackages
Add new file lists for the NSS modules and update the glibc and
glibc-devel file lists. Introduce a glibc-nss-devel package
for direct linking against NSS modules (which is rare and usually
unintended). Drop the obsoletes clause for nss_db.
We prefer scriptlet expansion (-e) over the use of rpm.expand in Lua.
The goal is to have a fully expanded Lua program with as little
dynamic processing as possible to simplify the operations carried
out in Lua.
The use of rpm.expand was only needed until COPR migrated from EL6
to Fedora, and with this complete we can remove the use of rpm.expand
in favour of scriptlet expansion.
Tested on Fedora Rawhide by verifying global setting of %_install_langs
macro changes installed locale-archive locales correctly.
Revert fix for “Preloading a replacement uname is causing environment
to be cleaned if libpthread is loaded”. UTS namespaces should now
offer a cleaner way yo do this.
First phase of sendmsg/recvmsg/sendmmsg/recvmmsg ABI revert:
GLIBC_2.24 compatibility symbols.
This should allow us to run old binaries (with the GLIBC_2.24 symbols)
while rebuild packages to use the old ABI again.
Drop glibc-nsswitch-Add-group-merging-support.patch, applied upstream.
Drop glibc-rh1252570.patch, alternative fixes applied upstream.
Adjust glibc-rh1315108.patch to minor upstream change.
Update SUPPORTED file.
Locales, translations, and locale sources are split into
distinct sub-packages. A meta-package is created for users
to install all languages. Transparent installation support
is provided via dnf langpacks.
This update brings 64-bit POWER support in line with
other distributions and removes the 32-bit POWER support.
We specify clearly exactly what we support for BE and LE
64-bit POWER.
- The generic hidden directive support is already used for
preinit/init/fini-array symbols so we drop the Fedora-specific
patch that does the same thing.
Reported by Dmitry V. Levin <ldv@altlinux.org>
- Require glibc-static for C++ tests.
- Require gcc-c++, libstdc++-static, and glibc-static only when needed.
- Fix --without docs to not leave info files.
The principal purpose of this change is to remove librtkaio support.
The Fedora system wide change request is here:
https://fedoraproject.org/wiki/Changes/GLIBC223_librtkaio_removal
- Build require gcc-c++ for the C++ tests.
- Support --without testsuite option to disable testing after build.
- Support --without benchtests option to disable microbenchmarks.
- Update --with bootstrap to disable benchtests, valgrind, documentation,
selinux, and nss-crypt during bootstrap.
- Support --without werror to disable building with -Werror.
- Support --without docs to disable build requirement on texinfo.
- Support --without valgrind to disable testing with valgrind.
- Remove c_stubs add-on and enable fuller support for static binaries.
- Remove librtkaio support (#1227855).
- glibc-bench-compare.patch: Merged upstream
- glibc-rh757881.patch: Fixed differently upstream
- glibc-revert-arena-threshold-fix.patch: Additional fixes on top of this
- glibc-rh841787.patch: Fixed differently upstream
- Set MODULE_NAME=librt for rtkaio
- Fix up glibc-rh741105.patch to continue to work with latest master
- Move split out architecture-dependent header files into devel package
and keep generic variant in headers package, thus keeping headers package
content and file list identical across multilib rpms.
Create a new package glibc-benchtests with the benchmark binaries that
one may download and run to benchmark glibc for their machine. More
importantly, the glibc-bench-compare and bench.mk scripts can run
benchmarks and compare performance of two arbitrary glibc versions as
long as both versions have the glibc-benchtests package.
Usage:
Scenario 1: Compare two build numbers, e.g.:
/usr/libexec/glibc-benchtests/glibc-bench-compare 2.20-1.fc21 2.21.90-11.fc22
If a second build is omitted, comparison is done with the currently
installed glibc.
Scenario 2: Compare two downloaded rpms - only glibc, glibc-benchtests
and glibc-common are needed for both versions. e.g.:
/usr/libexec/glibc-benchtests/glibc-bench-compare -p <dir1> <dir2>
Fix up a Fedora patch to pass the address of the mutex in the mstate
instead of the mstate itself. This fizes the Werror warning seen on
all non-x86 builds.
- Disable lock elision support for Intel hardware until microcode
updates can be done in early bootup (#1146967).
- Fix building test tst-strtod-round for ARM.
There was no rationale given for the change to fix bz#737223 and the
fix was never even proposed upstream. This patch causes a test
failure in the glibc testsuite. Revert the patch for now and do a
proper documented analysis if this actually results in any kind of
failure.
build-locale-archive was switched to link dynamically in 538b3c08
without giving a proper reason for it. The earlier static build was
wrong though, since it would happen against the installed glibc and
not the glibc being built. The dynamic link was also similarly wrong,
more so because it would build against the built libc.so.6 and then
try to load the system libc.so.6. This results in a failure in %post
in cases when the new build-locale-archive may have symbol references
that are not present in the old glibc.
There seem to be no good reason to run build-locale-archive with the
system libc.so.6, so the change is now reverted with a fixed up static
link that links against the build static libc.a.
- Allow up to 32 dlopened modules to use static TLS (#1124987).
- Run glibc tests in %%check section of RPM spec file.
- Do not run tests with `-k` and fail if any test fails to build.
in order to work around GCC reordering compares across the TLS
descriptor sequence (GCC PR61545.) Committing a (temporary) fix here
allows us to avoid rebuilding the world with gcc 4.9.0-11.fc21.
Following commit upstream removed the definition for elfobjdir in
favour of elf-objpfx. Adjust rtkaio to build with this.
commit 4134b50d6789c333707b1861a32314805bd0de5e
Author: Joseph Myers <joseph@codesourcery.com>
Date: Wed May 21 16:52:08 2014 +0000
Consistently use $(elf-objpfx).
As previously noted
<https://sourceware.org/ml/libc-alpha/2013-05/msg00696.html>,
$(elf-objpfx) and $(elfobjdir) are redundant and should be
consolidated. This patch consolidates on $(elf-objpfx) (for
consistency with $(csu-objpfx)), also changing direct uses of
$(common-objpfx)elf/ to use $(elf-objpfx).
After each test run we output all of the test results
to the build logs. This includes PASS, FAIL, XPASS,
XFAIL results and the original error codes of the tests.
Without this fix the new upstream PASS/FAIL support
hides the test results from the build logs.
Currently the nscd service is installed in systemd as a simple
service, which means that it is able to handle its own errors and does
not quit. Since nscd does not fit that description, i.e. it can exit
on errors like, say, failing to parse nscd.conf, it should be declared
as forking instead.
The call to open_tmpl_archive was being passed a pointer to an
object allocated on the stack. The object on the stack is not
guaranteed to be initialized to zero so we need to minimally
initialize `fname' in the struct locarhandle to ensure that
open_tml_archive loads the default tempalte.
This error was seen while debugging glibc installs in a qemu
VM where it is more likely the stack pages were dirty. It has
not been reported on non-VM systems.
- Allow applications to use pthread_atfork without explicitly
requiring libpthread.so. (#1013801)
- Support `--list-archive FILE' in localedef utility.
- Allow ldconfig cached objects previously marked as hard or soft
ABI to now become unmarked without raising an error. This works
around a binutils bug that caused objects to become unmarked.
(#1009145)
This patch fixes the spec file to use %{_prefix} everywhere that
is related to the package and subpackages. However, external
utilities are still referenced by their absolute path which
includes /usr.
The `Move to /usr' transition for glibc can not be completed
without support from RPM. There are too many Requires that
explicitly reference non-/usr paths in various spec files.
Reverting this patch is the only way forward until we find
a transitional way to support this.
All relevant files are not installed to /usr, with the expectation
that the distribution will provide compatibility links from the
old paths to the new paths. All uses of a bare `/usr' have been
replaced with uses of `%{_prefix}' for files installed by the
package.
Two large chunks of identical code are used to install the
non-default runtimes. This patch refactors that code into
the function `install_different' which is used to
conditionally install any libaries where different in the
new multilib (different from the default).