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