diff options
author | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2022-09-28 10:46:20 +0300 |
---|---|---|
committer | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2022-09-28 10:46:20 +0300 |
commit | 13e217f5c2e5647552e4452406a43c8dc0782a35 (patch) | |
tree | e589a77f077fbfcd1bb1adbea92cf781c2fccfc5 | |
parent | 6933158a95542a9aa1fb3862d3bd93cc71440ca3 (diff) | |
download | libmicrohttpd-13e217f5c2e5647552e4452406a43c8dc0782a35.tar.gz libmicrohttpd-13e217f5c2e5647552e4452406a43c8dc0782a35.zip |
Added workarounds for clang with W32 and MinGW incorrect headers
-rw-r--r-- | configure.ac | 36 | ||||
-rw-r--r-- | src/microhttpd/daemon.c | 22 |
2 files changed, 45 insertions, 13 deletions
diff --git a/configure.ac b/configure.ac index 6a13f469..4f9b3f45 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -325,7 +325,7 @@ AS_CASE([${enable_build_type}],[debug|debugger], | |||
325 | MHD_CHECK_ADD_CC_CFLAGS([-Wextra -Wdouble-promotion], [CFLAGS_ac]) | 325 | MHD_CHECK_ADD_CC_CFLAGS([-Wextra -Wdouble-promotion], [CFLAGS_ac]) |
326 | MHD_FIND_ADD_CC_CFLAG_IFELSE( | 326 | MHD_FIND_ADD_CC_CFLAG_IFELSE( |
327 | [ | 327 | [ |
328 | # clang produce warning when string pointer is used as a formar for v*printf() function | 328 | # clang produce warning when string pointer is used as a format specifier for v*printf() function |
329 | AS_VAR_IF([mhd_cv_cc_clang_based],["yes"],[MHD_CHECK_ADD_CC_CFLAG([-Wno-format-nonliteral], [CFLAGS_ac])]) | 329 | AS_VAR_IF([mhd_cv_cc_clang_based],["yes"],[MHD_CHECK_ADD_CC_CFLAG([-Wno-format-nonliteral], [CFLAGS_ac])]) |
330 | ],[], | 330 | ],[], |
331 | [CFLAGS_ac], [-Wformat=2], [-Wformat] | 331 | [CFLAGS_ac], [-Wformat=2], [-Wformat] |
@@ -359,7 +359,39 @@ AS_CASE([${enable_build_type}],[debug|debugger], | |||
359 | MHD_CHECK_ADD_CC_CFLAGS([-Wmissing-noreturn -Wmissing-variable-declarations -Wnested-anon-types], [CFLAGS_ac]) | 359 | MHD_CHECK_ADD_CC_CFLAGS([-Wmissing-noreturn -Wmissing-variable-declarations -Wnested-anon-types], [CFLAGS_ac]) |
360 | MHD_CHECK_ADD_CC_CFLAGS([-Wnewline-eof -Wover-aligned -Wredundant-parens], [CFLAGS_ac]) | 360 | MHD_CHECK_ADD_CC_CFLAGS([-Wnewline-eof -Wover-aligned -Wredundant-parens], [CFLAGS_ac]) |
361 | MHD_CHECK_ADD_CC_CFLAGS([-Wshift-sign-overflow -Wtautological-compare -Wunaligned-access], [CFLAGS_ac]) | 361 | MHD_CHECK_ADD_CC_CFLAGS([-Wshift-sign-overflow -Wtautological-compare -Wunaligned-access], [CFLAGS_ac]) |
362 | MHD_CHECK_ADD_CC_CFLAGS([-Wunused -Wused-but-marked-unused -Wzero-as-null-pointer-constant -Wzero-length-array], [CFLAGS_ac]) | 362 | MHD_CHECK_ADD_CC_CFLAGS([-Wunused -Wzero-as-null-pointer-constant -Wzero-length-array], [CFLAGS_ac]) |
363 | MHD_CHECK_CC_CFLAG([-Wused-but-marked-unused],[CFLAGS_ac], | ||
364 | [ | ||
365 | AC_CACHE_CHECK([whether $[]CC -Wused-but-marked-unused works with system headers], | ||
366 | [mhd_cv_wused_but_marked_unused_sys_header], | ||
367 | [ | ||
368 | SAVE_ac_c_werror_flag="$ac_c_werror_flag" | ||
369 | ac_c_werror_flag="yes" | ||
370 | CFLAGS="${CFLAGS_ac} -Wused-but-marked-unused ${user_CFLAGS}" | ||
371 | AC_COMPILE_IFELSE( | ||
372 | [ | ||
373 | AC_LANG_SOURCE([[ | ||
374 | #include <stdio.h> | ||
375 | |||
376 | int main(void) | ||
377 | { | ||
378 | char buf[16]; | ||
379 | return (int) snprintf(buf, 16, "test"); | ||
380 | } | ||
381 | ]] | ||
382 | ) | ||
383 | ], | ||
384 | [mhd_cv_wused_but_marked_unused_sys_header="yes"], | ||
385 | [mhd_cv_wused_but_marked_unused_sys_header="no"] | ||
386 | ) | ||
387 | ac_c_werror_flag="$SAVE_ac_c_werror_flag" | ||
388 | ] | ||
389 | ) | ||
390 | AS_VAR_IF([mhd_cv_wused_but_marked_unused_sys_header],["yes"], | ||
391 | [MHD_APPEND_FLAG_TO_VAR([CFLAGS_ac],[-Wused-but-marked-unused])] | ||
392 | ) | ||
393 | ] | ||
394 | ) | ||
363 | # | 395 | # |
364 | # Removed flags: | 396 | # Removed flags: |
365 | # | 397 | # |
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c index 29ce1ccc..b1cb5146 100644 --- a/src/microhttpd/daemon.c +++ b/src/microhttpd/daemon.c | |||
@@ -815,20 +815,20 @@ urh_from_fdset (struct MHD_UpgradeResponseHandle *urh, | |||
815 | 815 | ||
816 | if (MHD_INVALID_SOCKET != conn_sckt) | 816 | if (MHD_INVALID_SOCKET != conn_sckt) |
817 | { | 817 | { |
818 | if (FD_ISSET (conn_sckt, rs)) | 818 | if (FD_ISSET (conn_sckt, (fd_set *) _MHD_DROP_CONST (rs))) |
819 | urh->app.celi |= MHD_EPOLL_STATE_READ_READY; | 819 | urh->app.celi |= MHD_EPOLL_STATE_READ_READY; |
820 | if (FD_ISSET (conn_sckt, ws)) | 820 | if (FD_ISSET (conn_sckt, (fd_set *) _MHD_DROP_CONST (ws))) |
821 | urh->app.celi |= MHD_EPOLL_STATE_WRITE_READY; | 821 | urh->app.celi |= MHD_EPOLL_STATE_WRITE_READY; |
822 | if (FD_ISSET (conn_sckt, es)) | 822 | if (FD_ISSET (conn_sckt, (fd_set *) _MHD_DROP_CONST (es))) |
823 | urh->app.celi |= MHD_EPOLL_STATE_ERROR; | 823 | urh->app.celi |= MHD_EPOLL_STATE_ERROR; |
824 | } | 824 | } |
825 | if ((MHD_INVALID_SOCKET != mhd_sckt)) | 825 | if ((MHD_INVALID_SOCKET != mhd_sckt)) |
826 | { | 826 | { |
827 | if (FD_ISSET (mhd_sckt, rs)) | 827 | if (FD_ISSET (mhd_sckt, (fd_set *) _MHD_DROP_CONST (rs))) |
828 | urh->mhd.celi |= MHD_EPOLL_STATE_READ_READY; | 828 | urh->mhd.celi |= MHD_EPOLL_STATE_READ_READY; |
829 | if (FD_ISSET (mhd_sckt, ws)) | 829 | if (FD_ISSET (mhd_sckt, (fd_set *) _MHD_DROP_CONST (ws))) |
830 | urh->mhd.celi |= MHD_EPOLL_STATE_WRITE_READY; | 830 | urh->mhd.celi |= MHD_EPOLL_STATE_WRITE_READY; |
831 | if (FD_ISSET (mhd_sckt, es)) | 831 | if (FD_ISSET (mhd_sckt, (fd_set *) _MHD_DROP_CONST (es))) |
832 | urh->mhd.celi |= MHD_EPOLL_STATE_ERROR; | 832 | urh->mhd.celi |= MHD_EPOLL_STATE_ERROR; |
833 | } | 833 | } |
834 | } | 834 | } |
@@ -4299,7 +4299,7 @@ internal_run_from_select (struct MHD_Daemon *daemon, | |||
4299 | will trigger select again and will be processed */ | 4299 | will trigger select again and will be processed */ |
4300 | if ( (MHD_ITC_IS_VALID_ (daemon->itc)) && | 4300 | if ( (MHD_ITC_IS_VALID_ (daemon->itc)) && |
4301 | (FD_ISSET (MHD_itc_r_fd_ (daemon->itc), | 4301 | (FD_ISSET (MHD_itc_r_fd_ (daemon->itc), |
4302 | read_fd_set)) ) | 4302 | (fd_set *) _MHD_DROP_CONST (read_fd_set))) ) |
4303 | MHD_itc_clear_ (daemon->itc); | 4303 | MHD_itc_clear_ (daemon->itc); |
4304 | 4304 | ||
4305 | /* Process externally added connection if any */ | 4305 | /* Process externally added connection if any */ |
@@ -4310,7 +4310,7 @@ internal_run_from_select (struct MHD_Daemon *daemon, | |||
4310 | if ( (MHD_INVALID_SOCKET != (ds = daemon->listen_fd)) && | 4310 | if ( (MHD_INVALID_SOCKET != (ds = daemon->listen_fd)) && |
4311 | (! daemon->was_quiesced) && | 4311 | (! daemon->was_quiesced) && |
4312 | (FD_ISSET (ds, | 4312 | (FD_ISSET (ds, |
4313 | read_fd_set)) ) | 4313 | (fd_set *) _MHD_DROP_CONST (read_fd_set))) ) |
4314 | (void) MHD_accept_connection (daemon); | 4314 | (void) MHD_accept_connection (daemon); |
4315 | 4315 | ||
4316 | if (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) | 4316 | if (0 == (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) |
@@ -4325,11 +4325,11 @@ internal_run_from_select (struct MHD_Daemon *daemon, | |||
4325 | continue; | 4325 | continue; |
4326 | call_handlers (pos, | 4326 | call_handlers (pos, |
4327 | FD_ISSET (ds, | 4327 | FD_ISSET (ds, |
4328 | read_fd_set), | 4328 | (fd_set *) _MHD_DROP_CONST (read_fd_set)), |
4329 | FD_ISSET (ds, | 4329 | FD_ISSET (ds, |
4330 | write_fd_set), | 4330 | (fd_set *) _MHD_DROP_CONST (write_fd_set)), |
4331 | FD_ISSET (ds, | 4331 | FD_ISSET (ds, |
4332 | except_fd_set)); | 4332 | (fd_set *) _MHD_DROP_CONST (except_fd_set))); |
4333 | } | 4333 | } |
4334 | } | 4334 | } |
4335 | 4335 | ||