On 07/13/2015 05:18 PM, Tom Lane wrote:
Andrew Dunstan <and...@dunslane.net> writes:
On 07/13/2015 11:53 AM, Marco Atzeri wrote:
On 7/13/2015 5:36 PM, Andrew Dunstan wrote:
hstore_plpython.o: In function `hstore_to_plpython':
/home/andrew/bf64/root/HEAD/pgsql/contrib/hstore_plpython/hstore_plpython.c:35:
undefined reference to `PLyUnicode_FromStringAndSize'
No this doesn't seem to be the problem. For some reason it's apparently
not finding the symbol in plpython3.dll, where it should definitely
exist, unless I'm completely off base. So I'm rather confused.
Could hstore_plpython and plpython somehow have been built with different
ideas about PY_MAJOR_VERSION?  PLyUnicode_FromStringAndSize is
conditionally compiled, and the reference to it from hstore_plpython
depends on a conditionally-defined macro, and this error would make plenty
of sense if those conditions somehow diverged.  So I'd look for instance
at whether identical -I paths were used in both parts of the build.



Not AFAICT. Here is the contrib build:

   ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
   -Wdeclaration-after-statement -Wendif-labels
   -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
   -fwrapv -fexcess-precision=standard -g -O2 -I../../src/pl/plpython
   -I/usr/include/python3.4m -I../../contrib/hstore -I. -I.
   -I../../src/include -I/usr/include/libxml2   -c -o hstore_plpython.o
   hstore_plpython.c
   ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
   -Wdeclaration-after-statement -Wendif-labels
   -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
   -fwrapv -fexcess-precision=standard -g -O2   -shared -o
   hstore_plpython3.dll  hstore_plpython.o  -L../../src/port
   -L../../src/common -Wl,--allow-multiple-definition
   -Wl,--enable-auto-import -L/usr/lib  -L/usr/local/lib
   -Wl,--as-needed   -L../../src/backend -lpostgres -L../hstore
   -lhstore -L../../src/pl/plpython -lplpython3
   -L/usr/lib/python3.4/config-3.4m -lpython3.4m -lpgcommon -lpgport
   -lxslt -lxml2 -lssl -lcrypto -lz -lreadline -lcrypt

and here is the plpython build:

   ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
   -Wdeclaration-after-statement -Wendif-labels
   -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
   -fwrapv -fexcess-precision=standard -g -O2  -I. -I.
   -I/usr/include/python3.4m -I../../../src/include
   -I/usr/include/libxml2  -DUSE_DL_IMPORT  -c -o plpy_util.o plpy_util.c
   ccache gcc -Wall -Wmissing-prototypes -Wpointer-arith
   -Wdeclaration-after-statement -Wendif-labels
   -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
   -fwrapv -fexcess-precision=standard -g -O2   -shared -o
   plpython3.dll  plpy_cursorobject.o plpy_elog.o plpy_exec.o
   plpy_main.o plpy_planobject.o plpy_plpymodule.o plpy_procedure.o
   plpy_resultobject.o plpy_spi.o plpy_subxactobject.o plpy_typeio.o
   plpy_util.o  -L../../../src/port -L../../../src/common
-Wl,--allow-multiple-definition -Wl,--enable-auto-import -L/usr/lib -L/usr/local/lib -Wl,--as-needed -L/usr/lib/python3.4/config-3.4m
   -lpython3.4m -lintl -ldl -L../../../src/backend -lpostgres
   -lpgcommon -lpgport -lxslt -lxml2 -lssl -lcrypto -lz -lreadline -lcrypt


The functions are in fact apparently built - the names are present in the object file and the DLL.

cheers

andrew


                        regards, tom lane




--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to