[glibc] Resolves: #1146967
Carlos O'Donell
codonell at fedoraproject.org
Sat Sep 27 03:45:03 UTC 2014
commit f515946248e8990eeaad919b4b27c8d26b65eedb
Author: Carlos O'Donell <carlos at redhat.com>
Date: Fri Sep 26 23:44:17 2014 -0400
Resolves: #1146967
- 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.
glibc.spec | 104 ++++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 67 insertions(+), 37 deletions(-)
---
diff --git a/glibc.spec b/glibc.spec
index 6769404..eadca57 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -1,6 +1,6 @@
%define glibcsrcdir glibc-2.20-44-g68870f1
%define glibcversion 2.20.90
-%define glibcrelease 4%{?dist}
+%define glibcrelease 5%{?dist}
# Pre-release tarballs are pulled in from git using a command that is
# effectively:
#
@@ -190,6 +190,9 @@ Patch0047: %{name}-nscd-sysconfig.patch
# more testing.
Patch0050: %{name}-rh1124987.patch
+# Fix the tst-strtod-round.c test build failure.
+Patch0051: %{name}-stdlib-tst-strtod-round.c-Fix-build-on-ARM.patch
+
##############################################################################
#
# Patches from upstream
@@ -561,6 +564,7 @@ package or when debugging this package.
%patch2033 -p1
%patch2034 -p1
%patch0050 -p1
+%patch0051 -p1
##############################################################################
# %%prep - Additional prep required...
@@ -690,6 +694,11 @@ build()
build_CFLAGS="$BuildFlags -g -O3 $*"
# Some configure checks can spuriously fail for some architectures if
# unwind info is present
+ #
+ # At the moment lock elision is temporarily disabled until we work
+ # out how to update the microcode in early boot to prevent the cpuid
+ # results from becoming stale. Once this is fixed add back:
+ # --enable-lock-elision \
configure_CFLAGS="$build_CFLAGS -fno-asynchronous-unwind-tables"
../configure CC="$GCC" CXX="$GXX" CFLAGS="$configure_CFLAGS" \
--prefix=%{_prefix} \
@@ -706,7 +715,6 @@ build()
%ifarch ppc64p7
--with-cpu=power7 \
%endif
- --enable-lock-elision \
--disable-profile --enable-nss-crypt ||
{ cat config.log; false; }
@@ -1422,6 +1430,53 @@ truncate -s 0 $RPM_BUILD_ROOT/var/cache/ldconfig/aux-cache
##############################################################################
%check
%if %{run_glibc_tests}
+
+# Run the glibc tests. If any tests fail to build we exit %check with an error
+# of 1, otherwise we print the test failure list and the failed test output
+# and exit with 0. In the future we want to compare against a baseline and
+# exit with 1 if the results deviate from the baseline.
+run_tests () {
+ truncate -s 0 check.log
+ tail -f check.log &
+ tailpid=$!
+ # Run the make a sub-shell (to avoid %check failing if make fails)
+ # but capture the status for use later. We use the normal sub-shell
+ # trick of printing the status. The actual result of the sub-shell
+ # is the successful execution of the echo.
+ status=$(set +e
+ make %{?_smp_mflags} check %{silentrules} > check.log 2>&1
+ status=$?
+ echo $status)
+ # Wait for the tail to catch up with the output and then kill it.
+ sleep 10
+ kill $tailpid
+ # Print the header, so we can find it, but skip the error printing
+ # if there aren't any failrues.
+ echo ===================FAILED TESTS=====================
+ if [ $status -ne 0 ]; then
+ # We are not running with `-k`, therefore a test build failure
+ # terminates the test run and that terminates %check with an
+ # error which terminates the build. We want this behaviour to
+ # ensure that all tests build, and all tests run.
+ # If the test result summary is not present it means one of
+ # tests failed to build.
+ if ! grep 'Summary of test results:' check.log; then
+ echo "FAIL: Some glibc tests failed to build."
+ exit 1
+ fi
+
+ # Print out information about all of the failed tests.
+ grep -e ^FAIL -e ^ERROR tests.sum \
+ | awk '{print $2}' \
+ | while read testcase;
+ do
+ echo "$testcase"
+ cat $testcase.out
+ echo -------------------------
+ done
+ fi
+}
+
# Increase timeouts
export TIMEOUTFACTOR=16
parent=$$
@@ -1430,17 +1485,7 @@ echo ====================TESTING=========================
# - Test the default runtime.
##############################################################################
pushd build-%{target}
-( make %{?_smp_mflags} check %{silentrules} 2>&1
- sleep 10s
- teepid="`ps -eo ppid,pid,command | awk '($1 == '${parent}' && $3 ~ /^tee/) { print $2 }'`"
- [ -n "$teepid" ] && kill $teepid
-) | tee check.log || :
-echo ===================FAILED TESTS=====================
-grep -e ^FAIL -e ^ERROR tests.sum | awk '{print $2}' | while read testcase; do
- echo "$testcase"
- cat $testcase.out
- echo -------------------------
-done
+run_tests
popd
##############################################################################
@@ -1449,17 +1494,7 @@ popd
%if %{buildxen}
echo ====================TESTING -mno-tls-direct-seg-refs=============
pushd build-%{target}-nosegneg
-( make %{?_smp_mflags} check %{silentrules} 2>&1
- sleep 10s
- teepid="`ps -eo ppid,pid,command | awk '($1 == '${parent}' && $3 ~ /^tee/) { print $2 }'`"
- [ -n "$teepid" ] && kill $teepid
-) | tee check.log || :
-echo ===================FAILED TESTS=====================
-grep -e ^FAIL -e ^ERROR tests.sum | awk '{print $2}' | while read testcase; do
- echo "$testcase"
- cat $testcase.out
- echo -------------------------
-done
+run_tests
popd
%endif
@@ -1469,20 +1504,10 @@ popd
%if %{buildpower6}
echo ====================TESTING -mcpu=power6=============
pushd build-%{target}-power6
-( if [ -d ../power6emul ]; then
+if [ -d ../power6emul ]; then
export LD_PRELOAD=`cd ../power6emul; pwd`/\$LIB/power6emul.so
- fi
- make %{?_smp_mflags} check %{silentrules} 2>&1
- sleep 10s
- teepid="`ps -eo ppid,pid,command | awk '($1 == '${parent}' && $3 ~ /^tee/) { print $2 }'`"
- [ -n "$teepid" ] && kill $teepid
-) | tee check.log || :
-echo ===================FAILED TESTS=====================
-grep -e ^FAIL -e ^ERROR tests.sum | awk '{print $2}' | while read testcase; do
- echo "$testcase"
- cat $testcase.out
- echo -------------------------
-done
+fi
+run_tests
popd
%endif
echo ====================TESTING DETAILS=================
@@ -1697,6 +1722,11 @@ rm -f *.filelist*
%endif
%changelog
+* Fri Sep 26 2014 Carlos O'Donell <carlos at redhat.com> - 2.20.90-5
+- 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.
+
* Tue Sep 23 2014 Siddhesh Poyarekar <siddhesh at redhat.com> - 2.20.90-4
- Sync with upstream master.
- Don't own the common debuginfo directories (#1144853).
More information about the scm-commits
mailing list