Skip to content

undefined reference to `__imp__cprintf' during build x86_64-w64-mingw32 on Windows #4263

@SuperKogito

Description

@SuperKogito

I am trying to build OpenBlas so I can use blas_sgemm() on Windows 10 using x86_64-w64-mingw32. Unfortunately, I keep running across this error, when running the make command. I did not specify any extra arguments.

ar -ru ../../../libopenblas_skylakexp-r0.3.24.a lapacke_cgb_nancheck.o lapacke_cgb_trans.o lapacke_cge_nancheck.o lapacke_cge_trans.o lapacke_cgg_nancheck.o lapacke_cgg_trans.o lapacke_cgt_nancheck.o lapacke_chb_nancheck.o lapacke_chb_trans.o lapacke_che_nancheck.o lapacke_che_trans.o lapacke_chp_nancheck.o lapacke_chp_trans.o lapacke_chs_nancheck.o lapacke_chs_trans.o lapacke_c_nancheck.o lapacke_cpb_nancheck.o lapacke_cpb_trans.o lapacke_cpf_nancheck.o lapacke_cpf_trans.o lapacke_cpo_nancheck.o lapacke_cpo_trans.o lapacke_cpp_nancheck.o lapacke_cpp_trans.o lapacke_cpt_nancheck.o lapacke_csp_nancheck.o lapacke_csp_trans.o lapacke_cst_nancheck.o lapacke_csy_nancheck.o lapacke_csy_trans.o lapacke_ctb_nancheck.o lapacke_ctb_trans.o lapacke_ctf_nancheck.o lapacke_ctf_trans.o lapacke_ctp_nancheck.o lapacke_ctp_trans.o lapacke_ctr_nancheck.o lapacke_ctr_trans.o lapacke_ctz_nancheck.o lapacke_ctz_trans.o lapacke_dgb_nancheck.o lapacke_dgb_trans.o lapacke_dge_nancheck.o lapacke_dge_trans.o lapacke_dgg_nancheck.o lapacke_dgg_trans.o lapacke_dgt_nancheck.o lapacke_dhs_nancheck.o lapacke_dhs_trans.o lapacke_d_nancheck.o lapacke_dpb_nancheck.o lapacke_dpb_trans.o lapacke_dpf_nancheck.o lapacke_dpf_trans.o lapacke_dpo_nancheck.o lapacke_dpo_trans.o lapacke_dpp_nancheck.o lapacke_dpp_trans.o lapacke_dpt_nancheck.o lapacke_dsb_nancheck.o lapacke_dsb_trans.o lapacke_dsp_nancheck.o lapacke_dsp_trans.o lapacke_dst_nancheck.o lapacke_dsy_nancheck.o lapacke_dsy_trans.o lapacke_dtb_nancheck.o lapacke_dtb_trans.o lapacke_dtf_nancheck.o lapacke_dtf_trans.o lapacke_dtp_nancheck.o lapacke_dtp_trans.o lapacke_dtr_nancheck.o lapacke_dtr_trans.o lapacke_dtz_nancheck.o lapacke_dtz_trans.o lapacke_lsame.o lapacke_sgb_nancheck.o lapacke_sgb_trans.o lapacke_sge_nancheck.o lapacke_sge_trans.o lapacke_sgg_nancheck.o lapacke_sgg_trans.o lapacke_sgt_nancheck.o lapacke_shs_nancheck.o lapacke_shs_trans.o lapacke_s_nancheck.o lapacke_spb_nancheck.o lapacke_spb_trans.o lapacke_spf_nancheck.o lapacke_spf_trans.o lapacke_spo_nancheck.o lapacke_spo_trans.o lapacke_spp_nancheck.o lapacke_spp_trans.o lapacke_spt_nancheck.o lapacke_ssb_nancheck.o lapacke_ssb_trans.o lapacke_ssp_nancheck.o lapacke_ssp_trans.o lapacke_sst_nancheck.o lapacke_ssy_nancheck.o lapacke_ssy_trans.o lapacke_stb_nancheck.o lapacke_stb_trans.o lapacke_stf_nancheck.o lapacke_stf_trans.o lapacke_stp_nancheck.o lapacke_stp_trans.o lapacke_str_nancheck.o lapacke_str_trans.o lapacke_stz_nancheck.o lapacke_stz_trans.o lapacke_xerbla.o lapacke_zgb_nancheck.o lapacke_zgb_trans.o lapacke_zge_nancheck.o lapacke_zge_trans.o lapacke_zgg_nancheck.o lapacke_zgg_trans.o lapacke_zgt_nancheck.o lapacke_zhb_nancheck.o lapacke_zhb_trans.o lapacke_zhe_nancheck.o lapacke_zhe_trans.o lapacke_zhp_nancheck.o lapacke_zhp_trans.o lapacke_zhs_nancheck.o lapacke_zhs_trans.o lapacke_z_nancheck.o lapacke_zpb_nancheck.o lapacke_zpb_trans.o lapacke_zpf_nancheck.o lapacke_zpf_trans.o lapacke_zpo_nancheck.o lapacke_zpo_trans.o lapacke_zpp_nancheck.o lapacke_zpp_trans.o lapacke_zpt_nancheck.o lapacke_zsp_nancheck.o lapacke_zsp_trans.o lapacke_zst_nancheck.o lapacke_zsy_nancheck.o lapacke_zsy_trans.o lapacke_ztb_nancheck.o lapacke_ztb_trans.o lapacke_ztf_nancheck.o lapacke_ztf_trans.o lapacke_ztp_nancheck.o lapacke_ztp_trans.o lapacke_ztr_nancheck.o lapacke_ztr_trans.o lapacke_ztz_nancheck.o lapacke_ztz_trans.o lapacke_make_complex_float.o lapacke_make_complex_double.o
ranlib ../../../libopenblas_skylakexp-r0.3.24.a
make[3]: Leaving directory 'D:/Users/superkogito/Desktop/workspace/OpenBLAS-0.3.24/lapack-netlib/LAPACKE/utils'
make[2]: Leaving directory 'D:/Users/superkogito/Desktop/workspace/OpenBLAS-0.3.24/lapack-netlib/LAPACKE'
make[1]: Leaving directory 'D:/Users/superkogito/Desktop/workspace/OpenBLAS-0.3.24/lapack-netlib'
make[1]: Entering directory 'D:/Users/superkogito/Desktop/workspace/OpenBLAS-0.3.24/exports'
make[1]: warning: -j8 forced in makefile: resetting jobserver mode.
./gensymbol win2k    x86_64 dummy 0 0 0 0 0 0 "" "" 1 0 1 1 1 1 > libopenblas.def
cc -O2 -DSMALL_MATRIX_OPT -DMS_ABI -DMAX_STACK_ALLOC=2048 -Wall -m64 -DF_INTERFACE_GFORT -DSMP_SERVER -DNO_WARMUP -DMAX_CPU_NUMBER=8 -DMAX_PARALLEL_NUMBER=1 -DBUILD_SINGLE=1 -DBUILD_DOUBLE=1 -DBUILD_COMPLEX=1 -DBUILD_COMPLEX16=1 -DVERSION=\"0.3.24\" -msse3 -mssse3 -msse4.1 -mavx -mavx2 -march=skylake-avx512 -fno-asynchronous-unwind-tables -mavx2 -UASMNAME -UASMFNAME -UNAME -UCNAME -UCHAR_NAME -UCHAR_CNAME -DASMNAME=dllinit -DASMFNAME=dllinit_ -DNAME=dllinit_ -DCNAME=dllinit -DCHAR_NAME=\"dllinit_\" -DCHAR_CNAME=\"dllinit\" -DNO_AFFINITY -I.. -c -o dllinit.obj -s dllinit.c
ranlib ../libopenblas_skylakexp-r0.3.24.a
cc -O2 -DSMALL_MATRIX_OPT -DMS_ABI -DMAX_STACK_ALLOC=2048 -Wall -m64 -DF_INTERFACE_GFORT -DSMP_SERVER -DNO_WARMUP -DMAX_CPU_NUMBER=8 -DMAX_PARALLEL_NUMBER=1 -DBUILD_SINGLE=1 -DBUILD_DOUBLE=1 -DBUILD_COMPLEX=1 -DBUILD_COMPLEX16=1 -DVERSION=\"0.3.24\" -msse3 -mssse3 -msse4.1 -mavx -mavx2 -march=skylake-avx512 -fno-asynchronous-unwind-tables -mavx2 -UASMNAME -UASMFNAME -UNAME -UCNAME -UCHAR_NAME -UCHAR_CNAME -DASMNAME= -DASMFNAME=_ -DNAME=_ -DCNAME= -DCHAR_NAME=\"_\" -DCHAR_CNAME=\"\" -DNO_AFFINITY -I..  libopenblas.def dllinit.obj \
-shared -o ../libopenblas.dll -Wl,--out-implib,../libopenblas.dll.a \
-Wl,--whole-archive ../libopenblas_skylakexp-r0.3.24.a -Wl,--no-whole-archive -Lc:/programdata/chocolatey/lib/mingw/tools/install/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0 -Lc:/programdata/chocolatey/lib/mingw/tools/install/mingw64/bin/../lib/gcc -Lc:/programdata/chocolatey/lib/mingw/tools/install/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/lib/../lib -Lc:/programdata/chocolatey/lib/mingw/tools/install/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../lib -Lc:/programdata/chocolatey/lib/mingw/tools/install/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/lib -Lc:/programdata/chocolatey/lib/mingw/tools/install/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../..  -lgfortran -lmoldname -lmingwex -lmsvcrt -lquadmath -lm -lmoldname -lmingwex -lmsvcrt -lpthread -lmoldname -lmingwex -lmsvcrt  -defaultlib:advapi32 -lgfortran -defaultlib:advapi32 -lgfortran
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../libopenblas_skylakexp-r0.3.24.a(memory.obj):memory.c:(.text+0x6c2): undefined reference to `__imp__cprintf'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../libopenblas_skylakexp-r0.3.24.a(memory.obj):memory.c:(.text+0x7f7): undefined reference to `__imp__cprintf'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../libopenblas_skylakexp-r0.3.24.a(xerbla.obj):xerbla.c:(.text+0x13): undefined reference to `__imp__cprintf'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [Makefile:124: ../libopenblas.dll] Error 1
make[1]: Leaving directory 'D:/Users/superkogito/Desktop/workspace/OpenBLAS-0.3.24/exports'
make: *** [Makefile:146: shared] Error 2

I already tried make clean and installing the mingw dependencies as mentioned here, but no luck:

My GCC version is:

gcc --version
gcc.exe (MinGW-W64 x86_64-ucrt-posix-seh, built by Brecht Sanders) 12.2.0

Any help on how to solve this is appreciated.
Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions