behoffski wrote:

         In file included from mbsstr.c:32:0:
         str-kmp.h: In function 'knuth_morris_pratt':
         str-kmp.h:35:1: error: stack protector not protecting local
variables: variable length buffer [-Werror=stack-protector]
          knuth_morris_pratt (const UNIT *haystack,
          ^

These warnings don't indicate any bugs in the code; they're merely about incomplete run-time checking in the underlying implementation. I was particularly amused by a refusal to compile a function on the grounds that its code doesn't use the stack!

So let's just disable the warnings.  I pushed the attached patch.

Valgrind and -fsanitize=address are incompatible

Thanks, I didn't know that. Too bad, but understandable. Neither tool dominates the other, so I guess we'll have to use them separately.
From 8ade09bf8173b39e42ef3dcbcf75721809541d69 Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email protected]>
Date: Tue, 17 Jun 2014 12:09:16 -0700
Subject: [PATCH] build: avoid -Wstack-protector

This allows the use of --enable-gcc-warnings on Gentoo and Ubuntu.
See: http://bugs.gnu.org/17793
* configure.ac (WERROR_CFLAGS): Avoid -Wstack-protector.

This can be worked around, but the cure is worse than the disease.
---
 configure.ac | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configure.ac b/configure.ac
index 7ac2937..3315855 100644
--- a/configure.ac
+++ b/configure.ac
@@ -117,6 +117,7 @@ if test "$gl_gcc_warnings" = yes; then
   nw="$nw -Wsystem-headers"         # Don't let system headers trigger warnings
   nw="$nw -Wpadded"                 # Our structs are not padded
   nw="$nw -Wvla"                    # warnings in gettext.h
+  nw="$nw -Wstack-protector"        # generates false alarms for useful code
   nw="$nw -Wswitch-default"         # Too many warnings for now
   nw="$nw -Wunsafe-loop-optimizations" # OK to suppress unsafe optimizations
   nw="$nw -Winline"                 # streq.h's streq4, streq6 and strcaseeq6
-- 
1.9.3

Reply via email to