[Pythonmac-SIG] Upgrading /usr/bin/python to 2.3.1?
oussoren at cistron.nl
Fri Feb 6 18:27:18 EST 2004
On 6-feb-04, at 23:49, Jack Jansen wrote:
> On 6-feb-04, at 23:06, Bob Ippolito wrote:
>> In any case, these problems are really not solvable without adding OS
>> X 10.3 specific linker flags to the extension building process...
>> once we can do that, then extensions will be portable amongst
>> different versions of Python so long as the ABI doesn't change,
>> because the bundles won't link directly to the Python framework. See
>> http://python.org/sf/887242 for more information -- feel free to help
>> me convince Jack to make this change.. I'm hoping it happens before
>> OS X 10.4, so we can forget about this problem at some point.
> I second Bob's request: if you feel strongly about multiple Pythons on
> MacOS check < http://python.org/sf/887242>, think about it, think
> about my solution (sketched below) and voice your opinion.
> My change, which is already in the CVS tree, but which I'll gladly
> retract if people think Bobs solution is better, is to add "-F
> /Library/Frameworks" or "-F /System/Library/Frameworks" to the linker
> call for extensions. The "-F" option adds a directory to the front of
> the framework search path, so on a system with both frameworks
> installed this will make the correct framework (correct for the
> version of Python used to build the extension) be used.
Did you test your alternative? The manpage for ld(1) gives me the
impression that -F is used at link-time only.
Hmm, this would of course help when building extensions when you have
two python frameworks installed. But didn't some people have problems
with their existing Jaguar MacPython installation after upgrading to
Panther (existing extension modules that suddenly picked up the other
Python.framework)? If that is so, the -F solution won't fix that.
I don't like Bob's idea of using -undefined dynamic_lookup, this will
make development harder. I don't want to count the number of times that
I built extension modules on Linux that built just fine but didn't work
because they contained undefined symbols. On MacOS X we currently get
compile-time errors for most, if not all, of these errors.
More information about the Pythonmac-SIG