Skip to content

Build fails on GCC 15 #16

@tikk3r

Description

@tikk3r

Not sure what the exact root cause is, but recently I've started having issues building astLib. I'm running on Fedora 42 with Python 3.12.12 in a venv and GCC 15:

~$ python -V
Python 3.12.12

~$ gcc --version
gcc (GCC) 15.2.1 20251111 (Red Hat 15.2.1-4)

The steps I do to recreate the issue:

uv venv testenv --python=python3.12
<source testenv>
uv pip install astlib

which throws a bunch of warning: old-style function definition and error: too many arguments to function errors. Just to be sure I also tried it without uv, but I see the same crash with plain pip.

Finally, I tried modifying setup.py to force it to use a separate GCC14 installation, after which it builds and installed just fine, so I'm guessing it has to do with GCC 15 somehow.

Build failure output with GCC 15:

~$ uv pip install astlib
Resolved 17 packages in 111ms
error: Failed to prepare distributions
  Caused by: Failed to fetch wheel: astlib==0.13.1
  Caused by: Failed to build: `astlib==0.13.1`
  Caused by: Build backend failed to build wheel through `build_wheel()` with exit status: 1
--- stdout:
running bdist_wheel
running build
running build_py
copying astLib/__init__.py -> build/lib.linux-x86_64-cpython-312/astLib
copying astLib/astCalc.py -> build/lib.linux-x86_64-cpython-312/astLib
copying astLib/astCoords.py -> build/lib.linux-x86_64-cpython-312/astLib
copying astLib/astImages.py -> build/lib.linux-x86_64-cpython-312/astLib
copying astLib/astPlots.py -> build/lib.linux-x86_64-cpython-312/astLib
copying astLib/astSED.py -> build/lib.linux-x86_64-cpython-312/astLib
copying astLib/astStats.py -> build/lib.linux-x86_64-cpython-312/astLib
copying astLib/astWCS.py -> build/lib.linux-x86_64-cpython-312/astLib
copying PyWCSTools/__init__.py -> build/lib.linux-x86_64-cpython-312/PyWCSTools
copying PyWCSTools/wcs.py -> build/lib.linux-x86_64-cpython-312/PyWCSTools
copying PyWCSTools/wcscon.py -> build/lib.linux-x86_64-cpython-312/PyWCSTools
copying astLib/data/bohlin2006_Vega.sed -> build/lib.linux-x86_64-cpython-312/astLib/data
copying astLib/data/sun_reference_stis_001.ascii -> build/lib.linux-x86_64-cpython-312/astLib/data
running build_ext
gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -fPIC -c cel.c -o cel.o
gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -fPIC -c dateutil.c -o dateutil.o
--- stderr:
<string>:8: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
/home/ddkq81/.cache/uv/builds-v0/.tmpE1V03n/lib64/python3.12/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!

        ********************************************************************************
        Please consider removing the following classifiers in favor of a SPDX license expression:

        License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)

        See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
        ********************************************************************************

!!
  self._finalize_license_expression()
cel.c: In function ‘celset’:
cel.c:259:1: warning: old-style function definition [-Wold-style-definition]
  259 | celset(pcode, cel, prj)
      | ^~~~~~
cel.c: In function ‘celfwd’:
cel.c:408:1: warning: old-style function definition [-Wold-style-definition]
  408 | celfwd(pcode, lng, lat, cel, phi, theta, prj, x, y)
      | ^~~~~~
<snip>
dateutil.c:1924:14: error: too many arguments to function ‘dint’; expected 0, have 1
 1924 |     epochi = dint (epoch);
      |              ^~~~  ~~~~~
dateutil.c:329:15: note: declared here
  329 | static double dint();
      |               ^~~~
<snip>
dateutil.c:2986:12: error: too many arguments to function ‘dint’; expected 0, have 1
 2986 |     *ihr = dint (t + 0.000000001);
      |            ^~~~  ~~~~~~~~~~~~~~~
dateutil.c:329:15: note: declared here
  329 | static double dint();
      |               ^~~~
dateutil.c:2988:12: error: too many arguments to function ‘dint’; expected 0, have 1
 2988 |     *imn = dint (t + 0.0000001);
      |            ^~~~  ~~~~~~~~~~~~~
dateutil.c:329:15: note: declared here
  329 | static double dint();
      |               ^~~~
dateutil.c:2992:12: error: too many arguments to function ‘dint’; expected 0, have 1
 2992 |     *iyr = dint (d + 0.00001);
      |            ^~~~  ~~~~~~~~~~~
   | ^~~~
<snip>
error: command '/usr/bin/gcc' failed with exit code 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions