Re: [GENERAL] unable to build postgres-9.4 in os x 10.9 with python

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Asif Naeem <anaeem(dot)it(at)gmail(dot)com>
Cc: reiner peterke <zedaardv(at)drizzle(dot)com>, pgsql-general(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [GENERAL] unable to build postgres-9.4 in os x 10.9 with python
Date: 2014-05-30 18:52:48
Message-ID: 7540.1401475968@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

Asif Naeem <anaeem(dot)it(at)gmail(dot)com> writes:
> On Fri, May 30, 2014 at 9:49 PM, reiner peterke <zedaardv(at)drizzle(dot)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.so 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,-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.o plpy_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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Merlin Moncure 2014-05-30 18:59:09 Re: row_to_json on a subset of columns.
Previous Message Edoardo Panfili 2014-05-30 17:56:09 Re: unable to build postgres-9.4 in os x 10.9 with python

Browse pgsql-hackers by date

  From Date Subject
Next Message Adrian Klaver 2014-05-30 18:59:11 Re: [GENERAL] unable to build postgres-9.4 in os x 10.9 with python
Previous Message Heikki Linnakangas 2014-05-30 18:38:37 Re: Proposal for CSN based snapshots