From 13c98bdfc41eefb75da24fd2a886b0ef5314b7f6 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Wed, 25 Mar 2020 19:37:30 -0400 Subject: [PATCH] Fix assorted portability issues in commit 896fcdb23. Some platforms require libssl to be linked explicitly in the new SSL test module. Borrow contrib/sslinfo's code for that. Since src/test/modules/Makefile now has a variable SUBDIRS list, it needs to follow the ALWAYS_SUBDIRS protocol for that (cf. comments in Makefile.global.in). Blindly try to fix MSVC build failures by adding PGDLLIMPORT. --- src/include/libpq/libpq-be.h | 2 +- src/include/libpq/libpq.h | 4 ++-- src/test/modules/Makefile | 4 +++- src/test/modules/ssl_passphrase_callback/Makefile | 2 ++ 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/include/libpq/libpq-be.h b/src/include/libpq/libpq-be.h index ee57fdc301..67697836ba 100644 --- a/src/include/libpq/libpq-be.h +++ b/src/include/libpq/libpq-be.h @@ -289,7 +289,7 @@ extern char *be_tls_get_certificate_hash(Port *port, size_t *len); /* init hook for SSL, the default sets the password callback if appropriate */ typedef void(* openssl_tls_init_hook_typ)(SSL_CTX *context, bool isServerStart); -extern openssl_tls_init_hook_typ openssl_tls_init_hook; +extern PGDLLIMPORT openssl_tls_init_hook_typ openssl_tls_init_hook; #endif /* USE_SSL */ diff --git a/src/include/libpq/libpq.h b/src/include/libpq/libpq.h index 4d3a0bef63..b1152475ac 100644 --- a/src/include/libpq/libpq.h +++ b/src/include/libpq/libpq.h @@ -83,8 +83,8 @@ extern char *ssl_key_file; extern char *ssl_ca_file; extern char *ssl_crl_file; extern char *ssl_dh_params_file; -extern char *ssl_passphrase_command; -extern bool ssl_passphrase_command_supports_reload; +extern PGDLLIMPORT char *ssl_passphrase_command; +extern PGDLLIMPORT bool ssl_passphrase_command_supports_reload; #ifdef USE_SSL extern bool ssl_loaded_verify_locations; #endif diff --git a/src/test/modules/Makefile b/src/test/modules/Makefile index 5f975ebcba..29de73c060 100644 --- a/src/test/modules/Makefile +++ b/src/test/modules/Makefile @@ -27,7 +27,9 @@ SUBDIRS = \ ifeq ($(with_openssl),yes) SUBDIRS += ssl_passphrase_callback +else +ALWAYS_SUBDIRS += ssl_passphrase_callback endif - $(recurse) +$(recurse_always) diff --git a/src/test/modules/ssl_passphrase_callback/Makefile b/src/test/modules/ssl_passphrase_callback/Makefile index e2d19f131a..1c4f79807e 100644 --- a/src/test/modules/ssl_passphrase_callback/Makefile +++ b/src/test/modules/ssl_passphrase_callback/Makefile @@ -17,6 +17,8 @@ include $(top_builddir)/src/Makefile.global include $(top_srcdir)/contrib/contrib-global.mk endif +SHLIB_LINK += $(filter -lssl -lcrypto -lssleay32 -leay32, $(LIBS)) + check: prove-check prove-check: ssl_passphrase_func$(DLSUFFIX) | temp-install