Commit Graph

121 Commits

Author SHA1 Message Date
Viktor Szakats
81c9c8cd39
autotools: sync up clang picky warnings with cmake
Bringing missing options over from CMake.

Move around existing `-Wno-pointer-bool-conversion` option to come
_after_ `-Wconversion`.

Reviewed-by: Marcel Raad
Closes #10974
2023-04-17 11:35:56 +00:00
Daniel Stenberg
2bc1d775f5
copyright: update all copyright lines and remove year ranges
- they are mostly pointless in all major jurisdictions
- many big corporations and projects already don't use them
- saves us from pointless churn
- git keeps history for us
- the year range is kept in COPYING

checksrc is updated to allow non-year using copyright statements

Closes #10205
2023-01-03 09:19:21 +01:00
Daniel Stenberg
b23ce2cee7
curl-compilers.m4: for gcc + want warnings, set gnu89 standard
To better verify that the code is C89

Closes #9542
2022-09-23 08:27:43 +02:00
Daniel Stenberg
51083a197c
curl-compilers.m4: use -O2 as default optimize for clang
Not -Os

Closes #9444
2022-09-06 18:47:48 +02:00
Daniel Stenberg
3f5b66c13d
curl-compilers.m4: make icc use -diag* options and disable two warnings
-wd and -we are deprecated and are now -diag-disable and -diag-error

Disable warning 1024 and 2259

Closes #9179
2022-07-23 13:38:24 +02:00
max.mehl
ad9bc5976d
copyright: make repository REUSE compliant
Add licensing and copyright information for all files in this repository. This
either happens in the file itself as a comment header or in the file
`.reuse/dep5`.

This commit also adds a Github workflow to check pull requests and adapts
copyright.pl to the changes.

Closes #8869
2022-06-13 09:13:00 +02:00
Daniel Stenberg
f6088822ce
misc: remove the final watcom references
Follow-up to bbf8cae44d

We removed support for the watcom builds files back in September
2020. This removes all remaining watcom references and ifdefs.

Closes #8287
2022-01-17 08:49:25 +01:00
Marcel Raad
7740600015 build: enable -Warith-conversion
This makes the behavior consistent between GCC 10 and earlier versions.

Closes https://github.com/curl/curl/pull/8271
2022-01-13 16:23:07 +01:00
Marcel Raad
813c984962 build: fix -Wenum-conversion handling
Don't enable that warning when warnings are disabled.
Also add it to CMake.

Closes https://github.com/curl/curl/pull/8271
2022-01-13 16:23:03 +01:00
Daniel Stenberg
e9021838db
m4/curl-compilers: tell clang -Wno-pointer-bool-conversion
To hush compiler warnings we don't care for: error: address of function
'X' will always evaluate to 'true'

Fixes #8197
Closes #8198
2021-12-29 23:20:57 +01:00
Daniel Stenberg
d4d53d99b1
mailing lists: move from cool.haxx.se to lists.haxx.se 2021-08-30 09:51:07 +02:00
Daniel Stenberg
b5a434f7f0
configure: inhibit the implicit-fallthrough warning on gcc-12
... since it no longer acknowledges the comment markup we use for that
purpose.

Reported-by: Younes El-karama
Fixes #7295
Closes #7307
2021-06-29 11:58:25 +02:00
Daniel Stenberg
6dd35dd3b5
configure: do not strip out debug flags
To allow users to set them when invoking configure without using
--with-debug.

Reported-by: Alex Xu
Fixes #7216
Closes #7267
2021-06-17 17:07:28 +02:00
Daniel Stenberg
26e46617b9
configure: set -Wextra-semi-stmt for clang with --enable-debug
To have it properly complain on empty statements with no effect.

Ref: #6376
Closes #6378
2020-12-29 23:02:43 +01:00
Daniel Stenberg
4d2f800677
curl.se: new home
Closes #6172
2020-11-04 23:59:47 +01:00
Daniel Stenberg
17fcdf6a31
lib: fix -Wassign-enum warnings
configure --enable-debug now enables -Wassign-enum with clang,
identifying several enum "abuses" also fixed.

Reported-by: Gisle Vanem
Bug: 879007f811 (commitcomment-42087553)

Closes #5929
2020-09-08 13:53:02 +02:00
Daniel Stenberg
8684bb70d3
configure: let --enable-debug set -Wenum-conversion with gcc >= 10
Unfortunately, this option is not detecting the same issues as clang's
-Wassign-enum flag, but should still be useful to detect future
mistakes.

Closes #5930
2020-09-07 22:47:39 +02:00
Marcel Raad
ae5b6deb15
configure: allow disabling warnings
When using `--enable-warnings`, it was not possible to disable warnings
via CFLAGS that got explicitly enabled. Now warnings are not enabled
anymore if they are explicitly disabled (or enabled) in CFLAGS. This
works for at least GCC, clang, and TCC as they have corresponding
`-Wno-` options for every warning.

Closes https://github.com/curl/curl/pull/5689
2020-07-17 09:35:16 +02:00
Daniel Stenberg
efa830f9f6
configure: remove use of -vec-report0 from CFLAGS with icc
... as it apparently isn't (always) supported.
Reported-by: Alain Miniussi
Fixes #5096
Closes #5191
2020-04-06 23:19:06 +02:00
Daniel Stenberg
27ea8fc2fa
configure: convert -I to -isystem as a last step
As all the -I uses in CFLAGS at that point are for system headers and
third party libraries this helps us remove/ignore warnings on those!

Closes #5060
2020-03-11 08:51:25 +01:00
Daniel Stenberg
f0f3952f55
configure: document 'compiler_num' for gcc
The CURL_CHECK_COMPILER_GNU_C function sets the number to MAJOR*100 +
MINOR and ignores the patch version, and since gcc version 7 it only
sets it to MAJOR*100.

Reported-by: Stepan Efremov
Ref: #5067
Closes #5069
2020-03-11 08:47:59 +01:00
Daniel Stenberg
26d7f0094a
curl-compilers.m4: check for __ibmxl__ to detect xlclang
Follow-up to 2fa0d57e2e. The __xlc__ symbol is only defined there if a
particular flag is used for legacy macros.

Fixes #3474
Closes #3479
2019-01-16 08:53:56 +01:00
Daniel Stenberg
2fa0d57e2e
curl-compilers.m4: detect xlclang
Since it isn't totally clang compatible, we detect this IBM clang
front-end and if detected, avoids some clang specific magic.

Reported-by: Kees Dekker
Fixes #3474
Closes #3476
2019-01-15 16:18:45 +01:00
Daniel Stenberg
5616c1df28
configure: s/AC_RUN_IFELSE/CURL_RUN_IFELSE
fix a few leftovers

Fixes #3006
Closes #3049
2018-09-26 18:51:34 +02:00
Viktor Szakats
b801b453af whitespace fixes
- replace tabs with spaces where possible
- remove line ending spaces
- remove double/triple newlines at EOF
- fix a non-UTF-8 character
- cleanup a few indentations/line continuations
  in manual examples

Closes https://github.com/curl/curl/pull/3037
2018-09-23 22:24:02 +00:00
Marcel Raad
014ed7c22f
Enable more GCC warnings
This enables the following additional warnings:
-Wold-style-definition
-Warray-bounds=2 instead of the default 1
-Wformat=2, but only for GCC 4.8+ as Wno-format-nonliteral is not
 respected for older versions
-Wunused-const-variable, which enables level 2 instead of the default 1
-Warray-bounds also in debug mode through -ftree-vrp
-Wnull-dereference also in debug mode through
 -fdelete-null-pointer-checks

Closes https://github.com/curl/curl/pull/2747
2018-08-21 18:53:46 +02:00
Marcel Raad
15ed9f87e3
curl-compilers: enable -Wimplicit-fallthrough=4 for GCC
This enables level 4 instead of the default level 3, which of the
currently used comments only allows /* FALLTHROUGH */ to silence the
warning.

Closes https://github.com/curl/curl/pull/2747
2018-08-21 18:53:45 +02:00
Marcel Raad
60776a0515
curl-compilers: enable -Wbad-function-cast on GCC
This warning used to be enabled only for clang as it's a bit stricter
on GCC. Silence the remaining occurrences and enable it on GCC too.

Closes https://github.com/curl/curl/pull/2747
2018-08-21 18:53:45 +02:00
Frank Gevaerts
7663a7c284
configure: put CURLDEBUG and DEBUGBUILD in lib/curl_config.h
They are removed from the compiler flags.

This ensures that make dependency tracking will force a rebuild whenever
configure --enable-debug or --enable-curldebug changes.

Closes #2548
2018-05-04 22:30:28 +02:00
Eric Gallager
a19fefb070
build: add picky compiler warning flags for gcc 6 and 7 2018-04-07 11:18:58 +02:00
Daniel Stenberg
f8548e84ad
configure: use -Wno-varargs on clang 3.9[.X] debug builds
... to avoid a clang bug
2017-09-08 23:16:16 +02:00
Daniel Stenberg
b5cc7dd360
m4/curl-compilers.m4: use proper quotes around string, not backticks
... when setting clang version to assume 3.7

Caused a lot of "integer expression expected" warnings by configure.
2017-08-16 00:05:11 +02:00
Marcel Raad
deadb2348f
curl-compilers.m4: disable warning spam with Cygwin's clang
When building with Cygwin or MinGW, libtool uses a wrapper executable
instead of a wrapper script [1], which is written in C and throws
missing-variable-declarations warnings. Don't enable these warnings on
Cygwin and MinGW in order to avoid warnings for every executable built,
which spams the test suite output when using Cygwin's clang.

[1] https://www.gnu.org/software/libtool/manual/html_node/Wrapper-executables.html

Closes https://github.com/curl/curl/pull/1665
2017-07-10 10:16:29 +02:00
Marcel Raad
e5d6aa8d61
curl-compilers.m4: fix unknown-warning-option on Apple clang
Since 5598b0bd63, clang -v is used to
detect the clang version. The version number was expected to come after
the word "version". For Apple clang, this doesn't work as it has its
own versioning scheme.
The version number is now first searched after the string
"based on LLVM". This works for Apple clang before version 7, and also
for e.g. Ubuntu's clang up to version 3.7. If it's not found and the
version string contains "Apple LLVM version", clang version 3.7 is
assumed, which is the version that comes with Xcode 7. Otherwise, the
version number is still expected after the word "version", which works
for very old Apple clang versions.

Ref: https://trac.macports.org/wiki/XcodeVersionInfo
Fixes https://github.com/curl/curl/issues/1606
Closes https://github.com/curl/curl/pull/1607
2017-06-24 11:10:38 +02:00
Marcel Raad
5bdf835c0b
curl-compilers.m4: enable comma clang warning
It usually warns when using commas instead of semicolons or other
operators by accident.

Closes https://github.com/curl/curl/pull/1578
2017-06-16 22:32:13 +02:00
Marcel Raad
32ec3063df
curl-compilers.m4: enable missing-variable-declarations clang warning
It usually warns when forgetting to declare TU-local variables static.

Closes https://github.com/curl/curl/pull/1578
2017-06-16 22:32:05 +02:00
Marcel Raad
b5c5909f30
curl-compilers.m4: enable double-promotion warning
Enable -Wdouble-promotion for both GCC and clang. It warns on implicit
promotion from float to double.

Closes https://github.com/curl/curl/pull/1578
2017-06-16 22:31:57 +02:00
Marcel Raad
783ce023a5
curl-compilers.m4: enable vla warning for clang
Previously, that warning was only implicitly active in C90 mode.
Enable it unconditionally as already done for GCC.

Closes https://github.com/curl/curl/pull/1578
2017-06-16 22:31:48 +02:00
Marcel Raad
5e796c5e94
curl-compilers.m4: escape square brackets in regex
Otherwise, they are removed in the final configure file.
Also changed sed to "$SED" like in most other calls in this file.
2017-06-01 17:47:37 +02:00
Marcel Raad
5598b0bd63
curl-compilers.m4: fix compiler_num for clang
"clang -dumpversion" always returns "4.2.1", the GCC version that clang
was initially compatible to. Use "clang -v" instead, which returns the
actual clang version.

Fixes https://github.com/curl/curl/issues/1522
Closes https://github.com/curl/curl/pull/1523
2017-06-01 08:48:05 +02:00
Marcel Raad
314a7fa3ce
curl-compilers.m4: enable -Wshift-sign-overflow for clang
clang 2.9+ supports -Wshift-sign-overflow, which warns about undefined
behavior on signed left shifts when shifting by too many places.

Ref: https://github.com/curl/curl/issues/1516
Closes https://github.com/curl/curl/pull/1517
2017-05-31 10:06:53 +02:00
Marcel Raad
71d2d37005
curl-compilers.m4: accept -Og and -Ofast GCC flags
-Og, introduced in GCC 4.8, optimizes for debugging experience.
-Ofast, introduced in GCC 4.7, builds on -O3 and enables further
optimizations breaking strict standards compliance.
When specified in CFLAGS, these were always overridden by -O0 or -O2.
Fix this by adding them to flags_opt_all.

Ref: https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Optimize-Options.html
Ref: https://github.com/curl/curl/pull/1404#issuecomment-296401570
Closes https://github.com/curl/curl/pull/1440
2017-04-24 10:56:56 +02:00
Marcel Raad
9168e2470d
curl-compilers.m4: turn implicit function declarations into errors
This adds -Werror-implicit-function-declaration for GCC 2.95+ so that
these errors are visible at the point where they occur instead of only
at link time.
Implicit function declarations are illegal in C99 and C++ anyway, and
the same warning has been turned into an error for ICC in commit
3072c5b8a1.

Ref: https://gcc.gnu.org/onlinedocs/gcc-2.95.2/gcc_2.html#SEC8
Ref: https://curl.haxx.se/mail/lib-2017-04/0001.html
Closes https://github.com/curl/curl/pull/1419
2017-04-15 21:17:56 +02:00
Daniel Stenberg
27302abb94 s/cURL/curl
We're mostly saying just "curl" in lower case these days so here's a big
cleanup to adapt to this reality. A few instances are left as the
project could still formally be considered called cURL.
2016-11-07 10:36:23 +01:00
Kamil Dudka
b2dcf0347f curl-compilers.m4: improve detection of GCC's -fvisibility= flag
Some builds of GCC produce output on both stdout and stderr when --help
--verbose is used.  The 2>&1 redirection caused them to be arbitrarily
interleaved with each other because of stream buffering.  Consequently,
grep failed to match the fvisibility= string in the mixed output, even
though the string was present in GCC's standard output.

This led to silently disabling symbol hiding in some builds of curl.
2016-06-21 12:58:24 +02:00
Dan Fandrich
093f9cd38d URLs: Change more haxx.se URLs from http: to https: 2016-02-03 01:45:21 +01:00
Daniel Stenberg
4af40b3646 URLs: change all http:// URLs to https:// 2016-02-03 00:19:02 +01:00
Daniel Stenberg
092f33d6bf configure: use icc options without space
The latest version(s) of the icc compiler no longer accept the extra
space in the -we (warning enable), -wd (warning disable), etc.

Reported-by: Elmira A Semenova
Bug: http://curl.haxx.se/mail/lib-2013-09/0182.html
2013-09-27 10:57:20 +02:00
Daniel Stenberg
09634f46fb configure: improve CURL_CHECK_COMPILER_PROTOTYPE_MISMATCH
The compiler test used a variable before it was assigned when it tried
to see how it acts on a mismatching prototype, which could cause a false
positive.
2013-09-07 11:15:18 +02:00
Yang Tse
70b5173410 configure: use XC_LIBTOOL for portability across libtool versions 2013-03-08 13:27:45 +01:00