curl/CMake
Viktor Szakats b563a92cd6
tidy-up: process.h detection and use
This patch aims to cleanup the use of `process.h` header and the macro
`HAVE_PROCESS_H` associated with it.

- `process.h` is always available on Windows. In curl, it is required
  only for `_beginthreadex()` in `lib/curl_threads.c`.

- `process.h` is also available in MS-DOS. In curl, its only use was in
  `lib/smb.c` for `getpid()`. But `getpid()` is in fact declared by
  `unistd.h`, which is always enabled via `lib/config-dos.h`. So the
  header is not necessary.

- `HAVE_PROCESS_H` was detected by CMake, forced to 1 on Windows and
  left to real detection for other platforms.
  It was also set to always-on in `lib/config-win32.h` and
  `lib/config-dos.h`.
  In autotools builds, there was no detection and the macro was never
  set.

Based on these observations, in this patch we:

- Rework Windows `getpid` logic in `lib/smb.c` to always use the
  equivalent direct Win32 API function `GetCurrentProcessId()`, as we
  already did for Windows UWP apps. This makes `process.h` unnecessary
  here on Windows.

- Stop #including `process.h` into files where it was not necessary.
  This is everywhere, except `lib/curl_threads.c`.

  > Strangely enough, `lib/curl_threads.c` compiled fine with autotools
  > because `process.h` is also indirecty included via `unistd.h`. This
  > might have been broken in autotools MSVC builds, where the latter
  > header is missing.

- Delete all remaining `HAVE_PROCESS_H` feature guards, for they were
  unnecessary.

- Delete `HAVE_PROCESS_H` detection from CMake and predefined values
  from `lib/config-*.h` headers.

Reviewed-by: Jay Satiro
Closes #9703
2022-11-01 22:27:28 +00:00
..
Platforms tidy-up: process.h detection and use 2022-11-01 22:27:28 +00:00
cmake_uninstall.cmake.in copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
CMakeConfigurableFile.in copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
curl-config.cmake.in copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
CurlSymbolHiding.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
CurlTests.c cmake: delete duplicate HAVE_GETADDRINFO test 2022-10-14 17:31:19 +00:00
FindBearSSL.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindBrotli.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindCARES.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindGSS.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindLibPSL.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindLibSSH2.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindMbedTLS.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindMSH3.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindNGHTTP2.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindNGHTTP3.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindNGTCP2.cmake cmake: support ngtcp2 boringssl backend 2022-07-05 10:09:40 +02:00
FindNSS.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindQUICHE.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindWolfSSL.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindZstd.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
Macros.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
OtherTests.cmake functypes: provide the recv and send arg and return types 2022-09-28 09:06:11 +02:00
Utilities.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00