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

windows: fix UWP builds, add GHA job #13870

Closed
wants to merge 26 commits into from
Closed

Conversation

vszakats
Copy link
Member

@vszakats vszakats commented Jun 3, 2024

Add new job to test building for UWP (aka CURL_WINDOWS_APP).

Fix fallouts when building for UWP:

  • rand: do not use BCryptGenRandom().
  • cmake: disable using win32 LDAP.
  • cmake: disable telnet.
  • version_win32: fix code before declaration.
  • schannel: disable HAS_MANUAL_VERIFY_API.
  • schannel: disable SSLSUPP_PINNEDPUBKEY
    and make schannel_checksum() a stub.
    Ref: e178fbd SChannel/WinSSL: Implement public key pinning #1429
  • schannel: make cert_get_name_string() a failing stub.
  • system_win32: make Curl_win32_impersonating() a failing stub.
  • system_win32: try to fix Curl_win32_init() (untested).
  • threads: fix to use CreateThread().
  • src: disable searching PATH for the CA bundle.
  • src: disable bold text support and capability detection.
  • src: disable getfiletime()/setfiletime().
  • tests: make win32_load_system_library() a failing stub.
  • tests/server/util: make it compile.
  • tests/server/sockfilt: make it compile.
  • tests/lib3026: fix to use CreateThread().

See individual commits for build error details.

Some of these fixes may have better solutions, and some may not work
as expected. The goal of this patch is to make curl build for UWP.

Closes #13870


@vszakats vszakats added Windows Windows-specific CI Continuous Integration labels Jun 3, 2024
@vszakats vszakats marked this pull request as draft June 3, 2024 22:43
@vszakats vszakats force-pushed the gha-win-uwp branch 2 times, most recently from 8e97ed0 to 6276eab Compare June 4, 2024 01:20
@vszakats vszakats changed the title GHA: add UWP job GHA: add UWP job, fix UWP build issues Jun 4, 2024
@vszakats vszakats marked this pull request as ready for review June 4, 2024 01:38
@vszakats vszakats force-pushed the gha-win-uwp branch 2 times, most recently from 1b7ba44 to 72d688f Compare June 4, 2024 09:14
vszakats added a commit that referenced this pull request Jun 4, 2024
@vszakats vszakats requested a review from MarcelRaad June 4, 2024 10:33
@vszakats vszakats changed the title GHA: add UWP job, fix UWP build issues windows: fix UWP builds, add GHA job Jun 4, 2024
@github-actions github-actions bot added the tests label Jun 4, 2024
@vszakats vszakats force-pushed the gha-win-uwp branch 3 times, most recently from c6823ca to ca26de6 Compare June 4, 2024 13:40
It's broken:
```
curl/lib/ldap.c: In function 'ldap_do':
curl/lib/ldap.c:618:11: error: implicit declaration of function 'ber_free'; did you mean 'ber_bvfree'? [-Wimplicit-function-declaration]
  618 |           ber_free(ber, 0);
      |           ^~~~~~~~
      |           ber_bvfree
curl/lib/ldap.c:618:11: error: nested extern declaration of 'ber_free' [-Werror=nested-externs]
```
Ref: https://github.com/curl/curl/actions/runs/9358657250/job/25760914494#step:12:72
telnet code has never been compatible with UWP.

```
curl/lib/telnet.c: In function 'telnet_do':
curl/lib/telnet.c:1363:18: error: implicit declaration of function 'GetStdHandle' [-Wimplicit-function-declaration]
 1363 |   stdin_handle = GetStdHandle(STD_INPUT_HANDLE);
      |                  ^~~~~~~~~~~~
curl/lib/telnet.c:1363:18: error: nested extern declaration of 'GetStdHandle' [-Werror=nested-externs]
curl/lib/telnet.c:1363:16: error: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
 1363 |   stdin_handle = GetStdHandle(STD_INPUT_HANDLE);
      |                ^
curl/lib/telnet.c:1371:6: error: implicit declaration of function 'GetFileType'; did you mean 'SetFileTime'? [-Wimplicit-function-declaration]
 1371 |   if(GetFileType(stdin_handle) == FILE_TYPE_PIPE ||
      |      ^~~~~~~~~~~
      |      SetFileTime
curl/lib/telnet.c:1371:6: error: nested extern declaration of 'GetFileType' [-Werror=nested-externs]
curl/lib/telnet.c:1386:21: error: implicit declaration of function 'WaitForMultipleObjects'; did you mean 'WaitForMultipleObjectsEx'? [-Wimplicit-function-declaration]
 1386 |     DWORD waitret = WaitForMultipleObjects(obj_count, objs,
      |                     ^~~~~~~~~~~~~~~~~~~~~~
      |                     WaitForMultipleObjectsEx
curl/lib/telnet.c:1386:21: error: nested extern declaration of 'WaitForMultipleObjects' [-Werror=nested-externs]
curl/lib/telnet.c:1414:15: error: implicit declaration of function 'PeekNamedPipe' [-Wimplicit-function-declaration]
 1414 |           if(!PeekNamedPipe(stdin_handle, NULL, 0, NULL,
      |               ^~~~~~~~~~~~~
curl/lib/telnet.c:1414:15: error: nested extern declaration of 'PeekNamedPipe' [-Werror=nested-externs]
```
Ref: https://github.com/curl/curl/actions/runs/9358781710/job/25761278470#step:12:82
```
curl/src/terminal.c: In function 'get_terminal_columns':
curl/src/terminal.c:71:28: error: implicit declaration of function 'GetStdHandle' [-Wimplicit-function-declaration]
   71 |       HANDLE  stderr_hnd = GetStdHandle(STD_ERROR_HANDLE);
      |                            ^~~~~~~~~~~~
curl/src/terminal.c:71:28: error: nested extern declaration of 'GetStdHandle' [-Werror=nested-externs]
curl/src/terminal.c:71:28: error: initialization of 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
[...]
curl/src/tool_doswin.c: In function 'FindWin32CACert':
curl/src/tool_doswin.c:637:15: error: implicit declaration of function 'SearchPath' [-Wimplicit-function-declaration]
  637 |     res_len = SearchPath(NULL, bundle_file, NULL, PATH_MAX, buf, &ptr);
      |               ^~~~~~~~~~
curl/src/tool_doswin.c:637:15: error: nested extern declaration of 'SearchPath' [-Werror=nested-externs]
curl/src/tool_doswin.c: In function 'init_terminal':
curl/src/tool_doswin.c:737:28: error: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
  737 |   TerminalSettings.hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
      |                            ^
In file included from curl/bld/src/CMakeFiles/curl.dir/Unity/unity_0_c.c:46:
curl/src/tool_filetime.c: In function 'getfiletime':
curl/src/tool_filetime.c:48:11: error: implicit declaration of function 'CreateFile'; did you mean 'CreateFileW'? [-Wimplicit-function-declaration]
   48 |   hfile = CreateFile(tchar_filename, FILE_READ_ATTRIBUTES,
      |           ^~~~~~~~~~
      |           CreateFileW
curl/src/tool_filetime.c:48:11: error: nested extern declaration of 'CreateFile' [-Werror=nested-externs]
curl/src/tool_filetime.c:48:9: error: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
   48 |   hfile = CreateFile(tchar_filename, FILE_READ_ATTRIBUTES,
      |         ^
curl/src/tool_filetime.c:55:8: error: implicit declaration of function 'GetFileTime'; did you mean 'SetFileTime'? [-Wimplicit-function-declaration]
   55 |     if(GetFileTime(hfile, NULL, NULL, &ft)) {
      |        ^~~~~~~~~~~
      |        SetFileTime
curl/src/tool_filetime.c:55:8: error: nested extern declaration of 'GetFileTime' [-Werror=nested-externs]
curl/src/tool_filetime.c: In function 'setfiletime':
curl/src/tool_filetime.c:111:11: error: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
  111 |     hfile = CreateFile(tchar_filename, FILE_WRITE_ATTRIBUTES,
      |           ^
```
Ref: https://github.com/curl/curl/actions/runs/9358781710/job/25761278470#step:12:34

Ref: curl#11842
```
curl/lib/rand.c: In function 'Curl_win32_random':
curl/lib/rand.c:75:6: error: implicit declaration of function 'BCryptGenRandom'; did you mean 'CryptGenRandom'? [-Wimplicit-function-declaration]
   75 |   if(BCryptGenRandom(NULL, entropy, (ULONG)length,
      |      ^~~~~~~~~~~~~~~
      |      CryptGenRandom
curl/lib/rand.c:75:6: error: nested extern declaration of 'BCryptGenRandom' [-Werror=nested-externs]
```
Ref: https://github.com/curl/curl/actions/runs/9358657250/job/25760914494#step:12:79
```
curl/lib/version_win32.c:87:3: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
   87 |   const WORD fullVersion = MAKEWORD(minorVersion, majorVersion);
      |   ^~~~~
```
Ref: https://github.com/curl/curl/actions/runs/9358657250/job/25760914494#step:12:125
```
curl/lib/vtls/schannel.c: In function 'schannel_checksum':
curl/lib/vtls/schannel.c:2701:9: error: implicit declaration of function 'CryptCreateHash' [-Wimplicit-function-declaration]
 2701 |     if(!CryptCreateHash(hProv, algId, 0, 0, &hHash))
      |         ^~~~~~~~~~~~~~~
curl/lib/vtls/schannel.c:2701:9: error: nested extern declaration of 'CryptCreateHash' [-Werror=nested-externs]
curl/lib/vtls/schannel.c:2704:9: error: implicit declaration of function 'CryptHashData' [-Wimplicit-function-declaration]
 2704 |     if(!CryptHashData(hHash, input, (DWORD)inputlen, 0))
      |         ^~~~~~~~~~~~~
curl/lib/vtls/schannel.c:2704:9: error: nested extern declaration of 'CryptHashData' [-Werror=nested-externs]
curl/lib/vtls/schannel.c:2708:9: error: implicit declaration of function 'CryptGetHashParam' [-Wimplicit-function-declaration]
 2708 |     if(!CryptGetHashParam(hHash, HP_HASHSIZE, (BYTE *)&cbHashSize,
      |         ^~~~~~~~~~~~~~~~~
curl/lib/vtls/schannel.c:2708:9: error: nested extern declaration of 'CryptGetHashParam' [-Werror=nested-externs]
curl/lib/vtls/schannel.c:2721:5: error: implicit declaration of function 'CryptDestroyHash' [-Wimplicit-function-declaration]
 2721 |     CryptDestroyHash(hHash);
      |     ^~~~~~~~~~~~~~~~
curl/lib/vtls/schannel.c:2721:5: error: nested extern declaration of 'CryptDestroyHash' [-Werror=nested-externs]
```
Ref: https://github.com/curl/curl/actions/runs/9358781710/job/25761278470#step:12:105

Ref: e178fbd curl#1429
```
curl/lib/vtls/schannel_verify.c: In function 'cert_get_name_string':
curl/lib/vtls/schannel_verify.c:396:15: error: implicit declaration of function 'CertFindExtension' [-Wimplicit-function-declaration]
  396 |   extension = CertFindExtension(szOID_SUBJECT_ALT_NAME2,
      |               ^~~~~~~~~~~~~~~~~
curl/lib/vtls/schannel_verify.c:396:15: error: nested extern declaration of 'CertFindExtension' [-Werror=nested-externs]
curl/lib/vtls/schannel_verify.c:396:13: error: assignment to 'CERT_EXTENSION *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  396 |   extension = CertFindExtension(szOID_SUBJECT_ALT_NAME2,
      |             ^
```
Ref: https://github.com/curl/curl/actions/runs/9358781710/job/25761278470#step:12:123
```
curl/lib/system_win32.c: In function 'Curl_win32_impersonating':
curl/lib/system_win32.c:273:6: error: implicit declaration of function 'OpenThreadToken' [-Wimplicit-function-declaration]
  273 |   if(OpenThreadToken(GetCurrentThread(), TOKEN_QUERY, TRUE, &token)) {
      |      ^~~~~~~~~~~~~~~
curl/lib/system_win32.c:273:6: error: nested extern declaration of 'OpenThreadToken' [-Werror=nested-externs]
```
Ref: https://github.com/curl/curl/actions/runs/9358781710/job/25761278470#step:12:76
Build-tested only.

```
curl/lib/system_win32.c: In function 'Curl_win32_init':
curl/lib/system_win32.c:115:15: error: implicit declaration of function 'GetModuleHandleA'; did you mean 'GetModuleFileNameA'? [-Wimplicit-function-declaration]
  115 |   ws2_32Dll = GetModuleHandleA("ws2_32");
      |               ^~~~~~~~~~~~~~~~
      |               GetModuleFileNameA
curl/lib/system_win32.c:115:15: error: nested extern declaration of 'GetModuleHandleA' [-Werror=nested-externs]
curl/lib/system_win32.c:115:13: error: assignment to 'HMODULE' {aka 'struct HINSTANCE__ *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
  115 |   ws2_32Dll = GetModuleHandleA("ws2_32");
      |             ^
```
Ref: https://github.com/curl/curl/actions/runs/9359109770/job/25762248493#step:12:24
```
D:/a/_temp/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c.obj:unity_0_c.c:(.text+0x16d41): undefined reference to `__imp__beginthreadex'
D:/a/_temp/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: lib/CMakeFiles/libcurl_object.dir/Unity/unity_0_c.c.obj:unity_0_c.c:(.text+0x457d1): undefined reference to `__imp__beginthreadex'
```
Ref: https://github.com/curl/curl/actions/runs/9359241836/job/25762656626#step:12:23
```
curl/tests/libtest/testutil.c: In function 'win32_load_system_library':
curl/tests/libtest/testutil.c:137:25: error: implicit declaration of function 'GetSystemDirectory'; did you mean 'GetSystemDirectoryW'? [-Wimplicit-function-declaration]
  137 |   size_t systemdirlen = GetSystemDirectory(NULL, 0);
      |                         ^~~~~~~~~~~~~~~~~~
      |                         GetSystemDirectoryW
curl/tests/libtest/testutil.c:137:25: error: nested extern declaration of 'GetSystemDirectory' [-Werror=nested-externs]
```
Ref: https://github.com/curl/curl/actions/runs/9365200402/job/25780091669#step:13:18
```
curl/src/tool_doswin.c: In function 'FindWin32CACert':
curl/src/tool_doswin.c:637:15: error: implicit declaration of function 'SearchPath' [-Wimplicit-function-declaration]
  637 |     res_len = SearchPath(NULL, bundle_file, NULL, PATH_MAX, buf, &ptr);
      |               ^~~~~~~~~~
curl/src/tool_doswin.c:637:15: error: nested extern declaration of 'SearchPath' [-Werror=nested-externs]
```
Ref: https://github.com/curl/curl/actions/runs/9358781710/job/25761278470#step:12:34
```
curl/src/tool_filetime.c: In function 'getfiletime':
curl/src/tool_filetime.c:48:11: error: implicit declaration of function 'CreateFile'; did you mean 'CreateFileW'? [-Wimplicit-function-declaration]
   48 |   hfile = CreateFile(tchar_filename, FILE_READ_ATTRIBUTES,
      |           ^~~~~~~~~~
      |           CreateFileW
curl/src/tool_filetime.c:48:11: error: nested extern declaration of 'CreateFile' [-Werror=nested-externs]
curl/src/tool_filetime.c:48:9: error: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
   48 |   hfile = CreateFile(tchar_filename, FILE_READ_ATTRIBUTES,
      |         ^
curl/src/tool_filetime.c:55:8: error: implicit declaration of function 'GetFileTime'; did you mean 'SetFileTime'? [-Wimplicit-function-declaration]
   55 |     if(GetFileTime(hfile, NULL, NULL, &ft)) {
      |        ^~~~~~~~~~~
      |        SetFileTime
curl/src/tool_filetime.c:55:8: error: nested extern declaration of 'GetFileTime' [-Werror=nested-externs]
curl/src/tool_filetime.c: In function 'setfiletime':
curl/src/tool_filetime.c:111:11: error: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
  111 |     hfile = CreateFile(tchar_filename, FILE_WRITE_ATTRIBUTES,
      |           ^
```
Ref: https://github.com/curl/curl/actions/runs/9358781710/job/25761278470#step:12:34
```
curl/src/terminal.c: In function 'get_terminal_columns':
curl/src/terminal.c:71:28: error: implicit declaration of function 'GetStdHandle' [-Wimplicit-function-declaration]
   71 |       HANDLE  stderr_hnd = GetStdHandle(STD_ERROR_HANDLE);
      |                            ^~~~~~~~~~~~
curl/src/terminal.c:71:28: error: nested extern declaration of 'GetStdHandle' [-Werror=nested-externs]
curl/src/terminal.c:71:28: error: initialization of 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
[...]
curl/src/tool_doswin.c: In function 'init_terminal':
curl/src/tool_doswin.c:737:28: error: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
  737 |   TerminalSettings.hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
      |                            ^
```
Ref: https://github.com/curl/curl/actions/runs/9358781710/job/25761278470#step:12:34
```
curl/tests/libtest/testutil.c: In function 'win32_load_system_library':
curl/tests/libtest/testutil.c:137:25: error: implicit declaration of function 'GetSystemDirectory'; did you mean 'GetSystemDirectoryW'? [-Wimplicit-function-declaratio

  137 |   size_t systemdirlen = GetSystemDirectory(NULL, 0);
      |                         ^~~~~~~~~~~~~~~~~~
      |                         GetSystemDirectoryW
curl/tests/libtest/testutil.c:137:25: error: nested extern declaration of 'GetSystemDirectory' [-Werror=nested-externs]
```
Ref: https://github.com/curl/curl/actions/runs/9365200402/job/25780091669#step:13:18
```
curl/tests/server/util.c: In function 'main_window_proc':
curl/tests/server/util.c:593:24: error: implicit declaration of function 'PostQuitMessage' [-Wimplicit-function-declaration]
  593 |       case WM_DESTROY: PostQuitMessage(0); break;
      |                        ^~~~~~~~~~~~~~~
curl/tests/server/util.c:593:24: error: nested extern declaration of 'PostQuitMessage' [-Werror=nested-externs]
curl/tests/server/util.c:600:10: error: implicit declaration of function 'DefWindowProc' [-Wimplicit-function-declaration]
  600 |   return DefWindowProc(hwnd, uMsg, wParam, lParam);
      |          ^~~~~~~~~~~~~
curl/tests/server/util.c:600:10: error: nested extern declaration of 'DefWindowProc' [-Werror=nested-externs]
curl/tests/server/util.c: In function 'main_window_loop':
curl/tests/server/util.c:611:3: error: unknown type name 'WNDCLASS'
  611 |   WNDCLASS wc;
      |   ^~~~~~~~
curl/tests/server/util.c:616:5: error: request for member 'lpfnWndProc' in something not a structure or union
  616 |   wc.lpfnWndProc = (WNDPROC)main_window_proc;
      |     ^
curl/tests/server/util.c:616:21: error: 'WNDPROC' undeclared (first use in this function)
  616 |   wc.lpfnWndProc = (WNDPROC)main_window_proc;
      |                     ^~~~~~~
curl/tests/server/util.c:616:21: note: each undeclared identifier is reported only once for each function it appears in
curl/tests/server/util.c:616:29: error: expected ';' before 'main_window_proc'
  616 |   wc.lpfnWndProc = (WNDPROC)main_window_proc;
      |                             ^~~~~~~~~~~~~~~~
      |                             ;
curl/tests/server/util.c:617:5: error: request for member 'hInstance' in something not a structure or union
  617 |   wc.hInstance = (HINSTANCE)lpParameter;
      |     ^
curl/tests/server/util.c:618:5: error: request for member 'lpszClassName' in something not a structure or union
  618 |   wc.lpszClassName = TEXT("MainWClass");
      |     ^
curl/tests/server/util.c:619:7: error: implicit declaration of function 'RegisterClass' [-Wimplicit-function-declaration]
  619 |   if(!RegisterClass(&wc)) {
      |       ^~~~~~~~~~~~~
curl/tests/server/util.c:619:7: error: nested extern declaration of 'RegisterClass' [-Werror=nested-externs]
curl/tests/server/util.c:624:24: error: implicit declaration of function 'CreateWindowEx' [-Wimplicit-function-declaration]
  624 |   hidden_main_window = CreateWindowEx(0, TEXT("MainWClass"),
      |                        ^~~~~~~~~~~~~~
curl/tests/server/util.c:624:24: error: nested extern declaration of 'CreateWindowEx' [-Werror=nested-externs]
curl/tests/server/util.c:630:41: error: request for member 'hInstance' in something not a structure or union
  630 |                                       wc.hInstance, (LPVOID)NULL);
      |                                         ^
curl/tests/server/util.c:637:11: error: implicit declaration of function 'GetMessage'; did you mean 'FormatMessage'? [-Wimplicit-function-declaration]
  637 |     ret = GetMessage(&msg, NULL, 0, 0);
      |           ^~~~~~~~~~
      |           FormatMessage
curl/tests/server/util.c:637:11: error: nested extern declaration of 'GetMessage' [-Werror=nested-externs]
curl/tests/server/util.c:644:9: error: implicit declaration of function 'DestroyWindow' [-Wimplicit-function-declaration]
  644 |         DestroyWindow(hidden_main_window);
      |         ^~~~~~~~~~~~~
curl/tests/server/util.c:644:9: error: nested extern declaration of 'DestroyWindow' [-Werror=nested-externs]
curl/tests/server/util.c:646:28: error: implicit declaration of function 'TranslateMessage' [-Wimplicit-function-declaration]
  646 |       else if(msg.hwnd && !TranslateMessage(&msg)) {
      |                            ^~~~~~~~~~~~~~~~
curl/tests/server/util.c:646:28: error: nested extern declaration of 'TranslateMessage' [-Werror=nested-externs]
y1086
curl/tests/server/util.c:647:9: error: implicit declaration of function 'DispatchMessage' [-Wimplicit-function-declaration]
  647 |         DispatchMessage(&msg);
      |         ^~~~~~~~~~~~~~~
curl/tests/server/util.c:647:9: error: nested extern declaration of 'DispatchMessage' [-Werror=nested-externs]
curl/tests/server/util.c: In function 'install_signal_handlers':
curl/tests/server/util.c:749:35: error: implicit declaration of function 'GetModuleHandle' [-Wimplicit-function-declaration]
  749 |                           (void *)GetModuleHandle(NULL), 0, &thread_main_id);
      |                                   ^~~~~~~~~~~~~~~
curl/tests/server/util.c:749:35: error: nested extern declaration of 'GetModuleHandle' [-Werror=nested-externs]
curl/tests/server/util.c:749:27: error: cast from function call of type 'int' to non-matching type 'void *' [-Werror=bad-function-cast]
  749 |                           (void *)GetModuleHandle(NULL), 0, &thread_main_id);
      |                           ^
curl/tests/server/util.c:749:27: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
curl/tests/server/util.c: In function 'restore_signal_handlers':
curl/tests/server/util.c:790:8: error: implicit declaration of function 'PostThreadMessage' [-Wimplicit-function-declaration]
  790 |     if(PostThreadMessage(thread_main_id, WM_APP, 0, 0)) {
      |        ^~~~~~~~~~~~~~~~~
curl/tests/server/util.c:790:8: error: nested extern declaration of 'PostThreadMessage' [-Werror=nested-externs]
curl/tests/server/util.c: At top level:
curl/tests/server/util.c:584:25: error: 'main_window_proc' defined but not used [-Werror=unused-function]
  584 | static LRESULT CALLBACK main_window_proc(HWND hwnd, UINT uMsg,
      |                         ^~~~~~~~~~~~~~~~
cc1.exe: all warnings being treated as errors
```
Ref: https://github.com/curl/curl/actions/runs/9366222324/job/25783180537
```
curl/tests/server/sockfilt.c: In function 'read_wincon':
curl/tests/server/sockfilt.c:166:14: error: implicit declaration of function 'GetStdHandle' [-Wimplicit-function-declaration]
  166 |     handle = GetStdHandle(STD_INPUT_HANDLE);
      |              ^~~~~~~~~~~~
curl/tests/server/sockfilt.c:166:14: error: nested extern declaration of 'GetStdHandle' [-Werror=nested-externs]
curl/tests/server/sockfilt.c:166:12: error: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
  166 |     handle = GetStdHandle(STD_INPUT_HANDLE);
      |            ^
curl/tests/server/sockfilt.c: In function 'write_wincon':
curl/tests/server/sockfilt.c:198:12: error: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
  198 |     handle = GetStdHandle(STD_OUTPUT_HANDLE);
      |            ^
curl/tests/server/sockfilt.c:201:12: error: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
  201 |     handle = GetStdHandle(STD_ERROR_HANDLE);
      |            ^
curl/tests/server/sockfilt.c: In function 'select_ws_wait_thread':
curl/tests/server/sockfilt.c:467:10: error: implicit declaration of function 'GetFileType'; did you mean 'SetFileTime'? [-Wimplicit-function-declaration]
  467 |   type = GetFileType(handle);
      |          ^~~~~~~~~~~
      |          SetFileTime
curl/tests/server/sockfilt.c:467:10: error: nested extern declaration of 'GetFileType' [-Werror=nested-externs]
curl/tests/server/sockfilt.c:489:25: error: implicit declaration of function 'SetFilePointer'; did you mean 'SetFilePointerEx'? [-Wimplicit-function-declaration]
  489 |           pos.LowPart = SetFilePointer(handle, 0, &pos.HighPart, FILE_CURRENT);
      |                         ^~~~~~~~~~~~~~
      |                         SetFilePointerEx
curl/tests/server/sockfilt.c:489:25: error: nested extern declaration of 'SetFilePointer' [-Werror=nested-externs]
curl/tests/server/sockfilt.c:547:12: error: implicit declaration of function 'PeekNamedPipe' [-Wimplicit-function-declaration]
  547 |         if(PeekNamedPipe(handle, NULL, 0, NULL, &length, NULL)) {
      |            ^~~~~~~~~~~~~
curl/tests/server/sockfilt.c:547:12: error: nested extern declaration of 'PeekNamedPipe' [-Werror=nested-externs]
curl/tests/server/sockfilt.c: In function 'select_ws':
curl/tests/server/sockfilt.c:717:18: error: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
  717 |           handle = GetStdHandle(STD_INPUT_HANDLE);
      |                  ^
curl/tests/server/sockfilt.c:732:22: error: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
  732 |         handles[nfd] = GetStdHandle(STD_OUTPUT_HANDLE);
      |                      ^
curl/tests/server/sockfilt.c:736:22: error: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
  736 |         handles[nfd] = GetStdHandle(STD_ERROR_HANDLE);
      |                      ^
cc1.exe: all warnings being treated as errors
```
Ref: https://github.com/curl/curl/actions/runs/9367420771/job/25787080763#step:13:1061
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI Continuous Integration cmdline tool tests Windows Windows-specific
Development

Successfully merging this pull request may close these issues.

None yet

1 participant