Fix compiling issue on 32-bit environments.
authorTatsuo Ishii <[email protected]>
Wed, 17 Sep 2025 23:24:13 +0000 (08:24 +0900)
committerTatsuo Ishii <[email protected]>
Wed, 17 Sep 2025 23:36:35 +0000 (08:36 +0900)
It is reported that compiling src/parser/snprintf.c on 32-bit
environments fails due to undefined functions (isnan() and
ininf()). They come from math.h so include it.  snprintf.c was
imported from PostgreSQL long time ago. If we look into the original
file (src/port/snprintf.c) it actually has "#include <math.h>"
already. Including math.h was provided as a pull request:
https://github.com/pgpool/pgpool2/pull/128

I also added a minor modification to the patch to reorder the
positions of include files.

Author: Gyorgy Sarvari <[email protected]>
Discussion: https://www.postgresql.org/message-id/20250917.194736.353755422175293639.ishii%40postgresql.org
Backpatch-through: v4.2

src/parser/snprintf.c

index 19e666b7cd5deb725596cad50d9aa2cc07ede514..43059ace6444308c789e304b4cc9193e1d1f486e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003-2024, PgPool Global Development Group
+ * Copyright (c) 2003-2025, PgPool Global Development Group
  * Copyright (c) 1983, 1995, 1996 Eric P. Allman
  * Copyright (c) 1988, 1993
  *     The Regents of the University of California.  All rights reserved.
  * src/port/snprintf.c
  */
 
-#if 0
-#include "c.h"
-#endif
-
+#include <ctype.h>
+#include <errno.h>
+#include <math.h>
 #include <stdarg.h>
-#include <stdio.h>
 #include <stdint.h>
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <ctype.h>
-#include <errno.h>
 #include "pool_parser.h"
 #include "stringinfo.h"
 #include "utils/palloc.h"