From 0038d79bcac951977e8888f627330e4b9868f16c Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Tue, 21 Apr 2020 20:27:32 +0200 Subject: [PATCH] add build fix from fedora --- flex-rh1389575.patch | 39 +++++++++++++++++++++++++++++++++++++++ flex.spec | 2 ++ 2 files changed, 41 insertions(+) create mode 100644 flex-rh1389575.patch diff --git a/flex-rh1389575.patch b/flex-rh1389575.patch new file mode 100644 index 0000000..9095626 --- /dev/null +++ b/flex-rh1389575.patch @@ -0,0 +1,39 @@ +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 +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]) diff --git a/flex.spec b/flex.spec index be14a95..1de68e9 100644 --- a/flex.spec +++ b/flex.spec @@ -27,6 +27,7 @@ Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-ma # Source1-md5: fd79ee2834b290e74c626f0bbfc8942f Patch0: %{name}-info.patch Patch1: %{name}-build.patch +Patch2: %{name}-rh1389575.patch URL: https://github.com/westes/flex BuildRequires: autoconf >= 2.54 BuildRequires: automake >= 1:1.14.1 @@ -137,6 +138,7 @@ Przykłady dla fleksa. %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 # force regeneration (just in case make didn't want to) %{__rm} -f src/skel.c -- 2.43.0