Re: pthread option of msvc build. - Mailing list pgsql-patches
From | Magnus Hagander |
---|---|
Subject | Re: pthread option of msvc build. |
Date | |
Msg-id | 45B29A02.30000@hagander.net Whole thread Raw |
In response to | Re: pthread option of msvc build. (Bruce Momjian <bruce@momjian.us>) |
List | pgsql-patches |
Yes, please. //Magnus Bruce Momjian wrote: > Is this ready to be applied? > > --------------------------------------------------------------------------- > > Magnus Hagander wrote: >> Hiroshi Saito wrote: >>> Hi Magnus-san. >>> >>> I am trying simple construction by operating config.pl. >>> It has changed wonderfully now. however, I do not use ecpg, and see the >>> simplest construction. At that time, even pthread might not be needed. >>> It was simple. >> Good point, but the patch doesn't work. Simply removing the check >> doesn't work, it will cause warnings and errors all over when doing a >> complete build. >> >> Please try the attached patch which actually disables the building of >> ecpg if pthreads is not specified. >> >> >> //Magnus > >> Index: src\tools\msvc/Project.pm >> =================================================================== >> RCS file: c:/prog/cvsrepo/pgsql/pgsql/src/tools/msvc/Project.pm,v >> retrieving revision 1.5 >> diff -c -r1.5 Project.pm >> *** src\tools\msvc/Project.pm 4 Jan 2007 17:58:19 -0000 1.5 >> --- src\tools\msvc/Project.pm 11 Jan 2007 18:54:19 -0000 >> *************** >> *** 367,377 **** >> } >> $libs =~ s/ $//; >> $libs =~ s/__CFGNAME__/$cfgname/g; >> print $f <<EOF; >> <Configuration Name="$cfgname|Win32" OutputDirectory=".\\$cfgname\\$self->{name}" IntermediateDirectory=".\\$cfgname\\$self->{name}" >> ConfigurationType="$cfgtype" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="FALSE" CharacterSet="2" WholeProgramOptimization="$p->{wholeopt}"> >> <Tool Name="VCCLCompilerTool" Optimization="$p->{opt}" >> ! AdditionalIncludeDirectories="src/include;src/include/port/win32;src/include/port/win32_msvc;$self->{solution}->{options}->{pthread};$self->{includes}" >> PreprocessorDefinitions="WIN32;_WINDOWS;__WINDOWS__;__WIN32__;EXEC_BACKEND;WIN32_STACK_RLIMIT=4194304;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE$self->{defines}$p->{defs}" >> StringPooling="$p->{strpool}" >> RuntimeLibrary="$p->{runtime}" DisableSpecificWarnings="$self->{disablewarnings}" >> --- 367,379 ---- >> } >> $libs =~ s/ $//; >> $libs =~ s/__CFGNAME__/$cfgname/g; >> + my $pth = $self->{solution}->{options}->{pthread}; >> + $pth = '' unless $pth; >> print $f <<EOF; >> <Configuration Name="$cfgname|Win32" OutputDirectory=".\\$cfgname\\$self->{name}" IntermediateDirectory=".\\$cfgname\\$self->{name}" >> ConfigurationType="$cfgtype" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="FALSE" CharacterSet="2" WholeProgramOptimization="$p->{wholeopt}"> >> <Tool Name="VCCLCompilerTool" Optimization="$p->{opt}" >> ! AdditionalIncludeDirectories="src/include;src/include/port/win32;src/include/port/win32_msvc;$pth;$self->{includes}" >> PreprocessorDefinitions="WIN32;_WINDOWS;__WINDOWS__;__WIN32__;EXEC_BACKEND;WIN32_STACK_RLIMIT=4194304;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE$self->{defines}$p->{defs}" >> StringPooling="$p->{strpool}" >> RuntimeLibrary="$p->{runtime}" DisableSpecificWarnings="$self->{disablewarnings}" >> Index: src\tools\msvc/Solution.pm >> =================================================================== >> RCS file: c:/prog/cvsrepo/pgsql/pgsql/src/tools/msvc/Solution.pm,v >> retrieving revision 1.5 >> diff -c -r1.5 Solution.pm >> *** src\tools\msvc/Solution.pm 29 Dec 2006 16:49:02 -0000 1.5 >> --- src\tools\msvc/Solution.pm 11 Jan 2007 18:52:16 -0000 >> *************** >> *** 6,12 **** >> sub new { >> my $junk = shift; >> my $options = shift; >> - die "Pthreads is required.\n" unless $options->{pthread}; >> my $self = { >> projects => {}, >> options => $options, >> --- 6,11 ---- >> Index: src\tools\msvc/mkvcbuild.pl >> =================================================================== >> RCS file: c:/prog/cvsrepo/pgsql/pgsql/src/tools/msvc/mkvcbuild.pl,v >> retrieving revision 1.9 >> diff -c -r1.9 mkvcbuild.pl >> *** src\tools\msvc/mkvcbuild.pl 9 Jan 2007 06:00:43 -0000 1.9 >> --- src\tools\msvc/mkvcbuild.pl 11 Jan 2007 18:52:32 -0000 >> *************** >> *** 90,117 **** >> $pgtypes->AddReference($postgres,$libpgport); >> $pgtypes->AddIncludeDir('src\interfaces\ecpg\include'); >> >> ! my $libecpg = $solution->AddProject('libecpg','dll','interfaces','src\interfaces\ecpg\ecpglib'); >> ! $libecpg->AddDefine('FRONTEND'); >> ! $libecpg->AddIncludeDir('src\interfaces\ecpg\include'); >> ! $libecpg->AddIncludeDir('src\interfaces\libpq'); >> ! $libecpg->AddIncludeDir('src\port'); >> ! $libecpg->AddLibrary('wsock32.lib'); >> ! $libecpg->AddLibrary($config->{'pthread'} . '\pthreadVC2.lib'); >> ! $libecpg->AddReference($libpq,$pgtypes); >> ! >> ! my $libecpgcompat = $solution->AddProject('libecpg_compat','dll','interfaces','src\interfaces\ecpg\compatlib'); >> ! $libecpgcompat->AddIncludeDir('src\interfaces\ecpg\include'); >> ! $libecpgcompat->AddIncludeDir('src\interfaces\libpq'); >> ! $libecpgcompat->AddReference($pgtypes,$libecpg); >> ! >> ! my $ecpg = $solution->AddProject('ecpg','exe','interfaces','src\interfaces\ecpg\preproc'); >> ! $ecpg->AddIncludeDir('src\interfaces\ecpg\include'); >> ! $ecpg->AddIncludeDir('src\interfaces\libpq'); >> ! $ecpg->AddFiles('src\interfaces\ecpg\preproc','pgc.l','preproc.y'); >> ! $ecpg->AddDefine('MAJOR_VERSION=4'); >> ! $ecpg->AddDefine('MINOR_VERSION=2'); >> ! $ecpg->AddDefine('PATCHLEVEL=1'); >> ! $ecpg->AddReference($libpgport); >> >> >> # src/bin >> --- 90,122 ---- >> $pgtypes->AddReference($postgres,$libpgport); >> $pgtypes->AddIncludeDir('src\interfaces\ecpg\include'); >> >> ! if ($config->{pthread}) { >> ! my $libecpg = $solution->AddProject('libecpg','dll','interfaces','src\interfaces\ecpg\ecpglib'); >> ! $libecpg->AddDefine('FRONTEND'); >> ! $libecpg->AddIncludeDir('src\interfaces\ecpg\include'); >> ! $libecpg->AddIncludeDir('src\interfaces\libpq'); >> ! $libecpg->AddIncludeDir('src\port'); >> ! $libecpg->AddLibrary('wsock32.lib'); >> ! $libecpg->AddLibrary($config->{'pthread'} . '\pthreadVC2.lib'); >> ! $libecpg->AddReference($libpq,$pgtypes); >> ! >> ! my $libecpgcompat = $solution->AddProject('libecpg_compat','dll','interfaces','src\interfaces\ecpg\compatlib'); >> ! $libecpgcompat->AddIncludeDir('src\interfaces\ecpg\include'); >> ! $libecpgcompat->AddIncludeDir('src\interfaces\libpq'); >> ! $libecpgcompat->AddReference($pgtypes,$libecpg); >> ! >> ! my $ecpg = $solution->AddProject('ecpg','exe','interfaces','src\interfaces\ecpg\preproc'); >> ! $ecpg->AddIncludeDir('src\interfaces\ecpg\include'); >> ! $ecpg->AddIncludeDir('src\interfaces\libpq'); >> ! $ecpg->AddFiles('src\interfaces\ecpg\preproc','pgc.l','preproc.y'); >> ! $ecpg->AddDefine('MAJOR_VERSION=4'); >> ! $ecpg->AddDefine('MINOR_VERSION=2'); >> ! $ecpg->AddDefine('PATCHLEVEL=1'); >> ! $ecpg->AddReference($libpgport); >> ! } >> ! else { >> ! print "Not building ecpg due to lack of pthreads.\n"; >> ! } >> >> >> # src/bin > >> ---------------------------(end of broadcast)--------------------------- >> TIP 5: don't forget to increase your free space map settings >
pgsql-patches by date: