From lr at pcorp.us Fri Oct 9 15:42:37 2026 From: lr at pcorp.us (Regina Obe) Date: Fri, 9 Oct 2026 18:42:37 -0400 Subject: PostGIS Day 2026 Virtual Conference CFP deadline October 15th Message-ID: <000001dd583f$7c29a1b0$747ce510$@pcorp.us> The call for proposals for PostGIS Day 2026 happening on November 19th is ending in a little under a week. Get your talks in by October 15th or miss out. https://talks.osgeo.org/postgis-day-2026/cfp This is a virtual conference. Details here - https://postgis.net/community/events/2026-postgis-day/ Thanks, Regina From marco at boeringa.demon.nl Thu Oct 15 14:35:49 2026 From: marco at boeringa.demon.nl (Marco Boeringa) Date: Thu, 15 Oct 2026 23:35:49 +0200 Subject: PROJ version mismatch in PostGIS version output? Message-ID: <425f61ef-5be2-47a0-9d3f-7d12ce1da90b@boeringa.demon.nl> Hi, I recently upgraded my Ubuntu VM from 24.04 LTS to 26.04 LTS. After re-enabling the PostgreSQL apt repository for the new 26.04 Ubuntu version and installing PostgreSQL from there, and re-running one of my Python tools, I noticed the PROJ version is listed as 9.8.1, but there is a second message I don't remember seeing before about "compiled against PROJ 9.7.1". Is this version mis-match of any concern, or inconsequential and can be ignored? Marco POSTGIS="3.6.4 94d984b" [EXTENSION] PGSQL="180" GEOS="3.14.1-CAPI-1.20.5" SFCGAL="SFCGAL 2.2.0, CGAL 6.0.1, BOOST 1.88.0" PROJ="9.8.1 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/tmp/proj DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ 9.7.1) LIBXML="2.15.2" LIBJSON="0.18" LIBPROTOBUF="1.5.1" WAGYU="0.5.0 (Internal)" From lr at pcorp.us Fri Oct 16 09:08:29 2026 From: lr at pcorp.us (Regina Obe) Date: Fri, 16 Oct 2026 12:08:29 -0400 Subject: PROJ version mismatch in PostGIS version output? In-Reply-To: <425f61ef-5be2-47a0-9d3f-7d12ce1da90b@boeringa.demon.nl> References: <425f61ef-5be2-47a0-9d3f-7d12ce1da90b@boeringa.demon.nl> Message-ID: <000501dd5d88$95d088b0$c1719a10$@pcorp.us> > Hi, > > I recently upgraded my Ubuntu VM from 24.04 LTS to 26.04 LTS. > > After re-enabling the PostgreSQL apt repository for the new 26.04 Ubuntu > version and installing PostgreSQL from there, and re-running one of my Python > tools, I noticed the PROJ version is listed as 9.8.1, but there is a second > message I don't remember seeing before about "compiled against PROJ > 9.7.1". Is this version mis-match of any concern, or inconsequential and can be > ignored? > > Marco > > POSTGIS="3.6.4 94d984b" [EXTENSION] PGSQL="180" > GEOS="3.14.1-CAPI-1.20.5" SFCGAL="SFCGAL 2.2.0, CGAL 6.0.1, BOOST > 1.88.0" PROJ="9.8.1 NETWORK_ENABLED=OFF > URL_ENDPOINT=https://cdn.proj.org > USER_WRITABLE_DIRECTORY=/tmp/proj > DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ 9.7.1) > LIBXML="2.15.2" LIBJSON="0.18" LIBPROTOBUF="1.5.1" WAGYU="0.5.0 > (Internal)" It's extra information we added to track issues with possible mismatches. So should it be entirely of no concern, I would say no, but as long as the versions don't deviate too much, it shouldn't be a major concern. The main concerns arise when Proj make structural changes to the proj.db e.g adding new fields etc, which we've run into in the past when e.g. you get proj from Ubuntun GIS and it deviates from what you are getting with apt. You just need to make sure whatever PROJ version you are running with (9.8.1) matches your database path. PostGIS will never expose newer PostGIS functions for proj not available in the PROJ it was compiled against. I don't think we've made any new functions available under 9.8.1 that we didn't expose under 9.7.1 so that is probably not a concern either. I know that apt.postgresql.org repo recently changed so they are not getting their dependencies from your Ubuntu package version. I think the main reason for that was to be able to ship PostGIS with newer versions of GEOS even if you are on an old Ubuntu version so that might be why you are starting to see this message. In the old days they would have compiled against the PROJ shipped with 26.04, which I presume in this case is 9.8.1. It might be shipping a PROJ 9.7.1 as well. Might be worth asking on apt.postgresql.org mailing list if you start to see issues with this. From marco at boeringa.demon.nl Sat Oct 17 04:29:48 2026 From: marco at boeringa.demon.nl (Marco Boeringa) Date: Sat, 17 Oct 2026 13:29:48 +0200 Subject: PROJ version mismatch in PostGIS version output? In-Reply-To: <000501dd5d88$95d088b0$c1719a10$@pcorp.us> References: <425f61ef-5be2-47a0-9d3f-7d12ce1da90b@boeringa.demon.nl> <000501dd5d88$95d088b0$c1719a10$@pcorp.us> Message-ID: <0e956544-5284-4fc5-866d-068655d43380@boeringa.demon.nl> Hi Regina, Thanks for the answer. So far, I personally did not experience issues with my automated workflow, so I guess I can safely ignore this version mismatch. And yes, always good to display this internal stuff so people can be alert for potential issues. Marco Op 16-10-2026 om 18:08 schreef Regina Obe: >> Hi, >> >> I recently upgraded my Ubuntu VM from 24.04 LTS to 26.04 LTS. >> >> After re-enabling the PostgreSQL apt repository for the new 26.04 Ubuntu >> version and installing PostgreSQL from there, and re-running one of my Python >> tools, I noticed the PROJ version is listed as 9.8.1, but there is a second >> message I don't remember seeing before about "compiled against PROJ >> 9.7.1". Is this version mis-match of any concern, or inconsequential and can be >> ignored? >> >> Marco >> >> POSTGIS="3.6.4 94d984b" [EXTENSION] PGSQL="180" >> GEOS="3.14.1-CAPI-1.20.5" SFCGAL="SFCGAL 2.2.0, CGAL 6.0.1, BOOST >> 1.88.0" PROJ="9.8.1 NETWORK_ENABLED=OFF >> URL_ENDPOINT=https://cdn.proj.org >> USER_WRITABLE_DIRECTORY=/tmp/proj >> DATABASE_PATH=/usr/share/proj/proj.db" (compiled against PROJ 9.7.1) >> LIBXML="2.15.2" LIBJSON="0.18" LIBPROTOBUF="1.5.1" WAGYU="0.5.0 >> (Internal)" > > It's extra information we added to track issues with possible mismatches. So should it be entirely of no concern, I would say no, but as long as the versions don't deviate too much, it shouldn't be a major concern. > > The main concerns arise when Proj make structural changes to the proj.db e.g adding new fields etc, which we've run into in the past when e.g. you get proj from Ubuntun GIS and it deviates from what you are getting with apt. You just need to make sure whatever PROJ version you are running with (9.8.1) matches your database path. > > PostGIS will never expose newer PostGIS functions for proj not available in the PROJ it was compiled against. I don't think we've made any new functions available under 9.8.1 that we didn't expose under 9.7.1 so that is probably not a concern either. > > I know that apt.postgresql.org repo recently changed so they are not getting their dependencies from your Ubuntu package version. > I think the main reason for that was to be able to ship PostGIS with newer versions of GEOS even if you are on an old Ubuntu version so that might be why you are starting to see this message. > In the old days they would have compiled against the PROJ shipped with 26.04, which I presume in this case is 9.8.1. > It might be shipping a PROJ 9.7.1 as well. Might be worth asking on apt.postgresql.org mailing list if you start to see issues with this. > From lr at pcorp.us Tue Oct 20 22:21:53 2026 From: lr at pcorp.us (Regina Obe) Date: Wed, 21 Oct 2026 01:21:53 -0400 Subject: PostGIS 3.7.0rc3 release Message-ID: <001001dd611c$164ce6a0$42e6b3e0$@pcorp.us> The PostGIS Team is pleased to release PostGIS 3.7.0rc3! Best Served with PostgreSQL 19 RC1 , GEOS 3.15.0 , This version requires PostgreSQL 14 - 19rc1, GEOS 3.10 or higher, and Proj 6.1+. To take advantage of all features, GEOS 3.15+ is needed. To take advantage of all SFCGAL features SFCGAL 2.3.0+ is needed. This release contains fixes since 3.7.0rc2 release. Details at: https://postgis.net/2026/10/PostGIS-3.7.0rc3/ Source: https://download.osgeo.org/postgis/source/postgis-3.7.0rc3.tar.gz PDF En: https://download.osgeo.org/postgis/docs/postgis-3.7.0rc3-en.pdf HTML: https://download.osgeo.org/postgis/docs/doc-html-3.7.0rc3.tar.gz NOTE: postgis_tiger_geocoder and address_standardizer are no longer part of the PostGIS source code. Latest release of postgis_tiger_geocoder is noted - https://postgis.net/2026/08/PostGIS-Tiger-Geocoder-2025.2/ address_standardizer latest version is https://github.com/postgis/address_standardizer/releases/tag/v3.7.0 If you run into any issues, feel free to reply to this email or report on our ticket tracker as detailed on https://postgis.net/development/bug_reporting/ From gdt at lexort.com Wed Oct 21 16:18:13 2026 From: gdt at lexort.com (Greg Troxel) Date: Wed, 21 Oct 2026 19:18:13 -0400 Subject: PostGIS 3.7.0rc3 release In-Reply-To: <001001dd611c$164ce6a0$42e6b3e0$@pcorp.us> (Regina Obe's message of "Wed, 21 Oct 2026 01:21:53 -0400") References: <001001dd611c$164ce6a0$42e6b3e0$@pcorp.us> Message-ID: "Regina Obe" writes: > The PostGIS Team is pleased to release PostGIS 3.7.0rc3! Best Served with > PostgreSQL 19 RC1 , GEOS 3.15.0 , > This version requires PostgreSQL 14 - 19rc1, GEOS 3.10 or higher, and Proj > 6.1+. To take advantage of all features, GEOS 3.15+ is needed. To take > advantage of all SFCGAL features SFCGAL 2.3.0+ is needed. This builds and mostly passes tests on NetBSD 11 amd64. The tests fail with what is obviously test environment assumptions problems: RUNTESTFLAGS: --topology --raster RUNTESTFLAGS_INTERNAL: --after-create-db-script ../raster/test/regress/hooks/hook-before-create-raster.sql --before-upgrade-script ../raster/test/regress/hooks/hook-before-upgrade-raster.sql --before-upgrade-script ../topology/test/regress/hooks/hook-before-upgrade-topology.sql --after-create-db-script ../regress/hooks/hook-after-create-db.sql --before-upgrade-script ../regress/hooks/hook-before-upgrade.sql --after-upgrade-script ../regress/hooks/hook-after-upgrade-check-sql-object-resolution.sql --after-upgrade-script ../regress/hooks/hook-after-upgrade.sql --after-create-script ../regress/hooks/hook-after-create.sql --before-uninstall-script ../regress/hooks/hook-before-uninstall.sql --after-upgrade-script ../topology/test/regress/hooks/hook-after-upgrade-topology.sql --after-upgrade-script ../raster/test/regress/hooks/hook-after-upgrade-raster.sql psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: permission denied to set parameter "lc_messages" psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: permission denied to set parameter "lc_messages" psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: permission denied to set parameter "lc_messages" Creating database 'postgis_reg-3.7'. Running after-create-db-script ../raster/test/regress/hooks/hook-before-create-raster.sql Died at ../regress/run_test.pl line 1568. failed (Error encountered loading ../raster/test/regress/hooks/hook-before-create-raster.sql: /tmp/pgis_reg/regress_log.tmp) gmake: *** [../regress/runtest.mk:24: check-regress] Error 2 I do have my postgresql locked down more than many, but README.postgis doesn't say what's needed. (I'm not a superuser.) There is a large amount of ctype UB. I don't know if this is new, but I think I would have noticed and said something. Briefly, ctype functions take an int, and are defined only for values that are valid for unsigned char or EOF. Everything else is UB. Calling them with a variable of type char, if char is signed, leads to negative values. I would expect at least some systems in CI to warn somehow, but maybe they don't. libtool: compile: gcc -I../../liblwgeom/../deps/ryu/.. -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I../../liblwgeom -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fPIC -DPIC -c ../../liblwgeom/optionlist.c -fPIC -DPIC -o .libs/optionlist.o In file included from /usr/include/ctype.h:100, from ../../liblwgeom/optionlist.c:28: ../../liblwgeom/optionlist.c: In function 'option_list_string_to_lower': ../../liblwgeom/optionlist.c:36:32: warning: array subscript has type 'char' [-Wchar-subscripts] 36 | *key = tolower(*key); | ^ libtool: compile: gcc -I../../liblwgeom/../deps/ryu/.. -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I../../liblwgeom -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fPIC -DPIC -c lwin_wkt_lex.c -fPIC -DPIC -o .libs/lwin_wkt_lex.o In file included from /usr/include/ctype.h:100, from ../../liblwgeom/lwin_wkt_lex.l:5: ../../liblwgeom/lwin_wkt_lex.l: In function 'wkt_yylex': ../../liblwgeom/lwin_wkt_lex.l:108:31: warning: array subscript has type 'char' [-Wchar-subscripts] 108 | if (toupper(wkt_yytext[0]) == 'Z' && toupper(wkt_yytext[1]) == 'M') | ^ ../../liblwgeom/lwin_wkt_lex.l:108:64: warning: array subscript has type 'char' [-Wchar-subscripts] 108 | if (toupper(wkt_yytext[0]) == 'Z' && toupper(wkt_yytext[1]) == 'M') | ^ ../../liblwgeom/lwin_wkt_lex.l:110:36: warning: array subscript has type 'char' [-Wchar-subscripts] 110 | else if (toupper(wkt_yytext[0]) == 'Z') | ^ libtool: compile: gcc -I../../liblwgeom/../deps/ryu/.. -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I../../liblwgeom -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fPIC -DPIC -c ../../liblwgeom/lwin_wkt.c -fPIC -DPIC -o .libs/lwin_wkt.o In file included from /usr/include/ctype.h:100, from ../../liblwgeom/lwin_wkt.c:27: ../../liblwgeom/lwin_wkt.c: In function 'wkt_dimensionality': ../../liblwgeom/lwin_wkt.c:91:50: warning: array subscript has type 'char' [-Wchar-subscripts] 91 | else if( ! isspace(dimensionality[i]) ) break; | ^ libtool: compile: gcc -I../../liblwgeom/../deps/ryu/.. -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I../../liblwgeom -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fPIC -DPIC -c ../../liblwgeom/lwalgorithm.c -fPIC -DPIC -o .libs/lwalgorithm.o In file included from /usr/include/ctype.h:100, from ../../liblwgeom/lwalgorithm.c:28: ../../liblwgeom/lwalgorithm.c: In function 'decode_geohash_bbox': ../../liblwgeom/lwalgorithm.c:699:41: warning: array subscript has type 'char' [-Wchar-subscripts] 699 | char c = tolower(geohash[i]); | ^ gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic-interposition -fPIC -DPIC -fPIC -DPIC -fvisibility=hidden -I../../liblwgeom -I../liblwgeom -I../../libpgcommon -I../../deps/flatgeobuf -I../../deps/wagyu -I../../deps/uthash/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I./ -I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -c -o lwgeom_box.o ../../postgis/lwgeom_box.c In file included from /usr/include/ctype.h:100, from /usr/pkg/include/postgresql/server/port.h:16, from /usr/pkg/include/postgresql/server/c.h:1360, from /usr/pkg/include/postgresql/server/postgres.h:48, from ../../postgis/lwgeom_box.c:27: ../../postgis/lwgeom_box.c: In function ?BOX2D_in?: ../../postgis/lwgeom_box.c:68:31: warning: array subscript has type ?char? [-Wchar-subscripts] 68 | str[i] = tolower(str[i]); | ^ gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic-interposition -fPIC -DPIC -fPIC -DPIC -fvisibility=hidden -I../../liblwgeom -I../liblwgeom -I../../libpgcommon -I../../deps/flatgeobuf -I../../deps/wagyu -I../../deps/uthash/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I./ -I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -c -o lwgeom_in_gml.o ../../postgis/lwgeom_in_gml.c In file included from /usr/include/ctype.h:100, from /usr/pkg/include/postgresql/server/port.h:16, from /usr/pkg/include/postgresql/server/c.h:1360, from /usr/pkg/include/postgresql/server/postgres.h:48, from ../../postgis/lwgeom_in_gml.c:49: ../../postgis/lwgeom_in_gml.c: In function ?parse_gml_srs?: ../../postgis/lwgeom_in_gml.c:557:38: warning: array subscript has type ?char? [-Wchar-subscripts] 557 | if (!isdigit(*p)) gml_lwpgerror("unknown spatial reference system", 5); | ^ ../../postgis/lwgeom_in_gml.c: In function ?parse_gml_double?: ../../postgis/lwgeom_in_gml.c:604:42: warning: array subscript has type ?char? [-Wchar-subscripts] 604 | if (space_before) while (isspace(*d)) d++; | ^ ../../postgis/lwgeom_in_gml.c:608:29: warning: array subscript has type ?char? [-Wchar-subscripts] 608 | if (isdigit(*p)) | ^ ../../postgis/lwgeom_in_gml.c:632:34: warning: array subscript has type ?char? [-Wchar-subscripts] 632 | else if (isspace(*p)) | ^ ../../postgis/lwgeom_in_gml.c: In function ?parse_gml_coordinates?: ../../postgis/lwgeom_in_gml.c:712:24: warning: array subscript has type ?char? [-Wchar-subscripts] 712 | while (isspace(*p)) p++; /* Eat extra whitespaces if any */ | ^ ../../postgis/lwgeom_in_gml.c:716:29: warning: array subscript has type ?char? [-Wchar-subscripts] 716 | if (isdigit(*p)) digit = true; /* One state parser */ | ^ ../../postgis/lwgeom_in_gml.c: In function ?parse_gml_pos?: ../../postgis/lwgeom_in_gml.c:852:20: warning: array subscript has type ?char? [-Wchar-subscripts] 852 | while (isspace(*pos)) pos++; /* Eat extra whitespaces if any */ | ^ ../../postgis/lwgeom_in_gml.c:859:21: warning: array subscript has type ?char? [-Wchar-subscripts] 859 | if (isdigit(*pos)) digit = true; | ^ ../../postgis/lwgeom_in_gml.c: In function ?parse_gml_poslist?: ../../postgis/lwgeom_in_gml.c:923:24: warning: array subscript has type ?char? [-Wchar-subscripts] 923 | while (isspace(*poslist)) poslist++; /* Eat extra whitespaces if any */ | ^ ../../postgis/lwgeom_in_gml.c:926:29: warning: array subscript has type ?char? [-Wchar-subscripts] 926 | if (isdigit(*poslist)) digit = true; | ^ gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic-interposition -fPIC -DPIC -fPIC -DPIC -fvisibility=hidden -I../../liblwgeom -I../liblwgeom -I../../libpgcommon -I../../deps/flatgeobuf -I../../deps/wagyu -I../../deps/uthash/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I./ -I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -c -o lwgeom_in_kml.o ../../postgis/lwgeom_in_kml.c In file included from /usr/include/ctype.h:100, from /usr/pkg/include/postgresql/server/port.h:16, from /usr/pkg/include/postgresql/server/c.h:1360, from /usr/pkg/include/postgresql/server/postgres.h:48, from ../../postgis/lwgeom_in_kml.c:40: ../../postgis/lwgeom_in_kml.c: In function ?parse_kml_coordinates?: ../../postgis/lwgeom_in_kml.c:332:24: warning: array subscript has type ?char? [-Wchar-subscripts] 332 | while (*p && isspace(*p)) ++p; | ^ ../../postgis/lwgeom_in_kml.c:336:18: warning: array subscript has type ?char? [-Wchar-subscripts] 336 | if ( isdigit(*p) || *p == '+' || *p == '-' || *p == '.' ) { | ^ ../../postgis/lwgeom_in_kml.c:353:30: warning: array subscript has type ?char? [-Wchar-subscripts] 353 | if ( *q && ! isspace(*q) && *q != ',' ) { | ^ ../../postgis/lwgeom_in_kml.c:358:30: warning: array subscript has type ?char? [-Wchar-subscripts] 358 | while (*q && isspace(*q)) ++q; | ^ ../../postgis/lwgeom_in_kml.c:359:22: warning: array subscript has type ?char? [-Wchar-subscripts] 359 | if ( isdigit(*q) || *q == '+' || *q == '-' || *q == '.' || ! *q ) { | ^ ../../postgis/lwgeom_in_kml.c:371:40: warning: array subscript has type ?char? [-Wchar-subscripts] 371 | } else if ( *p != ',' && ! isspace(*p) ) { | ^ gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic-interposition -fPIC -DPIC -fPIC -DPIC -fvisibility=hidden -I../../liblwgeom -I../liblwgeom -I../../libpgcommon -I../../deps/flatgeobuf -I../../deps/wagyu -I../../deps/uthash/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I./ -I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -c -o lwgeom_in_marc21.o ../../postgis/lwgeom_in_marc21.c In file included from /usr/include/ctype.h:100, from /usr/pkg/include/postgresql/server/port.h:16, from /usr/pkg/include/postgresql/server/c.h:1360, from /usr/pkg/include/postgresql/server/postgres.h:48, from ../../postgis/lwgeom_in_marc21.c:21: ../../postgis/lwgeom_in_marc21.c: In function ?is_literal_valid?: ../../postgis/lwgeom_in_marc21.c:153:37: warning: array subscript has type ?char? [-Wchar-subscripts] 153 | if (!isdigit(literal[j])) { | ^ gmake[1]: Entering directory '/n0/gdt/SOFTWARE/GEO/POSTGIS/postgis/BUILD/topology' gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic-interposition -fPIC -DPIC -fPIC -DPIC -fvisibility=hidden -I../liblwgeom -I../../liblwgeom -I../../libpgcommon -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I../../topology -I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -c -o postgis_topology.o ../../topology/postgis_topology.c In file included from /usr/include/ctype.h:100, from /usr/pkg/include/postgresql/server/port.h:16, from /usr/pkg/include/postgresql/server/c.h:1360, from /usr/pkg/include/postgresql/server/postgres.h:48, from ../../topology/postgis_topology.c:14: ../../topology/postgis_topology.c: In function ?_lwtype_upper_name?: ../../topology/postgis_topology.c:145:20: warning: array subscript has type ?char? [-Wchar-subscripts] 145 | *ptr = toupper(*ptr); | ^ gmake[3]: Entering directory '/n0/gdt/SOFTWARE/GEO/POSTGIS/postgis/BUILD/raster/rt_pg' gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic-interposition -fPIC -DPIC -fvisibility=hidden -I../../../liblwgeom -I../../liblwgeom -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I/usr/pkg/include -I../../../libpgcommon -I/usr/pkg/include -I../../../raster/rt_pg/../rt_core -I. -I./.. -I../.. -I. -I./ -I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -c -o rtpostgis.o ../../../raster/rt_pg/rtpostgis.c In file included from /usr/include/ctype.h:100, from /usr/pkg/include/postgresql/server/port.h:16, from /usr/pkg/include/postgresql/server/c.h:1360, from /usr/pkg/include/postgresql/server/postgres.h:48, from ../../../raster/rt_pg/rtpostgis.c:132: ../../../raster/rt_pg/rtpostgis.c: In function ?rt_pg_vsi_load_options?: ../../../raster/rt_pg/rtpostgis.c:400:48: warning: array subscript has type ?char? [-Wchar-subscripts] 400 | *ptr = tolower(*ptr); | ^ gmake[3]: Entering directory '/n0/gdt/SOFTWARE/GEO/POSTGIS/postgis/BUILD/raster/rt_pg' gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic-interposition -fPIC -DPIC -fvisibility=hidden -I../../../liblwgeom -I../../liblwgeom -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I/usr/pkg/include -I../../../libpgcommon -I/usr/pkg/include -I../../../raster/rt_pg/../rt_core -I. -I./.. -I../.. -I. -I./ -I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -c -o rtpostgis.o ../../../raster/rt_pg/rtpostgis.c In file included from /usr/include/ctype.h:100, from /usr/pkg/include/postgresql/server/port.h:16, from /usr/pkg/include/postgresql/server/c.h:1360, from /usr/pkg/include/postgresql/server/postgres.h:48, from ../../../raster/rt_pg/rtpostgis.c:132: ../../../raster/rt_pg/rtpostgis.c: In function ?rt_pg_vsi_load_options?: ../../../raster/rt_pg/rtpostgis.c:400:48: warning: array subscript has type ?char? [-Wchar-subscripts] 400 | *ptr = tolower(*ptr); | ^ gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic-interposition -fPIC -DPIC -fvisibility=hidden -I../../../liblwgeom -I../../liblwgeom -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I/usr/pkg/include -I../../../libpgcommon -I/usr/pkg/include -I../../../raster/rt_pg/../rt_core -I. -I./.. -I../.. -I. -I./ -I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal -I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -c -o rtpg_internal.o ../../../raster/rt_pg/rtpg_internal.c In file included from /usr/include/ctype.h:100, from ../../../raster/rt_pg/rtpg_internal.c:29: ../../../raster/rt_pg/rtpg_internal.c: In function ?rtpg_strtoupper?: ../../../raster/rt_pg/rtpg_internal.c:103:37: warning: array subscript has type ?char? [-Wchar-subscripts] 103 | str[j] = toupper(str[j]); | ^ ../../../raster/rt_pg/rtpg_internal.c: In function ?rtpg_trim?: ../../../raster/rt_pg/rtpg_internal.c:237:24: warning: array subscript has type ?char? [-Wchar-subscripts] 237 | while (isspace(*input) && *input != '\0') | ^ ../../../raster/rt_pg/rtpg_internal.c:244:32: warning: array subscript has type ?char? [-Wchar-subscripts] 244 | while (isspace(*--ptr)) | ^ gmake[3]: Entering directory '/n0/gdt/SOFTWARE/GEO/POSTGIS/postgis/BUILD/raster/loader' gcc -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fPIC -DPIC -I../../../raster/loader/../rt_core -I./.. -I. -I../.. -I../../liblwgeom -I../../../liblwgeom -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -c ../../../raster/loader/raster2pgsql.c In file included from /usr/include/ctype.h:100, from /usr/pkg/include/cpl_port.h:107, from /usr/pkg/include/gdal.h:29, from ../../../raster/loader/../rt_core/librtcore.h:124, from ../../../raster/loader/raster2pgsql.h:42, from ../../../raster/loader/raster2pgsql.c:28: ../../../raster/loader/raster2pgsql.c: In function ?strtolower?: ../../../raster/loader/raster2pgsql.c:241:37: warning: array subscript has type ?char? [-Wchar-subscripts] 241 | str[j] = tolower(str[j]); | ^ ../../../raster/loader/raster2pgsql.c: In function ?trim?: ../../../raster/loader/raster2pgsql.c:325:24: warning: array subscript has type ?char? [-Wchar-subscripts] 325 | while (isspace(*input)) | ^ ../../../raster/loader/raster2pgsql.c:330:24: warning: array subscript has type ?char? [-Wchar-subscripts] 330 | while (isspace(*--ptr)) | ^ gcc -I../../liblwgeom -I../liblwgeom -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fPIC -DPIC -I/usr/pkg/include -c ../../loader/shp2pgsql-core.c In file included from /usr/include/ctype.h:100, from ../../loader/shp2pgsql-core.h:19, from ../../loader/shp2pgsql-core.c:22: ../../loader/shp2pgsql-core.c: In function ?strtolower?: ../../loader/shp2pgsql-core.c:891:33: warning: array subscript has type ?char? [-Wchar-subscripts] 891 | s[j] = tolower(s[j]); | ^ gcc -I../../liblwgeom -I../liblwgeom -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fPIC -DPIC -I/usr/pkg/include -I/usr/pkg/include -c ../../loader/pgsql2shp-core.c In file included from /usr/include/ctype.h:100, from ../../loader/pgsql2shp-core.h:17, from ../../loader/pgsql2shp-core.c:27: ../../loader/pgsql2shp-core.c: In function ?goodDBFValue?: ../../loader/pgsql2shp-core.c:753:36: warning: array subscript has type ?char? [-Wchar-subscripts] 753 | buf[0] = toupper(in[0]); | ^ ../../loader/pgsql2shp-core.c: In function ?ShpDumperOpenTable?: ../../loader/pgsql2shp-core.c:1717:76: warning: array subscript has type ?char? [-Wchar-subscripts] 1717 | dbffieldname[nameit] = toupper(dbffieldname[nameit]); | ^ From lr at pcorp.us Thu Oct 22 00:40:41 2026 From: lr at pcorp.us (Regina Obe) Date: Thu, 22 Oct 2026 03:40:41 -0400 Subject: PostGIS 3.7.0rc3 release In-Reply-To: References: <001001dd611c$164ce6a0$42e6b3e0$@pcorp.us> Message-ID: <002301dd61f8$a41de830$ec59b890$@pcorp.us> > "Regina Obe" writes: > > > The PostGIS Team is pleased to release PostGIS 3.7.0rc3! Best Served > > with PostgreSQL 19 RC1 , GEOS 3.15.0 , This version requires > > PostgreSQL 14 - 19rc1, GEOS 3.10 or higher, and Proj 6.1+. To take > > advantage of all features, GEOS 3.15+ is needed. To take advantage of > > all SFCGAL features SFCGAL 2.3.0+ is needed. > > This builds and mostly passes tests on NetBSD 11 amd64. > That's great to hear. > > The tests fail with what is obviously test environment assumptions > problems: > > RUNTESTFLAGS: --topology --raster > RUNTESTFLAGS_INTERNAL: --after-create-db-script > ../raster/test/regress/hooks/hook-before-create-raster.sql --before-upgrade- > script ../raster/test/regress/hooks/hook-before-upgrade-raster.sql --before- > upgrade-script ../topology/test/regress/hooks/hook-before-upgrade- > topology.sql --after-create-db-script ../regress/hooks/hook-after-create- > db.sql --before-upgrade-script ../regress/hooks/hook-before-upgrade.sql -- > after-upgrade-script ../regress/hooks/hook-after-upgrade-check-sql-object- > resolution.sql --after-upgrade-script ../regress/hooks/hook-after-upgrade.sql > --after-create-script ../regress/hooks/hook-after-create.sql --before- > uninstall-script ../regress/hooks/hook-before-uninstall.sql --after-upgrade- > script ../topology/test/regress/hooks/hook-after-upgrade-topology.sql --after- > upgrade-script ../raster/test/regress/hooks/hook-after-upgrade-raster.sql > psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: > FATAL: permission denied to set parameter "lc_messages" > psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: > FATAL: permission denied to set parameter "lc_messages" > psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: > FATAL: permission denied to set parameter "lc_messages" > Creating database 'postgis_reg-3.7'. Yah this is a long standing one documented here - https://trac.osgeo.org/postgis/ticket/5212 Though I thought we had added in about POSTGIS_REGRESS_DB_OWNER but maybe not. > Running after-create-db-script ../raster/test/regress/hooks/hook-before- > create-raster.sql > Died at ../regress/run_test.pl line 1568. > failed (Error encountered loading ../raster/test/regress/hooks/hook-before- > create-raster.sql: /tmp/pgis_reg/regress_log.tmp) > gmake: *** [../regress/runtest.mk:24: check-regress] Error 2 > > > I do have my postgresql locked down more than many, but README.postgis > doesn't say what's needed. (I'm not a superuser.) > > > > > > > > There is a large amount of ctype UB. I don't know if this is new, but I think I > would have noticed and said something. > > Briefly, ctype functions take an int, and are defined only for values that are > valid for unsigned char or EOF. Everything else is UB. > Calling them with a variable of type char, if char is signed, leads to negative > values. I would expect at least some systems in CI to warn somehow, but > maybe they don't. > > > > libtool: compile: gcc -I../../liblwgeom/../deps/ryu/.. -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 - > I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. > -I../../liblwgeom -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall - > O2 -fPIC -DPIC -c ../../liblwgeom/optionlist.c -fPIC -DPIC -o .libs/optionlist.o > In file included from /usr/include/ctype.h:100, > from ../../liblwgeom/optionlist.c:28: > ../../liblwgeom/optionlist.c: In function 'option_list_string_to_lower': > ../../liblwgeom/optionlist.c:36:32: warning: array subscript has type 'char' [- > Wchar-subscripts] > 36 | *key = tolower(*key); > | ^ > libtool: compile: gcc -I../../liblwgeom/../deps/ryu/.. -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 - > I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. > -I../../liblwgeom -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall - > O2 -fPIC -DPIC -c lwin_wkt_lex.c -fPIC -DPIC -o .libs/lwin_wkt_lex.o In file > included from /usr/include/ctype.h:100, > from ../../liblwgeom/lwin_wkt_lex.l:5: > ../../liblwgeom/lwin_wkt_lex.l: In function 'wkt_yylex': > ../../liblwgeom/lwin_wkt_lex.l:108:31: warning: array subscript has type > 'char' [-Wchar-subscripts] > 108 | if (toupper(wkt_yytext[0]) == 'Z' && toupper(wkt_yytext[1]) == > 'M') > | ^ > ../../liblwgeom/lwin_wkt_lex.l:108:64: warning: array subscript has type > 'char' [-Wchar-subscripts] > 108 | if (toupper(wkt_yytext[0]) == 'Z' && toupper(wkt_yytext[1]) == > 'M') > | ^ > ../../liblwgeom/lwin_wkt_lex.l:110:36: warning: array subscript has type > 'char' [-Wchar-subscripts] > 110 | else if (toupper(wkt_yytext[0]) == 'Z') > | ^ > libtool: compile: gcc -I../../liblwgeom/../deps/ryu/.. -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 - > I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. > -I../../liblwgeom -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall - > O2 -fPIC -DPIC -c ../../liblwgeom/lwin_wkt.c -fPIC -DPIC -o .libs/lwin_wkt.o > In file included from /usr/include/ctype.h:100, > from ../../liblwgeom/lwin_wkt.c:27: > ../../liblwgeom/lwin_wkt.c: In function 'wkt_dimensionality': > ../../liblwgeom/lwin_wkt.c:91:50: warning: array subscript has type 'char' [- > Wchar-subscripts] > 91 | else if( ! isspace(dimensionality[i]) ) break; > | ^ > libtool: compile: gcc -I../../liblwgeom/../deps/ryu/.. -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 - > I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. > -I../../liblwgeom -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall - > O2 -fPIC -DPIC -c ../../liblwgeom/lwalgorithm.c -fPIC -DPIC -o > .libs/lwalgorithm.o In file included from /usr/include/ctype.h:100, > from ../../liblwgeom/lwalgorithm.c:28: > ../../liblwgeom/lwalgorithm.c: In function 'decode_geohash_bbox': > ../../liblwgeom/lwalgorithm.c:699:41: warning: array subscript has type 'char' > [-Wchar-subscripts] > 699 | char c = tolower(geohash[i]); > | ^ > > gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after- > statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit- > fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat- > security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format- > truncation -Wno-stringop-truncation -O2 -I/usr/include - > I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include - > std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic- > interposition -fPIC -DPIC -fPIC -DPIC -fvisibility=hidden -I../../liblwgeom - > I../liblwgeom -I../../libpgcommon -I../../deps/flatgeobuf -I../../deps/wagyu - > I../../deps/uthash/include -I/usr/pkg/include -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I./ - > I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal - > I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -c -o lwgeom_box.o ../../postgis/lwgeom_box.c > In file included from /usr/include/ctype.h:100, > from /usr/pkg/include/postgresql/server/port.h:16, > from /usr/pkg/include/postgresql/server/c.h:1360, > from /usr/pkg/include/postgresql/server/postgres.h:48, > from ../../postgis/lwgeom_box.c:27: > ../../postgis/lwgeom_box.c: In function ?BOX2D_in?: > ../../postgis/lwgeom_box.c:68:31: warning: array subscript has type ?char? [- > Wchar-subscripts] > 68 | str[i] = tolower(str[i]); > | ^ > > gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after- > statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit- > fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat- > security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format- > truncation -Wno-stringop-truncation -O2 -I/usr/include - > I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include - > std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic- > interposition -fPIC -DPIC -fPIC -DPIC -fvisibility=hidden -I../../liblwgeom - > I../liblwgeom -I../../libpgcommon -I../../deps/flatgeobuf -I../../deps/wagyu - > I../../deps/uthash/include -I/usr/pkg/include -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I./ - > I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal - > I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -c -o lwgeom_in_gml.o ../../postgis/lwgeom_in_gml.c > In file included from /usr/include/ctype.h:100, > from /usr/pkg/include/postgresql/server/port.h:16, > from /usr/pkg/include/postgresql/server/c.h:1360, > from /usr/pkg/include/postgresql/server/postgres.h:48, > from ../../postgis/lwgeom_in_gml.c:49: > ../../postgis/lwgeom_in_gml.c: In function ?parse_gml_srs?: > ../../postgis/lwgeom_in_gml.c:557:38: warning: array subscript has type > ?char? [-Wchar-subscripts] > 557 | if (!isdigit(*p)) gml_lwpgerror("unknown spatial reference > system", 5); > | ^ > ../../postgis/lwgeom_in_gml.c: In function ?parse_gml_double?: > ../../postgis/lwgeom_in_gml.c:604:42: warning: array subscript has type > ?char? [-Wchar-subscripts] > 604 | if (space_before) while (isspace(*d)) d++; > | ^ > ../../postgis/lwgeom_in_gml.c:608:29: warning: array subscript has type > ?char? [-Wchar-subscripts] > 608 | if (isdigit(*p)) > | ^ > ../../postgis/lwgeom_in_gml.c:632:34: warning: array subscript has type > ?char? [-Wchar-subscripts] > 632 | else if (isspace(*p)) > | ^ > ../../postgis/lwgeom_in_gml.c: In function ?parse_gml_coordinates?: > ../../postgis/lwgeom_in_gml.c:712:24: warning: array subscript has type > ?char? [-Wchar-subscripts] > 712 | while (isspace(*p)) p++; /* Eat extra whitespaces if any */ > | ^ > ../../postgis/lwgeom_in_gml.c:716:29: warning: array subscript has type > ?char? [-Wchar-subscripts] > 716 | if (isdigit(*p)) digit = true; /* One state parser */ > | ^ > ../../postgis/lwgeom_in_gml.c: In function ?parse_gml_pos?: > ../../postgis/lwgeom_in_gml.c:852:20: warning: array subscript has type > ?char? [-Wchar-subscripts] > 852 | while (isspace(*pos)) pos++; /* Eat extra whitespaces if any */ > | ^ > ../../postgis/lwgeom_in_gml.c:859:21: warning: array subscript has type > ?char? [-Wchar-subscripts] > 859 | if (isdigit(*pos)) digit = true; > | ^ > ../../postgis/lwgeom_in_gml.c: In function ?parse_gml_poslist?: > ../../postgis/lwgeom_in_gml.c:923:24: warning: array subscript has type > ?char? [-Wchar-subscripts] > 923 | while (isspace(*poslist)) poslist++; /* Eat extra whitespaces if > any */ > | ^ > ../../postgis/lwgeom_in_gml.c:926:29: warning: array subscript has type > ?char? [-Wchar-subscripts] > 926 | if (isdigit(*poslist)) digit = true; > | ^ > gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after- > statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit- > fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat- > security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format- > truncation -Wno-stringop-truncation -O2 -I/usr/include - > I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include - > std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic- > interposition -fPIC -DPIC -fPIC -DPIC -fvisibility=hidden -I../../liblwgeom - > I../liblwgeom -I../../libpgcommon -I../../deps/flatgeobuf -I../../deps/wagyu - > I../../deps/uthash/include -I/usr/pkg/include -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I./ - > I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal - > I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -c -o lwgeom_in_kml.o ../../postgis/lwgeom_in_kml.c > In file included from /usr/include/ctype.h:100, > from /usr/pkg/include/postgresql/server/port.h:16, > from /usr/pkg/include/postgresql/server/c.h:1360, > from /usr/pkg/include/postgresql/server/postgres.h:48, > from ../../postgis/lwgeom_in_kml.c:40: > ../../postgis/lwgeom_in_kml.c: In function ?parse_kml_coordinates?: > ../../postgis/lwgeom_in_kml.c:332:24: warning: array subscript has type > ?char? [-Wchar-subscripts] > 332 | while (*p && isspace(*p)) ++p; > | ^ > ../../postgis/lwgeom_in_kml.c:336:18: warning: array subscript has type > ?char? [-Wchar-subscripts] > 336 | if ( isdigit(*p) || *p == '+' || *p == '-' || *p == '.' ) { > | ^ > ../../postgis/lwgeom_in_kml.c:353:30: warning: array subscript has type > ?char? [-Wchar-subscripts] > 353 | if ( *q && ! isspace(*q) && *q != ',' ) { > | ^ > ../../postgis/lwgeom_in_kml.c:358:30: warning: array subscript has type > ?char? [-Wchar-subscripts] > 358 | while (*q && isspace(*q)) ++q; > | ^ > ../../postgis/lwgeom_in_kml.c:359:22: warning: array subscript has type > ?char? [-Wchar-subscripts] > 359 | if ( isdigit(*q) || *q == '+' || *q == '-' || *q == '.' || ! *q ) { > | ^ > ../../postgis/lwgeom_in_kml.c:371:40: warning: array subscript has type > ?char? [-Wchar-subscripts] > 371 | } else if ( *p != ',' && ! isspace(*p) ) { > | ^ > > gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after- > statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit- > fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat- > security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format- > truncation -Wno-stringop-truncation -O2 -I/usr/include - > I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include - > std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic- > interposition -fPIC -DPIC -fPIC -DPIC -fvisibility=hidden -I../../liblwgeom - > I../liblwgeom -I../../libpgcommon -I../../deps/flatgeobuf -I../../deps/wagyu - > I../../deps/uthash/include -I/usr/pkg/include -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I./ - > I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal - > I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -c -o lwgeom_in_marc21.o > ../../postgis/lwgeom_in_marc21.c > In file included from /usr/include/ctype.h:100, > from /usr/pkg/include/postgresql/server/port.h:16, > from /usr/pkg/include/postgresql/server/c.h:1360, > from /usr/pkg/include/postgresql/server/postgres.h:48, > from ../../postgis/lwgeom_in_marc21.c:21: > ../../postgis/lwgeom_in_marc21.c: In function ?is_literal_valid?: > ../../postgis/lwgeom_in_marc21.c:153:37: warning: array subscript has type > ?char? [-Wchar-subscripts] > 153 | if (!isdigit(literal[j])) { > | ^ > > > gmake[1]: Entering directory > '/n0/gdt/SOFTWARE/GEO/POSTGIS/postgis/BUILD/topology' > gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after- > statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit- > fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat- > security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format- > truncation -Wno-stringop-truncation -O2 -I/usr/include - > I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include - > std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic- > interposition -fPIC -DPIC -fPIC -DPIC -fvisibility=hidden -I../liblwgeom - > I../../liblwgeom -I../../libpgcommon -I/usr/pkg/include -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. -I../../topology - > I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal - > I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -c -o postgis_topology.o ../../topology/postgis_topology.c > In file included from /usr/include/ctype.h:100, > from /usr/pkg/include/postgresql/server/port.h:16, > from /usr/pkg/include/postgresql/server/c.h:1360, > from /usr/pkg/include/postgresql/server/postgres.h:48, > from ../../topology/postgis_topology.c:14: > ../../topology/postgis_topology.c: In function ?_lwtype_upper_name?: > ../../topology/postgis_topology.c:145:20: warning: array subscript has type > ?char? [-Wchar-subscripts] > 145 | *ptr = toupper(*ptr); > | ^ > > gmake[3]: Entering directory > '/n0/gdt/SOFTWARE/GEO/POSTGIS/postgis/BUILD/raster/rt_pg' > gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after- > statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit- > fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat- > security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format- > truncation -Wno-stringop-truncation -O2 -I/usr/include - > I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include - > std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic- > interposition -fPIC -DPIC -fvisibility=hidden -I../../../liblwgeom - > I../../liblwgeom -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include - > I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include - > I/usr/pkg/include/json-c -DNDEBUG -I/usr/pkg/include -I../../../libpgcommon > -I/usr/pkg/include -I../../../raster/rt_pg/../rt_core -I. -I./.. -I../.. -I. -I./ - > I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal - > I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -c -o rtpostgis.o ../../../raster/rt_pg/rtpostgis.c > In file included from /usr/include/ctype.h:100, > from /usr/pkg/include/postgresql/server/port.h:16, > from /usr/pkg/include/postgresql/server/c.h:1360, > from /usr/pkg/include/postgresql/server/postgres.h:48, > from ../../../raster/rt_pg/rtpostgis.c:132: > ../../../raster/rt_pg/rtpostgis.c: In function ?rt_pg_vsi_load_options?: > ../../../raster/rt_pg/rtpostgis.c:400:48: warning: array subscript has type > ?char? [-Wchar-subscripts] > 400 | *ptr = tolower(*ptr); > | ^ > gmake[3]: Entering directory > '/n0/gdt/SOFTWARE/GEO/POSTGIS/postgis/BUILD/raster/rt_pg' > gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after- > statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit- > fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat- > security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format- > truncation -Wno-stringop-truncation -O2 -I/usr/include - > I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include - > std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic- > interposition -fPIC -DPIC -fvisibility=hidden -I../../../liblwgeom - > I../../liblwgeom -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include - > I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include - > I/usr/pkg/include/json-c -DNDEBUG -I/usr/pkg/include -I../../../libpgcommon > -I/usr/pkg/include -I../../../raster/rt_pg/../rt_core -I. -I./.. -I../.. -I. -I./ - > I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal - > I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -c -o rtpostgis.o ../../../raster/rt_pg/rtpostgis.c > In file included from /usr/include/ctype.h:100, > from /usr/pkg/include/postgresql/server/port.h:16, > from /usr/pkg/include/postgresql/server/c.h:1360, > from /usr/pkg/include/postgresql/server/postgres.h:48, > from ../../../raster/rt_pg/rtpostgis.c:132: > ../../../raster/rt_pg/rtpostgis.c: In function ?rt_pg_vsi_load_options?: > ../../../raster/rt_pg/rtpostgis.c:400:48: warning: array subscript has type > ?char? [-Wchar-subscripts] > 400 | *ptr = tolower(*ptr); > | ^ > gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after- > statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit- > fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat- > security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format- > truncation -Wno-stringop-truncation -O2 -I/usr/include - > I/usr/pkg/include/libxml2 -I/usr/include/readline -I/usr/pkg/include - > std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fno-semantic- > interposition -fPIC -DPIC -fvisibility=hidden -I../../../liblwgeom - > I../../liblwgeom -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include - > I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include - > I/usr/pkg/include/json-c -DNDEBUG -I/usr/pkg/include -I../../../libpgcommon > -I/usr/pkg/include -I../../../raster/rt_pg/../rt_core -I. -I./.. -I../.. -I. -I./ - > I/usr/pkg/include/postgresql/server -I/usr/pkg/include/postgresql/internal - > I/usr/include -I/usr/pkg/include/libxml2 -I/usr/include/readline - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -c -o rtpg_internal.o ../../../raster/rt_pg/rtpg_internal.c > In file included from /usr/include/ctype.h:100, > from ../../../raster/rt_pg/rtpg_internal.c:29: > ../../../raster/rt_pg/rtpg_internal.c: In function ?rtpg_strtoupper?: > ../../../raster/rt_pg/rtpg_internal.c:103:37: warning: array subscript has type > ?char? [-Wchar-subscripts] > 103 | str[j] = toupper(str[j]); > | ^ > ../../../raster/rt_pg/rtpg_internal.c: In function ?rtpg_trim?: > ../../../raster/rt_pg/rtpg_internal.c:237:24: warning: array subscript has type > ?char? [-Wchar-subscripts] > 237 | while (isspace(*input) && *input != '\0') > | ^ > ../../../raster/rt_pg/rtpg_internal.c:244:32: warning: array subscript has type > ?char? [-Wchar-subscripts] > 244 | while (isspace(*--ptr)) > | ^ > > gmake[3]: Entering directory > '/n0/gdt/SOFTWARE/GEO/POSTGIS/postgis/BUILD/raster/loader' > gcc -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 -fPIC - > DPIC -I../../../raster/loader/../rt_core -I./.. -I. -I../.. -I../../liblwgeom - > I../../../liblwgeom -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include - > c ../../../raster/loader/raster2pgsql.c > In file included from /usr/include/ctype.h:100, > from /usr/pkg/include/cpl_port.h:107, > from /usr/pkg/include/gdal.h:29, > from ../../../raster/loader/../rt_core/librtcore.h:124, > from ../../../raster/loader/raster2pgsql.h:42, > from ../../../raster/loader/raster2pgsql.c:28: > ../../../raster/loader/raster2pgsql.c: In function ?strtolower?: > ../../../raster/loader/raster2pgsql.c:241:37: warning: array subscript has type > ?char? [-Wchar-subscripts] > 241 | str[j] = tolower(str[j]); > | ^ > ../../../raster/loader/raster2pgsql.c: In function ?trim?: > ../../../raster/loader/raster2pgsql.c:325:24: warning: array subscript has type > ?char? [-Wchar-subscripts] > 325 | while (isspace(*input)) > | ^ > ../../../raster/loader/raster2pgsql.c:330:24: warning: array subscript has type > ?char? [-Wchar-subscripts] > 330 | while (isspace(*--ptr)) > | ^ > > gcc -I../../liblwgeom -I../liblwgeom -I/usr/pkg/include -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -std=gnu11 -g -O2 - > fno-math-errno -fno-signed-zeros -Wall -O2 -fPIC -DPIC -I/usr/pkg/include -c > ../../loader/shp2pgsql-core.c > In file included from /usr/include/ctype.h:100, > from ../../loader/shp2pgsql-core.h:19, > from ../../loader/shp2pgsql-core.c:22: > ../../loader/shp2pgsql-core.c: In function ?strtolower?: > ../../loader/shp2pgsql-core.c:891:33: warning: array subscript has type ?char? > [-Wchar-subscripts] > 891 | s[j] = tolower(s[j]); > | ^ > > gcc -I../../liblwgeom -I../liblwgeom -I/usr/pkg/include -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include - > I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -std=gnu11 -g -O2 - > fno-math-errno -fno-signed-zeros -Wall -O2 -fPIC -DPIC -I/usr/pkg/include - > I/usr/pkg/include -c ../../loader/pgsql2shp-core.c > In file included from /usr/include/ctype.h:100, > from ../../loader/pgsql2shp-core.h:17, > from ../../loader/pgsql2shp-core.c:27: > ../../loader/pgsql2shp-core.c: In function ?goodDBFValue?: > ../../loader/pgsql2shp-core.c:753:36: warning: array subscript has type ?char? > [-Wchar-subscripts] > 753 | buf[0] = toupper(in[0]); > | ^ > ../../loader/pgsql2shp-core.c: In function ?ShpDumperOpenTable?: > ../../loader/pgsql2shp-core.c:1717:76: warning: array subscript has type > ?char? [-Wchar-subscripts] > 1717 | dbffieldname[nameit] = > toupper(dbffieldname[nameit]); > | ^ I'll have to take closer look at this one. I would have expected our bots that have warning flags turned on would have flagged these. Which version of PostgreSQL and gcc compiler are you running with? From gdt at lexort.com Thu Oct 22 04:17:05 2026 From: gdt at lexort.com (Greg Troxel) Date: Thu, 22 Oct 2026 07:17:05 -0400 Subject: PostGIS 3.7.0rc3 release In-Reply-To: <002301dd61f8$a41de830$ec59b890$@pcorp.us> (Regina Obe's message of "Thu, 22 Oct 2026 03:40:41 -0400") References: <001001dd611c$164ce6a0$42e6b3e0$@pcorp.us> <002301dd61f8$a41de830$ec59b890$@pcorp.us> Message-ID: "Regina Obe" writes: >> There is a large amount of ctype UB. I don't know if this is new, but I think I >> would have noticed and said something. >> >> Briefly, ctype functions take an int, and are defined only for values that are >> valid for unsigned char or EOF. Everything else is UB. >> Calling them with a variable of type char, if char is signed, leads to negative >> values. I would expect at least some systems in CI to warn somehow, but >> maybe they don't. >> >> libtool: compile: gcc -I../../liblwgeom/../deps/ryu/.. -I/usr/pkg/include - >> I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 - >> I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG -I. >> -I../../liblwgeom -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall - >> O2 -fPIC -DPIC -c ../../liblwgeom/optionlist.c -fPIC -DPIC -o .libs/optionlist.o >> In file included from /usr/include/ctype.h:100, >> from ../../liblwgeom/optionlist.c:28: >> ../../liblwgeom/optionlist.c: In function 'option_list_string_to_lower': >> ../../liblwgeom/optionlist.c:36:32: warning: array subscript has type 'char' [- >> Wchar-subscripts] >> 36 | *key = tolower(*key); >> | ^ > > I'll have to take closer look at this one. I would have expected our > bots that have warning flags turned on would have flagged these. > Which version of PostgreSQL and gcc compiler are you running with? pgsql 18, gcc 12. There are two issues: One is that the code is wrong, and the second is why CI didn't catch it. The code is wrong becaues C/POSIX say that ctype functions are UB if the argument is not in the defined domain. See https://pubs.opengroup.org/onlinepubs/9799919799/functions/tolower.html and specifically: The tolower() [CX] [Option Start] and tolower_l() [Option End] functions have as a domain a type int, the value of which is representable as an unsigned char or the value of EOF. If the argument has any other value, the behavior is undefined. If there is a variable of type char, which happens to be signed char, and it contains a negative number (which ? is), then calling tolower on that results in a negative integer not equal to EOF. It would conform to C/POSIX for the function to delete all your files, or more reasonably crash the program. Reading lwgeom's optionlist.c:optionlist_string_to_lower(), it's clear that it can lead to UB. The usual fix/workaround is to cast "char" to "unsigned char" before passing to a ctype function. With that ? is still ? but it's no longer negative, and within the domain for which the function has defined behavior. This is warned about on NetBSD not because of special warning detection on these functions, but because the ctype functions are implemented as macros (permitted by POSIX) and look up bitfields of upper, alpha, etc. in an array of 257 with an offset so it can index EOF (-1), and 0 to 255. Negative values read some other memory, but that's not really ok. This is partly as efficiency and partly to warn about incorrect code on purpose, so it can be fixed. I believe this is historical behavior going back to 4.2BSD at least, maybe even 2BSD, but I'm fuzzy on those details. as for my environment details, I noticed that configure doesn't print out `gcc --version`. Maybe it should but that's not a bug. gcc (nb1 20250721) 12.5.0 configure summary PostGIS is now configured for x86_64-unknown-netbsd11.0 -------------- Compiler Info ------------- C compiler: gcc -std=gnu11 -g -O2 -fno-math-errno -fno-signed-zeros -Wall -O2 C++ compiler (Wagyu): gcc -std=c++11 -x c++ C++ compiler (FlatGeobuf): gcc -std=c++11 -x c++ CPPFLAGS: -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/json-c -DNDEBUG LDFLAGS: -lm SQL preprocessor: /usr/bin/cpp -traditional-cpp -w -P -Upixel -Ubool Archiver: ar rs -------------- Additional Info ------------- Interrupt Tests: ENABLED -------------- Dependencies -------------- GEOS config: /usr/pkg/bin/pkg-config geos GEOS version: 3.15.0 (31500) GDAL config: /usr/pkg/bin/gdal-config GDAL version: 3.13.3 (31303) PostgreSQL config: /usr/pkg/bin/pg_config PostgreSQL version: PostgreSQL 18.6 PostgreSQL bindir: /usr/pkg/bin PostGIS utilities: ${exec_prefix}/bin PROJ version: 9.9.0 (90900) Libxml2 config: /usr/pkg/bin/xml2-config Libxml2 version: 2.15.4 JSON-C support: yes protobuf support: yes protobuf-c version: 1005002 Perl: /usr/pkg/bin/perl --------------- Extensions --------------- PostgreSQL EXTENSION support: enabled PostGIS Raster: enabled PostGIS Topology: enabled Doc visual examples: no SFCGAL support: disabled -------- Documentation Generation -------- xsltproc: /usr/pkg/bin/xsltproc docbook xsl base: dblatex: convert: /usr/pkg/bin/convert python3: