Allow "make check"-style testing to work with musl C library.
commit7651fd387697a8872d0e11ba2fcecfaf6cbaa39f
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 26 Mar 2024 15:44:49 +0000 (26 11:44 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 26 Mar 2024 15:44:49 +0000 (26 11:44 -0400)
tree2c8157603f81f2a1f87e860e7cd4d40e277c7df9
parent408209d6a9ae90a822edd48ce3c173b8b7e04ab7
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