Remove configure probe for link.

link() is in SUSv2 and all targeted Unix systems have it.  We have
replacement code for Windows that doesn't require a configure probe.
Since only Windows needs it, rename src/port/link.c to win32link.c like
other similar things.

There is no need for a vestigial HAVE_LINK macro, because we expect all
Unix and, with our replacement function, Windows systems to have it, so
we didn't have any tests around link() usage.

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
This commit is contained in:
Thomas Munro 2022-08-05 09:36:50 +12:00
parent 2b1f580ee2
commit 5963c9a154
7 changed files with 15 additions and 27 deletions

19
configure vendored
View File

@ -16715,19 +16715,6 @@ esac
fi
ac_fn_c_check_func "$LINENO" "link" "ac_cv_func_link"
if test "x$ac_cv_func_link" = xyes; then :
$as_echo "#define HAVE_LINK 1" >>confdefs.h
else
case " $LIBOBJS " in
*" link.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS link.$ac_objext"
;;
esac
fi
ac_fn_c_check_func "$LINENO" "mkdtemp" "ac_cv_func_mkdtemp"
if test "x$ac_cv_func_mkdtemp" = xyes; then :
$as_echo "#define HAVE_MKDTEMP 1" >>confdefs.h
@ -17059,6 +17046,12 @@ esac
;;
esac
case " $LIBOBJS " in
*" win32link.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS win32link.$ac_objext"
;;
esac
case " $LIBOBJS " in
*" win32ntdll.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS win32ntdll.$ac_objext"

View File

@ -1877,7 +1877,6 @@ AC_REPLACE_FUNCS(m4_normalize([
getopt
getpeereid
inet_aton
link
mkdtemp
pread
pwrite
@ -1957,6 +1956,7 @@ if test "$PORTNAME" = "win32"; then
AC_LIBOBJ(win32dlopen)
AC_LIBOBJ(win32env)
AC_LIBOBJ(win32error)
AC_LIBOBJ(win32link)
AC_LIBOBJ(win32ntdll)
AC_LIBOBJ(win32security)
AC_LIBOBJ(win32setlocale)

View File

@ -334,9 +334,6 @@
/* Define to 1 if you have the `zstd' library (-lzstd). */
#undef HAVE_LIBZSTD
/* Define to 1 if you have the `link' function. */
#undef HAVE_LINK
/* Define to 1 if the system has the type `locale_t'. */
#undef HAVE_LOCALE_T

View File

@ -402,7 +402,8 @@ extern float pg_strtof(const char *nptr, char **endptr);
#define strtof(a,b) (pg_strtof((a),(b)))
#endif
#ifndef HAVE_LINK
#ifdef WIN32
/* src/port/win32link.c */
extern int link(const char *src, const char *dst);
#endif

View File

@ -1,21 +1,19 @@
/*-------------------------------------------------------------------------
*
* link.c
* win32link.c
*
* Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* src/port/link.c
* src/port/win32link.c
*
*-------------------------------------------------------------------------
*/
#include "c.h"
#ifdef WIN32
int
link(const char *src, const char *dst)
{
@ -31,5 +29,3 @@ link(const char *src, const char *dst)
else
return 0;
}
#endif

View File

@ -103,13 +103,15 @@ sub mkvcbuild
getpeereid.c getrusage.c inet_aton.c
getaddrinfo.c gettimeofday.c inet_net_ntop.c kill.c open.c
snprintf.c strlcat.c strlcpy.c dirmod.c noblock.c path.c
dirent.c getopt.c getopt_long.c link.c
dirent.c getopt.c getopt_long.c
pread.c preadv.c pwrite.c pwritev.c pg_bitutils.c
pg_strong_random.c pgcheckdir.c pgmkdirp.c pgsleep.c pgstrcasecmp.c
pqsignal.c mkdtemp.c qsort.c qsort_arg.c bsearch_arg.c quotes.c system.c
strerror.c tar.c
win32dlopen.c
win32env.c win32error.c win32ntdll.c
win32env.c win32error.c
win32link.c
win32ntdll.c
win32security.c win32setlocale.c win32stat.c);
push(@pgportfiles, 'strtof.c') if ($vsVersion < '14.00');

View File

@ -306,7 +306,6 @@ sub GenerateFiles
HAVE_LIBXSLT => undef,
HAVE_LIBZ => $self->{options}->{zlib} ? 1 : undef,
HAVE_LIBZSTD => undef,
HAVE_LINK => undef,
HAVE_LOCALE_T => 1,
HAVE_LONG_INT_64 => undef,
HAVE_LONG_LONG_INT_64 => 1,