Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fails to build from source on Fedora 38 x86_64 #879

Closed
andriish opened this issue Apr 27, 2023 · 9 comments · Fixed by #889
Closed

Fails to build from source on Fedora 38 x86_64 #879

andriish opened this issue Apr 27, 2023 · 9 comments · Fixed by #889

Comments

@andriish
Copy link
Contributor

Hi @HDembinski,

here is a log

+ python3 setup.py build
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-311
creating build/lib.linux-x86_64-cpython-311/iminuit
copying src/iminuit/util.py -> build/lib.linux-x86_64-cpython-311/iminuit
copying src/iminuit/typing.py -> build/lib.linux-x86_64-cpython-311/iminuit
copying src/iminuit/testing.py -> build/lib.linux-x86_64-cpython-311/iminuit
copying src/iminuit/pdg_format.py -> build/lib.linux-x86_64-cpython-311/iminuit
copying src/iminuit/minuit.py -> build/lib.linux-x86_64-cpython-311/iminuit
copying src/iminuit/minimize.py -> build/lib.linux-x86_64-cpython-311/iminuit
copying src/iminuit/experimental.py -> build/lib.linux-x86_64-cpython-311/iminuit
copying src/iminuit/cost.py -> build/lib.linux-x86_64-cpython-311/iminuit
copying src/iminuit/_repr_text.py -> build/lib.linux-x86_64-cpython-311/iminuit
copying src/iminuit/_repr_html.py -> build/lib.linux-x86_64-cpython-311/iminuit
copying src/iminuit/_deprecated.py -> build/lib.linux-x86_64-cpython-311/iminuit
copying src/iminuit/__init__.py -> build/lib.linux-x86_64-cpython-311/iminuit
running egg_info
creating src/iminuit.egg-info
writing src/iminuit.egg-info/PKG-INFO
writing dependency_links to src/iminuit.egg-info/dependency_links.txt
writing requirements to src/iminuit.egg-info/requires.txt
writing top-level names to src/iminuit.egg-info/top_level.txt
writing manifest file 'src/iminuit.egg-info/SOURCES.txt'
reading manifest file 'src/iminuit.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'CITATION'
adding license file 'LICENSE'
warning: no files found matching 'setup.cfg'
writing manifest file 'src/iminuit.egg-info/SOURCES.txt'
running build_ext
-- The CXX compiler identification is GNU 13.0.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- pybind11 v2.9.2 
-- Found PythonInterp: /usr/bin/python3 (found version "3.11.3") 
-- Found PythonLibs: /usr/lib64/libpython3.11.so
-- Performing Test HAS_FLTO
-- Performing Test HAS_FLTO - Success
-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /builddir/build/BUILD/iminuit-2.21.1/build/temp.linux-x86_64-cpython-311
[  1%] Building CXX object CMakeFiles/_core.dir/src/application.cpp.o
[  2%] Building CXX object CMakeFiles/_core.dir/src/contours.cpp.o
[  3%] Building CXX object CMakeFiles/_core.dir/src/equal.cpp.o
[  4%] Building CXX object CMakeFiles/_core.dir/src/fcn.cpp.o
In file included from /builddir/build/BUILD/iminuit-2.21.1/src/fcn.cpp:1:
/builddir/build/BUILD/iminuit-2.21.1/src/fcn.hpp:34:28: error: expected ‘;’ before ‘(’ token
   34 |   using cfcn_t = double (*)(std::uint32_t, const double*);
      |                            ^
      |                            ;
/builddir/build/BUILD/iminuit-2.21.1/src/fcn.hpp:35:3: error: ‘cfcn_t’ does not name a type
   35 |   cfcn_t cfcn_ = nullptr;
      |   ^~~~~~
/builddir/build/BUILD/iminuit-2.21.1/src/fcn.cpp: In constructor ‘FCN::FCN(pybind11::object, pybind11::object, bool, double)’:
/builddir/build/BUILD/iminuit-2.21.1/src/fcn.cpp:23:5: error: ‘cfcn_’ was not declared in this scope; did you mean ‘fcn_’?
   23 |     cfcn_ = reinterpret_cast<cfcn_t>(address);
      |     ^~~~~
      |     fcn_
/builddir/build/BUILD/iminuit-2.21.1/src/fcn.cpp:23:30: error: ‘cfcn_t’ does not name a type
   23 |     cfcn_ = reinterpret_cast<cfcn_t>(address);
      |                              ^~~~~~
/builddir/build/BUILD/iminuit-2.21.1/src/fcn.cpp: In member function ‘virtual double FCN::operator()(const std::vector<double>&) const’:
/builddir/build/BUILD/iminuit-2.21.1/src/fcn.cpp:31:9: error: ‘cfcn_’ was not declared in this scope; did you mean ‘fcn_’?
   31 |     if (cfcn_) {
      |         ^~~~~
      |         fcn_
gmake[2]: *** [CMakeFiles/_core.dir/build.make:118: CMakeFiles/_core.dir/src/fcn.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:100: CMakeFiles/_core.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2
cmake args: -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/builddir/build/BUILD/iminuit-2.21.1/build/lib.linux-x86_64-cpython-311/iminuit/ -DPYTHON_EXECUTABLE=/usr/bin/python3 -DCMAKE_BUILD_TYPE=Release
build args: --config Release
Traceback (most recent call last):
  File "/builddir/build/BUILD/iminuit-2.21.1/setup.py", line 10, in <module>
    setup(
  File "/usr/lib/python3.11/site-packages/setuptools/__init__.py", line 87, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
    return run_commands(dist)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
    dist.run_commands()
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 968, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.11/site-packages/setuptools/dist.py", line 1217, in run_command
    super().run_command(command)
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 987, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/command/build.py", line 132, in run
    self.run_command(cmd_name)
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.11/site-packages/setuptools/dist.py", line 1217, in run_command
    super().run_command(command)
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 987, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.11/site-packages/setuptools/command/build_ext.py", line 84, in run
    _build_ext.run(self)
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 346, in run
    self.build_extensions()
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 466, in build_extensions
    self._build_extensions_serial()
  File "/usr/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 492, in _build_extensions_serial
    self.build_extension(ext)
  File "/builddir/build/BUILD/iminuit-2.21.1/cmake_ext.py", line 82, in build_extension
    subprocess.check_call(
  File "/usr/lib64/python3.11/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'Release']' returned non-zero exit status 2.

please tell me if you need the whole log.

BEst regards,

Andrii

@HDembinski
Copy link
Member

Hi, not sure what the cause of the error is and how to help you. The compiler chokes on a perfectly normal function pointer declaration. iminuit compiles on gcc, clang and msvc, so the likelihood that it contains illegal C++ is very small.

The weird unicode characters in the error message are also puzzling.

@HDembinski
Copy link
Member

HDembinski commented Apr 27, 2023

We provide wheels for 3.11, so why are you compiling from source?

@grozin
Copy link

grozin commented May 3, 2023

This happens after the upgrade to gcc-13. In Gentoo:

2023-05-03 19:36:22,976 root INFO running build_ext
-- The CXX compiler identification is GNU 13.1.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- pybind11 v2.9.2
-- Found PythonInterp: /usr/bin/python3.10 (found version "3.10.11")
-- Found PythonLibs: /usr/lib64/libpython3.10.so
-- Performing Test HAS_FLTO
-- Performing Test HAS_FLTO - Success
-- Configuring done (1.9s)
-- Generating done (0.0s)
-- Build files have been written to: /var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/build/temp.linux-x86_64-cpython-310
[ 1%] Building CXX object CMakeFiles/core.dir/src/application.cpp.o
[ 2%] Building CXX object CMakeFiles/core.dir/src/contours.cpp.o
[ 3%] Building CXX object CMakeFiles/core.dir/src/equal.cpp.o
[ 4%] Building CXX object CMakeFiles/core.dir/src/fcn.cpp.o
[ 5%] Building CXX object CMakeFiles/core.dir/src/functionminimum.cpp.o
[ 6%] Building CXX object CMakeFiles/core.dir/src/functionminimum_extra.cpp.o
[ 8%] Building CXX object CMakeFiles/core.dir/src/functionminimum_pickle.cpp.o
[ 9%] Building CXX object CMakeFiles/core.dir/src/hesse.cpp.o
[ 10%] Building CXX object CMakeFiles/core.dir/src/lavector.cpp.o
[ 11%] Building CXX object CMakeFiles/core.dir/src/lasymmatrix.cpp.o
[ 12%] Building CXX object CMakeFiles/core.dir/src/machineprecision.cpp.o
[ 13%] Building CXX object CMakeFiles/core.dir/src/main.cpp.o
[ 14%] Building CXX object CMakeFiles/core.dir/src/migrad.cpp.o
In file included from /var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.cpp:1:
/var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.hpp:34:28: error: expected ‘;’ before ‘(’ token
34 | using cfcn_t = double ()(std::uint32_t, const double);
| ^
| ;
In file included from /var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/functionminimum_extra.cpp:2:
/var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.hpp:34:28: error: expected ‘;’ before ‘(’ token
34 | using cfcn_t = double ()(std::uint32_t, const double);
| ^
| ;
/var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.hpp:35:3: error: ‘cfcn_t’ does not name a type
35 | cfcn_t cfcn
= nullptr;
| ^~~~~~
/var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.hpp:35:3: error: ‘cfcn_t’ does not name a type
35 | cfcn_t cfcn
= nullptr;
| ^~~~~~
In file included from /var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/functionminimum.cpp:2:
/var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.hpp:34:28: error: expected ‘;’ before ‘(’ token
34 | using cfcn_t = double ()(std::uint32_t, const double);
| ^
| ;
/var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.hpp:35:3: error: ‘cfcn_t’ does not name a type
35 | cfcn_t cfcn
= nullptr;
| ^~~~~~
In file included from /var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/migrad.cpp:1:
/var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.hpp:34:28: error: expected ‘;’ before ‘(’ token
34 | using cfcn_t = double ()(std::uint32_t, const double);
| ^
| ;
/var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.hpp:35:3: error: ‘cfcn_t’ does not name a type
35 | cfcn_t cfcn
= nullptr;
| ^~~~~~
/var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.cpp: In constructor ‘FCN::FCN(pybind11::object, pybind11::object, bool, double)’:
/var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.cpp:23:5: error: ‘cfcn
’ was not declared in this scope; did you mean ‘fcn
’?
23 | cfcn
= reinterpret_cast<cfcn_t>(address);
| ^~~~~
| fcn

/var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.cpp:23:30: error: ‘cfcn_t’ does not name a type
23 | cfcn
= reinterpret_cast<cfcn_t>(address);
| ^~~~~~
/var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.cpp: In member function ‘virtual double FCN::operator()(const std::vector&) const’:
/var/tmp/portage/dev-python/iminuit-2.21.3/work/iminuit-2.21.3/src/fcn.cpp:31:9: error: ‘cfcn’ was not declared in this scope; did you mean ‘fcn’?
31 | if (cfcn) {
| ^~~~~
| fcn
gmake[2]: *** [CMakeFiles/_core.dir/build.make:146: CMakeFiles/_core.dir/src/functionminimum_extra.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: *** [CMakeFiles/_core.dir/build.make:244: CMakeFiles/_core.dir/src/migrad.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/_core.dir/build.make:118: CMakeFiles/_core.dir/src/fcn.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/_core.dir/build.make:132: CMakeFiles/_core.dir/src/functionminimum.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:100: CMakeFiles/_core.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2

https://bugs.gentoo.org/895228
https://bugs.gentoo.org/896404

@HDembinski
Copy link
Member

@grozin I ask you the same question: can't you use the pre-compiled binary wheels that we provide on PyPI? Why compile iminuit yourself? The manylinux wheels we generate should work on many Linux systems.

@HDembinski
Copy link
Member

HDembinski commented May 3, 2023

It would be helpful if you guys would use code markers so that characters like * in the output are not interpreted as Markdown formatting. Like so
```
put code here
```

@HDembinski
Copy link
Member

gcc-13.1 in Compiler Explorer handles the reported line just fine. https://godbolt.org/z/956YnK96q

@HDembinski HDembinski changed the title FTBFS on Fedora 38 x86_64 Fails to build from source on Fedora 38 x86_64 May 3, 2023
@grozin
Copy link

grozin commented May 4, 2023

Gentoo is a sources-based distro. We provide prescriptions (called ebuilds), and each user compiles everything on his/her own computer. I run no programs which I haven't compiled myself.
I'm attaching the full build log. It is not affected by the markdown masness.
I suppose I'll have to remove iminuit from Gentoo (I'm the Gentoo maintainer of this package).
iminuit-2.21.3.log

@andriish
Copy link
Contributor Author

andriish commented May 4, 2023

Hi @HDembinski,

We provide wheels for 3.11, so why are you compiling from source?

I don't use Pypi because of many reasons, but practically one should choose an ecosystem with software, e.g. deb vs. rpm vs pypi and pypi was just not my choice.

gcc-13.1 in Compiler Explorer

But I see

https://godbolt.org/z/cEK7c7PKc

Means we are both right. The code is fine, but the header is missing, as far as I understand.

#include <cstdint>

Andrii

@andriish andriish mentioned this issue May 4, 2023
HDembinski pushed a commit that referenced this issue May 4, 2023
Should fix #879

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
@HDembinski
Copy link
Member

Thank you very much for the patch!

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 a pull request may close this issue.

3 participants