Allow "make check"-style testing to work with musl C library.
commit8a92b70c11ba2b5f0d2b2611d9453dd90f618629
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)
treeecf6f05bc3fe71fa73e2b92b7e5dd9f9a7efbef6
parent89e5ef7e21812916c9cf9fcf56e45f0f74034656
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