You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
1
(4) |
2
|
3
(2) |
4
(11) |
5
(3) |
6
(15) |
|
7
(8) |
8
(8) |
9
(9) |
10
(13) |
11
(11) |
12
(2) |
13
(13) |
|
14
(12) |
15
(15) |
16
(15) |
17
(18) |
18
(10) |
19
(2) |
20
(11) |
|
21
(14) |
22
(10) |
23
(2) |
24
(11) |
25
(5) |
26
|
27
|
|
28
(1) |
29
(22) |
30
(7) |
31
(2) |
|
|
|
|
From: <sv...@va...> - 2014-12-03 22:53:08
|
Author: florian
Date: Wed Dec 3 22:53:00 2014
New Revision: 14798
Log:
Add -Wformat -Wformat-security to the list of compile flags.
This was not as straight forward as expected. Specifically, adding the
new flag to CFLAGS in configure.ac did not work and was causing
compiler warnings. For instance, compiling memcheck/tests/execve2.c will
generate a -Wnonnull warning even though the testcase is explicitly
compiled with -Wno-nonnull. The reason is that (a) -Wformat is implied by
-Wnonnull and (b) the list of compiler flags gets assembled in the wrong
order. The culprit appears to be that we modify CFLAGS in configure.ac and
that really is not the right place. Conceptually, configure should determine
tool-chain capabilities and not assemble compiler flags. That should be done
in Makefiles. This patch entangles all this.
So, whatever was added to CFLAGS in configure.ac has now been moved to
Makefile.all.am and Makefile.tool-tests.am. Those are:
-Wno-long-long
-Wwrite-strings
-Wcast-qual
-fno-stack-protector
Note, that this change allows us to simplify Makefile.tool-tests.am which
in the past was disabling some of those flags (e.g. by adding -Wno-cast-qual
again).
In case of the clang compiler, extra command line options are needed. I've
moved those into a separate 'if COMPILER_IS_CLANG' section and not merge
them into baseline flags.
Related to BZ 334727.
Modified:
trunk/Makefile.all.am
trunk/Makefile.tool-tests.am
trunk/configure.ac
trunk/memcheck/tests/vbit-test/Makefile.am
Modified: trunk/Makefile.all.am
==============================================================================
--- trunk/Makefile.all.am (original)
+++ trunk/Makefile.all.am Wed Dec 3 22:53:00 2014
@@ -105,10 +105,20 @@
-Wpointer-arith \
-Wstrict-prototypes \
-Wmissing-declarations \
- @FLAG_W_NO_TAUTOLOGICAL_COMPARE@ \
+ -Wno-long-long \
+ @FLAG_W_CAST_QUAL@ \
+ @FLAG_W_WRITE_STRINGS@ \
+ @FLAG_W_FORMAT@ \
+ @FLAG_W_FORMAT_SECURITY@ \
+ @FLAG_FNO_STACK_PROTECTOR@ \
-fno-strict-aliasing \
-fno-builtin
+if COMPILER_IS_CLANG
+AM_CFLAGS_BASE += -Wno-cast-align -Wno-self-assign \
+ -Wno-tautological-compare
+endif
+
# These flags are used for building the preload shared objects (PSOs).
# The aim is to give reasonable performance but also to have good
# stack traces, since users often see stack traces extending
Modified: trunk/Makefile.tool-tests.am
==============================================================================
--- trunk/Makefile.tool-tests.am (original)
+++ trunk/Makefile.tool-tests.am Wed Dec 3 22:53:00 2014
@@ -18,8 +18,10 @@
# Nb: Tools need to augment these flags with an arch-selection option, such
# as $(AM_FLAG_M3264_PRI).
-AM_CFLAGS = -Winline -Wall -Wshadow -g
-AM_CXXFLAGS = -Winline -Wall -Wshadow -g
+AM_CFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
+ @FLAG_FNO_STACK_PROTECTOR@
+AM_CXXFLAGS = -Winline -Wall -Wshadow -Wno-long-long -g \
+ @FLAG_FNO_STACK_PROTECTOR@
# Include AM_CPPFLAGS in AM_CCASFLAGS to allow for older versions of
# automake; see comments in Makefile.all.am for more detail.
AM_CCASFLAGS = $(AM_CPPFLAGS)
@@ -28,21 +30,17 @@
noinst_DSYMS = $(check_PROGRAMS)
endif
-if HAS_WRITE_STRINGS_WARNING
-CFLAGS += -Wno-write-strings
-endif
-
if COMPILER_IS_CLANG
-CFLAGS += -Wno-format-extra-args # perf/tinycc.c
-CFLAGS += -Wno-literal-range # none/tests/amd64/fxtract.c
-CFLAGS += -Wno-string-plus-int # drd/tests/annotate_ignore_rw.c
-CXXFLAGS += -Wno-unused-private-field # drd/tests/tsan_unittest.cpp
+AM_CFLAGS += -Wno-format-extra-args # perf/tinycc.c
+AM_CFLAGS += -Wno-literal-range # none/tests/amd64/fxtract.c
+AM_CFLAGS += -Wno-tautological-constant-out-of-range-compare # ...../aes.c
+AM_CFLAGS += -Wno-self-assign # memcheck/tests/unit_libcbase.c
+AM_CFLAGS += -Wno-string-plus-int # drd/tests/annotate_ignore_rw.c
+AM_CFLAGS += -Wno-uninitialized # clang 3.4.2 and earlier
+AM_CFLAGS += -Wno-unused-value # clang 3.0.0
+AM_CXXFLAGS += -Wno-unused-private-field # drd/tests/tsan_unittest.cpp
endif
-# Compile testcases without -Wcast-qual
-CFLAGS += -Wno-cast-qual
-CXXFLAGS += -Wno-cast-qual
-
check-local: build-noinst_DSYMS
clean-local: clean-noinst_DSYMS
Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac (original)
+++ trunk/configure.ac Wed Dec 3 22:53:00 2014
@@ -16,10 +16,15 @@
AM_MAINTAINER_MODE
#----------------------------------------------------------------------------
+# Do NOT modify these flags here. Except in feature tests in which case
+# the original values must be properly restored.
+#----------------------------------------------------------------------------
+CFLAGS="$CFLAGS"
+CXXFLAGS="$CXXFLAGS"
+
+#----------------------------------------------------------------------------
# Checks for various programs.
#----------------------------------------------------------------------------
-CFLAGS="-Wno-long-long $CFLAGS"
-CXXFLAGS="-Wno-long-long $CXXFLAGS"
AC_PROG_LN_S
AC_PROG_CC
@@ -145,11 +150,6 @@
AM_CONDITIONAL(COMPILER_IS_CLANG, test $is_clang = clang -o $is_clang = applellvm)
AM_CONDITIONAL(COMPILER_IS_ICC, test $is_clang = icc)
-if test $is_clang = clang -o $is_clang = applellvm ; then
- CFLAGS="$CFLAGS -Wno-tautological-compare -Wno-cast-align -Wno-self-assign"
- CXXFLAGS="$CXXFLAGS -Wno-tautological-compare -Wno-cast-align -Wno-self-assign"
-fi
-
# Note: m4 arguments are quoted with [ and ] so square brackets in shell
# statements have to be quoted.
case "${is_clang}-${gcc_version}" in
@@ -1686,11 +1686,6 @@
])
AC_GCC_WARNING_COND([pointer-sign], [HAS_POINTER_SIGN_WARNING])
-AC_GCC_WARNING_COND([write-strings], [HAS_WRITE_STRINGS_WARNING])
-if test $has_warning_flag = yes; then
- CFLAGS="$CFLAGS -Wwrite-strings"
- CXXFLAGS="$CXXFLAGS -Wwrite-strings"
-fi
# Convenience function to check whether GCC supports a particular
# warning option. Similar to AC_GCC_WARNING_COND, but does a
@@ -1712,14 +1707,31 @@
CFLAGS=$safe_CFLAGS
])
+# Convenience function. Like AC_GCC_WARNING_SUBST_NO, except it substitutes
+# -W$1 (instead of -Wno-$1).
+AC_DEFUN([AC_GCC_WARNING_SUBST],[
+ AC_MSG_CHECKING([if gcc accepts -W$1])
+ safe_CFLAGS=$CFLAGS
+ CFLAGS="-W$1"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[;]])], [
+ AC_SUBST([$2], [-W$1])
+ AC_MSG_RESULT([yes])], [
+ AC_SUBST([$2], [])
+ AC_MSG_RESULT([no])])
+ CFLAGS=$safe_CFLAGS
+])
+
AC_GCC_WARNING_SUBST_NO([empty-body], [FLAG_W_NO_EMPTY_BODY])
AC_GCC_WARNING_SUBST_NO([format-zero-length], [FLAG_W_NO_FORMAT_ZERO_LENGTH])
-AC_GCC_WARNING_SUBST_NO([tautological-compare], [FLAG_W_NO_TAUTOLOGICAL_COMPARE])
AC_GCC_WARNING_SUBST_NO([nonnull], [FLAG_W_NO_NONNULL])
AC_GCC_WARNING_SUBST_NO([overflow], [FLAG_W_NO_OVERFLOW])
AC_GCC_WARNING_SUBST_NO([uninitialized], [FLAG_W_NO_UNINITIALIZED])
AC_GCC_WARNING_SUBST_NO([unused-function], [FLAG_W_NO_UNUSED_FUNCTION])
AC_GCC_WARNING_SUBST_NO([static-local-in-inline], [FLAG_W_NO_STATIC_LOCAL_IN_INLINE])
+AC_GCC_WARNING_SUBST([write-strings], [FLAG_W_WRITE_STRINGS])
+AC_GCC_WARNING_SUBST([format], [FLAG_W_FORMAT])
+AC_GCC_WARNING_SUBST([format-security], [FLAG_W_FORMAT_SECURITY])
+AC_GCC_WARNING_SUBST([cast-qual], [FLAG_W_CAST_QUAL])
# does this compiler support -Wextra or the older -W ?
@@ -1748,14 +1760,6 @@
])
CFLAGS=$safe_CFLAGS
-# does this compiler support -Wcast-qual ?
-AC_GCC_WARNING_COND([cast-qual], [HAS_CAST_QUAL_WARNING])
-if test $has_warning_flag = yes; then
- CFLAGS="$CFLAGS -Wcast-qual"
- CXXFLAGS="$CXXFLAGS -Wcast-qual"
-fi
-
-
# does this compiler support -fno-stack-protector ?
AC_MSG_CHECKING([if gcc accepts -fno-stack-protector])
@@ -1777,12 +1781,6 @@
AC_SUBST(FLAG_FNO_STACK_PROTECTOR)
-if test x$no_stack_protector = xyes; then
- CFLAGS="$CFLAGS -fno-stack-protector"
- CXXFLAGS="$CXXFLAGS -fno-stack-protector"
-fi
-
-
# does this compiler support --param inline-unit-growth=... ?
AC_MSG_CHECKING([if gcc accepts --param inline-unit-growth])
Modified: trunk/memcheck/tests/vbit-test/Makefile.am
==============================================================================
--- trunk/memcheck/tests/vbit-test/Makefile.am (original)
+++ trunk/memcheck/tests/vbit-test/Makefile.am Wed Dec 3 22:53:00 2014
@@ -33,13 +33,13 @@
valgrind.c
vbit_test_SOURCES = $(SOURCES)
-vbit_test_CPPFLAGS = $(AM_CPPFLAGS) \
+vbit_test_CPPFLAGS = $(AM_CPPFLAGS_PRI) \
-I$(top_srcdir)/include \
-I$(top_srcdir)/memcheck \
-I$(top_srcdir)/VEX/pub
-vbit_test_CFLAGS = $(AM_CFLAGS) -std=c99
+vbit_test_CFLAGS = $(AM_CFLAGS_PRI) -std=c99
vbit_test_DEPENDENCIES =
vbit_test_LDADD =
-vbit_test_LDFLAGS =
+vbit_test_LDFLAGS = $(AM_CFLAGS_PRI) -std=c99
vbit_test_LINK = $(LINK)
$(LINK) $(vbit_test_CFLAGS) $(vbit_test_LDFLAGS)
|
|
From: <sv...@va...> - 2014-12-03 22:48:38
|
Author: florian
Date: Wed Dec 3 22:48:29 2014
New Revision: 14797
Log:
Add script. Comes in handy when messing with the build system
to make sure no compiler flags get lost (as they did at some
point in the past).
Added:
trunk/auxprogs/compare-build-logs (with props)
Added: trunk/auxprogs/compare-build-logs
==============================================================================
--- trunk/auxprogs/compare-build-logs (added)
+++ trunk/auxprogs/compare-build-logs Wed Dec 3 22:48:29 2014
@@ -0,0 +1,196 @@
+#!/usr/bin/env perl
+
+# Lame script to compare two build logs.
+#
+# The script intercepts directory changes and compiler invocations and
+# compares the compiler invocations for equality. Equality is defined
+# as "same options in both invocations ignoring order". So we only test
+# a necessary condition.
+#
+# Both builds must be configured with the same --prefix. Otherwise,
+# the value of -DVG_LIBDIR= will differ. They also need to use the same
+# compiler.
+
+use Getopt::Long;
+use strict;
+use warnings;
+
+my $prog_name = "compare-build-logs";
+
+my $usage=<<EOF;
+USAGE
+
+ $prog_name log1 log2
+
+ [--gcc] intercept GCC invocations (this is default)
+
+ [--clang] intercept clang invocations
+
+ [-v] verbose mode
+
+ log-file1
+
+ log-file2
+EOF
+
+my $compiler = "gcc";
+my $verbose = 0;
+
+GetOptions( "gcc" => sub { $compiler = "gcc" },
+ "clang" => sub { $compiler = "clang" },
+ "v" => sub { $verbose = 1 },
+ ) || die $usage;
+
+my $num_arg = $#ARGV + 1;
+
+if ($num_arg != 2) {
+ die $usage;
+}
+
+my $log1 = $ARGV[0];
+my $log2 = $ARGV[1];
+
+# Hashes: relative filename -> compiler invocation
+my %cmd1 = read_log_file($log1);
+my %cmd2 = read_log_file($log2);
+
+# Compare the log files
+
+foreach my $file (keys %cmd1) {
+ if (! $cmd2{$file}) {
+ print "*** $file missing in $log2\n";
+ } else {
+ compare_invocations($file, $cmd1{$file }, $cmd2{$file});
+ }
+}
+foreach my $file (keys %cmd2) {
+ if (! $cmd1{$file}) {
+ print "*** $file missing in $log1\n";
+ }
+}
+
+exit 0;
+
+# Compare two lines |c1| and |c2| which are compiler invocations for |file|.
+# Basically, we look at a compiler invocation as a sequence of blank-separated
+# options.
+sub compare_invocations {
+ my ($file, $c1, $c2) = @_;
+ my ($found1, $found2);
+# print "COMPARE $file\n";
+
+# Remove stuff that has embedded spaces
+
+# Remove: `test -f 'whatever.c' || echo './'`
+ $c1 =~ s|(`[^`]*`)||;
+ $found1 = $1;
+ $c2 =~ s|(`[^`]*`)||;
+ $found2 = $1;
+ if ($found1 && $found2) {
+ die if ($found1 ne $found2);
+ }
+
+# Remove: -o whatever
+ $c1 =~ s|-o[ ][ ]*([^ ][^ ]*)||;
+ $found1 = $1;
+ $c2 =~ s|-o[ ][ ]*([^ ][^ ]*)||;
+ $found2 = $1;
+ if ($found1 && $found2) {
+ die if ($found1 ne $found2);
+ }
+
+# The remaining lines are considered to be blank-separated options and file
+# names. They should be identical in both invocations (but in any order).
+ my %o1 = ();
+ my %o2 = ();
+ foreach my $k (split /\s+/,$c1) {
+ $o1{$k} = 1;
+ }
+ foreach my $k (split /\s+/,$c2) {
+ $o2{$k} = 1;
+ }
+# foreach my $zz (keys %o1) {
+# print "$zz\n";
+# }
+ foreach my $k (keys %o1) {
+ if (! $o2{$k}) {
+ print "*** '$k' is missing in compilation of '$file' in $log2\n";
+ }
+ }
+ foreach my $k (keys %o2) {
+ if (! $o1{$k}) {
+ print "*** '$k' is missing in compilation of '$file' in $log1\n";
+ }
+ }
+}
+
+# Read a compiler log file.
+# Return hash: relative (to build root) file name -> compiler invocation
+sub read_log_file
+{
+ my ($log) = @_;
+ my $dir = "";
+ my $root = "";
+ my %cmd = ();
+
+ print "...reading $log\n" if ($verbose);
+
+ open(LOG, "$log") || die "cannot open $log\n";
+ while (my $line = <LOG>) {
+ chomp $line;
+ if ($line =~ /^make/) {
+ if ($line =~ /Entering directory/) {
+ $dir = $line;
+ $dir =~ s/^.*`//;
+ $dir =~ s/'.*//;
+ if ($root eq "") {
+ $root = $dir;
+ # Append a slash if not present
+ $root = "$root/" if (! ($root =~ /\/$/));
+ print "...build root is $root\n" if ($verbose);
+ }
+# print "DIR = $dir\n";
+ next;
+ }
+ }
+ if ($line =~ /^\s*[^\s]*$compiler\s/) {
+ # If line ends in \ read continuation line.
+ while ($line =~ /\\$/) {
+ my $next = <LOG>;
+ chomp($next);
+ $line =~ s/\\$//;
+ $line .= $next;
+ }
+
+ my $file = extract_file($line);
+ $file = "$dir/$file"; # make absolute
+ $file =~ s/$root//; # remove build root
+# print "FILE $file\n";
+ $cmd{"$file"} = $line;
+ }
+ }
+ close(LOG);
+
+ my $num_invocations = int(keys %cmd);
+
+ if ($num_invocations == 0) {
+ print "*** File $log does not contain any compiler invocations\n";
+ } else {
+ print "...found $num_invocations invocations\n" if ($verbose);
+ }
+ return %cmd;
+}
+
+# Extract a file name from the command line. Assume there is a -o filename
+# present. If not, issue a warning.
+#
+sub extract_file {
+ my($line) = @_;
+# Look for -o executable
+ if ($line =~ /-o[ ][ ]*([^ ][^ ]*)/) {
+ return $1;
+ } else {
+ print "*** Could not extract file name from $line\n";
+ return "UNKNOWN";
+ }
+}
|