flex/flex-rh1389575.patch
Arjun Shankar c0c5e9ed4b Rebase to 2.6.4 (#1389575)
This patch rebases flex to upstream version 2.6.4 and thus drops all
backported upstream patches that the package has been carrying so far.

One exception is flex-2.6.0-yyless.patch which has no equivalent upstream.
I could not track the origin of this patch because flex development moved
from SourceForge to GitHub and in the process, sourceforge bug tracker
content has been lost. However, RHBZ #1281976 seems to suggest that this
patch was included in order to fix a libreswan build failure caused by a
flex integer comparison type mismatch bug. I dropped flex-2.6.0-yyless.patch
and confirmed that the Fedora libreswan package corresponding to
libreswan-3.25 builds successfully despite this patch being dropped.

Additionally, flex-2.6.4 FTBFS because it uses reallocarray but does not
define _GNU_SOURCE leading to a missing prototype for reallocarray. This
commit also includes the upstream patch that fixes this. The patch modifies
configure.ac, which necessitates executing autoreconf at build time and thus
a corresponding set of new build dependencies.
2018-09-03 18:37:45 +02:00

40 lines
1.4 KiB
Diff

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