libspdm icon indicating copy to clipboard operation
libspdm copied to clipboard

windows using Mingw-w64 build failed

Open wangzihaoha opened this issue 6 months ago • 1 comments

cmake version 4.0.1 Mingw-w64 x86_64-15.1.0-release-win32-seh-ucrt-rt_v12-rev0.7z GCC 15.0

I used command : cmake -G"MinGW Makefiles" -DARCH=x64 -DTOOLCHAIN=GCC -DTARGET=Release -DCRYPTO=openssl -DCMAKE_C_STANDARD=99 -DCMAKE_C_STANDARD_REQUIRED=ON -DCMAKE_C_FLAGS="-std=c99" ..

Image

And then I used command : mingw32-make

There are some problem like these and how can i build success using Mingw??

[ 0%] Building C object os_stub/cryptlib_openssl/CMakeFiles/cryptlib_openssl.dir/cipher/aead_aes_gcm.c.obj In file included from D:/mingw74/x86_64-15.1.0-release-win32-seh-ucrt-rt_v12-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/15.1.0/include/stddef.h:1, from D:/mingw74/x86_64-15.1.0-release-win32-seh-ucrt-rt_v12-rev0/mingw64/x86_64-w64-mingw32/include/stdint.h:32, from D:/mingw74/x86_64-15.1.0-release-win32-seh-ucrt-rt_v12-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/15.1.0/include/stdint.h:11, from D:/wzh/CC/test/libspdm/include/hal/base.h:12, from : D:/wzh/CC/test/libspdm/os_stub/openssllib/include/crt_support.h:285:12: warning: '_errno' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] 285 | extern int errno; | ^~~~~ [ 1%] Building C object os_stub/cryptlib_openssl/CMakeFiles/cryptlib_openssl.dir/cipher/aead_chacha20_poly1305.c.obj In file included from D:/mingw74/x86_64-15.1.0-release-win32-seh-ucrt-rt_v12-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/15.1.0/include/stddef.h:1, from D:/mingw74/x86_64-15.1.0-release-win32-seh-ucrt-rt_v12-rev0/mingw64/x86_64-w64-mingw32/include/stdint.h:32, from D:/mingw74/x86_64-15.1.0-release-win32-seh-ucrt-rt_v12-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/15.1.0/include/stdint.h:11, from D:/wzh/CC/test/libspdm/include/hal/base.h:12, from : D:/wzh/CC/test/libspdm/os_stub/openssllib/include/crt_support.h:285:12: warning: '_errno' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes] 285 | extern int errno;

D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:587:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 587 | const size_t pattern_len = strlen(pattern); | ^~~~~ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c: In function 'teardown_testing': D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:728:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 728 | uintmax_t symbol_map_value_data = 0; | ^~~~~~~~~ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:733:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 733 | uintmax_t symbol_map_value_data_1 = 1; | ^~~~~~~~~ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c: In function '_mock': D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1155:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 1155 | const CMockaValueData value = symbol->value; | ^~~~~ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c: In function '_mock_parameter': D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1213:9: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 1213 | const CMockaValueData value = symbol->value; | ^~~~~ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c: In function '_will_set_parameter': D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1342:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] 1342 | const char * const symbol_names[] = { function_name, name }; | ^~~~~ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c: In function 'uint_values_equal_display_error': D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1568:30: warning: unknown conversion type character 'j' in format [-Wformat=] 1568 | cmocka_print_error("%ju (%#jx) != %ju (%#jx)\n", | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1568:36: warning: unknown conversion type character 'j' in format [-Wformat=] 1568 | cmocka_print_error("%ju (%#jx) != %ju (%#jx)\n", | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1568:44: warning: unknown conversion type character 'j' in format [-Wformat=] 1568 | cmocka_print_error("%ju (%#jx) != %ju (%#jx)\n", | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1568:50: warning: unknown conversion type character 'j' in format [-Wformat=] 1568 | cmocka_print_error("%ju (%#jx) != %ju (%#jx)\n", | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1568:28: warning: too many arguments for format [-Wformat-extra-args] 1568 | cmocka_print_error("%ju (%#jx) != %ju (%#jx)\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c: In function 'int_values_equal_display_error': D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1585:30: warning: unknown conversion type character 'j' in format [-Wformat=] 1585 | cmocka_print_error("%jd != %jd\n", left, right); | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1585:37: warning: unknown conversion type character 'j' in format [-Wformat=] 1585 | cmocka_print_error("%jd != %jd\n", left, right); | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1585:28: warning: too many arguments for format [-Wformat-extra-args] 1585 | cmocka_print_error("%jd != %jd\n", left, right); | ^~~~~~~~~~~~~~ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c: In function 'uint_values_not_equal_display_error': D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1598:30: warning: unknown conversion type character 'j' in format [-Wformat=] 1598 | cmocka_print_error("%ju (%#jx) == %ju (%#jx)\n", | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1598:36: warning: unknown conversion type character 'j' in format [-Wformat=] 1598 | cmocka_print_error("%ju (%#jx) == %ju (%#jx)\n", | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1598:44: warning: unknown conversion type character 'j' in format [-Wformat=] 1598 | cmocka_print_error("%ju (%#jx) == %ju (%#jx)\n", | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1598:50: warning: unknown conversion type character 'j' in format [-Wformat=] 1598 | cmocka_print_error("%ju (%#jx) == %ju (%#jx)\n", | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1598:28: warning: too many arguments for format [-Wformat-extra-args] 1598 | cmocka_print_error("%ju (%#jx) == %ju (%#jx)\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c: In function 'int_values_not_equal_display_error': D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1616:30: warning: unknown conversion type character 'j' in format [-Wformat=] 1616 | cmocka_print_error("%jd == %jd\n", left, right); | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1616:37: warning: unknown conversion type character 'j' in format [-Wformat=] 1616 | cmocka_print_error("%jd == %jd\n", left, right); | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1616:28: warning: too many arguments for format [-Wformat-extra-args] 1616 | cmocka_print_error("%jd == %jd\n", left, right); | ^~~~~~~~~~~~~~ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c: In function 'value_in_set_display_error': D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1673:30: warning: unknown conversion type character 'j' in format [-Wformat=] 1673 | cmocka_print_error("%ju is %sin the set (", | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1673:37: warning: format '%s' expects argument of type 'char *', but argument 2 has type 'uintmax_t' {aka 'long long unsigned int'} [-Wformat=] 1673 | cmocka_print_error("%ju is %sin the set (", | ~^ | | | char * | %lld 1674 | value, invert ? "" : "not "); | ~~~~~ | | | uintmax_t {aka long long unsigned int} D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1673:28: warning: too many arguments for format [-Wformat-extra-args] 1673 | cmocka_print_error("%ju is %sin the set (", | ^~~~~~~~~~~~~~~~~~~~~~~ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1676:35: warning: unknown conversion type character 'j' in format [-Wformat=] 1676 | cmocka_print_error("%#jx, ", set[i]); | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1676:32: warning: too many arguments for format [-Wformat-extra-args] 1676 | cmocka_print_error("%#jx, ", set[i]); | ^~~~~~~~ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c: In function 'int_value_in_set_display_error': D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1708:30: warning: unknown conversion type character 'j' in format [-Wformat=] 1708 | cmocka_print_error("%jd is %sin the set (", | ^ D:\libspdm\unit_test\cmockalib\cmocka\src\cmocka.c:1708:37: warning: format '%s' expects argument of type 'char *', but argument 2 has type 'intmax_t' {aka 'long long int'} [-Wformat=] 1708 | cmocka_print_error("%jd is %sin the set (", | ~^ | | | char * | %lld 1709 | value, | ~~~~~ | |

wangzihaoha avatar Jul 04 '25 04:07 wangzihaoha

https://github.com/DMTF/libspdm/actions/runs/16068880173/job/45348784154 shows how it is built for CI/CD.

steven-bellock avatar Jul 05 '25 02:07 steven-bellock