Re: Building Postgres with lz4 on Visual Studio

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: Building Postgres with lz4 on Visual Studio
Дата
Msg-id 20220422195434.4u5ibqbvcf2xumuy@alap3.anarazel.de
обсуждение исходный текст
Ответ на Building Postgres with lz4 on Visual Studio  (Melih Mutlu <m.melihmutlu@gmail.com>)
Список pgsql-hackers
Hi,

Michael, Dilip, I think you worked most in this area? Based on
9ca40dcd4d0cad43d95a9a253fafaa9a9ba7de24

Robert, added you too, because zstd seems to have the same issue (based on the
tail of the quoted email below).

On 2022-04-13 17:21:41 +0300, Melih Mutlu wrote:
> I tried to build Postgres from source using Visual Studio 19. It worked all
> good.
> Then I wanted to build it with some dependencies, started with the ones
> listed here [1]. But I'm having some issues with lz4.
> 
> First I downloaded the latest release of lz4 from this link [2].
> Modified the src\tools\msvc\config.pl file as follows:
> 
> > use strict;
> > use warnings;
> >
> 
> 
> our $config;
> > $config->{"tap_tests"} = 1;
> > $config->{"asserts"} = 1;
> >
> 
> 
> $config->{"lz4"} = "c:/lz4/";
> > $config->{"openssl"} = "c:/openssl/1.1/";
> > $config->{"perl"} = "c:/strawberry/$ENV{DEFAULT_PERL_VERSION}/perl/";
> > $config->{"python"} = "c:/python/";
> >
> 
> 
> 1;
> 
> based on /src/tools/ci/windows_build_config.pl
> 
> Then ran the following commands:
> 
> > vcvarsall x64
> > perl src/tools/msvc/mkvcbuild.pl
> > msbuild  -m -verbosity:minimal /p:IncludePath="C:\lz4" pgsql.sln

I don't think the /p:IncludePath should be needed, the build scripts should
add that.


> msbuild command fails with the following error:
> "LINK : fatal error LNK1181: cannot open input file
> 'c:\lz4\\lib\liblz4.lib' [C:\postgres\libpgtypes.vcxproj]"
> 
> What I realized is that c:\lz4\lib\liblz4.lib actually does not exist.
> The latest versions of lz4, downloaded from [2], do not contain \liblz4.lib
> anymore, as opposed to what's written here [3]. Also there isn't a lib
> folder too.
> 
> After those changes on lz4 side, AFAIU there seems like this line adds
> library from wrong path in Solution.pm file [4].
> 
> > $proj->AddIncludeDir($self->{options}->{lz4} . '\include');
> > $proj->AddLibrary($self->{options}->{lz4} . '\lib\liblz4.lib');
> 
> 
> Even if I spent some time on this problem and tried to fix some places, I'm
> not able to run a successful build yet.
> This is also the case for zstd too. Enabling zstd gives the same error.
> 
> Has anyone had this issue before? Is this something that anyone is aware of
> and somehow made it work?
> I would appreciate any comment/suggestion etc.

Greetings,

Andres Freund



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: Postgres perl module namespace
Следующее
От: Robert Haas
Дата:
Сообщение: Re: pgsql: Allow db.schema.table patterns, but complain about random garbag