This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.26-295-g99d6791
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 5 Sep 2017 15:14:31 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.26-295-g99d6791
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 99d6791899c43eb31b4d1896134501d814da7741 (commit)
from 3f802aeb3403a558426b50d42a50c6bfcc6cc425 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=99d6791899c43eb31b4d1896134501d814da7741
commit 99d6791899c43eb31b4d1896134501d814da7741
Author: Joseph Myers <joseph@codesourcery.com>
Date: Tue Sep 5 15:14:09 2017 +0000
Fix pcprofiledump cross-endian condition (bug 22086).
debug/pcprofiledump.c contains code that tries to handle other-endian
data. This uses a condition "(word & 0xfffffff0) == bswap_32
(0xdeb00000)". This condition is always false (the LHS always has the
low four bits zero, the RHS doesn't); a correct comparison would use
0x0fffffff. This results in -Werror=tautological-compare build
failures with the tile version of bits/byteswap.h and mainline GCC.
https://sourceware.org/ml/libc-testresults/2017-q3/msg00400.html
pcprofiledump.c: In function 'main':
pcprofiledump.c:118:39: error: bitwise comparison always evaluates to false
[-Werror=tautological-compare]
int must_swap = (word & 0xfffffff0) == bswap_32 (0xdeb00000);
^~
This patch fixes the condition. Tested for x86_64, and with
build-many-glibcs.py that it fixes the build for tilegx-linux-gnu.
(Note that I have not tested the actual pcprofiledump functionality,
native or cross endian, which lacks any testsuite coverage.)
[BZ #22086]
* debug/pcprofiledump.c (main): Use byte-swapped mask when
comparing word with byte-swapped constant.
diff --git a/ChangeLog b/ChangeLog
index 00255b7..d148e74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-09-05 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #22086]
+ * debug/pcprofiledump.c (main): Use byte-swapped mask when
+ comparing word with byte-swapped constant.
+
2017-09-05 Chris Leonard <cjlhomeaddress@gmail.com>
[BZ #20498]
diff --git a/debug/pcprofiledump.c b/debug/pcprofiledump.c
index a32cdef..6a9641e 100644
--- a/debug/pcprofiledump.c
+++ b/debug/pcprofiledump.c
@@ -115,7 +115,7 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, errno, _("cannot read header"));
/* Check whether we have to swap the byte order. */
- int must_swap = (word & 0xfffffff0) == bswap_32 (0xdeb00000);
+ int must_swap = (word & 0x0fffffff) == bswap_32 (0xdeb00000);
if (must_swap)
word = bswap_32 (word);
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 ++++++
debug/pcprofiledump.c | 2 +-
2 files changed, 7 insertions(+), 1 deletions(-)
hooks/post-receive
--
GNU C Library master sources