]>
Commit | Line | Data |
---|---|---|
0038d79b JP |
1 | This patch fixes a flex-2.6.4 build failure on x86_64 and possibly other |
2 | architectures where `size_t' is larger than `int'. The failure occurs as | |
3 | follows: | |
4 | ||
5 | A missing `reallocarray' prototype during compilation means that the | |
6 | compiler assumes an `int' return type. When compiling with `-pie' (standard | |
7 | for Fedora), addresses on the heap can be larger than `int' can store. Thus, | |
8 | pointers returned from `reallocarray' are truncated and any read/write to | |
9 | them leads to a SIGSEGV. | |
10 | ||
11 | From 24fd0551333e7eded87b64dd36062da3df2f6380 Mon Sep 17 00:00:00 2001 | |
12 | From: Explorer09 <explorer09@gmail.com> | |
13 | Date: Mon, 4 Sep 2017 10:47:33 +0800 | |
14 | Subject: [PATCH] build: AC_USE_SYSTEM_EXTENSIONS in configure.ac. | |
15 | ||
16 | This would, e.g. define _GNU_SOURCE in config.h, enabling the | |
17 | reallocarray() prototype in glibc 2.26+ on Linux systems with that | |
18 | version of glibc. | |
19 | ||
20 | Fixes #241. | |
21 | --- | |
22 | configure.ac | 2 ++ | |
23 | 1 file changed, 2 insertions(+) | |
24 | ||
25 | Index: b/configure.ac | |
26 | =================================================================== | |
27 | --- a/configure.ac | |
28 | +++ b/configure.ac | |
29 | @@ -25,8 +25,10 @@ | |
30 | # autoconf requirements and initialization | |
31 | ||
32 | AC_INIT([the fast lexical analyser generator],[2.6.4],[flex-help@lists.sourceforge.net],[flex]) | |
33 | +AC_PREREQ([2.60]) | |
34 | AC_CONFIG_SRCDIR([src/scan.l]) | |
35 | AC_CONFIG_AUX_DIR([build-aux]) | |
36 | +AC_USE_SYSTEM_EXTENSIONS | |
37 | LT_INIT | |
38 | AM_INIT_AUTOMAKE([1.11.3 -Wno-portability foreign check-news std-options dist-lzip parallel-tests subdir-objects]) | |
39 | AC_CONFIG_HEADER([src/config.h]) |