On Sat, Jun 06, 2026 at 02:51:22PM +0200, Theo Buehler wrote:
> On Sat, Jun 06, 2026 at 01:14:44PM +0100, Stuart Henderson wrote:
> > On 2026/06/05 02:24, Landry Breuil wrote:
> > > CVSROOT:  /cvs
> > > Module name:      ports
> > > Changes by:       [email protected]  2026/06/05 02:24:15
> > > 
> > > Modified files:
> > >   databases/pgpool: Makefile distinfo 
> > > Removed files:
> > >   databases/pgpool/patches: patch-src_include_utils_fe_ports_h 
> > >                             patch-src_include_watchdog_wd_utils_h 
> > >                             patch-src_utils_json_writer_c 
> > >                             patch-src_utils_ssl_utils_c 
> > >                             patch-src_watchdog_wd_escalation_c 
> > > 
> > > Log message:
> > > databases/pgpool: update to 4.6.7 and unbreak with llvm 22
> > > 
> > 
> > this wants strchrnul() which we don't have - an implementation is
> > available from Crystal though;
> > https://research.exoticsilicon.com/downloads/strchrnul_patchset_7.8.sig)
> 
> There's a compat impl in src/parse/snprintf.c. I suggest we copy a
> fixed version of that dance. Upstream should likely move all this into
> the appropriate compat header.
> 
> (I discussed this with landry, not sure if he missed a cvs add)
> 
> The port could also use a CFLAGS += -Wno-unknown-warning-option...

Here rebased on top of the %lld churn + fixes for remaining warnings:

config/pool_config_variables.c:3884:10: warning: format specifies type 'long 
long' but the argument has type 'int64' (aka 'long') [-Wformat]
 3883 |                                                         (errmsg("%lld 
is outside the valid range for parameter \"%s\" (%lld .. %lld)",
      |                                                                  ~~~~
      |                                                                  %ld
 3884 |                                                                         
newval, name,
      |                                                                         
^~~~~~

etc. This is now relatively quiet (still some set but not used and str*
linker warnings).

Index: Makefile
===================================================================
RCS file: /cvs/ports/databases/pgpool/Makefile,v
diff -u -p -r1.22 Makefile
--- Makefile    6 Jun 2026 12:23:33 -0000       1.22
+++ Makefile    6 Jun 2026 13:13:12 -0000
@@ -25,6 +25,8 @@ COMPILER_LANG=        c
 CONFIGURE_STYLE= gnu
 CONFIGURE_ARGS=        --with-openssl
 
+CFLAGS+=       -Wno-unknown-warning-option
+
 USE_GMAKE=     Yes
 FAKE_FLAGS=    sysconfdir=${PREFIX}/share/examples/pgpool-II/
 
Index: patches/patch-src_config_pool_config_variables_c
===================================================================
RCS file: 
/cvs/ports/databases/pgpool/patches/patch-src_config_pool_config_variables_c,v
diff -u -p -r1.1 patch-src_config_pool_config_variables_c
--- patches/patch-src_config_pool_config_variables_c    6 Jun 2026 12:23:33 
-0000       1.1
+++ patches/patch-src_config_pool_config_variables_c    6 Jun 2026 13:25:38 
-0000
@@ -1,12 +1,16 @@
 Index: src/config/pool_config_variables.c
 --- src/config/pool_config_variables.c.orig
 +++ src/config/pool_config_variables.c
-@@ -3880,7 +3880,7 @@ setConfigOptionVar(struct config_generic *record, cons
+@@ -3880,9 +3880,9 @@ setConfigOptionVar(struct config_generic *record, cons
                                if (newval < conf->min || newval > conf->max)
                                {
                                        ereport(elevel,
 -                                                      (errmsg("%ld is outside 
the valid range for parameter \"%s\" (%ld .. %ld)",
+-                                                                      newval, 
name,
+-                                                                      
conf->min, conf->max)));
 +                                                      (errmsg("%lld is 
outside the valid range for parameter \"%s\" (%lld .. %lld)",
-                                                                       newval, 
name,
-                                                                       
conf->min, conf->max)));
++                                                                      (long 
long)newval, name,
++                                                                      (long 
long)conf->min, (long long)conf->max)));
                                        return false;
+                               }
+ 
Index: patches/patch-src_query_cache_pool_memqcache_c
===================================================================
RCS file: 
/cvs/ports/databases/pgpool/patches/patch-src_query_cache_pool_memqcache_c,v
diff -u -p -r1.4 patch-src_query_cache_pool_memqcache_c
--- patches/patch-src_query_cache_pool_memqcache_c      6 Jun 2026 12:23:33 
-0000       1.4
+++ patches/patch-src_query_cache_pool_memqcache_c      6 Jun 2026 13:23:09 
-0000
@@ -15,14 +15,15 @@ Index: src/query_cache/pool_memqcache.c
                ereport(FATAL,
                                (errmsg("invalid memory cache configuration"),
 -                               errdetail("memqcache_total_size %ld should be 
greater or equal to memqcache_cache_block_size %d",
+-                                                 
pool_config->memqcache_total_size,
 +                               errdetail("memqcache_total_size %lld should be 
greater or equal to memqcache_cache_block_size %d",
-                                                  
pool_config->memqcache_total_size,
++                                                 (long 
long)pool_config->memqcache_total_size,
                                                   
pool_config->memqcache_cache_block_size)));
  
        ereport(LOG,
                        (errmsg("memory cache initialized"),
 -                       errdetail("memcache blocks :%ld", num_blocks)));
-+                       errdetail("memcache blocks :%lld", num_blocks)));
++                       errdetail("memcache blocks :%lld", (long 
long)num_blocks)));
        /* Remember # of blocks */
        pool_set_memqcache_blocks(num_blocks);
        size = pool_config->memqcache_cache_block_size * num_blocks;
Index: patches/patch-src_utils_pool_process_reporting_c
===================================================================
RCS file: 
/cvs/ports/databases/pgpool/patches/patch-src_utils_pool_process_reporting_c,v
diff -u -p -r1.1 patch-src_utils_pool_process_reporting_c
--- patches/patch-src_utils_pool_process_reporting_c    6 Jun 2026 12:23:33 
-0000       1.1
+++ patches/patch-src_utils_pool_process_reporting_c    6 Jun 2026 13:12:29 
-0000
@@ -1,7 +1,50 @@
 Index: src/utils/pool_process_reporting.c
 --- src/utils/pool_process_reporting.c.orig
 +++ src/utils/pool_process_reporting.c
-@@ -802,7 +802,7 @@ get_config(int *nrows)
+@@ -45,6 +45,42 @@ static void write_one_field_v2(POOL_CONNECTION * front
+ static char *db_node_status(int node);
+ static char *db_node_role(int node);
+ 
++/*
++ * XXX - taken from src/parser/snprintf.c
++ * This really belongs into a header. That the snprintf version isn't
++ * const correct is also not the greatest of ideas.
++ */
++/*
++ * If strchrnul exists (it's a glibc-ism), it's a good bit faster than the
++ * equivalent manual loop.  If it doesn't exist, provide a replacement.
++ *
++ * Note: glibc declares this as returning "char *", but that would require
++ * casting away const internally, so we don't follow that detail.
++ */
++#ifndef HAVE_STRCHRNUL
++
++static inline char *
++strchrnul(const char *s, int c)
++{
++      while (*s != '\0' && *s != (char)c)
++              s++;
++      return (char *)s;
++}
++
++#else
++
++/*
++ * glibc's <string.h> declares strchrnul only if _GNU_SOURCE is defined.
++ * While we typically use that on glibc platforms, configure will set
++ * HAVE_STRCHRNUL whether it's used or not.  Fill in the missing declaration
++ * so that this file will compile cleanly with or without _GNU_SOURCE.
++ */
++#ifndef _GNU_SOURCE
++extern char *strchrnul(const char *s, int c);
++#endif
++
++#endif                                                        /* 
HAVE_STRCHRNUL */
++
+ void
+ send_row_description(POOL_CONNECTION * frontend, POOL_CONNECTION_POOL * 
backend,
+                                        short num_fields, char **field_names)
+@@ -802,7 +838,7 @@ get_config(int *nrows)
        /* OTHERS */
  
        StrNCpy(status[i].name, "relcache_expire", POOLCONFIG_MAXNAMELEN);
@@ -10,7 +53,7 @@ Index: src/utils/pool_process_reporting.
        StrNCpy(status[i].desc, "relation cache expiration time in seconds", 
POOLCONFIG_MAXDESCLEN);
        i++;
  
-@@ -1076,7 +1076,7 @@ get_config(int *nrows)
+@@ -1076,7 +1112,7 @@ get_config(int *nrows)
        i++;
  
        StrNCpy(status[i].name, "memqcache_total_size", POOLCONFIG_MAXNAMELEN);

Reply via email to