-
-
Notifications
You must be signed in to change notification settings - Fork 243
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rename PyInit syms to avoid clashes #183
base: main
Are you sure you want to change the base?
Conversation
Please be ruthless in the review; I haven't done much rust so I expect lots of ways this could be improved. At least I think the symbol rename can be avoided if the full name doesnt contain Also I could detect clashes first before enabling symbol renaming, avoiding unnecessary work - that is at least sensible for built executables, but maybe isnt desirable if building a library. |
Alwsys rewriting objects breaks
and
A bug in Looks like we need to only employ this when necessary, to avoid breakages. |
efe8df0
to
8b20a7b
Compare
The logic now avoids rewriting |
8b20a7b
to
231ca63
Compare
Further avoidance of sym renaming done. = note: /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: /home/jayvdb/pyox/builtext/build/target/x86_64-unknown-linux-gnu/debug/deps/libpyembed-61edb0164b82ba09.rlib(gevent._queue.0.o): in function `__Pyx_modinit_type_init_code':
/tmp/pip-install-j06ct3pk/gevent/src/gevent/queue.c:16637: undefined reference to `__pyx_wrapperbase_6gevent_6_queue_5Queue_20__len__'
/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: /tmp/pip-install-j06ct3pk/gevent/src/gevent/queue.c:16702: undefined reference to `__pyx_wrapperbase_6gevent_6_queue_13JoinableQueue___init__'
/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: /home/jayvdb/pyox/builtext/build/target/x86_64-unknown-linux-gnu/debug/deps/libpyembed-61edb0164b82ba09.rlib(gevent._queue.0.o):(.debug_info+0x55): undefined reference to `__pyx_wrapperbase_6gevent_6_queue_5Queue_20__len__'
/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: /home/jayvdb/pyox/builtext/build/target/x86_64-unknown-linux-gnu/debug/deps/libpyembed-61edb0164b82ba09.rlib(gevent._queue.0.o):(.debug_info+0xe3c): undefined reference to `__pyx_wrapperbase_6gevent_6_queue_13JoinableQueue___init__' Also note I ran into tobgu/pyrsistent#182 , meaning only one of |
231ca63
to
d66cc29
Compare
Thanks for this patch. I'm probably going to wait on this review until my next serious day of hacking on PyOxidizer because there's a lot to think about here... I'll try to get to your other pull requests tonight though... |
466743b
to
1c89c79
Compare
I disabled the Traceback (most recent call last):
File "<string>", line 1, in <module>
File "simplejson", line 134, in <module>
File "simplejson.decoder", line 8, in <module>
File "simplejson.scanner", line 11, in <module>
File "simplejson.scanner", line 7, in _import_c_make_scanner
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xae in position 6387: invalid start byte
|
All versions of Rust on macOS 10.13 pass. |
0d57e4e
to
463579d
Compare
aa93ab4
to
277b8f9
Compare
c594a6f
to
27e7805
Compare
This causes the .obj files to be unparsable by editbin, dumpbin, nm, objcopy, goblin and object. Related to indygreg#169
296b083
to
13e08f6
Compare
8f998b7
to
5c5ac33
Compare
5e0524b
to
789c62e
Compare
Built extensions in packages often have common names
like speedups, utils, _objects, cpython, etc. which
reside inside the package namespace.
The compiled extensions each have a
PyInit_<module>
which needs to be renamed to
PyInit_<pkg>_<module>
to avoid clashes when combined into a static binary.
Fixes #169