Skip to content

Instantly share code, notes, and snippets.

@wiggin15
Created September 4, 2018 20:22
Show Gist options
  • Save wiggin15/438dd4911e711b60f433f5b629d7113f to your computer and use it in GitHub Desktop.
Save wiggin15/438dd4911e711b60f433f5b629d7113f to your computer and use it in GitHub Desktop.
root@host-vplinux06 (Redhat 7.3) ➜ greenlet git:(master) python setup.py install
running install
running build
running build_ext
building 'greenlet' extension
gcc -pthread -fno-strict-aliasing -I/root/python/include -I/root/python/include/gnutls -I/root/python/include/graphviz -I/root/python/include/libexslt -I/root/python/include/libxml2 -I/root/python/include/libxslt -I/root/python/include/ncurses -I/root/python/include/openssl -I/root/python/include/readline -I/root/python/include/sasl -I/root/python/lib64/libffi-3.2.1/include -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/python/include/python2.7 -c greenlet.c -o build/temp.linux-ppc64-2.7/greenlet.o
In file included from slp_platformselect.h:16:0,
from greenlet.c:343:
platform/switch_ppc64_linux.h: In function ‘slp_switch’:
platform/switch_ppc64_linux.h:80:5: error: PIC register clobbered by ‘r30’ in ‘asm’
__asm__ volatile ("" : : : REGS_TO_SAVE);
^
platform/switch_ppc64_linux.h:95:5: error: PIC register clobbered by ‘r30’ in ‘asm’
__asm__ volatile ("" : : : REGS_TO_SAVE);
^
error: command 'gcc' failed with exit status 1
root@host-vplinux06 (Redhat 7.3) ➜ greenlet git:(master) git stash pop
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: platform/switch_ppc64_linux.h
no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (ddf17e661a9d5f556ea60fa2237a3bf9be7394fa)
root@host-vplinux06 (Redhat 7.3) ➜ greenlet git:(master) ✗ git diff
diff --git a/platform/switch_ppc64_linux.h b/platform/switch_ppc64_linux.h
index 53d127b..62b6556 100644
--- a/platform/switch_ppc64_linux.h
+++ b/platform/switch_ppc64_linux.h
@@ -64,7 +64,7 @@
#define REGS_TO_SAVE "r14", "r15", "r16", "r17", "r18", "r19", "r20", \
"r21", "r22", "r23", "r24", "r25", "r26", "r27", "r28", "r29", \
- "r30","r31", \
+ "r31", \
"fr14", "fr15", "fr16", "fr17", "fr18", "fr19", "fr20", "fr21", \
"fr22", "fr23", "fr24", "fr25", "fr26", "fr27", "fr28", "fr29", \
"fr30", "fr31", \
@@ -77,8 +77,10 @@ slp_switch(void)
register int err;
register long *stackref, stsizediff;
void * toc;
+ void * r30;
__asm__ volatile ("" : : : REGS_TO_SAVE);
__asm__ volatile ("std 2, %0" : "=m" (toc));
+ __asm__ volatile ("std 30, %0" : "=m" (r30));
__asm__ ("mr %0, 1" : "=r" (stackref) : );
{
SLP_SAVE_STATE(stackref, stsizediff);
@@ -91,6 +93,7 @@ slp_switch(void)
);
SLP_RESTORE_STATE();
}
+ __asm__ volatile ("ld 30, %0" : : "m" (r30));
__asm__ volatile ("ld 2, %0" : : "m" (toc));
__asm__ volatile ("" : : : REGS_TO_SAVE);
__asm__ volatile ("li %0, 0" : "=r" (err));
root@host-vplinux06 (Redhat 7.3) ➜ greenlet git:(master) ✗ python setup.py install
running install
running build
running build_ext
building 'greenlet' extension
gcc -pthread -fno-strict-aliasing -I/root/python/include -I/root/python/include/gnutls -I/root/python/include/graphviz -I/root/python/include/libexslt -I/root/python/include/libxml2 -I/root/python/include/libxslt -I/root/python/include/ncurses -I/root/python/include/openssl -I/root/python/include/readline -I/root/python/include/sasl -I/root/python/lib64/libffi-3.2.1/include -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/python/include/python2.7 -c greenlet.c -o build/temp.linux-ppc64-2.7/greenlet.o
gcc -pthread -shared -L/root/python/lib64 -Wl,-rpath,$ORIGIN,-rpath,$ORIGIN/../lib64,-rpath-link,$ORIGIN,-rpath-link,$ORIGIN/../lib64 -Wl,-rpath,$ORIGIN/../..,-rpath,$ORIGIN/../../../.. -L/root/python/lib64/engines -L/root/python/lib64/gettext -L/root/python/lib64/graphviz -L/root/python/lib64/libxslt-plugins -L/root/python/lib64/pkgconfig -L/root/python/lib64/python2.7 -L/root/python/lib64/sasl2 build/temp.linux-ppc64-2.7/greenlet.o -L/root/python/lib64 -lpython2.7 -o build/lib.linux-ppc64-2.7/greenlet.so
running install_lib
copying build/lib.linux-ppc64-2.7/greenlet.so -> /root/python/lib64/python2.7/site-packages
running install_headers
running install_egg_info
Removing /root/python/lib64/python2.7/site-packages/greenlet-0.4.15.dev-py2.7.egg-info
Writing /root/python/lib64/python2.7/site-packages/greenlet-0.4.15.dev-py2.7.egg-info
root@host-vplinux06 (Redhat 7.3) ➜ greenlet git:(master) ✗ python setup.py test
/root/python/lib64/python2.7/site-packages/setuptools/dist.py:398: UserWarning: Normalizing '0.4.15.dev' to '0.4.15.dev0'
normalized_version,
running test
running egg_info
creating greenlet.egg-info
writing greenlet.egg-info/PKG-INFO
writing top-level names to greenlet.egg-info/top_level.txt
writing dependency_links to greenlet.egg-info/dependency_links.txt
writing manifest file 'greenlet.egg-info/SOURCES.txt'
reading manifest file 'greenlet.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'greenlet.egg-info/SOURCES.txt'
running build_ext
Linking /root/greenlet/build/lib.linux-ppc64-2.7/greenlet.so to /root/greenlet/greenlet.so
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
test_version (tests.test_version.VersionTests) ... ok
test_dead_weakref (tests.test_weakref.WeakRefTests) ... ok
test_dealloc_weakref (tests.test_weakref.WeakRefTests) ... ok
test_inactive_weakref (tests.test_weakref.WeakRefTests) ... ok
test_circular_greenlet (tests.test_gc.GCTests) ... ok
test_dead_circular_ref (tests.test_gc.GCTests) ... ok
test_finalizer_crash (tests.test_gc.GCTests) ... ok
test_inactive_ref (tests.test_gc.GCTests) ... ok
test_generator (tests.test_generator.GeneratorTests) ... ok
test_class (tests.test_throw.ThrowTests) ... ok
test_kill (tests.test_throw.ThrowTests) ... ok
test_throw_goes_to_original_parent (tests.test_throw.ThrowTests) ... ok
test_val (tests.test_throw.ThrowTests) ... ok
test_exception_disables_tracing (tests.test_tracing.TracingTests) ... ok
test_greenlet_tracing (tests.test_tracing.TracingTests) ... ok
test_exception_switch (tests.test_cpp.CPPTests) ... ok
test_abstract_subclasses (tests.test_greenlet.GreenletTests) ... ok
test_dealloc (tests.test_greenlet.GreenletTests) ... ok
test_dealloc_other_thread (tests.test_greenlet.GreenletTests) ... ok
test_dealloc_switch_args_not_lost (tests.test_greenlet.GreenletTests) ... ok
test_deepcopy (tests.test_greenlet.GreenletTests) ... ok
test_exc_state (tests.test_greenlet.GreenletTests) ... ok
test_exception (tests.test_greenlet.GreenletTests) ... ok
test_frame (tests.test_greenlet.GreenletTests) ... ok
test_implicit_parent_with_threads (tests.test_greenlet.GreenletTests) ... ok
test_instance_dict (tests.test_greenlet.GreenletTests) ... ok
test_parent_equals_None (tests.test_greenlet.GreenletTests) ... ok
test_parent_restored_on_kill (tests.test_greenlet.GreenletTests) ... ok
test_parent_return_failure (tests.test_greenlet.GreenletTests) ... ok
test_recursive_startup (tests.test_greenlet.GreenletTests) ... ok
test_run_equals_None (tests.test_greenlet.GreenletTests) ... ok
test_send_exception (tests.test_greenlet.GreenletTests) ... ok
test_simple (tests.test_greenlet.GreenletTests) ... ok
test_switch_kwargs (tests.test_greenlet.GreenletTests) ... ok
test_switch_kwargs_to_parent (tests.test_greenlet.GreenletTests) ... ok
test_switch_to_another_thread (tests.test_greenlet.GreenletTests) ... ok
test_thread_bug (tests.test_greenlet.GreenletTests) ... ok
test_threaded_reparent (tests.test_greenlet.GreenletTests) ... ok
test_threaded_updatecurrent (tests.test_greenlet.GreenletTests) ... ok
test_threads (tests.test_greenlet.GreenletTests) ... ok
test_throw_doesnt_crash (tests.test_greenlet.GreenletTests) ... ok
test_throw_exception_not_lost (tests.test_greenlet.GreenletTests) ... ok
test_tuple_subclass (tests.test_greenlet.GreenletTests) ... ok
test_two_children (tests.test_greenlet.GreenletTests) ... ok
test_two_recursive_children (tests.test_greenlet.GreenletTests) ... ok
test_unexpected_reparenting (tests.test_greenlet.GreenletTests) ... ok
test_getcurrent (tests.test_extension_interface.CAPITests) ... ok
test_new_greenlet (tests.test_extension_interface.CAPITests) ... ok
test_raise_greenlet_dead (tests.test_extension_interface.CAPITests) ... ok
test_raise_greenlet_error (tests.test_extension_interface.CAPITests) ... ok
test_setparent (tests.test_extension_interface.CAPITests) ... ok
test_switch (tests.test_extension_interface.CAPITests) ... ok
test_switch_kwargs (tests.test_extension_interface.CAPITests) ... ok
test_throw (tests.test_extension_interface.CAPITests) ... ok
test_genlet_bad (tests.test_generator_nested.NestedGeneratorTests) ... ok
test_genlet_simple (tests.test_generator_nested.NestedGeneratorTests) ... ok
test_layered_genlets (tests.test_generator_nested.NestedGeneratorTests) ... ok
test_nested_genlets (tests.test_generator_nested.NestedGeneratorTests) ... ok
test_permutations (tests.test_generator_nested.NestedGeneratorTests) ... ok
test_stack_saved (tests.test_stack_saved.Test) ... ok
test_arg_refs (tests.test_leaks.ArgRefcountTests) ... ok
test_kwarg_refs (tests.test_leaks.ArgRefcountTests) ... ok
test_threaded_adv_leak (tests.test_leaks.ArgRefcountTests) ... ok
test_threaded_leak (tests.test_leaks.ArgRefcountTests) ... ok
----------------------------------------------------------------------
Ran 64 tests in 0.414s
OK
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment