b2cd752
diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt
b2cd752
--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt	2020-06-14 17:51:48.000000000 +0200
b2cd752
+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt	2020-06-21 20:54:24.848992803 +0200
b2cd752
@@ -85,11 +85,6 @@
b2cd752
     target_compile_options(${libname} PRIVATE -Wno-deprecated-register)
b2cd752
   endif()
cce2ff4
 
b2cd752
-  # Disables warnings due to new field tp_vectorcall in Python 3.8
b2cd752
-  if(NOT MSVC AND ${python_version_string} VERSION_GREATER_EQUAL "3.8")
b2cd752
-    target_compile_options(${libname} PRIVATE -Wno-missing-field-initializers)
b2cd752
-  endif()
b2cd752
-
b2cd752
   target_include_directories(${libname}
b2cd752
      PRIVATE
b2cd752
         ${CMAKE_SOURCE_DIR}/core/foundation/inc   # needed for string_view backport
b2cd752
diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx
b2cd752
--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx	2020-06-14 17:51:48.000000000 +0200
b2cd752
+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPDataMember.cxx	2020-06-21 20:53:49.651914431 +0200
b2cd752
@@ -167,7 +167,8 @@
b2cd752
     sizeof(CPPDataMember),         // tp_basicsize
b2cd752
     0,                             // tp_itemsize
b2cd752
     (destructor)pp_dealloc,        // tp_dealloc
b2cd752
-    0,                             // tp_print
b2cd752
+    0,                             // tp_print (python < 3.8)
b2cd752
+                                   // tp_vectorcall_offset (python >= 3.8)
b2cd752
     0,                             // tp_getattr
b2cd752
     0,                             // tp_setattr
b2cd752
     0,                             // tp_compare
b2cd752
@@ -216,6 +217,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
b2cd752
     , 0                            // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
b2cd752
+    , 0                            // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
b2cd752
+    , 0                            // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
b2cd752
 } // namespace CPyCppyy
b2cd752
diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx
b2cd752
--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx	2020-06-14 17:51:48.000000000 +0200
b2cd752
+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPExcInstance.cxx	2020-06-21 20:53:49.651914431 +0200
b2cd752
@@ -158,7 +158,8 @@
b2cd752
     sizeof(CPPExcInstance),        // tp_basicsize
cce2ff4
     0,                             // tp_itemsize
b2cd752
     (destructor)ep_dealloc,        // tp_dealloc
cce2ff4
-    0,                             // tp_print
cce2ff4
+    0,                             // tp_print (python < 3.8)
cce2ff4
+                                   // tp_vectorcall_offset (python >= 3.8)
cce2ff4
     0,                             // tp_getattr
cce2ff4
     0,                             // tp_setattr
cce2ff4
     0,                             // tp_compare
b2cd752
@@ -211,6 +212,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
     , 0                            // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+    , 0                            // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+    , 0                            // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
cce2ff4
 } // namespace CPyCppyy
b2cd752
diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx
b2cd752
--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx	2020-06-14 17:51:48.000000000 +0200
b2cd752
+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPInstance.cxx	2020-06-21 20:53:49.651914431 +0200
b2cd752
@@ -746,7 +746,8 @@
cce2ff4
     sizeof(CPPInstance),           // tp_basicsize
cce2ff4
     0,                             // tp_itemsize
cce2ff4
     (destructor)op_dealloc,        // tp_dealloc
cce2ff4
-    0,                             // tp_print
cce2ff4
+    0,                             // tp_print (python < 3.8)
cce2ff4
+                                   // tp_vectorcall_offset (python >= 3.8)
cce2ff4
     0,                             // tp_getattr
cce2ff4
     0,                             // tp_setattr
cce2ff4
     0,                             // tp_compare
b2cd752
@@ -798,6 +799,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
     , 0                            // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+    , 0                            // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+    , 0                            // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
cce2ff4
 } // namespace CPyCppyy
b2cd752
diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx
b2cd752
--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx	2020-06-14 17:51:48.000000000 +0200
b2cd752
+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPOverload.cxx	2020-06-21 20:53:49.652914433 +0200
b2cd752
@@ -866,7 +866,8 @@
cce2ff4
     sizeof(CPPOverload),           // tp_basicsize
cce2ff4
     0,                             // tp_itemsize
cce2ff4
     (destructor)mp_dealloc,        // tp_dealloc
cce2ff4
-    0,                             // tp_print
cce2ff4
+    0,                             // tp_print (python < 3.8)
cce2ff4
+                                   // tp_vectorcall_offset (python >= 3.8)
cce2ff4
     0,                             // tp_getattr
cce2ff4
     0,                             // tp_setattr
cce2ff4
     0,                             // tp_compare
b2cd752
@@ -915,6 +916,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
     , 0                            // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+    , 0                            // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+    , 0                            // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
cce2ff4
 } // namespace CPyCppyy
b2cd752
diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx
b2cd752
--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx	2020-06-14 17:51:48.000000000 +0200
b2cd752
+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPPScope.cxx	2020-06-21 20:53:49.652914433 +0200
b2cd752
@@ -616,7 +616,8 @@
cce2ff4
     sizeof(CPyCppyy::CPPScope),    // tp_basicsize
cce2ff4
     0,                             // tp_itemsize
cce2ff4
     0,                             // tp_dealloc
cce2ff4
-    0,                             // tp_print
cce2ff4
+    0,                             // tp_print (python < 3.8)
cce2ff4
+                                   // tp_vectorcall_offset (python >= 3.8)
cce2ff4
     0,                             // tp_getattr
cce2ff4
     0,                             // tp_setattr
cce2ff4
     0,                             // tp_compare
b2cd752
@@ -669,6 +670,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
     , 0                            // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+    , 0                            // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+    , 0                            // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
cce2ff4
 } // namespace CPyCppyy
b2cd752
diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx
b2cd752
--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx	2020-06-14 17:51:48.000000000 +0200
b2cd752
+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CPyCppyyModule.cxx	2020-06-21 20:53:49.652914433 +0200
b2cd752
@@ -141,6 +141,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
     , 0                  // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+    , 0                  // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+    , 0                  // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
cce2ff4
 namespace {
b2cd752
diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx
b2cd752
--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx	2020-06-14 17:51:48.000000000 +0200
b2cd752
+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/CustomPyTypes.cxx	2020-06-21 20:53:49.652914433 +0200
b2cd752
@@ -34,6 +34,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
     , 0                            // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+    , 0                            // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+    , 0                            // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
cce2ff4
 //= long type allowed for reference passing ==================================
b2cd752
@@ -60,6 +66,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
     , 0                            // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+    , 0                            // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+    , 0                            // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
fba7139
 //- custom type representing typedef to pointer of class ---------------------
b2cd752
@@ -90,6 +102,12 @@
fba7139
 #if PY_VERSION_HEX >= 0x03040000
fba7139
     , 0                           // tp_finalize
fba7139
 #endif
fba7139
+#if PY_VERSION_HEX >= 0x03080000
fba7139
+    , 0                           // tp_vectorcall
fba7139
+#if PY_VERSION_HEX < 0x03090000
fba7139
+    , 0                           // tp_print (python 3.8 only)
fba7139
+#endif
fba7139
+#endif
fba7139
 };
fba7139
 
cce2ff4
 //= instancemethod object with a more efficient call function ================
b2cd752
@@ -255,6 +273,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
     , 0                            // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+    , 0                            // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+    , 0                            // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
cce2ff4
 
b2cd752
@@ -305,6 +329,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
     , 0                           // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+    , 0                           // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+    , 0                           // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
cce2ff4
 
b2cd752
@@ -364,6 +394,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
     , 0                           // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+    , 0                           // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+    , 0                           // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
cce2ff4
 } // namespace CPyCppyy
b2cd752
diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx
b2cd752
--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx	2020-06-14 17:51:48.000000000 +0200
b2cd752
+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/LowLevelViews.cxx	2020-06-21 20:53:49.653914436 +0200
fba7139
@@ -651,7 +651,8 @@
cce2ff4
     sizeof(CPyCppyy::LowLevelView),// tp_basicsize
cce2ff4
     0,                             // tp_itemsize
cce2ff4
     (destructor)ll_dealloc,        // tp_dealloc
cce2ff4
-    0,                             // tp_print
cce2ff4
+    0,                             // tp_print (python < 3.8)
cce2ff4
+                                   // tp_vectorcall_offset (python >= 3.8)
cce2ff4
     0,                             // tp_getattr
cce2ff4
     0,                             // tp_setattr
cce2ff4
     0,                             // tp_compare
fba7139
@@ -701,6 +702,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
     , 0                            // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+    , 0                            // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+    , 0                            // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
cce2ff4
 } // namespace CPyCppyy
b2cd752
diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx
b2cd752
--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx	2020-06-14 17:51:48.000000000 +0200
b2cd752
+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TemplateProxy.cxx	2020-06-21 20:53:49.653914436 +0200
b2cd752
@@ -730,7 +730,8 @@
cce2ff4
    sizeof(TemplateProxy),     // tp_basicsize
cce2ff4
    0,                         // tp_itemsize
cce2ff4
    (destructor)tpp_dealloc,   // tp_dealloc
cce2ff4
-   0,                         // tp_print
cce2ff4
+   0,                         // tp_print (python < 3.8)
cce2ff4
+                              // tp_vectorcall_offset (python >= 3.8)
cce2ff4
    0,                         // tp_getattr
cce2ff4
    0,                         // tp_setattr
cce2ff4
    0,                         // tp_compare
b2cd752
@@ -779,6 +780,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
    , 0                        // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+   , 0                        // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+   , 0                        // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
cce2ff4
 } // namespace CPyCppyy
b2cd752
diff -ur root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx
b2cd752
--- root-6.22.00.orig/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx	2020-06-14 17:51:48.000000000 +0200
b2cd752
+++ root-6.22.00/bindings/pyroot/cppyy/CPyCppyy/src/TupleOfInstances.cxx	2020-06-21 20:53:49.653914436 +0200
fba7139
@@ -82,6 +82,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
     , 0                           // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+    , 0                           // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+    , 0                           // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
cce2ff4
 
fba7139
@@ -161,7 +167,8 @@
cce2ff4
     0,                             // tp_basicsize
cce2ff4
     0,                             // tp_itemsize
cce2ff4
     0,                             // tp_dealloc
cce2ff4
-    0,                             // tp_print
cce2ff4
+    0,                             // tp_print (python < 3.8)
cce2ff4
+                                   // tp_vectorcall_offset (python >= 3.8)
cce2ff4
     0,                             // tp_getattr
cce2ff4
     0,                             // tp_setattr
cce2ff4
     0,                             // tp_compare
fba7139
@@ -211,6 +218,12 @@
cce2ff4
 #if PY_VERSION_HEX >= 0x03040000
cce2ff4
     , 0                            // tp_finalize
cce2ff4
 #endif
cce2ff4
+#if PY_VERSION_HEX >= 0x03080000
cce2ff4
+    , 0                            // tp_vectorcall
cce2ff4
+#if PY_VERSION_HEX < 0x03090000
cce2ff4
+    , 0                            // tp_print (python 3.8 only)
cce2ff4
+#endif
cce2ff4
+#endif
cce2ff4
 };
cce2ff4
 
cce2ff4
 } // namespace CPyCppyy