Re: unable to build postgres-9.4 in os x 10.9 with python - Mailing list pgsql-general

From Tom Lane
Subject Re: unable to build postgres-9.4 in os x 10.9 with python
Date
Msg-id 7540.1401475968@sss.pgh.pa.us
Whole thread Raw
In response to Re: unable to build postgres-9.4 in os x 10.9 with python  (Asif Naeem <anaeem.it@gmail.com>)
Responses Re: unable to build postgres-9.4 in os x 10.9 with python  (Adrian Klaver <adrian.klaver@aklaver.com>)
List pgsql-general
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


pgsql-general by date:

Previous
From: Edoardo Panfili
Date:
Subject: Re: unable to build postgres-9.4 in os x 10.9 with python
Next
From: Merlin Moncure
Date:
Subject: Re: row_to_json on a subset of columns.