diff mbox series

[v2] flex: backport the upstream malloc prototype fix

Message ID 20260914085318.67139-1-aurelien@hackers.camp
State New
Headers show
Series [v2] flex: backport the upstream malloc prototype fix | expand

Commit Message

Aurelien DESBRIERES Sept. 14, 2026, 8:53 a.m. UTC
lib/malloc.c declares "void *malloc ();" with an empty parameter list
and calls it with one argument. That meant "unspecified" in C89 and
means "none" in C23, so a host compiler defaulting to C23 -- GCC 15 and
later -- rejects the call:

  lib/malloc.c:16:15: error: too many arguments to function 'malloc';
                             expected 0, have 1

The file is built by stage1flex with the build host's compiler before
flex can build itself, so neither CFLAGS nor BUILD_CFLAGS reaches that
command line and no flag in the recipe can silence it.

Upstream fixed it in bf254c75b1e0 and the patch falls out when flex
next releases. Gentoo carries the same backport as
flex-2.6.4-fix-malloc-prototype.patch.

Signed-off-by: Aurelien DESBRIERES <aurelien@hackers.camp>
---
 ....c-match-malloc-signature-to-its-use.patch | 37 +++++++++++++++++++
 meta/recipes-devtools/flex/flex_2.6.4.bb      |  1 +
 2 files changed, 38 insertions(+)
 create mode 100644 meta/recipes-devtools/flex/flex/0001-lib-malloc.c-match-malloc-signature-to-its-use.patch
diff mbox series

Patch

diff --git a/meta/recipes-devtools/flex/flex/0001-lib-malloc.c-match-malloc-signature-to-its-use.patch b/meta/recipes-devtools/flex/flex/0001-lib-malloc.c-match-malloc-signature-to-its-use.patch
new file mode 100644
index 0000000000..7adeedcaa6
--- /dev/null
+++ b/meta/recipes-devtools/flex/flex/0001-lib-malloc.c-match-malloc-signature-to-its-use.patch
@@ -0,0 +1,37 @@ 
+From bf254c75b1e0d2641ebbd7fc85fb183f36a62ea7 Mon Sep 17 00:00:00 2001
+From: Richard Barnes <rbarnes@umn.edu>
+Date: Wed, 2 Oct 2024 10:35:09 -0700
+Subject: [PATCH] Match `malloc` signature to its use
+
+The gnulib fallback declares "void *malloc ();" with an empty parameter
+list and calls it with one argument. That meant "unspecified" in C89 and
+means "none" in C23, so a compiler defaulting to C23 -- GCC 15 and later
+-- rejects the call:
+
+  lib/malloc.c:16:15: error: too many arguments to function 'malloc';
+                             expected 0, have 1
+
+The file is built by stage1flex with the build host's compiler before
+flex can build itself, so neither CFLAGS nor BUILD_CFLAGS reaches that
+command line and no flag in the recipe can silence it.
+
+Upstream-Status: Backport [https://github.com/westes/flex/commit/bf254c75b1e0d2641ebbd7fc85fb183f36a62ea7]
+
+Signed-off-by: Aurelien DESBRIERES <aurelien@hackers.camp>
+---
+ lib/malloc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/malloc.c b/lib/malloc.c
+index 75e8ef97c..701b9b39d 100755
+--- a/lib/malloc.c
++++ b/lib/malloc.c
+@@ -3,7 +3,7 @@
+      
+      #include <sys/types.h>
+      
+-     void *malloc ();
++     void *malloc (size_t n);
+      
+      /* Allocate an N-byte block of memory from the heap.
+         If N is zero, allocate a 1-byte block.  */
diff --git a/meta/recipes-devtools/flex/flex_2.6.4.bb b/meta/recipes-devtools/flex/flex_2.6.4.bb
index 793a935962..3b652bda80 100644
--- a/meta/recipes-devtools/flex/flex_2.6.4.bb
+++ b/meta/recipes-devtools/flex/flex_2.6.4.bb
@@ -19,6 +19,7 @@  SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/flex-${PV}.tar.gz \
            file://check-funcs.patch \
            file://0001-Emit-no-line-directives-if-gen_line_dirs-is-false.patch \
            file://0001-build-tests-add-missing-parser-scanner-dependencies.patch \
+           file://0001-lib-malloc.c-match-malloc-signature-to-its-use.patch \
            "
 
 SRC_URI[md5sum] = "2882e3179748cc9f9c23ec593d6adc8d"