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 Michael.Felt
Recipients David.Edelsohn, Michael.Felt, vstinner
Date 2016-03-02.10:18:20
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1456913902.05.0.124196289151.issue26466@psf.upfronthosting.co.za>
In-reply-to
Content
Patched to fp22: vacpp.11.1.0.22.aix53TL7-71.sept2015.ptf.tar.Z

after reinstalling system! to be sure no garbage left around.

Only updates are openSSL/SSH packages; no RPM's installed.

Same error message(s).

Tried compiling ceval.o with -O0 (capt. O, zero) - same messages

Tried linking with .o files only (no archive) - effectively, same message.
root@x064:[/data/prj/aixtools/python-2.7.11]xlc  -o python  Modules/python.o Python/*.o
ld: 0711-596 SEVERE ERROR: Object Python/ceval.o
        An RLD for section 2 (.data) refers to symbol 0,
        but the storage class of the symbol is not C_EXT or C_HIDEXT.
ld: 0711-596 SEVERE ERROR: Object Python/ceval.o
        An RLD for section 2 (.data) refers to symbol 0,
        but the storage class of the symbol is not C_EXT or C_HIDEXT.

Maybe xlc does not know how to code the differences

snip:
diff -u ./python-2.7.10/Python/ceval.c ./python-2.7.11/Python/ceval.c | head -50
michael@x071:[/data/prj/aixtools/src]ython-2.7.11/Python/ceval.c | head -50    <
--- ./python-2.7.10/Python/ceval.c      2015-05-23 16:09:24 +0000
+++ ./python-2.7.11/Python/ceval.c      2015-12-05 19:47:19 +0000
@@ -615,7 +615,7 @@
    to guarantee that _Py_CheckRecursiveCall() is regularly called.
    Without USE_STACKCHECK, there is no need for this. */
 int
-_Py_CheckRecursiveCall(char *where)
+_Py_CheckRecursiveCall(const char *where)
 {
     PyThreadState *tstate = PyThreadState_GET();
 
@@ -688,6 +688,100 @@
 PyObject *
 PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
 {
+#ifdef DYNAMIC_EXECUTION_PROFILE
+  #undef USE_COMPUTED_GOTOS
+#endif
+#ifdef HAVE_COMPUTED_GOTOS
+    #ifndef USE_COMPUTED_GOTOS
+    #define USE_COMPUTED_GOTOS 1
+    #endif
+#else
+    #if defined(USE_COMPUTED_GOTOS) && USE_COMPUTED_GOTOS
+    #error "Computed gotos are not supported on this compiler."
+    #endif
+    #undef USE_COMPUTED_GOTOS
+    #define USE_COMPUTED_GOTOS 0
+#endif
+#if USE_COMPUTED_GOTOS
+/* Import the static jump table */
+#include "opcode_targets.h"
+
+  /* This macro is used when several opcodes defer to the same implementation
+   (e.g. SETUP_LOOP, SETUP_FINALLY) */
+#define TARGET_WITH_IMPL(op, impl) \
+        TARGET_##op: \
+        opcode = op; \
+        oparg = NEXTARG(); \
+        case op: \
+        goto impl; \
+
+#define TARGET_WITH_IMPL_NOARG(op, impl) \
+        TARGET_##op: \
+        opcode = op; \
+        case op: \
+        goto impl; \
+
+#define TARGET_NOARG(op) \
+        TARGET_##op: \

In "character" a big change from 2.7.8 to 2.7.10
michael@x071:[/data/prj/aixtools/python]diff -u ./old/Python-2.7.8/Python/ceval>
--- ./old/Python-2.7.8/Python/ceval.c   2014-06-30 02:05:46 +0000
+++ ./old/Python-2.7.10/Python/ceval.c  2015-05-23 16:09:24 +0000
@@ -66,9 +66,11 @@
    even in 64-bit mode, we need to use "a" and "d" for the lower and upper
    32-bit pieces of the result. */
 
-#define READ_TIMESTAMP(val) \
-    __asm__ __volatile__("rdtsc" : \
-                         "=a" (((int*)&(val))[0]), "=d" (((int*)&(val))[1]));
+#define READ_TIMESTAMP(val) do {                        \
+    unsigned int h, l;                                  \
+    __asm__ __volatile__("rdtsc" : "=a" (l), "=d" (h)); \
+    (val) = ((uint64)l) | (((uint64)h) << 32);          \
+    } while(0)
 
 
 #else
@@ -355,12 +357,6 @@
     if (interpreter_lock) {
         int err = errno;
         PyThread_acquire_lock(interpreter_lock, 1);
-        /* _Py_Finalizing is protected by the GIL */
-        if (_Py_Finalizing && tstate != _Py_Finalizing) {
-            PyThread_release_lock(interpreter_lock);
-            PyThread_exit_thread();
-            assert(0);  /* unreachable */
-        }
         errno = err;
     }
 #endif
@@ -1025,12 +1021,6 @@
 
                 PyThread_acquire_lock(interpreter_lock, 1);
 
-                /* Check if we should make a quick exit. */
-                if (_Py_Finalizing && _Py_Finalizing != tstate) {
-                    PyThread_release_lock(interpreter_lock);
-                    PyThread_exit_thread();
-                }
-
                 if (PyThreadState_Swap(tstate) != NULL)
                     Py_FatalError("ceval: orphan tstate");
 
@@ -1957,9 +1947,13 @@
                 if (err == 0) continue;
                 break;
             }
+            t = PyObject_Repr(w);
+            if (t == NULL)
+                break;
             PyErr_Format(PyExc_SystemError,
                          "no locals found when storing %s",
-                         PyObject_REPR(w));
+                         PyString_AS_STRING(t));
+            Py_DECREF(t);
             break;
 
         case DELETE_NAME:
@@ -1971,9 +1965,13 @@
                                          w);
                 break;
             }
+            t = PyObject_Repr(w);
+            if (t == NULL)
+                break;
             PyErr_Format(PyExc_SystemError,
                          "no locals when deleting %s",
-                         PyObject_REPR(w));
+                         PyString_AS_STRING(w));
+            Py_DECREF(t);
             break;
 
         PREDICTED_WITH_ARG(UNPACK_SEQUENCE);
@@ -2046,10 +2044,14 @@
         case LOAD_NAME:
             w = GETITEM(names, oparg);
             if ((v = f->f_locals) == NULL) {
+                why = WHY_EXCEPTION;
+                t = PyObject_Repr(w);
+                if (t == NULL)
+                    break;
                 PyErr_Format(PyExc_SystemError,
                              "no locals when loading %s",
-                             PyObject_REPR(w));
-                why = WHY_EXCEPTION;
+                             PyString_AS_STRING(w));
+                Py_DECREF(t);
                 break;
             }
             if (PyDict_CheckExact(v)) {
michael@x071:[/data/prj/aixtools/python]

So, until someone can help figure out which symbol is being referenced, yet seems to lack a correct attribute
"but the storage class of the symbol is not C_EXT or C_HIDEXT."

I am lost.

Thank you for your consideration.
History
Date User Action Args
2016-03-02 10:18:22Michael.Feltsetrecipients: + Michael.Felt, vstinner, David.Edelsohn
2016-03-02 10:18:22Michael.Feltsetmessageid: <1456913902.05.0.124196289151.issue26466@psf.upfronthosting.co.za>
2016-03-02 10:18:22Michael.Feltlinkissue26466 messages
2016-03-02 10:18:20Michael.Feltcreate