Re: On non-Windows, hard depend on uselocale(3) - Mailing list pgsql-hackers

From Álvaro Herrera
Subject Re: On non-Windows, hard depend on uselocale(3)
Date
Msg-id 202602041910.ridz5gice3bi@alvherre.pgsql
Whole thread Raw
In response to Re: On non-Windows, hard depend on uselocale(3)  (Peter Eisentraut <peter@eisentraut.org>)
List pgsql-hackers
On 2026-Feb-04, Peter Eisentraut wrote:

> > It corresponds to this stale CF entry,
> > https://commitfest.postgresql.org/patch/5166/
> 
> My recollection is that I didn't at the time find any common pattern among
> the failing buildfarm members.  So the only way to move forward here would
> be to commit it again and then debug it live via the buildfarm.

Did you try adding $(PTHREAD_CFLAGS) or $(PTHREAD_LIBS) to the compile
line for test_json_parser?

I see that the failure in jackdaw (snapshot 2025-03-28 15:30:44)
was

ccache 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 -g -O2 -I. -I.
-I../../../../src/include  -D_GNU_SOURCE -I/usr/include/libxml2   -c -o test_json_parser_incremental.o
test_json_parser_incremental.c
ccache 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 -g -O2
test_json_parser_incremental.o -L../../../../src/port -L../../../../src/common   -Wl,--as-needed
-Wl,-rpath,'/home/debian/17-jackdaw/buildroot/HEAD/inst/lib',--enable-new-dtags  -lpgcommon -lpgport -lxslt -lxml2
-lssl-lcrypto -lgssapi_krb5 -lz -lreadline -lpthread -lrt -ldl -lm  -o test_json_parser_incremental
 
ccache 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 -g -O2
test_json_parser_incremental.o-L../../../../src/port -L../../../../src/common   -Wl,--as-needed
-Wl,-rpath,'/home/debian/17-jackdaw/buildroot/HEAD/inst/lib',--enable-new-dtags-lpgcommon_excluded_shlib
-L../../../../src/common-lpgcommon_shlib -L../../../../src/port -lpgport_shlib -L../../../../src/interfaces/libpq -lpq
-otest_json_parser_incremental_shlib
 
/usr/bin/ld: ../../../../src/port/libpgport_shlib.a(locale_shlib.o): undefined reference to symbol
'pthread_once@@GLIBC_2.17'
/usr/bin/ld: /lib/aarch64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:30: test_json_parser_incremental_shlib] Error 1


But if you look at how jackdaw compiles, say, ecpglib, there's

ccache 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 -g -O2 -pthread
-D_REENTRANT-D_THREAD_SAFE -I../include -I../../../../src/interfaces/ecpg/include -I. -I.
-I../../../../src/interfaces/ecpg/ecpglib-I../../../../src/interfaces/libpq -I../../../../src/include -D_GNU_SOURCE
-I/usr/include/libxml2    -c -o keywords.o keywords.c
 

note that it has "-pthread", which is not present in the
test_json_parser compile/link.  Does this matter because
libpgport_shlib.a needs that?  Did maybe test_json_parser not previously
need this locale thingy?

I suspect this is a problem in test_json_parser that somehow got tickled
by your patch, not a problem in your patch.

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/
¡Ay, ay, ay!  Con lo mucho que yo lo quería (bis)
se fue de mi vera ... se fue para siempre, pa toíta ... pa toíta la vida
¡Ay Camarón! ¡Ay Camarón!                                (Paco de Lucía)



pgsql-hackers by date:

Previous
From: Zsolt Parragi
Date:
Subject: Re: pg_dumpall --roles-only interact with other options
Next
From: Nathan Bossart
Date:
Subject: Re: pg_upgrade: transfer pg_largeobject_metadata's files when possible