override CFLAGS += $(PTHREAD_CFLAGS)
 endif
 
-# We can't use Makefile variables here because the MSVC build system scrapes
-# OBJS from this file.
+# The MSVC build system scrapes OBJS from this file.  If you change any of
+# the conditional additions of files to OBJS, update Mkvcbuild.pm to match.
+
 OBJS=  fe-auth.o fe-auth-scram.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o \
    fe-protocol2.o fe-protocol3.o pqexpbuffer.o fe-secure.o \
    libpq-events.o
 
    $postgres->AddLibrary('wldap32.lib') if ($solution->{options}->{ldap});
    $postgres->FullExportDLL('postgres.lib');
 
-   # The OBJS scraper doesn't know about ifdefs, so remove be-secure-openssl.c
-   # if building without OpenSSL
+   # The OBJS scraper doesn't know about ifdefs, so remove appropriate files
+   # if building without OpenSSL.
    if (!$solution->{options}->{openssl})
    {
        $postgres->RemoveFile('src/backend/libpq/be-secure-common.c');
        'src/interfaces/libpq/libpq.rc');
    $libpq->AddReference($libpgport);
 
-   # The OBJS scraper doesn't know about ifdefs, so remove fe-secure-openssl.c
-   # and sha2_openssl.c if building without OpenSSL, and remove sha2.c if
-   # building with OpenSSL.
+   # The OBJS scraper doesn't know about ifdefs, so remove appropriate files
+   # if building without OpenSSL.
    if (!$solution->{options}->{openssl})
    {
        $libpq->RemoveFile('src/interfaces/libpq/fe-secure-common.c');
        $libpq->RemoveFile('src/interfaces/libpq/fe-secure-openssl.c');
-       $libpq->RemoveFile('src/common/sha2_openssl.c');
-   }
-   else
-   {
-       $libpq->RemoveFile('src/common/sha2.c');
    }
 
    my $libpqwalreceiver =