aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2022-09-28 10:46:20 +0300
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2022-09-28 10:46:20 +0300
commit13e217f5c2e5647552e4452406a43c8dc0782a35 (patch)
treee589a77f077fbfcd1bb1adbea92cf781c2fccfc5
parent6933158a95542a9aa1fb3862d3bd93cc71440ca3 (diff)
downloadlibmicrohttpd-13e217f5c2e5647552e4452406a43c8dc0782a35.tar.gz
libmicrohttpd-13e217f5c2e5647552e4452406a43c8dc0782a35.zip
Added workarounds for clang with W32 and MinGW incorrect headers
-rw-r--r--configure.ac36
-rw-r--r--src/microhttpd/daemon.c22
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
376int 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