annotate src/build-flex-1-fixes.patch @ 4584:a0e30199373f

build-flex: add patch for new gcc version issues (Bug #52708) * src/build-flex-1-fixes.patch: new file * dist-files.mk: add ref to build-flex-1-fixes.patch
author John D
date Thu, 21 Dec 2017 09:58:43 -0500
parents
children 073464b5e319
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4584
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
1 From 4b5111d9772b5c160340ca96f08d30d7f6db5cda Mon Sep 17 00:00:00 2001
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
2 From: Explorer09 <explorer09@gmail.com>
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
3 Date: Mon, 4 Sep 2017 08:28:53 +0800
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
4 Subject: [PATCH] scanner: Include flexdef.h at %top block of scan.l
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
5
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
6 config.h may define macros that alter the API of the standard library
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
7 funtions, and so it should be included before any other standard
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
8 header, even before the skeleton's standard header inclusion.
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
9
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
10 For example: config.h may #define _GNU_SOURCE that would expose the
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
11 reallocarray() prototype from <stdlib.h> on glibc 2.26+ systems. If we
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
12 include <stdlib.h> before config.h, reallocarray() would not be
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
13 available for use in lex file since the second include doesn't help
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
14 due to header guard.
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
15
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
16 For now our config.h might `#define malloc rpl_malloc` -- this
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
17 substitution must work before including stdlib.h, or else the compiler
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
18 will complain about missing prototypes, and may result in incorrect
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
19 code in scan.l (gcc warning: return makes pointer from integer without
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
20 a cast [-Wint-conversion]).
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
21
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
22 Fixes #247.
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
23 ---
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
24 src/scan.l | 7 ++++++-
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
25 1 file changed, 6 insertions(+), 1 deletion(-)
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
26
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
27 diff --git a/src/scan.l b/src/scan.l
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
28 index 3995bcf1..4f497acd 100644
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
29 --- a/src/scan.l
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
30 +++ b/src/scan.l
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
31 @@ -1,5 +1,11 @@
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
32 /* scan.l - scanner for flex input -*-C-*- */
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
33
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
34 +%top{
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
35 +/* flexdef.h includes config.h, which may contain macros that alter the API */
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
36 +/* of libc functions. Must include first before any libc header. */
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
37 +#include "flexdef.h"
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
38 +}
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
39 +
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
40 %{
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
41 /* Copyright (c) 1990 The Regents of the University of California. */
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
42 /* All rights reserved. */
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
43 @@ -32,7 +38,6 @@
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
44 /* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
45 /* PURPOSE. */
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
46
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
47 -#include "flexdef.h"
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
48 #include "parse.h"
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
49 extern bool tablesverify, tablesext;
a0e30199373f build-flex: add patch for new gcc version issues (Bug #52708)
John D
parents:
diff changeset
50 extern int trlcontxt; /* Set in parse.y for each rule. */