On 2011-10-17, at 4:23 PM, Tom Lane wrote: > > Hm, is there a libpq dylib in /usr/lib? If so, maybe it's capturing the > reference? "otool -L main" would be informative about which dylib is > actually getting called, I think. If it's not what you expected, the > lack of a -L switch in your link command is probably the reason. > > regards, tom lane
Here is the output for otool -L for both. Static libpq.a main: /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11) Dynamic libpq.5.4.dylib using -lpq main: libpq.5.dylib (compatibility version 5.0.0, current version 5.4.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11) Dynamic libpq.5.4.dylib using the command from the previous email (This one is interesting because /usr/local/pgsql doesn't exist on this machine) main: /usr/local/pgsql/lib/libpq.5.dylib (compatibility version 5.0.0, current version 5.4.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11) I did have a libpq.5.dylib in /usr/lib and it turns out that that was the problem. So it looks like, even though I was specifying the library, it just picked the one at /usr/lib version anyway. (I obviously have much more to learn about how the linker works on OS X) The solution was to move the Enterprise DB libpq.5.4.dylib into /usr/lib (and create associated symlinks) and it worked correctly after that. Thanks for pointing me in the right direction.