Re: pthread option of msvc build. - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Re: pthread option of msvc build. |
Date | |
Msg-id | 200701241924.l0OJO5622935@momjian.us Whole thread Raw |
In response to | Re: pthread option of msvc build. (Magnus Hagander <magnus@hagander.net>) |
List | pgsql-patches |
Patch applied. Thanks. --------------------------------------------------------------------------- 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 -- Bruce Momjian bruce@momjian.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
pgsql-patches by date: