Re: DBD::Pg-2.19.3 compilation issues
[email protected] (Rainer Weikusat) Thu, 29 Aug 2013 17:49:15 +0100
| Newsgroups | perl.dbd.pg |
|---|---|
| Message-ID | <[email protected]> |
[email protected] (Jon Ernster) writes: > Having problems compiling DBD::Pg on a RHEL 5.5 machine running Perl 5.8.8 > running Greenplum which is based on PostgreSQL 8.2.15. [...] > dbdimp.c:55: error: conflicting types for ‘lo_import_with_oid’ > > /usr/local/GP-4.2.4.0/include/libpq-fe.h:533: error: previous declaration > of ‘lo_import_with_oid’ was here > > dbdimp.c:56: error: conflicting types for ‘lo_import_with_oid’ > > /usr/local/GP-4.2.4.0/include/libpq-fe.h:533: error: previous declaration > of ‘lo_import_with_oid’ was here That's caused by the following dbdimp.c section: #if PGLIBVERSION < 80400 Oid lo_import_with_oid (PGconn *conn, char *filename, unsigned int lobjId); Oid lo_import_with_oid (PGconn *conn, char *filename, unsigned int lobjId) { croak ("Cannot use lo_import_with_oid unless compiled against Postgres 8.4 or later"); } #endif According to http://git.postgresql.org/gitweb/?p=postgresql.git;a=blobdiff;f=src/interfaces/libpq/libpq-fe.h;h=53d79b059f6228083cc397436c4d3e732e4c1357;hp=f51c6b38acdcdd2da4fe17f14cc601dc918bbc77;hb=8436f9a0364a6a16dbf7b250597986a97c9e6f09;hpb=f755f2fef39504d85b22233988b5ce8216f6edd7 the correct prototype is Oid lo_import_with_oid(PGconn *conn, const char *filename, Oid lobjId); but since your libpq-fe has this this interface, you might not want to disable it. A "quick and dirty" fix would be to delete the ifdef block. A better idea might be to change the condition such that the code won't be compiled for your server version, eg, by examining some 'vendor specific macro'.