Re: Building Postgres with lz4 on Visual Studio - Mailing list pgsql-hackers

From Andres Freund
Subject Re: Building Postgres with lz4 on Visual Studio
Date
Msg-id 20220422195434.4u5ibqbvcf2xumuy@alap3.anarazel.de
Whole thread Raw
In response to Building Postgres with lz4 on Visual Studio  (Melih Mutlu <m.melihmutlu@gmail.com>)
List 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 by date:

Previous
From: Andres Freund
Date:
Subject: Re: Postgres perl module namespace
Next
From: Robert Haas
Date:
Subject: Re: pgsql: Allow db.schema.table patterns, but complain about random garbag