Fix compiling issue on 32-bit environments. V4_4_STABLE
authorTatsuo Ishii <ishii@postgresql.org>
Wed, 17 Sep 2025 23:24:13 +0000 (08:24 +0900)
committerTatsuo Ishii <ishii@postgresql.org>
Wed, 17 Sep 2025 23:42:54 +0000 (08:42 +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 <skandigraun@gmail.com>
Discussion: https://www.postgresql.org/message-id/20250917.194736.353755422175293639.ishii%40postgresql.org
Backpatch-through: v4.2

src/parser/snprintf.c

index 84ebdb2c29beea6ae2ee7263a7b85a6715ea41fc..45cdd9fbc3fbbd0b3347c66d2af552bc9e81457f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003-2019, 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"