Commit Graph

125 Commits

Author SHA1 Message Date
Maxim Dounin
4cfd9ba3c1 Win32: simplified and improved handling of MSVC versions.
Now we always set NGX_CC_NAME to "msvc", and additionally test compiler
version as reported by "cl" in auto/cc/msvc (the same version is also
available via the _MSC_VER define).  In particular, this approach allows
to properly check for C99 variadic macros support, which previously was
not used with MSVC versions not explicitly recognized.

Now unneeded wildcards in NGX_CC_NAME tests for msvc removed accordingly,
as well as unused wildcards for owc and icc.
2016-02-13 06:47:34 +03:00
Valentin Bartenev
531e6fbfd6 HTTP/2: implemented HPACK Huffman encoding for response headers.
This reduces the size of headers by over 30% on average.

Based on the patch by Vlad Krasnov:
http://mailman.nginx.org/pipermail/nginx-devel/2015-December/007682.html
2016-02-11 15:35:36 +03:00
Maxim Dounin
97f59dda09 Dynamic modules.
The auto/module script is extended to understand ngx_module_link=DYNAMIC.
When set, it links the module as a shared object rather than statically
into nginx binary.  The module can later be loaded using the "load_module"
directive.

New auto/module parameter ngx_module_order allows to define module loading
order in complex cases.  By default the order is set based on ngx_module_type.

3rd party modules can be compiled dynamically using the --add-dynamic-module
configure option, which will preset ngx_module_link to "DYNAMIC" before
calling the module config script.

Win32 support is rudimentary, and only works when using MinGW gcc (which
is able to handle exports/imports automatically).

In collaboration with Ruslan Ermilov.
2016-02-04 20:25:29 +03:00
Valentin Bartenev
93874766db Configure: added gcc5 to the list of known GCC versions. 2015-06-10 19:18:20 +03:00
Maxim Dounin
e9a70114a2 Configure: added -Wno-deprecated-declarations on OS X.
Previous workaround to avoid warnings on OS X due to deprecated system
OpenSSL library (introduced in a3870ea96ccd) no longer works, as
the MAC_OS_X_VERSION_MIN_REQUIRED macro is ignored on OS X 10.9
if a compiler used supports __attribute__(availability).
2014-05-28 17:41:44 +04:00
Maxim Dounin
876a3c9b97 Win32: fixed link flags with MSVC, broken by bfe536716dbf.
Notably, "-debug" was omitted, resulting in an executable without debug
symbols.
2014-04-07 18:29:05 +04:00
Maxim Dounin
8f8bf842bc Win32: MSVC 2013 compatibility.
Warnings about GetVersionEx() deprecation silenced.  Precompiled object
linked in.
2014-02-13 16:54:00 +04:00
Ruslan Ermilov
d700bbefdb Configure: enabled -Werror for clang.
Modern clang versions seem to no longer produce warnings for
system headers on Linux (at least clang 3.3 works), hence the
change.  For older versions --with-cc-opt="-Wno-error" can be
used as a workaround.
2014-01-28 00:31:31 +04:00
Ruslan Ermilov
618e12f679 Configure: enable -Wconditional-uninitialized with clang. 2013-12-06 13:16:56 +04:00
Maxim Dounin
49d58ddd72 Configure: fixed building with Sun C if CFLAGS set (ticket #65). 2013-09-04 21:17:03 +04:00
Maxim Dounin
5b37852323 Win32: Open Watcom C compatibility fixes.
Precompiled headers are disabled as they lead to internal compiler errors
with long configure lines.  Couple of false positive warnings silenced.
Various win32 typedefs are adjusted to work with Open Watcom C 1.9 headers.

With this patch, it's now again possible to compile nginx using owc386,
with options we normally compile on win32 minus ipv6 and ssl.
2013-09-04 20:48:22 +04:00
Sergey Kandaurov
ce36edfdd9 Configure: fixed autotest cleanup commands.
Previously, if configured with --with-cc="clang -g", the autotest.dSYM
directories were left unremoved.
2013-07-31 18:16:40 +04:00
Ruslan Ermilov
e565dbc6e0 Configure: fixed detection of newer Apple clang compilers. 2013-04-29 18:07:22 +04:00
Sergey Budnevitch
f29eb0798b Removed redundant variable assignment. 2013-01-21 15:05:54 +00:00
Ruslan Ermilov
7f3a352e5a Removed extraneous GCC warning flags. 2012-07-29 19:45:30 +00:00
Ruslan Ermilov
a6c9e09476 Added the Clang compiler support.
The -Werror is commented out to not break builds on Linux.
2012-07-24 15:17:03 +00:00
Ruslan Ermilov
2d60cd7efa Added a commented out -Wmissing-prototypes to CFLAGS.
It is commented out to not break builds with 3rd party modules.
2012-07-24 15:13:34 +00:00
Ruslan Ermilov
7e72000482 Replaced a number of "else if" with "elif". 2012-07-24 15:00:42 +00:00
Maxim Dounin
075e852a4e Configure: moved icc detection before gcc.
New versions of icc confuse auto/cc/name due to introduced handling
of a "icc -v":

$ icc -v
icc version 12.1.3 (gcc version 4.6.0 compatibility)
$ icc -V
Intel(R) C Compiler XE for applications running on IA-32, Version 12.1.3.293 Build 20120212
Copyright (C) 1985-2012 Intel Corporation.  All rights reserved.
FOR NON-COMMERCIAL USE ONLY

See report here:
http://mailman.nginx.org/pipermail/nginx/2012-February/032177.html
2012-02-27 16:23:44 +00:00
Maxim Konovalov
f8d59e33f3 Copyright updated. 2012-01-18 15:07:43 +00:00
Maxim Konovalov
f08ba92492 Some questionable optomizations flags for icc were removed
in order to simplify support of its future versions.
2011-12-29 15:36:07 +00:00
Igor Sysoev
cfd5148e88 Fix of building by Microsoft Visual C++ 10 compiler. 2011-10-26 08:16:59 +00:00
Maxim Dounin
950b668076 Lower optimization level for Sun Studio before 12.1.
At least Sun Studio 12 has problems with bit-fields exposed by nginx code
(caught by test suite).  They seems to be fixed in Sun Studio 12.1.  As a
workaround use "-fast -xalias_level=any" for older versions, it resolves
the problem.
2011-08-18 15:10:23 +00:00
Igor Sysoev
802bc23574 try to use C99 variadic macros first:
AIX 5.3's XL C has problems with GCC style variadic macros
2010-07-05 13:02:25 +00:00
Igor Sysoev
84ab98f31d do not add NGX_GCC_OPT twice: it is added later with -W 2009-12-21 17:51:30 +00:00
Igor Sysoev
9f34ebe231 test invalid --with-ld-opt in right place 2009-11-27 22:02:04 +00:00
Igor Sysoev
37835d9056 atomic operations test-run 2009-11-27 22:00:39 +00:00
Igor Sysoev
89d635fa5d GCC 4.1 builtin atomic operations 2009-11-25 17:34:35 +00:00
Igor Sysoev
d921c10434 use tab in Makefile 2009-05-28 14:33:37 +00:00
Igor Sysoev
5147f8e9ca add miltilines in OpenWatcom makefiles 2009-05-12 13:29:00 +00:00
Igor Sysoev
98c4dd7c60 remove BMAKE (build make): a cc compiler should use own make 2009-05-10 18:35:08 +00:00
Igor Sysoev
4318688cce preserve Solaris binary hardware capabilities 2009-05-08 09:41:43 +00:00
Igor Sysoev
03c779451c update gcc warnings 2009-04-24 15:31:13 +00:00
Igor Sysoev
bd91999ea5 Win32 master/workers model 2009-04-20 06:08:47 +00:00
Igor Sysoev
694bdea2a9 add variadic macros support for msvc8 2009-04-19 16:25:02 +00:00
Igor Sysoev
60798fbea5 OpenSSL building by MSVC and BCC from sources 2009-04-15 19:46:24 +00:00
Igor Sysoev
32ab2f7e64 link staticaly with libcmt 2009-04-01 12:58:31 +00:00
Igor Sysoev
a7e01da163 msvc8 compatibility: it can not build with debug under Wine 2007-11-15 14:22:12 +00:00
Igor Sysoev
0ebcba57f0 add msvc8 2007-11-15 11:00:06 +00:00
Igor Sysoev
0ddf2de23e option -Yd has been deprecated in msvc8,
option -debugtype:coff is unsupported in msvc8
2007-11-15 10:59:07 +00:00
Igor Sysoev
a101048962 enable precompiled headers for msvc7,
probably they were disabled because of some Wine bug
2007-11-15 10:25:30 +00:00
Igor Sysoev
c92483b948 add debug info for Sun Studio 2007-08-07 10:56:45 +00:00
Igor Sysoev
07c1f2f9aa fix building on amd64 by Sun Studio 11 and more early versions 2007-07-28 08:48:12 +00:00
Igor Sysoev
aa5c021ad5 fix building on amd64 and add -xipo to the link stage 2007-07-21 06:23:58 +00:00
Igor Sysoev
d3cdbc85e8 Sun Studio 12 compatibility 2007-07-16 08:54:04 +00:00
Igor Sysoev
de27bce24e --with-cpu-opt=sparc32 and --with-cpu-opt=sparc64 2007-07-15 20:09:14 +00:00
Igor Sysoev
830004196b fix building PCRE by SunStudio 2007-07-15 19:17:46 +00:00
Igor Sysoev
ad490864de 8.1.38 under FreeBSD can not link -ipo 2007-04-19 17:49:24 +00:00
Igor Sysoev
db390ac36d remove trailing space in icc version 2007-04-19 17:48:49 +00:00
Igor Sysoev
21dd4be0c0 fix default -O 2007-01-11 16:20:18 +00:00