Я запускаю это на 64-разрядной оболочке msys2 MINGW65.
Я побежал
$source/configure --host=x86_64-w64-mingw32 --prefix=$dist && make
и все до тех пор, пока марка не заработает должным образом. После получения проблемы с make и попытки разобраться с проблемой, я продолжаю запускать make для той же проблемы ниже.
Затем, когда я запускаю make в папке.
все идет нормально, пока не дойдет до этой части
make[2]: Leaving directory '/c/builds/build/REL_11_8/src/backend/utils'
make -C storage/lmgr lwlocknames.h lwlocknames.c
make[2]: Entering directory '/c/builds/build/REL_11_8/src/backend/storage/lmgr'
'/usr/bin/perl' /c/builds/source/src/backend/storage/lmgr/generate-lwlocknames.pl
/c/builds/source/src/backend/storage/lmgr/lwlocknames.txt
unable to parse lwlocknames.txt at /c/builds/source/src/backend/storage/lmgr/generate-
lwlocknames.pl line 36, <$lwlocknames> line 8.
make[2]: *** [Makefile:33: lwlocknames.h] Error 255
make[2]: Leaving directory '/c/builds/build/REL_11_8/src/backend/storage/lmgr'
make[1]: *** [Makefile:137: storage/lmgr/lwlocknames.h] Error 2
make[1]: Leaving directory '/c/builds/build/REL_11_8/src/backend'
make: *** [src/Makefile.global:372: submake-generated-headers] Error 2
В generate-lwlocknames.pl
есть следующая строка, которая, очевидно, запускает его. Но я не знаю, почему это срабатывает и как это исправить.
Мне нужно скомпилировать эту сборку, чтобы иметь возможность получить DLL-файлы для расширения для машины Windows, на которой работает postgres.
while (<$lwlocknames>)
{
chomp;
# Skip comments
next if /^#/;
next if /^\s*$/;
die "unable to parse lwlocknames.txt"
unless /^(\w+)\s+(\d+)$/;
(my $lockname, my $lockidx) = ($1, $2);
die "lwlocknames.txt not in order" if $lockidx < $lastlockidx;
die "lwlocknames.txt has duplicates" if $lockidx == $lastlockidx;
while ($lastlockidx < $lockidx - 1)
{
++$lastlockidx;
printf $c "%s \"<unassigned:%d>\"", $continue, $lastlockidx;
$continue = ",\n";
}
printf $c "%s \"%s\"", $continue, $lockname;
$lastlockidx = $lockidx;
$continue = ",\n";
print $h "#define $lockname (&MainLWLockArray[$lockidx].lock)\n";
}