[Pythonmac-SIG] -undefined dynamic_lookup can't be used with MACOSX_DEPLOYMENT_TARGET environment
David Wilbur
pythonboar at boar.org
Tue Oct 18 21:36:14 CEST 2005
i got the following error when doing a make of psycopg 1.1.21 (and
1.1.19) on Mac OS. psycopg is middleware that allows python to talk
to postgres. it has been compiling flawlessly on all the platforms i
use it on. you can find out more about it at http://initd.org/
projects/psycopg1. Federico Di Gregorio the primary contributer, is
not a Mac developer and thus was unsure how to really solve this
error, and neither am i at least at the gcc level. even though i
have a long history of development and support with Mac, NeXT and
unix, i am a database applications developer/analyst/dba that uses
zope, python, and postgres for solutions and has a long history of
knowing gcc at a level of getting builds to work vs truly knowing
what is going on at that level...
./configure; make; sudo make install
works for 99% of the situations in my world ;-) ok... so maybe less
then that... but, you get the drift.
here is the error that i have encountered when i did the make:
gcc -L/usr/local/pgsql/lib/ -Wl,-x -bundle -undefined
dynamic_lookup ./module.o ./connection.o ./cursor.o ./typeobj.o ./
typemod.o -L/usr/local/pgsql/lib/ -lpq -lcrypto -ldl -o ./
psycopgmodule.so
/usr/bin/ld: flag: -undefined dynamic_lookup can't be used with
MACOSX_DEPLOYMENT_TARGET environment variable set to: 10.1
collect2: ld returned 1 exit status
make: *** [psycopgmodule.so] Error 1
i know that i had this successfully compiled with a prior version
cause i have it working =). however, i suspect that this was due to
the fact that it was using gcc 3.3 at the time and that i was
compiling on 10.3.
here is the relevant product version information. although, i would
suspect that in this case that all that matters is environment, gcc,
and psycopg:
Mac OS 10.4.2
python Python 2.4.1 (#2, Mar 31 2005, 00:05:10) [GCC 3.3 20030304
(Apple Computer, Inc. build 1666)] on darwin
gcc powerpc-apple-darwin8-gcc-4.0.0 (GCC) 4.0.0 (Apple Computer,
Inc. build 5026)
PostgreSQL 7.4.6
Zope 2.8.1
egenix-mx-base-2.0.6
psycopg 1.1.21
NOTE: i have found a way to get past this, which follows, but my
main concern is... is the way that i did get it to work the right
way. i really don't feel that i know enough to answer that question
and i was hoping that someone might elaborate on what is going on
here. i would rather i was doing the right thing vs the way that
seems to work...
after looking thru the pythonmac sig this environment variable seems
to be coming up a lot. from what i can tell, it sets a minimum level
on where the code is suspected to run, it is not defined and thus
defaults to 10.1. i changed it as follows:
zope$ export MACOSX_DEPLOYMENT_TARGET=10.3
zope$ ./configure --with-python=/usr/local/bin/python --with-zope=/
usr/local/zope/2.8.1/ --with-mxdatetime-includes=/usr/local/lib/
python2.3/site-packages/mx/DateTime/mxDateTime/ --with-postgres-
includes=/usr/local/pgsql/include/ --with-postgres-libraries=/usr/
local/pgsql/lib/
{snip}
zope$ make
{snip, offending gcc following is happy now}
gcc -L/usr/local/pgsql/lib/ -Wl,-x -bundle -undefined
dynamic_lookup ./module.o ./connection.o ./cursor.o ./typeobj.o ./
typemod.o -L/usr/local/pgsql/lib/ -lpq -lcrypto -ldl -o ./
psycopgmodule.so
zope$
thus no more error -undefined dynamic_lookup can't be used with
MACOSX_DEPLOYMENT_TARGET environment
More information about the Pythonmac-SIG
mailing list