Skip to content

Conversation

@kevinsmia1939
Copy link

Old pybind11 is not compatible with Python 3.11.
pybind/pybind11#3694

Pybind11 need to be update, otherwise this error appear.
Test on Linux openSUSE Tumbleweed.

In file included from /run/build/Tomviz/tomviz/pybind11/PybindVTKTypeCaster.h:7,
                 from /run/build/Tomviz/tomviz/pybind11/Wrapping.cxx:5:
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/cast.h: In function ‘std::string pybind11::detail::error_string()’:
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/cast.h:446:36: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’}
  446 |                 "  " + handle(frame->f_code->co_filename).cast<std::string>() +
      |                                    ^~
In file included from /usr/include/python3.11/Python.h:42,
                 from /run/build/Tomviz/thirdparty/pybind11/include/pybind11/detail/common.h:112,
                 from /run/build/Tomviz/thirdparty/pybind11/include/pybind11/pytypes.h:12,
                 from /run/build/Tomviz/thirdparty/pybind11/include/pybind11/cast.h:13:
/usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’}
   22 | typedef struct _frame PyFrameObject;
      |                ^~~~~~
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/cast.h:446:75: error: expected primary-expression before ‘>’ token
  446 |                 "  " + handle(frame->f_code->co_filename).cast<std::string>() +
      |                                                                           ^
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/cast.h:446:77: error: expected primary-expression before ‘)’ token
  446 |                 "  " + handle(frame->f_code->co_filename).cast<std::string>() +
      |                                                                             ^
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/cast.h:448:29: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’}
  448 |                 handle(frame->f_code->co_name).cast<std::string>() + "\n";
      |                             ^~
/usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’}
   22 | typedef struct _frame PyFrameObject;
      |                ^~~~~~
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/cast.h:448:64: error: expected primary-expression before ‘>’ token
  448 |                 handle(frame->f_code->co_name).cast<std::string>() + "\n";
      |                                                                ^
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/cast.h:448:66: error: expected primary-expression before ‘)’ token
  448 |                 handle(frame->f_code->co_name).cast<std::string>() + "\n";
      |                                                                  ^
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/cast.h:449:26: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’}
  449 |             frame = frame->f_back;
      |                          ^~
/usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’}
   22 | typedef struct _frame PyFrameObject;
      |                ^~~~~~
In file included from /run/build/Tomviz/thirdparty/pybind11/include/pybind11/pybind11.h:44,
                 from /run/build/Tomviz/tomviz/pybind11/PybindVTKTypeCaster.h:8:
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/attr.h: At global scope:
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/attr.h:185:10: error: ‘uint16_t’ in namespace ‘std’ does not name a type; did you mean ‘wint_t’?
  185 |     std::uint16_t nargs;
      |          ^~~~~~~~
      |          wint_t
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/attr.h: In constructor ‘pybind11::detail::function_call::function_call(const pybind11::detail::function_record&, pybind11::handle)’:
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/attr.h:287:20: error: ‘const struct pybind11::detail::function_record’ has no member named ‘nargs’; did you mean ‘args’?
  287 |     args.reserve(f.nargs);
      |                    ^~~~~
      |                    args
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/attr.h:288:28: error: ‘const struct pybind11::detail::function_record’ has no member named ‘nargs’; did you mean ‘args’?
  288 |     args_convert.reserve(f.nargs);
      |                            ^~~~~
      |                            args
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/pybind11.h: In member function ‘void pybind11::cpp_function::initialize_generic(pybind11::detail::function_record*, const char*, const std::type_info* const*, pybind11::size_t)’:
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/pybind11.h:288:14: error: ‘struct pybind11::detail::function_record’ has no member named ‘nargs’; did you mean ‘args’?
  288 |         rec->nargs = (std::uint16_t) args;
      |              ^~~~~
      |              args
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/pybind11.h:288:28: error: ‘uint16_t’ is not a member of ‘std’; did you mean ‘wint_t’?
  288 |         rec->nargs = (std::uint16_t) args;
      |                            ^~~~~~~~
      |                            wint_t
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/pybind11.h: In static member function ‘static PyObject* pybind11::cpp_function::dispatcher(PyObject*, PyObject*, PyObject*)’:
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/pybind11.h:486:40: error: ‘const struct pybind11::detail::function_record’ has no member named ‘nargs’; did you mean ‘args’?
  486 |                 size_t pos_args = func.nargs;    // Number of positional arguments that we need
      |                                        ^~~~~
      |                                        args
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/pybind11.h:617:53: error: ‘const struct pybind11::detail::function_record’ has no member named ‘nargs’; did you mean ‘args’?
  617 |                     second_pass_convert.resize(func.nargs, false);
      |                                                     ^~~~~
      |                                                     args
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/pybind11.h: In function ‘pybind11::function pybind11::get_type_overload(const void*, const detail::type_info*, const char*)’:
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/pybind11.h:2053:49: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘frame’; did you mean ‘cframe’?
 2053 |     PyFrameObject *frame = PyThreadState_Get()->frame;
      |                                                 ^~~~~
      |                                                 cframe
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/pybind11.h:2054:41: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’}
 2054 |     if (frame && (std::string) str(frame->f_code->co_name) == name &&
      |                                         ^~
/usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’}
   22 | typedef struct _frame PyFrameObject;
      |                ^~~~~~
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/pybind11.h:2055:14: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’}
 2055 |         frame->f_code->co_argcount > 0) {
      |              ^~
/usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’}
   22 | typedef struct _frame PyFrameObject;
      |                ^~~~~~
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/pybind11.h:2058:18: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’}
 2058 |             frame->f_locals, PyTuple_GET_ITEM(frame->f_code->co_varnames, 0));
      |                  ^~
/usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’}
   22 | typedef struct _frame PyFrameObject;
      |                ^~~~~~
In file included from /usr/include/python3.11/Python.h:38:
/run/build/Tomviz/thirdparty/pybind11/include/pybind11/pybind11.h:2058:30: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’}
 2058 |             frame->f_locals, PyTuple_GET_ITEM(frame->f_code->co_varnames, 0));
      |                              ^~~~~~~~~~~~~~~~
/usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’}
   22 | typedef struct _frame PyFrameObject;
      |                ^~~~~~

By submitting this pull request I agree to the terms of the
Developer Certificate or Origin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant