* configure.ac: Fix test for asan and tsan being mutually exclusive
* configure.ac: Make `./configure --help` document about msan and tsan being mutually exclusive
* configure.ac: Check for valgrind and Sanitizers being mutually exclusive
* configure.ac: Make ./configure --help document above check
* configure.ac: Make ./configure --help document the existing check of asan and msan
* configure.ac: Suppress -Wunsuffixed-float-constants for gcc,
add -Wno-disabled-macro-expansion to clang flags
* examples/getstream.c: Removed 'unused' attributes from argc and argv.
* include/wget/wget.h: Fix slot to int for bar functions.
* libwget/bar.c: Fix slot to int for bar functions, cast to int,
change type of bitfield 'redraw' to unsigned.
* libwget/hsts.c (wget_hsts_new): Fix int to bitfield conversion.
* libwget/http.c: Cast printf %p format to (void *).
* src/wget.c: Cast printf %p format to (void *),
remove ACTION_DONE from enum actions.
* src/wget_host.h: Fix double declaration of host_remove_job()
* tests/libtest.c (wget_test_check_filesystem): Fix type of 'rc'.
* tests/test-idn-robots.c: Fix comma to semikolon at end of line.
* tests/test.c (test_strcasecmp_ascii): Fix type of loop variable.
* bootstrap.conf: Remove manywarnings, add warnings
* configure.ac: Replace manywarnings code
The new code works on recent gcc and clang with an overhead of
~100ms instead of ~9s here (without -C).
This is meant for developers only and is activated by either
--enable-gcc-warnings or by touching .manywarnings.
* configure.ac: Add configure option to enable Thread Sanitizer.
Enabling this option currently causes all tests to fil due to
various data races. Some of the races can be fixed, while others are
false positives.
[ci skip]
Compiler sanitization options allow the code to be instrumented at
compile time. They add instructions to detect various behaviours at
runtime. These options usually cause significant slowdown and will
often cause the program to crash. Hence, do *not* use them on
production systems. They are meant to be used only by the developers
for testing purposes. Three sanitization options are added to the
configure options in this commit:
1. Undefined Behaviour Sanitizer (ubsan): Detect issues in the code
that are undefined behaviour according to the C specification
2. Address Sanitizer (ASan): Detect addressing issues and memory
leaks at runtime. Slightly similar to Valgrind, but using compiler
added instrumentation
3. Memory Sanitizer (MSan): Detect uninitialized memory reads.
The Address Sanitizer and Memory Sanitizer options are mutually
exclusive, and hence a check for the same is added to the configure
script.
MSan additionally requires that all libraries be instrumented too.
Without that, MSan is nearly unusable due to various false
positives.
* configure.ac: Add option to enable UBSan, ASan and MSan fsanitize
options at compile time.
* configure.ac: Check for gnutls_transport_get_int()
* libwget/ssl_gnutls.c: Use gnutls_transport_[gs]et_int() if possible
Avoid int <-> pointer conversions
* autogen.sh: Add option --makefile-name=gnulib.mk to gnulib-tool
* configure.ac: Add 'subdir-objects' to AM_INIT_AUTOMAKE,
add macro 'gl_GCC_VERSION_IFELSE' from coreutils project,
enable extra gcc warnings by default when running from Git repo,
disable several warnings for gnulib compilation
* lib/Makefile.am: New file
* configure.ac: Remove check for libpthread
* include/libwget.h.in: Check HAVE_PTHREAD_H,
Do not undefine gettext
* libwget/thread.c: Check HAVE_PTHREAD_H
This check is done by gnulib 'pthread' module.