Remove configure probes for symlink/readlink, and dead code.
authorThomas Munro <tmunro@postgresql.org>
Thu, 4 Aug 2022 21:22:56 +0000 (09:22 +1200)
committerThomas Munro <tmunro@postgresql.org>
Thu, 4 Aug 2022 21:22:56 +0000 (09:22 +1200)
commit2b1f580ee2ca373d0451d89a40fc8f0a5f55ede9
treef752391d9be7ab5a8229c1f3c4e0e5f413e5d5ec
parentadeef67834cc3db14c36430c1421cf4ed8a809d3
Remove configure probes for symlink/readlink, and dead code.

symlink() and readlink() are in SUSv2 and all targeted Unix systems have
them.  We have partial emulation on Windows.  Code that raised runtime
errors on systems without it has been dead for years, so we can remove
that and also references to such systems in the documentation.

Define HAVE_READLINK and HAVE_SYMLINK macros on Unix.  Our Windows
replacement functions based on junction points can't be used for
relative paths or for non-directories, so the macros can be used to
check for full symlink support.  The places that deal with tablespaces
can just use symlink functions without checking the macros.  (If they
did check the macros, they'd need to provide an #else branch with a
runtime or compile time error, and it'd be dead code.)

Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/CA+hUKGJ3LHeP9w5Fgzdr4G8AnEtJ=z=p6hGDEm4qYGEUX5B6fQ@mail.gmail.com
15 files changed:
configure
configure.ac
doc/src/sgml/manage-ag.sgml
doc/src/sgml/ref/create_tablespace.sgml
src/backend/access/transam/xlog.c
src/backend/commands/tablespace.c
src/backend/replication/basebackup.c
src/backend/utils/adt/misc.c
src/bin/initdb/initdb.c
src/bin/pg_basebackup/pg_basebackup.c
src/bin/pg_rewind/file_ops.c
src/common/exec.c
src/include/pg_config.h.in
src/include/port.h
src/tools/msvc/Solution.pm