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.

Author jbeck
Recipients jbeck
Date 2014-08-05.20:32:50
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1407270770.77.0.054260844743.issue22148@psf.upfronthosting.co.za>
In-reply-to
Content
Background: on Solaris, we build Python and various modules 64-bit. To
make this work with our general 64-bit changes, we use foo/64 as the path
for our shared objects (.so files) rather than foo, for various values
of foo (e.g., "/usr/lib", "/usr/lib/python3.4", etc.).  We had to tweak
Lib/importlib/_bootstrap.py to implement this.  In so doing, we learned
that Python/frozen.o does not pick up this change.  The reason is that
Python/frozen.c has a #include of "importlib.h".  But because of the
quotes, it looks in the same directory for importlib.h .  But when we
rebuild importlib.h (via _freeze_importlib), the rebuilt importlib.h is
placed into our build dir, not $srcdir.  But '#include "importlib.h"'
looks first for $srcdir/Python/importlib.h, finds the old one, then
uses it without finding the rebuilt one over in the build dir.

Although the description of the problem is rather convoluted, the fix is
fortunately extremely simple: change "importlib.h" to <importlib.h>, i.e.,
change the quotes to angle-brackets, per the attached patch.
History
Date User Action Args
2014-08-05 20:32:50jbecksetrecipients: + jbeck
2014-08-05 20:32:50jbecksetmessageid: <1407270770.77.0.054260844743.issue22148@psf.upfronthosting.co.za>
2014-08-05 20:32:50jbecklinkissue22148 messages
2014-08-05 20:32:50jbeckcreate