This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Ensure -single_module on Mac OS X
Type: Stage:
Components: Build Versions:
process
Status: closed Resolution: wont fix
Dependencies: Superseder:
Assigned To: jackjansen Nosy List: bbum, bob.ippolito, jackjansen, ronaldoussoren, sjoerd
Priority: normal Keywords:

Created on 2004-07-21 06:19 by bbum, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (10)
msg21725 - (view) Author: Bill Bumgarner (bbum) Date: 2004-07-21 06:19
When building Python (and disutils based extensions) on Mac OS 
X, Python should ensure that the -single_module flag is being 
passed to the linker.

This will ensure that any given .so, .dylib, or framework is linked 
as a single module.   This will vastly reduce the startup times of 
python, reduce the load times of modules, and shave a bit of a 
performance hit off the top at runtime.

This should also be applicable to the modules built by distutils.
msg21726 - (view) Author: Bob Ippolito (bob.ippolito) * (Python committer) Date: 2004-07-21 06:29
Logged In: YES 
user_id=139309

[I'm closing 995023, because bbum filed first]

distutils extensions can not use -single_module because they are 
bundles, not dylibs.  Frameworks and dylibs are synonymous, of course.
msg21727 - (view) Author: Bill Bumgarner (bbum) Date: 2004-07-21 06:35
Logged In: YES 
user_id=103811

This is not applicable to the distutils modules as they are built now;  
only applicable to Python.framework (and like builds).
msg21728 - (view) Author: Sjoerd Mullender (sjoerd) * (Python committer) Date: 2004-07-21 06:57
Logged In: YES 
user_id=43607

Is this related to bug 799088?
msg21729 - (view) Author: Bob Ippolito (bob.ippolito) * (Python committer) Date: 2004-07-21 08:25
Logged In: YES 
user_id=139309

Not in the least.
msg21730 - (view) Author: Jack Jansen (jackjansen) * (Python committer) Date: 2004-07-21 09:21
Logged In: YES 
user_id=45365

Could either of you come up with a patch? Also, how would I measure 
any improvement, "time python -c pass" or are there other things that 
are influenced as well?
msg21731 - (view) Author: Bob Ippolito (bob.ippolito) * (Python committer) Date: 2004-07-21 09:50
Logged In: YES 
user_id=139309

time python -c pass is probably sufficient..

I guess the patch is to line 114 of Makefile.pre.in.. should change from:

OTHER_LIBTOOL_OPT = -prebind -seg1addr 0x10000000

to

OTHER_LIBTOOL_OPT = -prebind -seg1addr 0xCFC00000 -single_module

Note I picked an arbitrary, probably unused, seg1addr.  0x10000000 is 
*NOT* correct!  It's in the Application Address Range!!!! See:
http://developer.apple.com/documentation/Performance/Conceptual/
LaunchTime/index.html
msg21732 - (view) Author: Jack Jansen (jackjansen) * (Python committer) Date: 2004-07-22 21:09
Logged In: YES 
user_id=45365

Am I doing something wrong? I see absolutely no difference in runtime 
with this option: I get 0.15 seconds realtime (0.08 user time, system 
time variable) both with the new OTHER_LIBTOOL_OPT and without it.
(This is on a 933Mhz G4 iBook running 10.3.4).

I've been trying this with 2.4a1+.

What sort of speedups are you guys seeing?
msg21733 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2006-06-25 21:23
Logged In: YES 
user_id=580910

Is this still relevant?
msg66152 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2008-05-03 09:36
Closing as this doesn't seem really useful anyway and nobody responded to 
my question if the issue is still relevant.
History
Date User Action Args
2022-04-11 14:56:05adminsetgithub: 40607
2008-05-03 09:36:03ronaldoussorensetstatus: open -> closed
resolution: wont fix
messages: + msg66152
2004-07-21 06:19:37bbumcreate