Bug 276801 - science/py-tweedledum: Does not build with lang/gcc13: error: 'uint16_t' in namespace 'std' does not name a type; did you mean 'wint_t'?
Summary: science/py-tweedledum: Does not build with lang/gcc13: error: 'uint16_t' in n...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Yuri Victorovich
URL:
Keywords:
: 276800 (view as bug list)
Depends on:
Blocks:
 
Reported: 2024-02-03 11:23 UTC by Lorenzo Salvadore
Modified: 2024-11-25 23:41 UTC (History)
1 user (show)

See Also:
salvadore: maintainer-feedback? (yuri)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Lorenzo Salvadore freebsd_committer freebsd_triage 2024-02-03 11:23:01 UTC
This bug report blocks the update of GCC_DEFAULT to 13. This webpage can help finding a fix: https://gcc.gnu.org/gcc-13/porting_to.html

[ 17%] Building CXX object CMakeFiles/_tweedledum.dir/python/tweedledum/bindings.cpp.o
In file included from /wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h:45,
                 from /wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/python/tweedledum/bindings.h:7,
                 from /wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/python/tweedledum/bindings.cpp:5:
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/attr.h:199:10: error: 'uint16_t' in namespace 'std' does not name a type; did you mean 'wint_t'?
  199 |     std::uint16_t nargs;
      |          ^~~~~~~~
      |          wint_t
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/attr.h:202:10: error: 'uint16_t' in namespace 'std' does not name a type; did you mean 'wint_t'?
  202 |     std::uint16_t nargs_kw_only = 0;
      |          ^~~~~~~~
      |          wint_t
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/attr.h:205:10: error: 'uint16_t' in namespace 'std' does not name a type; did you mean 'wint_t'?
  205 |     std::uint16_t nargs_pos_only = 0;
      |          ^~~~~~~~
      |          wint_t
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/attr.h: In constructor 'pybind11::detail::function_call::function_call(const pybind11::detail::function_record&, pybind11::handle)':
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/attr.h:310:20: error: 'const struct pybind11::detail::function_record' has no member named 'nargs'; did you mean 'args'?
  310 |     args.reserve(f.nargs);
      |                    ^~~~~
      |                    args
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/attr.h:311:28: error: 'const struct pybind11::detail::function_record' has no member named 'nargs'; did you mean 'args'?
  311 |     args_convert.reserve(f.nargs);
      |                            ^~~~~
      |                            args
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/attr.h: In function 'void pybind11::detail::process_kw_only_arg(const pybind11::arg&, function_record*)':
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/attr.h:382:10: error: 'struct pybind11::detail::function_record' has no member named 'nargs_kw_only'
  382 |     ++r->nargs_kw_only;
      |          ^~~~~~~~~~~~~
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/attr.h: In static member function 'static void pybind11::detail::process_attribute<pybind11::pos_only>::init(const pybind11::pos_only&, pybind11::detail::function_record*)':
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/attr.h:439:12: error: 'struct pybind11::detail::function_record' has no member named 'nargs_pos_only'
  439 |         r->nargs_pos_only = static_cast<std::uint16_t>(r->args.size());
      |            ^~~~~~~~~~~~~~
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/attr.h:439:46: error: 'uint16_t' in namespace 'std' does not name a type; did you mean 'wint_t'?
  439 |         r->nargs_pos_only = static_cast<std::uint16_t>(r->args.size());
      |                                              ^~~~~~~~
      |                                              wint_t
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h: In member function 'void pybind11::cpp_function::initialize_generic(unique_function_record&&, const char*, const std::type_info* const*, pybind11::size_t)':
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h:311:26: error: 'struct pybind11::detail::function_record' has no member named 'nargs_kw_only'
  311 |                 if (rec->nargs_kw_only > 0 && arg_index + rec->nargs_kw_only == args)
      |                          ^~~~~~~~~~~~~
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h:311:64: error: 'struct pybind11::detail::function_record' has no member named 'nargs_kw_only'
  311 |                 if (rec->nargs_kw_only > 0 && arg_index + rec->nargs_kw_only == args)
      |                                                                ^~~~~~~~~~~~~
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h:329:26: error: 'struct pybind11::detail::function_record' has no member named 'nargs_pos_only'
  329 |                 if (rec->nargs_pos_only > 0 && (arg_index + 1) == rec->nargs_pos_only)
      |                          ^~~~~~~~~~~~~~
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h:329:72: error: 'struct pybind11::detail::function_record' has no member named 'nargs_pos_only'
  329 |                 if (rec->nargs_pos_only > 0 && (arg_index + 1) == rec->nargs_pos_only)
      |                                                                        ^~~~~~~~~~~~~~
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h:371:14: error: 'struct pybind11::detail::function_record' has no member named 'nargs'; did you mean 'args'?
  371 |         rec->nargs = (std::uint16_t) args;
      |              ^~~~~
      |              args
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h:371:28: error: 'uint16_t' is not a member of 'std'; did you mean 'wint_t'?
  371 |         rec->nargs = (std::uint16_t) args;
      |                            ^~~~~~~~
      |                            wint_t
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h: In static member function 'static PyObject* pybind11::cpp_function::dispatcher(PyObject*, PyObject*, PyObject*)':
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h:604:40: error: 'const struct pybind11::detail::function_record' has no member named 'nargs'; did you mean 'args'?
  604 |                 size_t num_args = func.nargs;    // Number of positional arguments that we need
      |                                        ^~~~~
      |                                        args
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h:607:51: error: 'const struct pybind11::detail::function_record' has no member named 'nargs_kw_only'
  607 |                 size_t pos_args = num_args - func.nargs_kw_only;
      |                                                   ^~~~~~~~~~~~~
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h:657:40: error: 'const struct pybind11::detail::function_record' has no member named 'nargs_pos_only'
  657 |                 if (args_copied < func.nargs_pos_only) {
      |                                        ^~~~~~~~~~~~~~
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h:658:47: error: 'const struct pybind11::detail::function_record' has no member named 'nargs_pos_only'
  658 |                     for (; args_copied < func.nargs_pos_only; ++args_copied) {
      |                                               ^~~~~~~~~~~~~~
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h:672:44: error: 'const struct pybind11::detail::function_record' has no member named 'nargs_pos_only'
  672 |                     if (args_copied < func.nargs_pos_only)
      |                                            ^~~~~~~~~~~~~~
/wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/external/pybind11/include/pybind11/pybind11.h:760:53: error: 'const struct pybind11::detail::function_record' has no member named 'nargs'; did you mean 'args'?
  760 |                     second_pass_convert.resize(func.nargs, false);
      |                                                     ^~~~~
      |                                                     args
*** Error code 1

Stop.
make[3]: stopped in /wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/_skbuild/freebsd-14.0-RELEASE-p2-i386-3.9/cmake-build
*** Error code 1

Stop.
make[2]: stopped in /wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/_skbuild/freebsd-14.0-RELEASE-p2-i386-3.9/cmake-build
*** Error code 1

Stop.
make[1]: stopped in /wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/_skbuild/freebsd-14.0-RELEASE-p2-i386-3.9/cmake-build
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/skbuild/setuptools_wrap.py", line 642, in setup
    cmkr.make(make_args, install_target=cmake_install_target, env=env)
  File "/usr/local/lib/python3.9/site-packages/skbuild/cmaker.py", line 679, in make
    self.make_impl(clargs=clargs, config=config, source_dir=source_dir, install_target=install_target, env=env)
  File "/usr/local/lib/python3.9/site-packages/skbuild/cmaker.py", line 710, in make_impl
    raise SKBuildError(

An error occurred while building with CMake.
  Command:
    /usr/local/bin/cmake --build . --target install --config Release --
  Install target:
    install
  Source directory:
    /wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1
  Working directory:
    /wrkdirs/usr/ports/science/py-tweedledum/work-py39/tweedledum-1.1.1/_skbuild/freebsd-14.0-RELEASE-p2-i386-3.9/cmake-build
Please check the install target is valid and see CMake's output for more information.
*** Error code 1

Stop.
make: stopped in /usr/ports/science/py-tweedledum

If the issue needs time to be fixed, please consider introduce USE_GCC=12 as a temporary solution.
Comment 1 Lorenzo Salvadore freebsd_committer freebsd_triage 2024-02-03 11:24:58 UTC
^Triage: Assign to maintainer and ask for maintainer feedback (automation did not work).
Comment 3 Mark Linimon freebsd_committer freebsd_triage 2024-02-03 17:41:52 UTC
*** Bug 276800 has been marked as a duplicate of this bug. ***
Comment 4 commit-hook freebsd_committer freebsd_triage 2024-02-21 20:42:59 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3d73e1f1bffc4fe436bc0153b9e256a83ec0eb99

commit 3d73e1f1bffc4fe436bc0153b9e256a83ec0eb99
Author:     Lorenzo Salvadore <salvadore@FreeBSD.org>
AuthorDate: 2024-02-21 18:36:23 +0000
Commit:     Lorenzo Salvadore <salvadore@FreeBSD.org>
CommitDate: 2024-02-21 20:42:35 +0000

    science/py-tweedledum: Force GCC 12 when GCC is needed

    Necessary to update GCC_DEFAULT to GCC 13, until a better fix is found.

    PR:             276801
    Approved by:    portmgr (blanket)

 science/py-tweedledum/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Comment 5 Lorenzo Salvadore freebsd_committer freebsd_triage 2024-02-21 20:44:36 UTC
GCC 12 is now enforced when GCC is needed, so I remove the block for the GCC_DEFAULT update exp-run.