Re: Regression tests fail with musl libc because libpq.so can't be loaded
Wolfgang Walther <walther@technowledgy.de>
From: Wolfgang Walther <walther@technowledgy.de>
To: Bruce Momjian <bruce@momjian.us>
Cc: Thomas Munro <thomas.munro@gmail.com>, peter@eisentraut.org,
Christophe Pettus <xof@thebuild.com>, Andrew Dunstan <andrew@dunslane.net>,
PostgreSQL Bugs <pgsql-bugs@lists.postgresql.org>,
Tom Lane <tgl@sss.pgh.pa.us>
Date: 2024-03-20T14:37:07Z
Lists: pgsql-bugs, pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Allow "make check"-style testing to work with musl C library.
- d82605bcd666 14.12 landed
- 8a92b70c11ba 17.0 landed
- 7651fd387697 16.3 landed
- 7124e7d528a8 12.19 landed
- 3c3f4fd741d0 15.7 landed
- 243e9953281f 13.15 landed
-
Fix compiler warnings on MSYS2
- 8c6d30f21139 13.0 cited
Bruce Momjian: > On Wed, Mar 20, 2024 at 10:39:20AM +0100, Wolfgang Walther wrote: >> Peter Eisentraut: >>> We could turn it around and do >>> >>> #if defined(__linux__) >>> #if defined(__GLIBC__) || defined(__UCLIBC__ ) >>> #define PS_USE_CLOBBER_ARGV >>> #else >>> #define PS_USE_NONE >>> #endif >>> #endif >> >> This works as well. > > Yes, I prefer this. I am worried the environ hackery will bite us > someday and the cause will be hard to find. Well, the environ hackery already bit and it sure was hard to find. But this approach would still clobber environ happily... which is undefined behavior. But certainly the opt-in to known-to-be-good libc variants is a better approach than before. Between this and "stop clobbering at LD_LIBRARY_PATH", I prefer the latter, though. >> I also put together a PoC of what was mentioned in musl's mailing list: >> Instead of clobbering environ at all, exec yourself again with padded argv0. >> This works, too. Attached. > > It is hard to imagine why we would add an extra exec on every Linux > server start for this. Would this be a problem? For a running server this would happen only once when the postmaster starts up, AFAICT. Best, Wolfgang