1. 19 Mar, 2017 1 commit
  2. 12 Mar, 2017 1 commit
    • Luca Boccassi's avatar
      Problem: ZMQ background threads are unnamed · 3ab4796c
      Luca Boccassi authored
      Solution: use pthread API to set the name. For now call every thread
      "ZMQ b/g thread". Would be nice to number the I/O threads and name
      explicitly the reaper thread, but in reality a bit of internal API
      churn would be necessary, so perhaps it's not worth it.
      This is useful when debugging a process with many threads.
      3ab4796c
  3. 18 Feb, 2017 1 commit
  4. 31 Dec, 2016 2 commits
  5. 26 Dec, 2016 1 commit
  6. 10 Nov, 2016 1 commit
    • Luca Boccassi's avatar
      Problem: linker fails looking for dladdr · 1b3fcbd3
      Luca Boccassi authored
      Solution: search and add it via AC_CHECK_LIB when building with
      libunwind, as the backtrace function uses dladdr. This problem
      only appears on some distributions and with some compiler/toolchain
      versions.
      1b3fcbd3
  7. 06 Nov, 2016 1 commit
  8. 05 Nov, 2016 1 commit
  9. 01 Nov, 2016 1 commit
  10. 27 Sep, 2016 2 commits
    • Luca Boccassi's avatar
      Problem: pkg-config Requires.private is broken · 06d810b4
      Luca Boccassi authored
      Solution: use only Libs.private to avoid breaking application builds.
      Even though Requires.private are supposed to be parsed only if
      pkg-config is called with --static, the --cflags parameter is enough
      to trigger the parsing, causing build failures for applications that
      do not (and should not) depend on libzmq's dependencies.
      06d810b4
    • Luca Boccassi's avatar
      Problem: pkgconfig file does not support static link · 6d941160
      Luca Boccassi authored
      Solution: add dependencies, if necessary, to the .private Libs and
      Requires field of the pkgconfig file at build time.
      This way pkg-config --static --libs libzmq will correctly print
      dependencies if they were used to build the static libzmq.a library.
      6d941160
  11. 31 Jul, 2016 1 commit
  12. 27 Jul, 2016 1 commit
  13. 13 Jun, 2016 1 commit
  14. 04 Jun, 2016 1 commit
  15. 10 May, 2016 1 commit
  16. 09 May, 2016 1 commit
  17. 06 May, 2016 2 commits
  18. 02 May, 2016 1 commit
  19. 12 Apr, 2016 2 commits
  20. 10 Apr, 2016 1 commit
  21. 30 Mar, 2016 1 commit
  22. 19 Mar, 2016 1 commit
    • Luca Boccassi's avatar
      Problem: no Makefile target for Valgrind · 2b2f9046
      Luca Boccassi authored
      Solution: import ax_valgrind_check.m4 macro file to provide a
      conveniente automake hook to run Valgrind on all tests.
      Add --enable-valgrind to ./configure call and then run make
      check-valgrind to run memcheck, helgrind, drd and sgcheck on all
      tests. Run check-valgrind-memcheck to run only memcheck.
      2b2f9046
  23. 13 Mar, 2016 1 commit
    • Luca Boccassi's avatar
      Problem: no code coverage integration · 6df753c5
      Luca Boccassi authored
      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.
      6df753c5
  24. 04 Mar, 2016 2 commits
  25. 02 Mar, 2016 2 commits
  26. 19 Feb, 2016 2 commits
  27. 17 Feb, 2016 2 commits
    • Pieter Hintjens's avatar
      Problem: piece of garbage ended up in configure.ac · 94c7087e
      Pieter Hintjens authored
      Solution: remove it
      94c7087e
    • Pieter Hintjens's avatar
      Problem: getting various warnings in tweetnacl · 7129187f
      Pieter Hintjens authored
      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.
      7129187f
  28. 11 Feb, 2016 5 commits
    • Luca Boccassi's avatar
      Problem: typo in configure.ac, can't use libsodium · f777ad8b
      Luca Boccassi authored
      Solution: set the curve_library variable to the expected value if
      libsodium is selected
      f777ad8b
    • Pieter Hintjens's avatar
      Problem: tweetnacl sources are a mess · f8ed793f
      Pieter Hintjens authored
      - they have no copyright / license statement
      - they are in some randomish directory structure
      - they are a mix of postable and non-portable files
      - they do not conform to conditional compile environment
      
      Overall, it makes it rather more work than needed, in build scripts.
      
      Solution: clean up tweetnacl sauce.
      
      - merged code into single tweetnacl.c and .h
      - standard copyright header, DJB to AUTHORS
      - moved into src/ along with all other source files
      - all system and conditional compilation hidden in these files
      - thus, they can be compiled and packaged in all cases
      - ZMQ_USE_TWEETNACL is set when we're using built-in tweetnacl
      - HAVE_LIBSODIUM is set when we're using external libsodium
      f8ed793f
    • Pieter Hintjens's avatar
      Problem: some configure options are confusing · e65367ea
      Pieter Hintjens authored
      It's especially annoying to see this:
      
        --enable-perf           Build performance measurement tools [default=yes].
        --disable-eventfd       disable eventfd [default=no]
        --enable-curve-keygen   Build curve key-generation tool [default=yes].
      
      Solution: all options should explain the non-default case. Also
      the language should be enable/disable, with/without, rather than
      yes/no. E.g. '--without-docs'.
      e65367ea
    • Pieter Hintjens's avatar
      Problem: autotools platform.hpp is not compatible with CMake · 9f8ced3f
      Pieter Hintjens authored
      Specifically, the poller detection code does not set macros in
      platform.hpp. The configure script passed them as -D on the command
      line.
      
      Solution: rewrite the poller detection code.
      9f8ced3f
    • Pieter Hintjens's avatar
      Problem: use of libsodium vs. tweetnacl is confused · b49a6041
      Pieter Hintjens authored
      It's unclear which we need and in the source code, conditional code
      treats tweetnacl as a subclass of libsodium, which is inaccurate.
      
      Solution: redesign the configure/cmake API for this:
      
      * tweetnacl is present by default and cannot be enabled
      * libsodium can be enabled using --with-libsodium, which replaces
        the built-in tweetnacl
      * CURVE encryption can be disabled entirely using --enable-curve=no
      
      The macros we define in platform.hpp are:
      
          ZMQ_HAVE_CURVE    1        //  When CURVE is enabled
          HAVE_LIBSODIUM    1        //  When we are using libsodium
          HAVE_TWEETNACL    1        //  When we're using tweetnacl (default)
      
      As of this patch, the default build of libzmq always has CURVE
      security, and always uses tweetnacl.
      b49a6041