commit 345401063a6720e61f93f38a24732478f6628c2c from: Sergey Bronnikov date: Mon Dec 18 18:56:23 2023 UTC httpc: prefer curl headers in submodule by default FreeBSD instances in Tarantool CI have installed libcurl package (as a dependency of Zabbix monitoring agent). Curl 8.4.0 introduces a new function `curl_multi_get_handles` that is used in the following commit in `src/curl.c`, but libcurl system package has no such symbol in headers. On building on FreeBSD in Tarantool CI C compiler produces a warning about implicit declaration of function, because it looks at system headers by default and due to enabled CMake option `-DENABLE_WERROR=ON` building has failed: ``` [ 63%] Building C object src/CMakeFiles/server.dir/title.c.o /.cache/act/55d136250dd94303/hostexecutor/src/curl.c:266:17: error: implicit declaration of function 'curl_multi_get_handles' is invalid in C99 [-Werror,-Wimplicit-function-declaration] CURL **list = curl_multi_get_handles(env->multi); ^ /.cache/act/55d136250dd94303/hostexecutor/src/curl.c:266:17: note: did you mean 'curl_multi_add_handle'? /usr/local/include/curl/multi.h:140:23: note: 'curl_multi_add_handle' declared here CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle, ^ /.cache/act/55d136250dd94303/hostexecutor/src/curl.c:266:10: error: incompatible integer to pointer conversion initializing 'CURL **' (aka 'void **') with an expression of type 'int' [-Werror,-Wint-conversion] CURL **list = curl_multi_get_handles(env->multi); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 errors generated. ``` The patch fixes that by reordering headers passed to compiler, see [1]. 1. https://cmake.org/cmake/help/latest/command/include_directories.html Needed for #9283 NO_CHANGELOG=build NO_DOC=build NO_TEST=build commit - 9b7b739ff7ee78fa0de3dbb38015d0d11af0370f commit + 345401063a6720e61f93f38a24732478f6628c2c blob - 1503ff052871fe51a53a2a2f4dcaf53c4a8fd329 blob + 19260418fdabe4ec7d055801f246e09684c227e2 --- src/CMakeLists.txt +++ src/CMakeLists.txt @@ -10,7 +10,7 @@ include_directories(${LUAJIT_INCLUDE_DIRS}) include_directories(${READLINE_INCLUDE_DIRS}) include_directories(${LIBYAML_INCLUDE_DIRS}) include_directories(${MSGPUCK_INCLUDE_DIRS}) -include_directories(${CURL_INCLUDE_DIRS}) +include_directories(BEFORE ${CURL_INCLUDE_DIRS}) include_directories(${ICU_INCLUDE_DIRS}) include_directories(${ICONV_INCLUDE_DIRS}) include_directories(${DECNUMBER_INCLUDE_DIR})