flex: backport Debian patches to fix generated code warnings

The generated parser had warnings regarding signess and return check
which makes Linux Kernel's perf tool from 3.4 release to fail without
those patches.

(From OE-Core rev: f3d7197252d1ede627a561fbd5b3b7fb759bf75b)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Otavio Salvador
2012-04-11 03:19:52 +00:00
committed by Richard Purdie
parent a5afc58319
commit 5612bf3339
3 changed files with 105 additions and 1 deletions

View File

@@ -0,0 +1,59 @@
Wrap ECHO macro to avoid FORTIFY warnings
This change will enable flex scanners to be compiled with
-D_FORTIFY_SOURCE=2.
Signed-off-by: Manoj Srivastava <srivasta@debian.org>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Origin: Cherry picked from Debian
Upstream-Status: Pending
---
flex.skl | 2 +-
scan.c | 2 +-
skel.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/flex.skl b/flex.skl
index 6ebf2fd..eaa355e 100644
--- a/flex.skl
+++ b/flex.skl
@@ -1074,7 +1074,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
%endif
%if-c++-only C++ definition
#define ECHO LexerOutput( yytext, yyleng )
diff --git a/scan.c b/scan.c
index d7f5db3..1a079bf 100644
--- a/scan.c
+++ b/scan.c
@@ -2093,7 +2093,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO fwrite( yytext, yyleng, 1, yyout )
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
diff --git a/skel.c b/skel.c
index ee9f6ef..b8a2b4b 100644
--- a/skel.c
+++ b/skel.c
@@ -1141,7 +1141,7 @@ const char *skel[] = {
"/* This used to be an fputs(), but since the string might contain NUL's,",
" * we now use fwrite().",
" */",
- "#define ECHO fwrite( yytext, yyleng, 1, yyout )",
+ "#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)",
"%endif",
"%if-c++-only C++ definition",
"#define ECHO LexerOutput( yytext, yyleng )",
--
1.7.9.5

View File

@@ -0,0 +1,42 @@
int is not the same size as size_t.
Signed-off-by: Manoj Srivastava <srivasta@debian.org>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Origin: Cherry picked from Debian
Upstream-Status: Pending
---
gen.c | 2 +-
scan.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/gen.c b/gen.c
index 848e2c5..5a5daef 100644
--- a/gen.c
+++ b/gen.c
@@ -1890,7 +1890,7 @@ void make_tables ()
outn ("\tif ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \\");
outn ("\t\t{ \\");
outn ("\t\tint c = '*'; \\");
- outn ("\t\tint n; \\");
+ outn ("\t\tsize_t n; \\");
outn ("\t\tfor ( n = 0; n < max_size && \\");
outn ("\t\t\t (c = getc( yyin )) != EOF && c != '\\n'; ++n ) \\");
outn ("\t\t\tbuf[n] = (char) c; \\");
diff --git a/scan.c b/scan.c
index 44559b6..15e2058 100644
--- a/scan.c
+++ b/scan.c
@@ -2105,7 +2105,7 @@ static int input (void );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- int n; \
+ size_t n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
--
1.7.9.5

View File

@@ -1,8 +1,11 @@
require flex.inc
PR = "r2"
PR = "r3"
LICENSE="BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=e4742cf92e89040b39486a6219b68067"
BBCLASSEXTEND = "native"
SRC_URI += "file://avoid-FORTIFY-warnings.patch \
file://int-is-not-the-same-size-as-size_t.patch"
SRC_URI[md5sum] = "10714e50cea54dc7a227e3eddcd44d57"
SRC_URI[sha256sum] = "0becbd4b2b36b99c67f8c22ab98f7f80c9860aec70f0350a0018f29a88704e7b"