How to build plperl with PostgreSQL 9 on Windows

Started by tuanhoanganhover 15 years ago7 messagesgeneral
Jump to latest
#1tuanhoanganh
hatuan05@gmail.com

I has set config.pl to
$config->{perl};
1;
and run build.bat, everything is ok, there is plpgsql.dll but don't found
plperl.dll.
I use strawberry perl 5.10 or must I use ActiveState Perl.

Please help me. Thank in advance

Tuan Hoang ANh

#2Alex Hunsaker
badalex@gmail.com
In reply to: tuanhoanganh (#1)
Re: How to build plperl with PostgreSQL 9 on Windows

On Tue, Jan 4, 2011 at 10:12, tuanhoanganh <hatuan05@gmail.com> wrote:

I has set config.pl to
$config->{perl};
1;

I don't know anything about the windows build system, but shouldn't
that be something like:
$config->{perl} = 1; ?

#3tuanhoanganh
hatuan05@gmail.com
In reply to: Alex Hunsaker (#2)
Re: How to build plperl with PostgreSQL 9 on Windows

Thanks for answer me but it have error

Detected Visual Studio version 8.00
Detected hardware platform: Win32
Generating win32ver.rc for src\backend
Building src\pl\plperl\SPI.c...
'1' is not recognized as an internal or external command,
operable program or batch file.
Failed to create SPI.c.

Please help me.

Tuan Hoang ANh

On Wed, Jan 5, 2011 at 9:14 AM, Alex Hunsaker <badalex@gmail.com> wrote:

Show quoted text

On Tue, Jan 4, 2011 at 10:12, tuanhoanganh <hatuan05@gmail.com> wrote:

I has set config.pl to
$config->{perl};
1;

I don't know anything about the windows build system, but shouldn't
that be something like:
$config->{perl} = 1; ?

#4Alex Hunsaker
badalex@gmail.com
In reply to: tuanhoanganh (#3)
Re: How to build plperl with PostgreSQL 9 on Windows

On Tue, Jan 4, 2011 at 19:27, tuanhoanganh <hatuan05@gmail.com> wrote:

Thanks for answer me but it have error

Detected Visual Studio version 8.00
Detected hardware platform: Win32
Generating win32ver.rc for src\backend
Building src\pl\plperl\SPI.c...
'1' is not recognized as an internal or external command,

Instead of 1, try the path to the perl directory (such that
$config->{'perl'} . "\bin\perl" is the perl binary). For example:
$config->{perl} = "C:\strawberry\perl\";

#5tuanhoanganh
hatuan05@gmail.com
In reply to: Alex Hunsaker (#4)
Re: How to build plperl with PostgreSQL 9 on Windows

Thanks you very much
Here is my config.pl
$config->{perl} = "c:\\perl";
1;

Strawberry Perl don't work because It don't have perl lib in
c:\Perl\lib\CORE\.
I swiched to ActivePerl to build plperl.

Tuan Hoang ANh

On Wed, Jan 5, 2011 at 9:52 AM, Alex Hunsaker <badalex@gmail.com> wrote:

Show quoted text

On Tue, Jan 4, 2011 at 19:27, tuanhoanganh <hatuan05@gmail.com> wrote:

Thanks for answer me but it have error

Detected Visual Studio version 8.00
Detected hardware platform: Win32
Generating win32ver.rc for src\backend
Building src\pl\plperl\SPI.c...
'1' is not recognized as an internal or external command,

Instead of 1, try the path to the perl directory (such that
$config->{'perl'} . "\bin\perl" is the perl binary). For example:
$config->{perl} = "C:\strawberry\perl\";

#6tuanhoanganh
hatuan05@gmail.com
In reply to: tuanhoanganh (#5)
Re: How to build plperl with PostgreSQL 9 on Windows

I have error when build plperl

1>------ Build started: Project: plperl, Configuration: Release Win32 ------
1>Generate DEF file
1>Not re-generating PLPERL.DEF, file already exists.
1>Linking...
1> Creating library Release\plperl\plperl.lib and object
Release\plperl\plperl.exp
1>SPI.obj : error LNK2019: unresolved external symbol _Perl_Tstack_base_ptr
referenced in function _XS__spi_exec_query
1>Util.obj : error LNK2001: unresolved external symbol _Perl_Tstack_base_ptr
1>SPI.obj : error LNK2019: unresolved external symbol
_Perl_Tmarkstack_ptr_ptr referenced in function _XS__spi_exec_query
1>Util.obj : error LNK2001: unresolved external symbol
_Perl_Tmarkstack_ptr_ptr
1>SPI.obj : error LNK2019: unresolved external symbol _Perl_Tstack_sp_ptr
referenced in function _XS__spi_exec_query
1>Util.obj : error LNK2001: unresolved external symbol _Perl_Tstack_sp_ptr
1>Util.obj : error LNK2019: unresolved external symbol _Perl_Tcurpad_ptr
referenced in function _XS___aliased_constants
1>Util.obj : error LNK2019: unresolved external symbol _Perl_Top_ptr
referenced in function _XS___aliased_constants
1>.\Release\plperl\plperl.dll : fatal error LNK1120: 5 unresolved externals

My ActivePerl version :"This is perl, v5.10.1 built for
MSWin32-x86-multi-thread"

How to fix it?

Please help me. Thanks in advance

Tuan Hoang ANh

On Wed, Jan 5, 2011 at 10:32 AM, tuanhoanganh <hatuan05@gmail.com> wrote:

Show quoted text

Thanks you very much
Here is my config.pl
$config->{perl} = "c:\\perl";
1;

Strawberry Perl don't work because It don't have perl lib in
c:\Perl\lib\CORE\.
I swiched to ActivePerl to build plperl.Bu

Tuan Hoang ANh

On Wed, Jan 5, 2011 at 9:52 AM, Alex Hunsaker <badalex@gmail.com> wrote:

On Tue, Jan 4, 2011 at 19:27, tuanhoanganh <hatuan05@gmail.com> wrote:

Thanks for answer me but it have error

Detected Visual Studio version 8.00
Detected hardware platform: Win32
Generating win32ver.rc for src\backend
Building src\pl\plperl\SPI.c...
'1' is not recognized as an internal or external command,

Instead of 1, try the path to the perl directory (such that
$config->{'perl'} . "\bin\perl" is the perl binary). For example:
$config->{perl} = "C:\strawberry\perl\";

#7Alex Hunsaker
badalex@gmail.com
In reply to: tuanhoanganh (#6)
Re: How to build plperl with PostgreSQL 9 on Windows

On Wed, Jan 5, 2011 at 05:49, tuanhoanganh <hatuan05@gmail.com> wrote:

I have error when build plperl

1>------ Build started: Project: plperl, Configuration: Release Win32 ------
1>Generate DEF file
1>Not re-generating PLPERL.DEF, file already exists.
1>Linking...
1>   Creating library Release\plperl\plperl.lib and object
Release\plperl\plperl.exp
1>SPI.obj : error LNK2019: unresolved external symbol _Perl_Tstack_base_ptr
referenced in function _XS__spi_exec_query

Hrm, my guess would be its trying to link against a different perl dll
than it was compiled against. Perhaps there is some lingering
files/state from the strawberry perl install? I'd first try doing a
clean build (make clean-- only I dont know what the windows equivalent
is, for me that would be remove the postgres source and try again).
If that still fails I'd look for references to the non activestate
perl in your environment (like %PATH%).