Properly install dynloader.h on MSVC builds
authorBruce Momjian
Wed, 20 Jan 2016 04:30:29 +0000 (23:30 -0500)
committerBruce Momjian
Wed, 20 Jan 2016 04:30:29 +0000 (23:30 -0500)
This will enable PL/Java to be cleanly compiled, as dynloader.h is a
requirement.

Report by Chapman Flack

Patch by Michael Paquier

Backpatch through 9.1

src/backend/utils/fmgr/dfmgr.c
src/tools/msvc/Install.pm
src/tools/msvc/Solution.pm
src/tools/msvc/clean.bat

index 042af7877bfc8192ff699fcff49b60e8ed751c77..11e07a23e2d18906d69e9ba8e368e6229f5148a8 100644 (file)
 
 #include 
 
-#ifndef WIN32_ONLY_COMPILER
 #include "dynloader.h"
-#else
-#include "port/dynloader/win32.h"
-#endif
 #include "lib/stringinfo.h"
 #include "miscadmin.h"
 #include "utils/dynamic_loader.h"
index ce17f72ec5a5befe3334ff09f95d2c8e271e62e9..809060343a8712513e4732091f9d4c0e55a23be7 100644 (file)
@@ -530,7 +530,7 @@ sub CopyIncludeFiles
        'Public headers', $target . '/include/',
        'src/include/',   'postgres_ext.h',
        'pg_config.h',    'pg_config_ext.h',
-       'pg_config_os.h', 'pg_config_manual.h');
+       'pg_config_os.h', 'dynloader.h', 'pg_config_manual.h');
    lcopy('src/include/libpq/libpq-fs.h', $target . '/include/libpq/')
      || croak 'Could not copy libpq-fs.h';
 
@@ -553,7 +553,8 @@ sub CopyIncludeFiles
    CopyFiles(
        'Server headers',
        $target . '/include/server/',
-       'src/include/', 'pg_config.h', 'pg_config_ext.h', 'pg_config_os.h');
+       'src/include/', 'pg_config.h', 'pg_config_ext.h', 'pg_config_os.h',
+       'dynloader.h');
    CopyFiles(
        'Grammar header',
        $target . '/include/server/parser/',
index f7a5abbd6af73682a6d7a821b516b7bcba059aaf..720362aff7fe8d886f3d27f67edc0dfa373dd700 100644 (file)
@@ -289,6 +289,14 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY
            'src\include\utils\fmgroids.h');
    }
 
+   if (IsNewer(
+           'src/include/dynloader.h',
+           'src/backend/port/dynloader/win32.h'))
+   {
+       copyFile('src/backend/port/dynloader/win32.h',
+           'src/include/dynloader.h');
+   }
+
    if (IsNewer('src\include\utils\probes.h', 'src\backend\utils\probes.d'))
    {
        print "Generating probes.h...\n";
index b071cb740cc0fa3cdac56a9171595050f11e5d0f..33784cd2b3b85307d562a381100e1bfc7b53ac88 100755 (executable)
@@ -24,6 +24,7 @@ REM Delete files created with GenerateFiles() in Solution.pm
 if exist src\include\pg_config.h del /q src\include\pg_config.h
 if exist src\include\pg_config_ext.h del /q src\include\pg_config_ext.h
 if exist src\include\pg_config_os.h del /q src\include\pg_config_os.h
+if exist src\include\dynloader.h del /q src\include\dynloader.h
 if %DIST%==1 if exist src\backend\parser\gram.h del /q src\backend\parser\gram.h
 if exist src\include\utils\errcodes.h del /q src\include\utils\errcodes.h
 if exist src\include\utils\fmgroids.h del /q src\include\utils\fmgroids.h