On 5/18/18, Sandeep Thakkar <sandeep.thak...@enterprisedb.com> wrote:
> Hi
>
> I was building the sources I got from https://www.postgresql.org/
> ftp/snapshot/dev/ on Windows x64 and got the whole bunch of errors
> like "*Cannot
> open include file: 'catalog/pg_type_d.h"* , *"Cannot open include file:
> 'catalog/pg_tablespace_d.h'" . *I've attached the log.

I'm thinking the include/catalog/pg_*_d.h headers got dist-cleaned
when creating the snapshot, and the build script doesn't know to copy
them over. If you're able to test, does the attached patch fix the
issue? (This may not be the right permanent fix, but hopefully it will
confirm my suspicion)

-John Naylor
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 4ad1f8f..a33e68e 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -501,7 +501,12 @@ EOF
 		  || confess "Could not touch bki-stamp";
 		close($f);
 		chdir('../../..');
+	}
 
+	if (IsNewer(
+			'src/include/catalog/header-stamp',
+			'src/backend/catalog/bki-stamp'))
+	{
 		# Copy generated headers to include directory.
 		opendir(my $dh, 'src/backend/catalog/')
 		  || die "Can't opendir src/backend/catalog/ $!";
@@ -516,6 +521,9 @@ EOF
 		copyFile(
 			'src/backend/catalog/schemapg.h',
 			'src/include/catalog/schemapg.h');
+		open(my $chs, '>', 'src/include/catalog/header-stamp')
+		  || confess "Could not touch header-stamp";
+		close($chs);
 	}
 
 	open(my $o, '>', "doc/src/sgml/version.sgml")
diff --git a/src/tools/msvc/clean.bat b/src/tools/msvc/clean.bat
index a041ef2..6545442 100755
--- a/src/tools/msvc/clean.bat
+++ b/src/tools/msvc/clean.bat
@@ -49,6 +49,7 @@ if exist src\include\storage\lwlocknames.h del /q src\include\storage\lwlockname
 if exist src\include\utils\probes.h del /q src\include\utils\probes.h
 if exist src\include\catalog\schemapg.h del /q src\include\catalog\schemapg.h
 if exist src\include\catalog\pg_*_d.h del /q src\include\catalog\pg_*_d.h
+if exist src\include\catalog\header-stamp del /q src\include\catalog\header-stamp
 if exist doc\src\sgml\version.sgml del /q doc\src\sgml\version.sgml
 
 if %DIST%==1 if exist src\backend\utils\fmgroids.h del /q src\backend\utils\fmgroids.h

Reply via email to