Allow "make check"-style testing to work with musl C library.
authorTom Lane <[email protected]>
Tue, 26 Mar 2024 15:44:49 +0000 (11:44 -0400)
committerTom Lane <[email protected]>
Tue, 26 Mar 2024 15:44:49 +0000 (11:44 -0400)
commitd82605bcd6663cb7dc506fc9c0c5c9c7d80e144b
tree192f00f84c2ccee349f56c1ac59de58080736f8e
parent24d1b9989134e96f643ba31cd0e379fce5062534
Allow "make check"-style testing to work with musl C library.

The musl dynamic linker saves a pointer to the process' environment
value of LD_LIBRARY_PATH very early in startup.  When we move/clobber
the environment to make more room for ps status strings, we clobber
that value and thereby prevent libraries from being found via
LD_LIBRARY_PATH, which breaks the use of a temporary installation
for testing purposes.  To fix, stop collecting usable space for
ps status if we notice that the variable we are about to clobber
is LD_LIBRARY_PATH.  This will result in some reduction in how long
the ps status can be, but it's only likely to occur in temporary
test contexts, so it doesn't seem like a big problem.  In any case,
we don't have to do it if we see we are on glibc, which surely is
where the majority of our Linux testing is done.

Thomas Munro, Bruce Momjian, and Tom Lane, per report from Wolfgang
Walther.  Back-patch to all supported branches, with the hope that
we'll set up a buildfarm animal to test on this platform.

Discussion: https://postgr.es/m/fddd1cd6-dc16-40a2-9eb5-d7fef2101488@technowledgy.de
src/backend/utils/misc/ps_status.c