Message82734
(Tarek, I've been told you're the new distutils maintainer. Feel free to
unassign this if that isn't the case.)
The test distutils uses to decide whether it needs to recompile an
existing .o file when building extension modules is too simplistic,
merely comparing the modification time of the .o and .c files. If you
have two extension modules like so
Extension('foo', ['foo.c', 'bar.c'],
define_macros=[('NO_STATIC_MEMOTABLE', 1)])
Extension('bar', ['bar.c'])
even if defining NO_STATIC_MEMOTABLE=1 radically changes the code of
bar.c, distutils will use the same bar.o for both the foo and bar
extension modules. This was a real problem for me at work today.
The attached patch removes the modtime comparison entirely, preferring
to rebuild all .o files a given extension module needs. Note that while
_prep_compiler() isn't used anywhere in the stdlib, Google Code Search
turns up uses. |
|
Date |
User |
Action |
Args |
2009-02-26 00:05:27 | collinwinter | set | recipients:
+ collinwinter, jyasskin, tarek |
2009-02-26 00:05:27 | collinwinter | set | messageid: <1235606727.67.0.443849487538.issue5372@psf.upfronthosting.co.za> |
2009-02-26 00:05:25 | collinwinter | link | issue5372 messages |
2009-02-26 00:05:25 | collinwinter | create | |
|