Asif Naeem <anaeem.it@gmail.com> writes:
> On Fri, May 30, 2014 at 9:49 PM, reiner peterke <zedaardv@drizzle.com>
> wrote:
>> Since upgrading my mac from os x 10.8 to 10.9, i can no long build
>> postgres with '--with-python’.
> Latest PG 9.4 source code seems building fine with --with-python option on
> my OS X 10.9.3 box i.e.
[ please don't top-post in PG mailing lists ]
I can reproduce the failure as described, not only in 9.4 but the back
branches too; I would've noticed sooner except I don't build plpython
routinely.
It looks to me like Apple broke something in the build toolchain.
If you add -v as suggested, what you see is
$ make PROFILE="-v"
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wmissing-format-attribute-Wformat-security -fno-strict-aliasing -fwrapv -g -v -bundle -multiply_defined suppress -o
plpython2.soplpy_cursorobject.o plpy_elog.o plpy_exec.o plpy_main.o plpy_planobject.o plpy_plpymodule.o
plpy_procedure.oplpy_resultobject.o plpy_spi.o plpy_subxactobject.o plpy_typeio.o plpy_util.o -L../../../src/port
-L../../../src/common-Wl,-dead_strip_dylibs -v -F/System/Library/Frameworks -framework Python -bundle_loader
../../../src/backend/postgres
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.2.0
Thread model: posix
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch
x86_64-bundle -bundle_loader ../../../src/backend/postgres -macosx_version_min 10.9.0 -multiply_defined suppress
-syslibroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -o
plpython2.so-L../../../src/port -L../../../src/common plpy_cursorobject.o plpy_elog.o plpy_exec.o plpy_main.o
plpy_planobject.oplpy_plpymodule.o plpy_procedure.o plpy_resultobject.o plpy_spi.o plpy_subxactobject.o plpy_typeio.o
plpy_util.o-dead_strip_dylibs -framework Python -lSystem
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/5.1/lib/darwin/libclang_rt.osx.a
-F/System/Library/Frameworks
ld: framework not found Python
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [plpython2.so] Error 1
The problem is that that -syslibroot option modifies where to look for
frameworks; "man ld" quoth
-syslibroot rootdir
Prepend rootdir to all search paths when searching for
libraries or frameworks.
If you do the ld call by hand without the -syslibroot option, it works.
AFAICS it could never have worked with such an option, so I'm thinking
this is some new misbehavior in the latest version of Xcode.
regards, tom lane