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