mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-10-23 08:48:24 +00:00
pgpool2: Define SIZEOF_LONG and SIZEOF_LONG_LONG
When cross compiling for a 32-bit target such as riscv32, configure cannot test the long long snprintf format and builds the replacement snprintf(), which fails because SIZEOF_LONG and SIZEOF_LONG_LONG are never defined: snprintf.c:651:2: error: "cannot find integer type of the same size as size_t" Add a patch that checks the size of long and long long in configure. AI-Generated: Uses Claude Code Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
2 files changed
+40
No files matched your search
+39
@@ -0,0 +1,39 @@
|
|||||||
|
From: Khem Raj <khem.raj@oss.qualcomm.com>
|
||||||
|
Date: Wed, 21 Oct 2026 01:00:00 -0700
|
||||||
|
Subject: [PATCH] configure: Check the size of long and long long
|
||||||
|
|
||||||
|
The replacement snprintf() in src/parser/snprintf.c handles the %z
|
||||||
|
length modifier by comparing SIZEOF_SIZE_T with SIZEOF_LONG and
|
||||||
|
SIZEOF_LONG_LONG, but configure only defines SIZEOF_UNSIGNED_LONG,
|
||||||
|
SIZEOF_VOID_P and SIZEOF_SIZE_T. The undefined macros evaluate to 0 in
|
||||||
|
the #if, so whenever the replacement snprintf() is built it fails with
|
||||||
|
|
||||||
|
snprintf.c:651:2: error: "cannot find integer type of the same size as size_t"
|
||||||
|
|
||||||
|
This happens e.g. when cross compiling for a 32-bit target such as
|
||||||
|
riscv32, where configure cannot run its long long snprintf format test
|
||||||
|
and falls back to the replacement implementation.
|
||||||
|
|
||||||
|
Check the size of long and long long so these are defined on every
|
||||||
|
target.
|
||||||
|
|
||||||
|
Upstream-Status: Submitted [https://www.postgresql.org/message-id/20261021153104.43840-1-khem.raj%40oss.qualcomm.com]
|
||||||
|
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
|
||||||
|
---
|
||||||
|
configure.ac | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -211,6 +211,11 @@
|
||||||
|
AC_CHECK_SIZEOF([void *])
|
||||||
|
AC_CHECK_SIZEOF([size_t])
|
||||||
|
|
||||||
|
+# The replacement snprintf() compares SIZEOF_SIZE_T against these to handle
|
||||||
|
+# the %z length modifier
|
||||||
|
+AC_CHECK_SIZEOF([long])
|
||||||
|
+AC_CHECK_SIZEOF([long long])
|
||||||
|
+
|
||||||
|
# Decide whether float4 is passed by value: user-selectable, enabled by default
|
||||||
|
AC_MSG_CHECKING([whether to build with float4 passed by value])
|
||||||
|
PGAC_ARG_BOOL(enable, float4-byval, yes, [disable float4 passed by value],
|
||||||
@@ -13,6 +13,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e4b38de086d73e0521de0bbdbaa4a1a9"
|
|||||||
SRC_URI = "https://www.pgpool.net/source/pgpool-II-${PV}.tar.gz \
|
SRC_URI = "https://www.pgpool.net/source/pgpool-II-${PV}.tar.gz \
|
||||||
file://0001-Fix-build-error-when-build-this-file.patch \
|
file://0001-Fix-build-error-when-build-this-file.patch \
|
||||||
file://define_SIGNAL_ARGS.patch \
|
file://define_SIGNAL_ARGS.patch \
|
||||||
|
file://0002-configure-Check-the-size-of-long-and-long-long.patch \
|
||||||
file://pgpool.sysconfig \
|
file://pgpool.sysconfig \
|
||||||
file://pgpool.service \
|
file://pgpool.service \
|
||||||
"
|
"
|
||||||
|
|||||||
Reference in new issue
Block a user