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).
The find-debuginfo.sh script will return duplicate entries of
certain files even though the input is uinque. This results
in rpm build warnings like this:
~~~
Processing files: glibc-debuginfo-common-2.17.90-10.fc20.x86_64
warning: File listed twice: /usr/lib/debug/usr/sbin/build-locale-archive.debug
warning: File listed twice: /usr/lib/debug/usr/sbin/nscd.debug
warning: File listed twice: /usr/lib/debug/usr/sbin/zdump.debug
warning: File listed twice: /usr/lib/debug/usr/sbin/zic.debug
~~~
The solutions is to make the output file list uinque by post
processing it after it is output by find-debuginfo.sh.
The solution removes the warnings and produces no visible
change in the output rpms.
Using %{_libdir} is shorter to write and read and
means exactly the same thing. It also facilitates
experimenting with package layout by changing only
_libdir.
Testing showed that unstripped libbsd.a was missing from the list
of common debuginfo files. The fix is to move the "Misc" phase
to before the phase that adds files to the debuginfo. This way
the debuginfo files are computed after all files are in place.
This patch makes the spec file slightly more friendly to non-shell
readers by changing "> foo" to "truncate -s 0 foo" and removes
the use of ">> foo". The use of ">> foo" is perhaps the most
interesting shell trick which is used to create a zero sized
debuginfocommon.filelist, but only if it doesn't already exist.
This allows the subsequent command to use debuginfocommon.filelist
without requiring it be wrapped in a check for
%{debuginfocommonarches}. That seems a little obtuse and certainly
confusing to the reader who expects such a check for anything
that is related to the debuginfo common package.
The middle of the install phase is now clearly split into:
* Remove files we don't distribute.
* Install info files.
* Install locale files.
* Install configuration files for services.
* Install debug copies of unstripped static libs.
* Miscellaneous.
We had 16 incorrect %changelog dates that referenced
either the wrong day or wrong date for the day. All
such entries have been corrected using version control
information to determine the correct or most plausible
date. This fixes the Koji warnings about incorrect
dates in the %changelog.