Opened 10 years ago

Closed 10 years ago

#24802 closed enhancement (fixed)

set python module -arch flags when running setup.py

Reported by: jmroot (Joshua Root) Owned by: blb@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), jyrkiwahlstedt, erickt@…, bK4gYuRo
Port: python26 python27 python31

Description

It's possible to pass compiler flags to setup.py in the environment. These are added to what is listed in config/Makefile. So we should strip the -arch flags out of there, and add them in the portgroup, which would allow us to build non-universal modules against a universal python.

Attachments (2)

python26-remove-archflags.diff (607 bytes) - added by jmroot (Joshua Root) 10 years ago.
python26-portgroup-archflags.diff (1.6 KB) - added by jmroot (Joshua Root) 10 years ago.

Download all attachments as: .zip

Change History (10)

Changed 10 years ago by jmroot (Joshua Root)

comment:1 Changed 10 years ago by blb@…

How many modules should we test before considering this safe to add? I've tested a couple, both with and without universal (py26-libxml2 and py26-numpy, without atlas or gcc43) and things seem fine so far.

Also, should this go into 2.7 and 3.1 as well?

comment:2 Changed 10 years ago by jmroot (Joshua Root)

Well, I figure this probably gets it right a lot more often than the current approach. One more thing needed is to give the modules a universal variant by default, which I've done in the updated patch by replacing 'use_configure no' with 'configure {}' (they can use supported_archs or 'universal_variant no' to turn it off). And yeah, this is equally applicable to the newer versions AFAIK.

Changed 10 years ago by jmroot (Joshua Root)

comment:3 Changed 10 years ago by blb@…

Cc: jwa@… erickt@… added
Port: python27 python31 added

Cc'd python27 and python31 maintainers.

python26 (and portgroup) updated in r67722. Now we'll see which modules have odd build systems...

comment:4 Changed 10 years ago by ryandesign (Ryan Schmidt)

r67722 causes python26 portgroup ports like mercurial to fail on MacPorts < 1.9.0 because it uses the configure.ld_archflags variable which is not available until MacPorts 1.9.0. See this mailing list report.

comment:5 Changed 10 years ago by bK4gYuRo

Cc: macports@… added

Cc Me!

comment:6 Changed 10 years ago by jmroot (Joshua Root)

Put in a fix/hack for python ports that set use_configure yes in r67762.

comment:7 Changed 10 years ago by jmroot (Joshua Root)

I'll apply this to python27 and python31 shortly unless the maintainers object.

comment:8 Changed 10 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: newclosed

Applied in r68551.

Note: See TracTickets for help on using tickets.