0
0
mirror of https://github.com/zeromq/libzmq.git synced 2025-01-21 15:12:03 +08:00

5020 Commits

Author SHA1 Message Date
Luca Boccassi
6df753c55a Problem: no code coverage integration
Solution: import ax_code_coverage.m4 from autoconf-archive and use it
in configure.ac and Makefile.am in order to provide a make
check-code-coverage target behind a --enable-code-coverage configure
flag, that can be used to generate a gcov/lcov code coverage report.
Depends on having gcov and lcov installed.
2016-03-13 19:28:23 +00:00
Luca Boccassi
22cb66d832 Merge pull request #1849 from opedroso/WINPDB
Problem: Windows PDB not created for RELEASE targets
2016-03-11 22:40:11 +00:00
Osiris
a6392b9e74 Problem: Windows PDB not created for RELEASE targets
Solution: Modified projects to create PDB file for RELEASE targets
	- also spread precompiled settings to all DevStudio solution versions

This change affects Windows builds only
2016-03-11 14:48:30 -06:00
Pieter Hintjens
dbb6b019e6 Merge pull request #1848 from benjamg/benjamg-patch-1
parameter naming consistency [aesthetic]
2016-03-11 11:49:54 +01:00
Ben Gray
7cc50d0005 parameter naming consistency [aesthetic] 2016-03-11 09:15:58 +00:00
Pieter Hintjens
24d12dc30a Merge pull request #1827 from bluca/make_dist_missing_files
Problem: make dist does not tar up macros.hpp
2016-03-09 10:40:37 +01:00
Pieter Hintjens
6aa581980a Merge pull request #1845 from claudioscordino/master
Better comments for understanding the classes array_t<> and array_ite…
2016-03-08 11:27:37 +01:00
Claudio Scordino
cb1b6bc9ae Better comments for understanding the classes array_t<> and array_item_t<> 2016-03-08 11:24:58 +01:00
Luca Boccassi
6024dd5dfa Problem: ci_build does not fully test build system
Solution: run make dist-check, which will run additional tests,
including making sure that the library is installable and the
distributable tarball is buildable, along with the usual make and
make check.
2016-03-06 19:39:44 +00:00
Luca Boccassi
ff1ebf6ff0 Problem: ci_build.sh make check is overly complex
Solution: simply run make VERBOSE=1 check instead of manually
checking for return value and cat'ing the log file. With VERBOSE, on
error the log file will be automatically printed.
2016-03-06 18:34:25 +00:00
Luca Boccassi
4366d7edf9 Problem: doc/Makefile.am ignores --without-docs
Solution: add the document files to the MAN_DOC and MAN_HTML targets
in doc/Makefile.am only if BUILD_DOC and INSTALL_MAN are set,
otherwise leave the targets empty to avoid errors in make distcheck.
2016-03-06 18:34:25 +00:00
Luca Boccassi
2d9e7b57f9 Problem: make dist does not tar up macros.hpp
Solution: add it to Makefile.am file list
2016-03-06 17:56:24 +00:00
Luca Boccassi
8a0a18a527 Merge pull request #1844 from opedroso/CMAKELIST_PRECOMP
Problem: CMakelist missing support for Windows Precompiled headers
2016-03-06 12:45:48 +00:00
Osiris
cd1dfb4092 Problem: CMakelist missing support for Windows Precompiled headers
Solution: Add precompiled flags to CMakeList.txt for faster compiles
+ bonus - removed compilation warning on Windows by adding
	 add_definitions (-D_WINSOCK_DEPRECATED_NO_WARNINGS)
2016-03-06 06:23:26 -06:00
Pieter Hintjens
2cd4c38b80 Merge pull request #1843 from opedroso/WINDOWS_MAKE_TEST
Problem: Tests do no build in Windows environment
2016-03-05 22:12:26 +02:00
Osiris
1c9cec227d Problem: Tests do no build in Windows environment
Solution: Modified CMakelist.txt to build correctly for Windows
- corrected CMake required version to make sure it builds in
  Ubuntu 14.04 LTS with no warnings.
2016-03-05 14:01:21 -06:00
Osiris
a911fa41b8 Problem: Tests do no build in Windows environment
Solution: Modified CMakelist.txt to build correctly for Windows
2016-03-05 11:23:23 -06:00
Pieter Hintjens
0916c17b3a Merge pull request #1842 from opedroso/PRECOMPILED
Problem: Windows Build not using precompiled headers for all targets
2016-03-05 12:59:51 +02:00
Constantin Rack
72898a0ecc Merge pull request #1841 from opedroso/MAKE_CLEAN
Problem: Added "make clean" to Windows build scripts
2016-03-05 11:51:06 +01:00
Osiris
224c0670ee Problem: Windows Build not using precompiled headers for all targets
Solution: Enabled precompiled header settings in all targets
Before build time: ~6min 49 secs
Stop  Time: Fri 03/04/2016  8:29:50.13
Start Time: Fri 03/04/2016  8:23:00.28

After build time: ~4min 19 secs
Stop  Time: Fri 03/04/2016 12:12:10.24
Start Time: Fri 03/04/2016 12:07:51.78
2016-03-05 04:47:08 -06:00
Osiris
09d003aac0 Problem: Added "make clean" to Windows build scripts
Solution: Added ability to do equivalent of a "make clean" by executing:

O:\git\libzmq\builds\msvc\build>buildall.bat clean
Start Time: Fri 03/04/2016 14:33:56.50
Cleaning without libsodium
Cleaning ..\vs2013\libzmq.sln... ()
Platform=x86
Configuration=DynDebug
Configuration=DynRelease
Configuration=LtcgDebug
Configuration=LtcgRelease
Configuration=StaticDebug
Configuration=StaticRelease
Platform=x64
Configuration=DynDebug
Configuration=DynRelease
Configuration=LtcgDebug
Configuration=LtcgRelease
Configuration=StaticDebug
Configuration=StaticRelease
Cleaning complete: ..\vs2013\libzmq.sln

Stop  Time: Fri 03/04/2016 14:34:01.84
Start Time: Fri 03/04/2016 14:33:56.50

A clean takes ~5 secs to complete.
2016-03-05 04:37:01 -06:00
Constantin Rack
d315eea707 Merge pull request #1839 from opedroso/master
Problem: Visual Studio Toolset was incorrectly set in VCXPROJ files
2016-03-04 21:18:30 +01:00
Luca Boccassi
ee31ea1348 Merge pull request #1838 from obache/neatsrc/fix-c-comment-style
Problem: Fix C++ style comment usage in C source
2016-03-04 09:41:29 +00:00
Luca Boccassi
693d6384b6 Merge pull request #1837 from obache/neatsrc/fix-test-portability
Problem: Fix unportable `==` operator for `test`
2016-03-04 09:41:15 +00:00
Luca Boccassi
3c4377b11d Merge pull request #1836 from obache/neatsrc/heimdal
Problem: Fix build with Heimdal krb5
2016-03-04 09:40:44 +00:00
OBATA Akio
8c7c8ece2d Problem: Fix C++ style comment usage in C source 2016-03-04 17:26:02 +09:00
OBATA Akio
55dad06cce Problem: Fix unportable == operator for test 2016-03-04 17:17:04 +09:00
OBATA Akio
09e868b743 Problem: Fix build with Heimdal krb5
Solution:
* Check gssapi/gssapi_generic.h header file, it is not in Heimdal.
* Check libgssapi too, libgssapi_krb5 is not separated in Heimdal.
2016-03-04 16:38:57 +09:00
Pieter Hintjens
36abdf7bd5 Merge pull request #1834 from garlick/config_nacl
minor automake fixes plus tweetnacl logic change
2016-03-02 23:16:25 +01:00
Jim Garlick
54389fefb5 Problem: AS_HELP_STRING improperly quoted
Brackets around defaults in configure --help strings for
--with-libsodium and --disable-curve were not displayed.

Solution:  Add m4 quotes.
2016-03-02 12:11:08 -08:00
Jim Garlick
9d75a9c27d Problem: AM_CONDITIONAL is used incorrectly
Move AM_CONDITIONAL for --disable-curve outside of shell
conditional (per sec 20.1 of automake manual) and fix its
second argument to be a test rather than a literal zero.
2016-03-02 11:28:42 -08:00
Luca Boccassi
ec6209737e Merge pull request #1832 from hintjens/master
Problem: can't be sure crypto_box always returns 0
2016-03-01 15:53:26 +00:00
Pieter Hintjens
5b7bf7509f Problem: can't be sure crypto_box always returns 0
Libsodium has started returning -1 in some cases.

Solution: allow and handle error returns from these calls.

Fixes #1831
2016-03-01 15:01:23 +01:00
Joe Eli McIlvain
708c2060ee Merge pull request #1830 from stevenc99/master
include sys/ucred.h for struct ucred
2016-02-28 13:50:58 -08:00
Steven Chamberlain
dd8ccd5e0f include sys/ucred.h for struct ucred
Platforms that have struct ucred, typically declare it in sys/ucred.h
2016-02-28 20:42:54 +00:00
Pieter Hintjens
d7691756e2 Merge pull request #1829 from dflupu/master
update Makefile.mingw32
2016-02-28 08:25:59 +01:00
Daniel Lupu
3190de8045 update Makefile.mingw32 2016-02-28 06:26:35 +02:00
Pieter Hintjens
8b32073c7b Merge pull request #1826 from bluca/make_dist
Problem: make dist is borken
2016-02-22 13:36:21 +01:00
Luca Boccassi
b3b9cfd92e Problem: packaging/redhat/zeromq.spec not ignored
Solution: add it to .gitignore
2016-02-22 11:59:51 +00:00
Luca Boccassi
f3686e34ff Problem: make dist broken due to builds/msvc
Solution: change builds/msvc/Makefile.am to reference vcxproj files
instead of props files.
2016-02-22 11:58:36 +00:00
Luca Boccassi
391397571b Problem: make dist broken due to builds/android
Solution: change builds/Makefile.am to reference builds/android
instead of builds/qt-android.
2016-02-22 11:58:00 +00:00
Luca Boccassi
8d811474d4 Problem: make dist broken due to builds/cmake
Solution: remove references to builds/cmake/Makefile* since they no
longer exist.
2016-02-22 11:57:09 +00:00
Constantin Rack
232094a09d Merge pull request #1825 from bluca/whitespace_and_werror 2016-02-22 07:27:36 +01:00
Luca Boccassi
80e529a16a Problem: all tests fail with assert in in_event
Solution: socket_base_t::in_event cannot do anything useful with
return status of process_commands. Asserting is the wrong solution,
as it is entirely valid to be interrupted or for the context to be
terminated, so discard the value.
2016-02-22 00:05:52 +00:00
Luca Boccassi
ae8efc21e8 Problem: nullptr is a reserved keyword in C++0x
Solution: use NULL instead to avoid build failure with older
compilers.
2016-02-21 23:54:18 +00:00
Luca Boccassi
7187169619 Problem: socket_poller_t initialization reorder
Solution: initialize class variable in the same order as they are
defined.
2016-02-21 23:50:34 +00:00
Luca Boccassi
c84a52b11e Problem: udp_engine_t fd cannot be init to NULL
Solution: initialize to -1, since fd is a file descriptor (int).
2016-02-21 23:47:44 +00:00
Luca Boccassi
1046f35930 Problem: udp_engine_t initialization reorder
Solution: initialize class variable in the same order as they are
defined.
2016-02-21 23:46:51 +00:00
Luca Boccassi
24b84081be Problem: socks_connecter_t initialization reorder
Solution: initialize class variable in the same order as they are
defined.
2016-02-21 23:45:02 +00:00
Luca Boccassi
a6e49860f5 Problem: tcp_connecter_t initialization reorder
Solution: initialize class variable in the same order as they are
defined.
2016-02-21 23:43:09 +00:00
Luca Boccassi
645c2be487 Problem: stream_engine_t initialization reorder
Solution: initialize class variable in the same order as they are
defined.
2016-02-21 23:42:12 +00:00
Luca Boccassi
c21dd8d6a2 Problem: socket_base_t initialization reorder
Solution: initialize class variable in the same order as they are
defined.
2016-02-21 23:41:02 +00:00
Luca Boccassi
acbf021a7c Problem: reaper_t initialization reorder
Solution: initialize class variable in the same order as they are
defined.
2016-02-21 23:39:09 +00:00
Luca Boccassi
779bed6315 Problem: encoder_base_t initialization reorder
Solution: initialize class variable in the same order as they are
defined.
2016-02-21 23:37:10 +00:00
Luca Boccassi
de46fc6ac9 Problem: can't do anything with load.sub ret val
Solution: don't store it in zmq::poller_base_t::adjust_load, as the
build with Werror=unused=variable will fail otherwise.
2016-02-21 23:28:54 +00:00
Luca Boccassi
14054d28ed Problem: can't statically initialized pthread_t
Solution: remove statc initialization to NULL of thread.hpp pthread_t
descriptor. There is no portable way to statically initialize a
pthread_t variable.
2016-02-21 23:26:01 +00:00
Luca Boccassi
cf309a4e8c Problem: maxfd definition depends on ifdef
Solution: initialise it inside an ifdef too
2016-02-21 23:17:28 +00:00
Luca Boccassi
d4c0716473 Problem: indentation should be 4 spaces, no tabs
Solution: fix it
2016-02-21 23:16:44 +00:00
Constantin Rack
406b5738b6 Merge pull request #1823 from opedroso/COVERITY
Problem: Several problems found by Coverity Static Analyzer
2016-02-21 22:56:46 +01:00
Osiris
b3d5fa63a0 Problem: Several problems found by Coverity Static Analyzer
Solution: The Coverity Static Code Analyzer was used on libzmq code and found
many issues with uninitialized member variables, some redefinition of variables
hidding previous instances of same variable name and a couple of functions
where return values were not checked, even though all other occurrences were
checked (e.g. init_size() return).
2016-02-21 15:49:47 -06:00
Osiris
4fca95a557 Problem: Visual Studio Toolset was incorrectly set in VCXPROJ files
Solution: Corrected Toolset setting where needed and inprove compilation speed
by adding defintion of WIN32_LEAN_AND_MEAN prior to any Windows specific
include files, which skips non-essential definitions during compilation.
2016-02-21 14:46:53 -06:00
Luca Boccassi
1ffd87453b Merge pull request #1822 from opedroso/VS_TOOLSET
Problem: Visual Studio Toolset was incorrectly set in VCXPROJ files
2016-02-21 20:42:18 +00:00
Osiris
b4784d95bb roblem: Visual Studio Toolset was incorrectly set in VCXPROJ files
Solution: Corrected Toolset setting where needed and inprove compilation speed
by adding defintion of WIN32_LEAN_AND_MEAN prior to any Windows specific
include files, which skips non-essential definitions during compilation.
2016-02-21 14:23:18 -06:00
Pieter Hintjens
c5d8353429 Merge pull request #1819 from bluca/C++11
Bump C/C++ standard version support to C11/C++11
2016-02-21 11:17:26 +01:00
Constantin Rack
15945dc59b Merge pull request #1820 from obache/neatsrc/fix-netbsd-build 2016-02-20 10:04:24 +01:00
OBATA Akio
8eaa43d9d3 Problem: pgm/in.h is required on NetBSD too for struct group_req 2016-02-20 17:38:43 +09:00
Luca Boccassi
0782b58d9c Problem: tweetnacl warnings override not needed
Solution: remove it
2016-02-19 21:52:01 +00:00
Luca Boccassi
7dfbab3f97 Problem: it's 2016 and we are building with C++98
Solution: bump to C++11 and C11 in autoconf
2016-02-19 21:49:38 +00:00
Luca Boccassi
80650ecfe2 Problem: need to check for C++ standard in cmake
Solution: use CheckCXXCompilerFlag to check for support for
-std=gnu++11
2016-02-19 21:49:38 +00:00
Luca Boccassi
b9f1e3ed61 Problem: writing autoconf macros is boring
Solution: import macros to check for compiler options from
autoconf-archive into the m4 subdir.
2016-02-19 21:41:24 +00:00
Luca Boccassi
266500a9ff Merge pull request #1818 from opedroso/PRECOMPILED
Precompiled
2016-02-19 13:45:03 +00:00
Luca Boccassi
afdf27765e Merge pull request #1817 from hintjens/master
Problem: tweetnacl gives many warnings on MSVC
2016-02-19 10:48:54 +00:00
Pieter Hintjens
8ae3671e88 Problem: tweetnacl gives many warnings on MSVC
Solution: disable the warnings on this file only

We use pragmas wrapped in compiler conditionals. This will need
extending to non-gcc/msvc compilers. We could also fix the warnings
in the code, though I suspect it's not really possible.
2016-02-19 10:52:31 +01:00
Osiris
79538ed651 Problem: Windows build not using precompiled header
Solution: Phase II - made compile using precompiled header
2016-02-18 11:35:35 -06:00
Osiris
4a5af9d58b Problem: Precompiled headers not being used
Solution: Phase I - make precompiled.hpp be first file included in every source file
2016-02-18 10:56:52 -06:00
Luca Boccassi
325eb693a9 Merge pull request #1815 from hintjens/master
Problem: VC++ gives warnings on inet_addr
2016-02-18 10:51:23 +00:00
Pieter Hintjens
27fe489843 Problem: VC++ gives warnings on inet_addr
Solution: in project.gyp, define _WINSOCK_DEPRECATED_NO_WARNINGS
2016-02-18 11:46:43 +01:00
Pieter Hintjens
1c43aaa39a Merge pull request #1814 from minrk/deprecate-zmq_utils.h
Deprecate zmq_utils.h
2016-02-18 10:38:31 +01:00
Min RK
d5b66295d4 Deprecate zmq_utils.h
instead of removing it, which breaks downstream builds.
2016-02-18 10:28:07 +01:00
Luca Boccassi
b20259809d Merge pull request #1811 from somdoron/master
problem: dynamic cast is causing issue when compiling for nodejs
2016-02-17 17:41:26 +00:00
somdoron
352ae1468f remove using of dynamic cast 2016-02-17 19:33:17 +02:00
Luca Boccassi
b168e1044b Merge pull request #1810 from opedroso/IMPROVE_WINDOWS_BUILD
Problem:  Windows build script requires edit for DevStudio version
2016-02-17 15:49:15 +00:00
Osiris
80024eca8c Problem: Windows build script requires edit for DevStudio version
Solution: Use CMD.EXE environment variable to extract DevStudio version
number and build using it. This even supports machines with multiple
DevStudio versions installed, as long as the build for each version is
done on a separate window with the correct environment.
If multiple version builds are desired from a single CMD.EXE, edit the
buildall.bat file to uncomment the build statements for each specific
version desired.
2016-02-17 09:42:53 -06:00
Constantin Rack
7200f473ad Merge pull request #1809 from hintjens/master
Number of fixes for gyp builds
2016-02-17 12:41:59 +01:00
Pieter Hintjens
94c7087e36 Problem: piece of garbage ended up in configure.ac
Solution: remove it
2016-02-17 12:40:44 +01:00
Pieter Hintjens
7129187f87 Problem: getting various warnings in tweetnacl
libzmq used to switch off pedantic checks when using tweetnacl. As
this is now the default, that means pedantic checks are always off.
This is not good.

Solution: in tweetnacl.c alone, use a GCC pragma to disable sign
comparison warnings. We could also clean the code up yet this is
simpler. In other code, we still want those warnings, hence I've
used a pragma rather than global compile option.

Second, use -Wno-long-long all the time, as this warning does not
work with a pragma.

I removed code that set -wno-long-long, for MinGW and Solaris.

Related problem 2: --with-relaxed is badly named

This option switches off pedantic checks, so should be called
--disable-pedantic. 'with' is for optional packages.
2016-02-17 12:06:45 +01:00
Pieter Hintjens
3443da216f Problem: node-gyp defaults to -fno-rtti, which breaks libzmq
Solution: override in project.gyp, for Linux and OS/X.
2016-02-17 12:06:45 +01:00
Pieter Hintjens
c78e4f33a3 Problem: if src/platform.hpp still exists, gyp uses this
Gyp needs its own platform.hpp; there is no way to delete this
file automatically.

Solution: copy gyp's platform.hpp into src, so that things build
properly no matter what the starting state. If you build with gyp
and then try to build using autotools' makefile, you'll get an
error from the platform.hpp.
2016-02-17 12:06:45 +01:00
Pieter Hintjens
9bebd4dce9 Problem: local build should do its own .gitignore
Solution: add .gitignore in builds/gyp
2016-02-17 12:06:45 +01:00
Pieter Hintjens
8559770cf3 Problem: in builds/gyp, socket limit is 4K on Windows
Solution: raise to 16K
2016-02-17 12:06:45 +01:00
Pieter Hintjens
4a481c857f Problem: socket limit is still 4K on Windows
Solution: fix in CMakeLists.txt (already fixed in builds/msvc)
2016-02-17 12:06:45 +01:00
Pieter Hintjens
df6876abde Merge pull request #1805 from bluca/uninitialised_sockopt
Problem: curve keys getsockopt uninitialised read
2016-02-16 14:05:07 +01:00
Luca Boccassi
f86795350d Problem: curve keys getsockopt uninitialised read
Solution: always initialised zmq::options_t class variables arrays to
avoid reading uninitialised data when CURVE is not yet configured and
a getsockopt ZMQ_CURVE_{SERVER | PUBLIC | SECRET]KEY is issued.
2016-02-16 12:00:55 +00:00
Pieter Hintjens
93f99d09f4 Merge pull request #1804 from bluca/test_fixes
Various test fixes
2016-02-13 19:37:08 +01:00
Luca Boccassi
facb512105 Problem: SETTLE_TIME is too short on slow systems
Solution: increase SETTLE_TIME from 50ms to 300ms to avoid failing on
slower environments like through Valgrind on slow VMs.
2016-02-13 18:17:36 +00:00
Luca Boccassi
217f6c438e Problem: tests README does not document msleep
Solution: suggest to use the common approach of msleep (SETTLE_TIME)
after a connect if necessary, rather than reimplementing a different
way.
2016-02-13 18:04:25 +00:00
Luca Boccassi
706c3b7c4b Problem: test_shutdown_stress_tipc broken on OSX/Cmake
Solution: include pthread.h in testutil.hpp, removed from
test_shutdown_stress_tipc in an earlier commit
2016-02-13 18:01:03 +00:00
Luca Boccassi
63a0924484 Problem: test_sockopt_hwm not renamed in gitignore
Solution: rename from test_socketopt_hwm to test_sockopt_hwm in
.gitignore too
2016-02-13 18:01:03 +00:00
Luca Boccassi
cb41201880 Problem: various tests fail in slow environments
Solution: add msleep (SETTLE_TIME) to test_immediate, test_spec_rep
and test_spec_router after the sockets are created and connected to
avoid failing when running in slower environment like through
Valgrind in underpowered VMs.
2016-02-13 18:01:03 +00:00
Luca Boccassi
4a84f8a02e Problem: tests use various sleep patterns to wait
Solution: use msleep (SETTLE_TIME) everywhere when waiting for the
connections/sockets to be settled instead of a variety of patterns
and functions to make tests more coherent.
2016-02-13 18:01:03 +00:00