Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitbad51a4

Browse files
committed
Blindly try to fix MSVC build's use of genbki.pl and Gen_fmgrtab.pl.
We need to use a stamp file to record the runs of these scripts, asis done on the Unix side. I think I got it right, but can't test.While at it, extend this handmade dependency logic to also check thegenerating script files, as the makefiles do.Discussion:https://postgr.es/m/16925.1525376229@sss.pgh.pa.us
1 parent1f1cd9b commitbad51a4

File tree

2 files changed

+45
-25
lines changed

2 files changed

+45
-25
lines changed

‎src/tools/msvc/Solution.pm

Lines changed: 42 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -266,13 +266,18 @@ sub GenerateFiles
266266
chdir('src/backend/utils');
267267
my$pg_language_dat ='../../../src/include/catalog/pg_language.dat';
268268
my$pg_proc_dat ='../../../src/include/catalog/pg_proc.dat';
269-
if ( IsNewer('fmgrtab.c',$pg_language_dat)
270-
|| IsNewer('fmgrtab.c',$pg_proc_dat)
271-
|| IsNewer('fmgrtab.c','../../../src/include/access/transam.h'))
269+
if ( IsNewer('fmgr-stamp','Gen_fmgrtab.pl')
270+
|| IsNewer('fmgr-stamp','../catalog/Catalog.pm')
271+
|| IsNewer('fmgr-stamp',$pg_language_dat)
272+
|| IsNewer('fmgr-stamp',$pg_proc_dat)
273+
|| IsNewer('fmgr-stamp','../../../src/include/access/transam.h'))
272274
{
273275
system(
274276
"perl -I ../catalog Gen_fmgrtab.pl -I../../../src/include/$pg_language_dat$pg_proc_dat"
275277
);
278+
open(my$f,'>','fmgr-stamp')
279+
|| confess"Could not touch fmgr-stamp";
280+
close($f);
276281
}
277282
chdir('../../..');
278283

@@ -468,36 +473,49 @@ EOF
468473
|| croak"Could not find POSTGRES_BKI_DATA in Makefile\n";
469474
my@bki_data =split /\s+/,$1;
470475

476+
my$need_genbki = 0;
471477
foreachmy$bki (@bki_srcs,@bki_data)
472478
{
473479
nextif$bkieq"";
474480
if (IsNewer(
475-
'src/backend/catalog/postgres.bki',
481+
'src/backend/catalog/bki-stamp',
476482
"src/include/catalog/$bki"))
477483
{
478-
chdir('src/backend/catalog');
479-
my$bki_srcs =join(' ../../../src/include/catalog/',@bki_srcs);
480-
system(
481-
"perl genbki.pl --set-version=$self->{majorver}$bki_srcs");
482-
chdir('../../..');
483-
484-
# Copy generated headers to include directory.
485-
opendir(my$dh,'src/backend/catalog/')
486-
||die"Can't opendir src/backend/catalog/$!";
487-
my@def_headers =grep {/pg_\w+_d\.h$/ }readdir($dh);
488-
closedir$dh;
489-
foreachmy$def_header (@def_headers)
490-
{
491-
copyFile(
492-
"src/backend/catalog/$def_header",
493-
"src/include/catalog/$def_header");
494-
}
495-
copyFile(
496-
'src/backend/catalog/schemapg.h',
497-
'src/include/catalog/schemapg.h');
484+
$need_genbki = 1;
498485
last;
499486
}
500487
}
488+
$need_genbki = 1
489+
if IsNewer('src/backend/catalog/bki-stamp',
490+
'src/backend/catalog/genbki.pl');
491+
$need_genbki = 1
492+
if IsNewer('src/backend/catalog/bki-stamp',
493+
'src/backend/catalog/Catalog.pm');
494+
if ($need_genbki)
495+
{
496+
chdir('src/backend/catalog');
497+
my$bki_srcs =join(' ../../../src/include/catalog/',@bki_srcs);
498+
system("perl genbki.pl --set-version=$self->{majorver}$bki_srcs");
499+
open(my$f,'>','bki-stamp')
500+
|| confess"Could not touch bki-stamp";
501+
close($f);
502+
chdir('../../..');
503+
504+
# Copy generated headers to include directory.
505+
opendir(my$dh,'src/backend/catalog/')
506+
||die"Can't opendir src/backend/catalog/$!";
507+
my@def_headers =grep {/pg_\w+_d\.h$/ }readdir($dh);
508+
closedir$dh;
509+
foreachmy$def_header (@def_headers)
510+
{
511+
copyFile(
512+
"src/backend/catalog/$def_header",
513+
"src/include/catalog/$def_header");
514+
}
515+
copyFile(
516+
'src/backend/catalog/schemapg.h',
517+
'src/include/catalog/schemapg.h');
518+
}
501519

502520
open(my$o,'>',"doc/src/sgml/version.sgml")
503521
|| croak"Could not write to version.sgml\n";

‎src/tools/msvc/clean.bat

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,11 @@ if exist doc\src\sgml\version.sgml del /q doc\src\sgml\version.sgml
5454
if%DIST%==1ifexist src\backend\utils\fmgroids.hdel /q src\backend\utils\fmgroids.h
5555
if%DIST%==1ifexist src\backend\utils\fmgrprotos.hdel /q src\backend\utils\fmgrprotos.h
5656
if%DIST%==1ifexist src\backend\utils\fmgrtab.cdel /q src\backend\utils\fmgrtab.c
57+
if%DIST%==1ifexist src\backend\utils\fmgr-stampdel /q src\backend\utils\fmgr-stamp
58+
if%DIST%==1ifexist src\backend\utils\errcodes.hdel /q src\backend\utils\errcodes.h
5759
if%DIST%==1ifexist src\backend\storage\lmgr\lwlocknames.cdel /q src\backend\storage\lmgr\lwlocknames.c
5860
if%DIST%==1ifexist src\backend\storage\lmgr\lwlocknames.hdel /q src\backend\storage\lmgr\lwlocknames.h
5961
if%DIST%==1ifexist src\pl\plpython\spiexceptions.hdel /q src\pl\plpython\spiexceptions.h
60-
if%DIST%==1ifexist src\backend\utils\errcodes.hdel /q src\backend\utils\errcodes.h
6162
if%DIST%==1ifexist src\pl\plpgsql\src\plerrcodes.hdel /q src\pl\plpgsql\src\plerrcodes.h
6263
if%DIST%==1ifexist src\pl\tcl\pltclerrcodes.hdel /q src\pl\tcl\pltclerrcodes.h
6364
if%DIST%==1ifexist src\backend\utils\sort\qsort_tuple.cdel /q src\backend\utils\sort\qsort_tuple.c
@@ -69,6 +70,7 @@ if %DIST%==1 if exist src\backend\catalog\postgres.description del /q src\backen
6970
if%DIST%==1ifexist src\backend\catalog\postgres.shdescriptiondel /q src\backend\catalog\postgres.shdescription
7071
if%DIST%==1ifexist src\backend\catalog\schemapg.hdel /q src\backend\catalog\schemapg.h
7172
if%DIST%==1ifexist src\backend\catalog\pg_*_d.hdel /q src\backend\catalog\pg_*_d.h
73+
if%DIST%==1ifexist src\backend\catalog\bki-stampdel /q src\backend\catalog\bki-stamp
7274
if%DIST%==1ifexist src\backend\parser\scan.cdel /q src\backend\parser\scan.c
7375
if%DIST%==1ifexist src\backend\parser\gram.cdel /q src\backend\parser\gram.c
7476
if%DIST%==1ifexist src\backend\bootstrap\bootscanner.cdel /q src\backend\bootstrap\bootscanner.c

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp