Skip to content

MAINT: f2py: 'sprintf' is deprecated #30997

@lucascolley

Description

@lucascolley

Building SciPy I see a flurry of warnings like:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:278:1: note: 'sprintf' has been explicitly marked deprecated here
  278 | __deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
      | ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:227:48: note: expanded from macro '__deprecated_msg'
  227 |         #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
      |                                                       ^
scipy/linalg/_flapackmodule.c:86858:5: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
 86858 |     CHECKSCALAR(trans=='N'||trans=='T'||trans=='C',"trans=='N'||trans=='T'||trans=='C'","2nd keyword trans","ctbtrs:trans='%c'",trans) {
       |     ^
scipy/linalg/_flapackmodule.c:144:9: note: expanded from macro 'CHECKSCALAR'
  144 |         sprintf(errstring, "%s: "show, "("tcheck") failed for "name, var);\
      |         ^

which seem to stem from:

numpy/numpy/f2py/cfuncs.py

Lines 543 to 546 in f234b97

#define CHECKSCALAR(check,tcheck,name,show,var)\\
if (!(check)) {\\
char errstring[256];\\
sprintf(errstring, \"%s: \"show, \"(\"tcheck\") failed for \"name, var);\\

Env:

scipy on 🎋 asan-stack [$] is 📦 v1.18.0.dev0 via 🐍 via 🧚 v0.65.0 took 7m23spixi ls -e asan
Environment: asan
Name                     Version      Build                       Size  Kind   Source
_openmp_mutex            4.5          7_kmp_llvm              8.13 KiB  conda  https://prefix.dev/conda-forge
attrs                    25.4.0       pyhcf101f3_1           63.24 KiB  conda  https://prefix.dev/conda-forge
beniget                  0.4.2.post1  pyhd8ed1ab_1           21.19 KiB  conda  https://prefix.dev/conda-forge
blas-devel               3.11.0       5_h11c0a38_openblas    18.04 KiB  conda  https://prefix.dev/conda-forge
brotli                   1.2.0        h7d5ae5b_1             19.76 KiB  conda  https://prefix.dev/conda-forge
brotli-bin               1.2.0        hc919400_1             18.19 KiB  conda  https://prefix.dev/conda-forge
bzip2                    1.0.8        hd037594_9            121.91 KiB  conda  https://prefix.dev/conda-forge
c-compiler               1.11.0       h61f9b84_0              6.54 KiB  conda  https://prefix.dev/conda-forge
ca-certificates          2026.2.25    hbd8a1cb_0            143.96 KiB  conda  https://prefix.dev/conda-forge
ccache                   4.13.1       h414bf82_0            582.38 KiB  conda  https://prefix.dev/conda-forge
cctools                  1030.6.3     llvm19_1_hd01ab73_4    23.74 KiB  conda  https://prefix.dev/conda-forge
cctools_impl_osx-arm64   1030.6.3     llvm19_1_he8a363d_4   732.34 KiB  conda  https://prefix.dev/conda-forge
cctools_osx-arm64        1030.6.3     llvm19_1_hd01ab73_4    22.88 KiB  conda  https://prefix.dev/conda-forge
certifi                  2026.2.25    pyhd8ed1ab_0          147.90 KiB  conda  https://prefix.dev/conda-forge
charset-normalizer       3.4.5        pyhd8ed1ab_0           51.96 KiB  conda  https://prefix.dev/conda-forge
clang                    19.1.7       default_hf9bcbb7_8     24.26 KiB  conda  https://prefix.dev/conda-forge
clang-19                 19.1.7       default_hf3020a7_8    747.92 KiB  conda  https://prefix.dev/conda-forge
clang_impl_osx-arm64     19.1.7       default_hc11f16d_8     24.16 KiB  conda  https://prefix.dev/conda-forge
clang_osx-arm64          19.1.7       h75f8d18_31            20.64 KiB  conda  https://prefix.dev/conda-forge
clangxx                  19.1.7       default_hc995acf_8     24.18 KiB  conda  https://prefix.dev/conda-forge
clangxx_impl_osx-arm64   19.1.7       default_hc11f16d_8     24.12 KiB  conda  https://prefix.dev/conda-forge
clangxx_osx-arm64        19.1.7       h75f8d18_31            19.45 KiB  conda  https://prefix.dev/conda-forge
click                    8.3.1        pyh8f84b5b_1           95.39 KiB  conda  https://prefix.dev/conda-forge
colorama                 0.4.6        pyhd8ed1ab_1           26.38 KiB  conda  https://prefix.dev/conda-forge
colorlog                 6.10.1       pyh707e725_0           16.03 KiB  conda  https://prefix.dev/conda-forge
compiler-rt              19.1.7       h855ad52_1             94.81 KiB  conda  https://prefix.dev/conda-forge
compiler-rt_osx-arm64    19.1.7       he32a8d3_1             10.00 MiB  conda  https://prefix.dev/conda-forge
coverage                 7.13.4       pyh7db6752_0          162.66 KiB  conda  https://prefix.dev/conda-forge
cxx-compiler             1.11.0       h88570a1_0              6.56 KiB  conda  https://prefix.dev/conda-forge
cython                   3.2.4        pyha292242_0          908.71 KiB  conda  https://prefix.dev/conda-forge
decorator                5.2.1        pyhd8ed1ab_0           13.80 KiB  conda  https://prefix.dev/conda-forge
exceptiongroup           1.3.1        pyhd8ed1ab_0           20.83 KiB  conda  https://prefix.dev/conda-forge
execnet                  2.1.2        pyhd8ed1ab_0           38.57 KiB  conda  https://prefix.dev/conda-forge
gast                     0.6.0        pyhd8ed1ab_0           24.28 KiB  conda  https://prefix.dev/conda-forge
gcc                      15.2.0       h45f3023_18           137.44 KiB  conda  https://prefix.dev/conda-forge
gcc_impl_osx-arm64       15.2.0       h6e619ee_18            46.73 MiB  conda  https://prefix.dev/conda-forge
gfortran                 15.2.0       h07b0088_18           137.03 KiB  conda  https://prefix.dev/conda-forge
gfortran_impl_osx-arm64  15.2.0       hfeb3900_18            12.53 MiB  conda  https://prefix.dev/conda-forge
gmp                      6.3.0        h7bae524_2            356.63 KiB  conda  https://prefix.dev/conda-forge
gmpy2                    2.3.1.dev0   h60d57d3_0                        conda  git+https://github.com/lucascolley/gmpy2?branch=pixi#bc20c5d45d6245be60bddad32f58435fe307ed46
hypothesis               6.151.9      pyha770c72_0          368.60 KiB  conda  https://prefix.dev/conda-forge
icu                      78.2         hef89b57_0             11.82 MiB  conda  https://prefix.dev/conda-forge
idna                     3.11         pyhd8ed1ab_0           49.53 KiB  conda  https://prefix.dev/conda-forge
importlib-metadata       8.7.0        pyhe01879c_1           33.83 KiB  conda  https://prefix.dev/conda-forge
iniconfig                2.3.0        pyhd8ed1ab_0           13.07 KiB  conda  https://prefix.dev/conda-forge
ld64                     956.6        llvm19_1_he86490a_4    21.09 KiB  conda  https://prefix.dev/conda-forge
ld64_osx-arm64           956.6        llvm19_1_ha2625f7_4  1016.08 KiB  conda  https://prefix.dev/conda-forge
libblas                  3.11.0       5_h51639a9_openblas    18.11 KiB  conda  https://prefix.dev/conda-forge
libbrotlicommon          1.2.0        hc919400_1             77.58 KiB  conda  https://prefix.dev/conda-forge
libbrotlidec             1.2.0        hc919400_1             28.76 KiB  conda  https://prefix.dev/conda-forge
libbrotlienc             1.2.0        hc919400_1            283.94 KiB  conda  https://prefix.dev/conda-forge
libcblas                 3.11.0       5_hb0561ab_openblas    18.11 KiB  conda  https://prefix.dev/conda-forge
libclang-cpp19.1         19.1.7       default_hf3020a7_8     13.41 MiB  conda  https://prefix.dev/conda-forge
libcompiler-rt           22.1.0       hd34ed20_0              1.31 MiB  conda  https://prefix.dev/conda-forge
libcxx                   22.1.1       h55c6f16_0            556.92 KiB  conda  https://prefix.dev/conda-forge
libcxx-devel             19.1.7       h6dc3340_2             22.46 KiB  conda  https://prefix.dev/conda-forge
libcxx-headers           19.1.7       h707e725_2            811.28 KiB  conda  https://prefix.dev/conda-forge
libexpat                 2.7.4        hf6b4638_0             66.60 KiB  conda  https://prefix.dev/conda-forge
libffi                   3.5.2        hcf2aa1b_0             40.02 KiB  conda  https://prefix.dev/conda-forge
libgcc                   15.2.0       hcbb3090_18           392.55 KiB  conda  https://prefix.dev/conda-forge
libgcc-devel_osx-arm64   15.2.0       hee53e68_118            2.01 MiB  conda  https://prefix.dev/conda-forge
libgfortran              15.2.0       h07b0088_18           135.72 KiB  conda  https://prefix.dev/conda-forge
libgfortran5             15.2.0       hdae7583_18           584.60 KiB  conda  https://prefix.dev/conda-forge
libglib                  2.86.4       he378b5c_1              3.92 MiB  conda  https://prefix.dev/conda-forge
libhiredis               1.3.0        h286801f_1             55.42 KiB  conda  https://prefix.dev/conda-forge
libiconv                 1.18         h23cfdf5_2            732.79 KiB  conda  https://prefix.dev/conda-forge
libintl                  0.25.1       h493aca8_0             88.83 KiB  conda  https://prefix.dev/conda-forge
liblapack                3.11.0       5_hd9741b5_openblas    18.12 KiB  conda  https://prefix.dev/conda-forge
liblapacke               3.11.0       5_h1b118fd_openblas    18.11 KiB  conda  https://prefix.dev/conda-forge
libllvm19                19.1.7       h8e0c9ce_2             25.67 MiB  conda  https://prefix.dev/conda-forge
liblzma                  5.8.2        h8088a28_0             90.08 KiB  conda  https://prefix.dev/conda-forge
libmpdec                 4.0.0        h84a0fba_1             71.96 KiB  conda  https://prefix.dev/conda-forge
libopenblas              0.3.30       openmp_ha158390_4       4.09 MiB  conda  https://prefix.dev/conda-forge
libsigtool               0.1.3        h98dc951_0             35.56 KiB  conda  https://prefix.dev/conda-forge
libsqlite                3.52.0       h1ae2325_0            896.89 KiB  conda  https://prefix.dev/conda-forge
libxml2                  2.15.2       h8d039ee_0             40.24 KiB  conda  https://prefix.dev/conda-forge
libxml2-16               2.15.2       h5ef1a60_0            455.29 KiB  conda  https://prefix.dev/conda-forge
libzlib                  1.3.1        h8359307_2             45.35 KiB  conda  https://prefix.dev/conda-forge
llvm-openmp              22.1.0       hc7d1edf_0            278.87 KiB  conda  https://prefix.dev/conda-forge
llvm-tools               19.1.7       h855ad52_2             86.32 KiB  conda  https://prefix.dev/conda-forge
llvm-tools-19            19.1.7       h91fd4e7_2             15.62 MiB  conda  https://prefix.dev/conda-forge
meson                    1.10.1       pyhcf101f3_0          742.66 KiB  conda  https://prefix.dev/conda-forge
meson-python             0.19.0       pyh7e86bf3_2           92.13 KiB  conda  https://prefix.dev/conda-forge
mpc                      1.3.1        h8f1351a_1            102.31 KiB  conda  https://prefix.dev/conda-forge
mpfr                     4.2.1        hb693164_3            337.42 KiB  conda  https://prefix.dev/conda-forge
mpmath                   1.4.0        pyhd8ed1ab_0          453.53 KiB  conda  https://prefix.dev/conda-forge
ncurses                  6.5          h5e97a16_3            778.35 KiB  conda  https://prefix.dev/conda-forge
ninja                    1.13.2       h49c215f_0            160.60 KiB  conda  https://prefix.dev/conda-forge
numpy                    2.5.0.dev0   h60d57d3_0                        conda  git+https://github.com/ngoldbaum/numpy?subdirectory=pixi-packages%2Fasan&branch=tsan-ft-pixi#93e03e345712f3be6ae81ca023aba0c43000d1ff
openblas                 0.3.30       openmp_hea878ba_4       3.00 MiB  conda  https://prefix.dev/conda-forge
openssl                  3.6.1        hd24854e_1              2.96 MiB  conda  https://prefix.dev/conda-forge
packaging                26.0         pyhcf101f3_0           70.32 KiB  conda  https://prefix.dev/conda-forge
pcre2                    10.47        h30297fc_0            830.30 KiB  conda  https://prefix.dev/conda-forge
pkg-config               0.29.2       hde07d2e_1009          48.56 KiB  conda  https://prefix.dev/conda-forge
platformdirs             4.9.4        pyhcf101f3_0           25.04 KiB  conda  https://prefix.dev/conda-forge
pluggy                   1.6.0        pyhf9edf01_1           25.27 KiB  conda  https://prefix.dev/conda-forge
ply                      3.11         pyhd8ed1ab_3           47.90 KiB  conda  https://prefix.dev/conda-forge
pooch                    1.9.0        pyhd8ed1ab_0           55.50 KiB  conda  https://prefix.dev/conda-forge
pybind11                 3.0.2        pyh7a1b43c_0          239.75 KiB  conda  https://prefix.dev/conda-forge
pybind11-global          3.0.2        pyhc7ab6ef_0          235.59 KiB  conda  https://prefix.dev/conda-forge
pygments                 2.19.2       pyhd8ed1ab_0          868.44 KiB  conda  https://prefix.dev/conda-forge
pyproject-metadata       0.11.0       pyhd8ed1ab_0           24.61 KiB  conda  https://prefix.dev/conda-forge
pysocks                  1.7.1        pyha55dd90_7           20.59 KiB  conda  https://prefix.dev/conda-forge
pytest                   9.0.2        pyhcf101f3_0          292.56 KiB  conda  https://prefix.dev/conda-forge
pytest-cov               7.0.0        pyhcf101f3_1           28.34 KiB  conda  https://prefix.dev/conda-forge
pytest-timeout           2.4.0        pyhd8ed1ab_0           19.67 KiB  conda  https://prefix.dev/conda-forge
pytest-xdist             3.8.0        pyhd8ed1ab_0           38.38 KiB  conda  https://prefix.dev/conda-forge
python                   3.15         0_asan_cp315                      conda  git+https://github.com/python/cpython?subdirectory=Tools%2Fpixi-packages%2Fasan#713be70175a2dad477a1cf5e7c00bab0edda04ad
python_abi               3.15         8_cp315                 6.85 KiB  conda  https://prefix.dev/conda-forge
pythran                  0.18.2.dev0  pyh4616a5c_0                      conda  git+https://github.com/lucascolley/pythran?branch=pixi#53541256241274de5ea08a0035ac55dd6039eaf2
readline                 8.3          h46df422_0            306.57 KiB  conda  https://prefix.dev/conda-forge
requests                 2.32.5       pyhcf101f3_1           62.11 KiB  conda  https://prefix.dev/conda-forge
sdkroot_env_osx-arm64    26.0         ha3f98da_7              4.85 KiB  conda  https://prefix.dev/conda-forge
setuptools               82.0.1       pyh332efcf_0          624.70 KiB  conda  https://prefix.dev/conda-forge
sigtool-codesign         0.1.3        h98dc951_0            111.65 KiB  conda  https://prefix.dev/conda-forge
sortedcontainers         2.4.0        pyhd8ed1ab_1           27.99 KiB  conda  https://prefix.dev/conda-forge
spin                     0.17         pyh8f84b5b_0           32.54 KiB  conda  https://prefix.dev/conda-forge
tapi                     1600.0.11.8  h997e182_0            195.02 KiB  conda  https://prefix.dev/conda-forge
threadpoolctl            3.6.0        pyhecae5ae_0           23.31 KiB  conda  https://prefix.dev/conda-forge
tk                       8.6.13       h010d191_3              2.98 MiB  conda  https://prefix.dev/conda-forge
tomli                    2.4.0        pyhcf101f3_0           20.95 KiB  conda  https://prefix.dev/conda-forge
typing_extensions        4.15.0       pyhcf101f3_0           50.48 KiB  conda  https://prefix.dev/conda-forge
urllib3                  2.0.3        pyhd8ed1ab_0           95.91 KiB  conda  https://prefix.dev/conda-forge
xxhash                   0.8.3        haa4e116_0             96.59 KiB  conda  https://prefix.dev/conda-forge
zipp                     3.23.0       pyhcf101f3_1           23.63 KiB  conda  https://prefix.dev/conda-forge
zstd                     1.5.7        hbf9d68e_6            423.25 KiB  conda  https://prefix.dev/conda-forge

cc @HaoZeke

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions