Move GSSAPI includes into its own header
authorDaniel Gustafsson <dgustafsson@postgresql.org>
Wed, 26 Mar 2025 14:31:46 +0000 (15:31 +0100)
committerDaniel Gustafsson <dgustafsson@postgresql.org>
Wed, 26 Mar 2025 14:31:46 +0000 (15:31 +0100)
commite92c0632c1473fe57383c58f0dfdde3bae7044f4
treebcb999bdd5c24d320409bf0d60c4aef1fcaf04ab
parent1eb399366ed658d41b8795a0a25599a8599bbcfb
Move GSSAPI includes into its own header

Due to a conflict in macro names on Windows between <wincrypt.h>
and <openssl/ssl.h> these headers need to be included using a
predictable pattern with an undef to handle that. The GSSAPI
header <gssapi.h> does include <wincrypt.h> which cause problems
with compiling PostgreSQL using MSVC when OpenSSL and GSSAPI are
both enabled in the tree. Rather than fixing piecemeal for each
file including gssapi headers, move the the includes and undef
to a new file which should be used to centralize the logic.

This patch is a reworked version of a patch by Imran Zaheer
proposed earlier in the thread. Once this has proven effective
in master we should look at backporting this as the problem
exist at least since v16.

Author: Daniel Gustafsson <daniel@yesql.se>
Co-authored-by: Imran Zaheer <imran.zhir@gmail.com>
Reported-by: Dave Page <dpage@pgadmin.org>
Reviewed-by: Andres Freund <andres@anarazel.de>
Reviewed-by: vignesh C <vignesh21@gmail.com>
Discussion: https://postgr.es/m/20240708173204.3f3xjilglx5wuzx6@awork3.anarazel.de
contrib/sslinfo/sslinfo.c
src/include/libpq/be-gssapi-common.h
src/include/libpq/libpq-be.h
src/include/libpq/pg-gssapi.h [new file with mode: 0644]
src/interfaces/libpq/libpq-int.h