configure.ac

Branch


Log

Author Commit Date CI Message
Cœur b456e4bd 2024-10-26T20:46:41 Use arc4random_stir over deprecated arc4random_addrandom (#1631) Co-authored-by: Azat Khuzhin <azat@libevent.org>
Cœur e5181b15 2024-06-24T03:37:49 Cleanup EVENT_HAVE_ macros (#1645)
Cœur a0fc31bf 2024-06-01T18:52:39 Sort symbols to check in cmake/autotools lexicographically
Cœur eec47a67 2024-04-30T15:59:58 Fix typos (#1634)
Hennadii Stepanov 71d41cdf 2024-04-22T06:39:35 build: Add `Iphlpapi` to `Libs.private` in `*.pc` files on Windows It has been required since https://github.com/libevent/libevent/pull/923 at least for the `if_nametoindex` call.
Ramon Ortega de Voor ed35b30f 2023-10-23T16:52:19 Fix two compiler errors for unused variable and undefined function In buffer.c a variable "flags" and a label "done" are defined but never used if "EVENT__HAVEMMAP" is not defined. The code does not work on platforms which do not provide the function `socketpair()`. Introduce EVENT__HAVE_SOCKETPAIR flag which determines if `socketpair()` or `evutil_ersatz_socketpair()` is used.
Dave Hart 242f7676 2023-06-17T00:16:41 Enable containing package CFLAGS etc. Add AC_SUBST of LIBEVENT_FLAGS, LIBEVENT_CPPFLAGS, and LIBEVENT_LDFLAGS so they are relayed from the configure command line to the Makefile
Michael Davidsaver 9ce6ae78 2023-06-05T18:38:22 Add option to auto-detect OpenSSL and MbedTLS
Azat Khuzhin 2112c396 2023-05-22T08:21:01 autotools: fix generating pkg-config files (by substituting CMAKE_DEBUG_POSTFIX) Fixes: #1459
Azat Khuzhin 1c06b68f 2023-05-21T10:09:50 Add a note about the last number in NUMERIC_VERSION
Azat Khuzhin 8d1388a3 2023-05-21T08:40:48 Bump version to 2.2.1
Azat Khuzhin f747a7b9 2023-04-04T22:19:07 Prohibit VLA in autotools too
fanquake e89ddd40 2023-02-13T16:06:29 build: use FORTIFY_SOURCE=3 in autotools build
Dmitry Antipov 0b79a002 2023-01-02T17:06:48 buffer: use pread() for evbuffer_file_segment_materialize() If pread(2) is available, prefer it over double lseek(2) and read(2) in evbuffer_file_segment_materialize(). Signed-off-by: Dmitry Antipov <dantipov@cloudlinux.com>
Dmitry Antipov 1af745d0 2022-10-25T11:30:34 signal: new signal handling backend based on signalfd Linux-specific signal handling backend based on signalfd(2) system call, and public function event_base_get_signal_method() to obtain an underlying kernel signal handling mechanism. Signed-off-by: Dmitry Antipov <dantipov@cloudlinux.com>
Azat Khuzhin 9e346936 2022-11-12T18:56:25 Ignore unknown pragmas Since new compilers has new checks (like -Wdangling-pointer), and so to avoid extra checks in cmake/autotools, simply suppress if the pragma is unknown.
Dmitry Antipov 117ee9a0 2022-09-15T14:06:50 epoll: use epoll_pwait2() if available On GNU/Linux with epoll backend, prefer epoll_pwait2() if available, which is useful to support the timeout with microsecond precision.
Dmitry Ilyin e8313084 2022-09-12T22:16:56 Add minimal WebSocket server implementation for evhttp (#1322) This adds few functions to use evhttp-based webserver to handle incoming WebSockets connections. We've tried to use both libevent and libwebsockets in our application, but found that we need to have different ports at the same time to handle standard HTTP and WebSockets traffic. This change can help to stick only with libevent library. Implementation was inspired by modified Libevent source code in ipush project [1]. [1]: https://github.com/sqfasd/ipush/tree/master/deps/libevent-2.0.21-stable Also, WebSocket-based chat server was added as a sample.
Dmitry Ilyin 99fd68ab 2022-08-07T13:51:48 Add check of mmap64 function and use it when available rather that mmap There can be issues on 32-bit architectures to mmap 2+GiB file, and to make this portable between different version of glibc, mmap64 was prefered over _FILE_OFFSET_BITS
Azat Khuzhin d881d062 2022-07-09T20:28:18 configure: fix AC_CHECK_FUNCS should use literals Error configure.ac:291: warning: AC_CHECK_FUNCS(getnameinfo ): you should use literals ../autoconf-2.71/lib/autoconf/functions.m4:117: AC_CHECK_FUNCS is expanded from... ../autoconf-2.71/lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... ../autoconf-2.71/lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... configure.ac:291: the top level configure.ac:291: warning: AC_CHECK_FUNCS(getprotobynumber ): you should use literals ../autoconf-2.71/lib/autoconf/functions.m4:117: AC_CHECK_FUNCS is expanded from... ../autoconf-2.71/lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... ../autoconf-2.71/lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... configure.ac:291: the top level configure.ac:291: warning: AC_CHECK_FUNCS(getservbyname ): you should use literals ../autoconf-2.71/lib/autoconf/functions.m4:117: AC_CHECK_FUNCS is expanded from... ../autoconf-2.71/lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... ../autoconf-2.71/lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... configure.ac:291: the top level configure.ac:291: warning: AC_CHECK_FUNCS(inet_ntop ): you should use literals ../autoconf-2.71/lib/autoconf/functions.m4:117: AC_CHECK_FUNCS is expanded from... ../autoconf-2.71/lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... ../autoconf-2.71/lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... configure.ac:291: the top level configure.ac:291: warning: AC_CHECK_FUNCS(inet_pton ): you should use literals ../autoconf-2.71/lib/autoconf/functions.m4:117: AC_CHECK_FUNCS is expanded from... ../autoconf-2.71/lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... ../autoconf-2.71/lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... configure.ac:291: the top level
Azat Khuzhin 39604493 2022-07-09T17:08:21 Detech -Wno-unused-functions for GCC too Otherwise build fails [1]: /home/runner/work/libevent/libevent/dist/libevent-2.2.0-alpha-dev/minheap-internal.h:64:6: error: ‘min_heap_ctor_’ defined but not used [-Werror=unused-function] void min_heap_ctor_(min_heap_t* s) { s->p = 0; s->n = 0; s->a = 0; } ^~~~~~~~~~~~~~ In file included from /home/runner/work/libevent/libevent/dist/libevent-2.2.0-alpha-dev/buffer.c:91:0: /home/runner/work/libevent/libevent/dist/libevent-2.2.0-alpha-dev/bufferevent-internal.h:414:1: error: ‘bufferevent_trigger_nolock_’ defined but not used [-Werror=unused-function] bufferevent_trigger_nolock_(struct bufferevent *bufev, short iotype, int options) ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /home/runner/work/libevent/libevent/dist/libevent-2.2.0-alpha-dev/buffer.c:89:0: /home/runner/work/libevent/libevent/dist/libevent-2.2.0-alpha-dev/evthread-internal.h:140:1: error: ‘EVLOCK_TRY_LOCK_’ defined but not used [-Werror=unused-function] EVLOCK_TRY_LOCK_(void *lock) [1]: https://github.com/libevent/libevent/runs/7263518180?check_suite_focus=true
Azat Khuzhin 03945889 2022-07-09T14:43:39 Fix -Werror for autotools
fanquake bf3ce77f 2022-06-23T13:38:14 build: only try silence options if they exist Otherwise GCC will warn. i.e: ```bash CCLD libevent_openssl.la cc1: note: unrecognized command-line option ‘-Wno-void-pointer-to-enum-cast’ may have been intended to silence earlier diagnostics CCLD libevent_mbedtls.la ```
cui fliter 1c204d55 2022-06-13T04:58:50 Fix some typos (#1284) Signed-off-by: cuishuang <imcusg@gmail.com>
fanquake 9aa4eb09 2021-11-24T08:44:03 build: use modern ax_pthread macro acx_pthread became ax_pthread in 2009 and the macro has seen lots of updates since then. This change switches to using the latest version.
fanquake 082941ed 2021-11-24T14:41:33 build: remove inconsistently used x-prefix comparisons Given that these are already used inconsistently with `test` checks, it makes sense to consolidate to not use the x-prefix comparisons at all. In any case, it would be nice to think we no longer have to work around a problem that existed in shells many, many years ago. More info: https://github.com/koalaman/shellcheck/wiki/SC2268 https://www.vidarholen.net/contents/blog/?p=1035
Azat Khuzhin 7179cedd 2021-09-19T13:36:15 Add -Wno-void-pointer-to-enum-cast (we use this hack in tests) Refs: https://reviews.llvm.org/D75758
fanquake 7ab3a06a 2021-06-16T15:29:30 build: test ac_cv_header_sys_time_h once, reformat timer* macro checks
fanquake 041d6f09 2021-06-15T16:00:48 build: remove call to AC_C_CONST() > This macro is obsolescent, as current C compilers support const. > New programs need not use this macro. See: https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.67/autoconf.html#index-AC_005fC_005fCONST-877.
fanquake 7708f6ce 2021-06-15T15:22:20 build: stop using the deprecated form of AC_OUTPUT() > The use of AC_OUTPUT with arguments is deprecated. See: https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.67/autoconf.html#AC_005fOUTPUT.
fanquake 5f11857f 2021-06-15T14:34:46 build: quote args in AC_ARG_ENABLE & AS_HELP_STRING Previously, some were, some weren't. Consolidate on quoting.
fanquake 67f808ec 2021-06-15T14:10:29 build: remove call to AC_HEADER_TIME Besides the fact that the *_TIME_WITH_SYS_TIME define doesn't seem to be used anywhere in the libevent source, this macro is also obselescent. > This macro is obsolescent, as current systems can include both files when they exist. > New programs need not use this macro. See: https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.67/autoconf.html#index-AC_005fHEADER_005fTIME-640.
fanquake eb59d84d 2021-06-15T13:41:05 build: call AC_PREREQ() first & quote argument > This macro may be used before AC_INIT. Calling this first means establishing that the required version of autoconf is actually available, before bothering with AC_INIT(). See: https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.67/autoconf.html#Versioning.
fanquake dfae9557 2021-06-15T13:35:58 build: remove call to AC_PREFIX_DEFAULT > By default, configure sets the prefix for files it installs to /usr/local. A call to AC_PREFIX_DEFAULT, just to set the value the same as the default, would seem unnecessary. Note that the "initialize prefix" comment dates back to aa6567fe6475d3230c7c745a7ca208735af0c331, prior to when an autoconf macro was actually being used. See: https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.67/autoconf.html#Default-Prefix.
fanquake 710ccb7e 2021-06-15T13:31:44 build: remove call to AC_PROG_GCC_TRADITIONAL libevent requires Autoconf 2.67+, and from atleast this version onwards, if not earlier, this macro is obsolescent. > This macro is obsolescent, since current versions of the GNU > C compiler fix the header files automatically when installed. See: https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.67/autoconf.html#AC_005fPROG_005fGCC_005fTRADITIONAL.
Azat Khuzhin 72138063 2021-04-27T21:15:03 Do not wrap lines in AC_CHECK_HEADERS/AC_CHECK_FUNCS (fixes detection in mingw) Fixes: d433f847 ("Revert "build: use literals for AC_CHECK_HEADERS/AC_CHECK_FUNCS"") Fixes: 28f0fe6f ("build: use literals for AC_CHECK_HEADERS/AC_CHECK_FUNCS") Fixes: ce028cef ("build: fix autotools build under mingw")
Azat Khuzhin d433f847 2021-04-02T09:19:55 Revert "build: use literals for AC_CHECK_HEADERS/AC_CHECK_FUNCS" That commit was wrong, it breaks syntax for autoconf <2.71, since AC_CHECK_*S() requires sh-like list. This reverts commit 28f0fe6fd1e2b1e9fb24a5c7a5b078790890e44f. Fixes: #1149
Azat Khuzhin 28f0fe6f 2021-03-28T17:16:54 build: use literals for AC_CHECK_HEADERS/AC_CHECK_FUNCS autoconf 2.72 reports: configure.ac:188: warning: AC_CHECK_HEADERS(\ ): you should use literals ../autoconf-2.71/lib/autoconf/headers.m4:217: AC_CHECK_HEADERS is expanded from... configure.ac:188: the top level configure.ac:188: warning: AC_CHECK_HEADERS(afunix.h ): you should use literals And also it fails to find fcntl.h and other headers because of this: configure:14725: checking for fcntl.h configure:14725: gcc -c -I/mingw64/include conftest.c >&5 conftest.c:77:10: fatal error: fcntl.h: No such file or directory 77 | #include < fcntl.h> Refs: https://github.com/libevent/libevent/pull/1146/checks?check_run_id=2211752215
Azat Khuzhin ce028cef 2021-03-28T09:01:58 build: fix autotools build under mingw autotools that is shipped with mingw (autoconf 2.71-1, automake 1.6-1.16, automake wrapper 11-1), does not allow trailing backslashes for AC_CHECK_HEADERS() and AC_CHECK_FUNCS(), otherwise it generates incorrect for loop, and reports: ../configure: line 14724: syntax error near unexpected token `as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`' ../configure: line 14724: ` as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`' Error: Process completed with exit code 1. Here is a simple analog: for VAR in <CR> foo \ <CR> bar \ do : echo $VAR done Trailing slash is not allowed. Refs: - https://github.com/libevent/libevent/runs/2171607687 - https://github.com/libevent/libevent/runs/2211365885?check_suite_focus=true
fanquake 78e8541a 2021-03-28T10:35:22 build: remove no-longer used checks for vasprintf From what I can tell the last usage was removed in 8d1317d71c46e27c5073d3429a64af69de0351a6.
fanquake 4c29b01c 2021-03-28T10:57:11 build: remove splice implementation fragments Looks like a `splice` implementation was planned, but has clearly never eventuated (the TODO comment is from ~12 years ago, in 8b5bd77415fb6634fadf08357676926fecf5f032). For now, it's probably better to remove the unused code/correct the docs.
fanquake 8e6090d0 2021-03-23T09:52:14 build: use AC_CHECK_LIB over AC_HAVE_LIBRARY AC_HAVE_LIBRARY is deprecated, see https://www.gnu.org/software/autoconf/manual/autoconf-2.70/html_node/Obsolete-Macros.html, and has been prior to Autoconf 2.67, which is the minimum required by the project. It's usage also causes warnings with newer versions of autoconf: ```bash configure.ac:319: warning: The macro `AC_HAVE_LIBRARY' is obsolete. configure.ac:319: You should run autoupdate. ``` `AC_HAVE_LIBRARY` was introduced in #969, although it's not clear why it was decided to revert to using an obselete macro.
Azat Khuzhin 972289f3 2020-08-29T01:15:20 Detect existence of pthread_mutexattr_setprotocol() Fixes: #1084
okhowang(王沛文) 028385f6 2020-05-28T17:14:46 fix build system and add test and cleanup code
fanquake 97a899d9 2020-07-07T13:58:47 build: remove -Wstrict-aliasing as strict-aliasing is disabled Note that -Wstrict-aliasing is also include in -Wall.
fanquake 28e31050 2020-07-03T16:02:09 build: move automake options into AM_INIT_AUTOMAKE call
fanquake 0a537b25 2020-07-03T15:47:10 build: remove commented code from configure.ac
fanquake 0ea7f707 2020-06-26T14:33:43 build: use feature detection when adding compile flags Rather than trying to detect (potentially very old) GCC versions, just test whether the flag works with the compiler, and add it to CLFAGS if so. -Werror is used to convert unknown flag warnings into errors, and prevent their addition to CLFAGS.
Pierce Lopez b6497fa1 2020-07-04T15:55:22 build: do not disable deprecation warnings on macOS this was for using openssl-0.9.8 included in macOS 10.7 - 10.12, but it is long since time you really should not use that openssl
fanquake e05ee6d3 2020-06-28T18:40:26 build: consolidate darwin compile flag additions in configure This is mostly move-only, apart from some changes to comments.
fanquake 8ac10b6b 2020-06-28T18:30:54 build: consistently use dnl for comments in configure.ac
fanquake ff4ec5fd 2020-06-26T14:35:41 build: remove duplicate -Wredundant-decls
Nick Grifka 83ef3216 2020-04-22T19:44:45 Add wepoll support to light up the epoll backend on Windows libevent is lacking a scalable backend on Windows. Let's leverage the wepoll library until Windows comes up with an epoll/kqueue compete user mode API. - All regress tests pass for standard wepoll - These 2 tests fail intermittently for changelist wepoll, so disabling changelist wepoll for now http/cancel_inactive_server http/stream_in - verify target on Windows runs tests for both wepoll and win32 backends - wepoll backend preferred over win32 backend - wepoll version 1.5.6 v2: cleaner backend abstraction. Disallow wepoll on MinGW/Cygwin. v3: Add wepoll.h to dist v4: Make sure wepoll source files are excluded from cygwin/mingw builds v5: Keep win32 as default backend on windows. v6: Include wepoll in mingw builds. Verified that regress tests pass w/ WEPOLL backend. v7: Enable wepoll on mingw when building with cmake v8: Add wepoll testrunner for autotools test target
yuangongji 6d54be2c 2020-03-14T11:13:38 autoconf: fix getaddrinfo checking errors on mingw `AC_CHECK_FUNCS` can not properly check `getaddrinfo` because this function requires some special headers on mingw. Using `AC_CHECK_DECL` can effectively solve this issue. Same for - getnameinfo - getprotobynumber - getservbyname - inet_ntop - inet_pton
Azat Khuzhin b1e46c32 2020-01-13T00:33:39 test: put thread into real time scheduling class on osx for better latencies
Azat Khuzhin b9b9f190 2019-10-16T01:11:51 Do not use sysctl.h on linux (it had been deprecated) It had been deprecated for a long time (AFAIK), but since glibc-2.29.9000-309-g744e829637 it produces a #warning
yuangongji 148d12ad 2019-09-19T15:24:51 evutil_time: detect and use _gmtime64_s()/_gmtime64()
Azat Khuzhin 86f55b04 2019-09-03T00:34:35 arc4random: replace sysctl() with getrandom (on linux) Since sysctl() is deprecated for a long-long time, according to sysctl(2): Since Linux 2.6.24, uses of this system call result in warnings in the kernel log. Fixes: #890 Suggested-by: Pierce Lopez
yuangongji 13b8fc39 2019-08-30T10:21:07 Upgrade autoconf (after upgrading minimum required to 2.67) - AC_PROG_SED - AC_USE_SYSTEM_EXTENSIONS - AC_TRY_COMPILE -> AC_COMPILE_IFELSE - AC_TRY_RUN -> AC_RUN_IFELSE ... Also use: - AC_CONFIG_AUX_DIR Refs: #870 Fixes: 3f09e923 ("Change the minimum version of automake to 1.13 and autoconf to 2.67")
yuangongji f9c6a14e 2019-08-23T22:31:28 autotools: attach doxygen target into all target v2: disable man pages by default
ygj6 3f09e923 2019-08-08T21:48:21 Change the minimum version of automake to 1.13 and autoconf to 2.67 When I run make check via automake with a version of 1.12.6 or lower, I got this error: /bin/sh: line 9: ./test_runner_epoll: No such file or directory FAIL: test_runner_epoll /bin/sh: line 9: ./test_runner_select: No such file or directory FAIL: test_runner_select /bin/sh: line 9: ./test_runner_kqueue: No such file or directory FAIL: test_runner_kqueue /bin/sh: line 9: ./test_runner_evport: No such file or directory FAIL: test_runner_evport /bin/sh: line 9: ./test_runner_devpoll: No such file or directory FAIL: test_runner_devpoll /bin/sh: line 9: ./test_runner_poll: No such file or directory FAIL: test_runner_poll /bin/sh: line 9: ./test_runner_win32: No such file or directory FAIL: test_runner_win32 /bin/sh: line 9: ./test_runner_timerfd: No such file or directory FAIL: test_runner_timerfd /bin/sh: line 9: ./test_runner_changelist: No such file or directory FAIL: test_runner_changelist /bin/sh: line 9: ./test_runner_timerfd_changelist: No such file or directory FAIL: test_runner_timerfd_changelist Open the Makefile generated by command ./autogen.sh && ./configure I can see the errors are caused by this line: if $(TESTS_ENVIRONMENT) $${dir}$$tst $(AM_TESTS_FD_REDIRECT); then $${dir}$$tst will expand to ./test_runner_epoll, but test_runner_epoll is only a target in test/include.am, not a file, so it print: /bin/sh: line 9: ./test_runner_epoll: No such file or directory. It seems like a bug in automake 1.12.6. The errors will disappear if I simply upgrade automake to 1.13, and upgrade autoconf to 2.65 (2.65 is the lowest version dependent by automake-1.13). When I build with automake-1.13 and autoconf-2.66, I got another error: configure.ac:667: error: AC_CHECK_SIZEOF: requires literal arguments The code in configure.ac line 667 is : AC_CHECK_SIZEOF(void *) It is a bug in autoconf-2.66 : http://gnu-autoconf.7623.n7.nabble.com/AC-CHECK-SIZEOF-int-is-error-in-autoconf-2-66-td13537.html Finally, everything works fine when using automake-1.13 and autoconf-2.67. Refs: #858
yuangongji 1947dd0d 2019-07-27T22:41:39 Change autoconf version to 2.62 and automake version to 1.11.2 On my computer, the version of autoconf is 2.59 and automake is 1.9 I build with autogen.sh & configure & make and failed. I find In Makefile.am: include/event2/event-config.h: config.h make-event-config.sed $(AM_V_GEN)test -d include/event2 || $(MKDIR_P) include/event2 $(AM_V_at)$(SED) -f $(srcdir)/make-event-config.sed < config.h > $@T $(AM_V_at)mv -f $@T $@ There are three undefined variables: MKDIR_P, AM_V_GEN and AM_V_at. Then I tried: - autoconf-2.60 / automake-1.10 - autoconf-2.61 / automake-1.11 - autoconf-2.62 / automake-1.11.2 And only autoconf-2.62 & automake-1.11.2 is ok. Therefore, I recommend changing the autoconf version from 2.59 to 2.62 and automake version from 1.9 to 1.11.2. Plus autoconf 2.59 is too old - 2003.12.16 [1], so as automake 1.9 - 2004.08.11 [2], while $(AM_V_GEN)/$(AM_V_at) had been introduced in 371a1237 back in 2012. [1]: http://ftp.gnu.org/gnu/autoconf/ [1]: http://ftp.gnu.org/gnu/automake/ Fixes: 371a1237 ("Make quiet build even quieter")
Azat Khuzhin da112175 2019-05-12T16:12:06 build: struct sockaddr_un detection (sys/un.h, afunix.h) - On UNIX: sys/un.h - Since win10: afunix.h And windows has AF_UNIX but do not have sockaddr_un (before windows build 17061 [1]), hence the sockaddr_un detection. [1]: https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
Azat Khuzhin d5b24cc0 2019-03-05T21:34:31 sample/becat: bufferevent cat, ncat/nc/telnet analog
Enji Cooper 91dad75f 2019-02-28T17:47:51 Fix typos: warnigns -> warnings Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
Enji Cooper 5f87be42 2019-02-25T11:59:15 Define `_GNU_SOURCE` properly/consistently per autoconf Although `_GNU_SOURCE` can be defined as an arbitrary #define per the glibc docs [1], it's best to define it in a manner consistent with the way that autoconf defines it, i.e., `1`. While this shouldn't matter in most cases, it does when the headers from other projects follow the poorly defined GNU convention implemented by autoconf and are included after the libevent's util.h header. An example failure with clang, similar to the failure I encountered, is as follows: ``` $ printf "#define _GNU_SOURCE\n#define _GNU_SOURCE 1" | clang -c -x c - <stdin>:2:9: warning: '_GNU_SOURCE' macro redefined [-Wmacro-redefined] ^ <stdin>:1:9: note: previous definition is here ^ 1 warning generated. ``` This happened when compiling python [2] with a stale homebrew util.h file from libevent (which admittedly would not happen in a correct libevent install, as the header should be installed under /usr/local/include/event2/util.h). However, if both headers had been combined (which is more likely), it would have failed as shown above. Removing the ad hoc definition unbreaks compiling python's pyconfig.h.in header when included after util.h from libevent. 1. http://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html 2. https://github.com/python/cpython/blob/master/configure.ac#L126 Closes: #773 (cherry-picked) Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
Azat Khuzhin 006c528a 2018-10-27T16:49:39 autotools: do not add warnings that is included into -Wall already Plus remove duplicates
Azat Khuzhin e85818d2 2018-06-19T10:15:08 Cleanup __func__ detection First of all __func__ is not a macro, it is char[] array, so the code that we had before in cmake, was incorrect, i.e.: #if defined (__func__) #define EVENT____func__ __func__ #elif defined(__FUNCTION__) #define EVENT____func__ __FUNCTION__ #else #define EVENT____func__ __FILE__ #endif So just detect do we have __func__/__FUNCTION__ in configure/cmake before build and define EVENT__HAVE___func__/EVENT__HAVE___FUNCTION__ to use the later to choose which should be used as a __func__ (if it is not presented). Closes: #644
Azat Khuzhin 4728ffed 2018-08-01T00:58:02 autotools: include win32 specific headers for socklen_t detection on win32/mingw The [1] removes EVENT__ prefix, and now if we will incorrectly detect that "foobar" (or socklen_t in our case) type is not available, but somewhere later it will be available then we will get next error [2]: error: two or more data types in declaration specifiers According to [3]: - Compile something in Cygwin and you are compiling it for Cygwin. - Compile something in MinGW and you are compiling it for Windows. And I can confirm this, since there is _WIN32 defined (according to [4]) And since according to [5] our image in appveyour (Visual Studion 2015) has mingw (and we use it, not cygwin) we need ws2tcpip.h (over sys/socket.h -- which does not exist in win32) header to detect socklen_t existence. [1]: 587e9f5828c4eb3c6e79e9eb29f174e4ae0c05bd ("config.h can't be prefixed unconditionally") [2]: https://ci.appveyor.com/project/nmathewson/libevent/build/job/yonukoc5q3tr3e5e#L372 [3]: https://stackoverflow.com/questions/771756/what-is-the-difference-between-cygwin-and-mingw [4]: https://www.appveyor.com/docs/build-environment/#mingw-msys-cygwin [5]: https://ci.appveyor.com/project/nmathewson/libevent/build/job/yonukoc5q3tr3e5e#L164 Fixes: #649
Carlo Marcelo Arenas Belón 1dfec8a9 2017-08-19T16:01:46 configure: avoid false positive in DragonFlyBSD by default, the max buffer size is 16K and histeresis is at 50%, so a bigger read is needed to unlock writes than you would expect from other BSD (512 bytes) this doesn't introduce any regression on FreeBSD 11.1, OpenBSD 6.1, NetBSD 7.1, macOS 10.12.6 and of course DragonFlyBSD 4.8.1, and most of them show a max pipe size of 64K, so the read call should drain them all regardless of how conservative they are on the free pipe space they will require (usually 512 bytes) before kevent reports the fd as ready for write. I couldn't find a reference to which bug this code was trying to look for and it seems to be there from the beginning of git history so it might be no longer relevant. Issue: #548
Carlo Marcelo Arenas Belón 63c4bf78 2017-09-01T15:50:36 test: fix 32bit linux regress
Redfoxmoon 94e5cc84 2017-08-15T05:11:05 Add configure check for midipix Fixes: #540
Marek Sebera 6541168d 2017-03-06T00:55:16 Detect arch4random_addrandom() existence Refs: #370 Refs: #475
Azat Khuzhin 66a4eb0c 2017-03-06T00:05:50 Check for WNOWAIT in waitpid() in runtime (not in cmake/configure) Because checking in cmake breaks cross-compiling. Introduced-in: 43eb56c7c738e3642f0981e3dd6ab9e082eec798. Fixes: #482 Fixes: #462 Refs: #475 v2: use waitid() with WNOWAIT v3: use WNOWAIT only if it available in waitpid(), because not all netbsd supports it
Pierce Lopez 5d18d879 2017-03-02T21:09:32 Do not check for ERR_remove_thread_state() (do not link ssl into every library) This reverts commit c4e9d9bd662de7f575f2172c160795d452ebe709 ("sample/https-client: check for ERR_remove_thread_state() existence"). Calling AC_SEARCH_LIBS() modifies LIBS - -lcrypto incorrectly ends up in LIBS, and thus linked to by libevent_core.so. Checking for ERR_remove_thread_state should no longer be needed because it was introduced in openssl 1.0.0, and the previous line 0.9.8 had support discontinued at the end of 2015. Fixes: #473
Jan Beich d9118c8d 2017-01-28T16:17:07 test/bench_httpclient: restore SO_LINGER usage after 0dda56a48e94
Azat Khuzhin efcfa046 2017-01-29T18:13:07 Bump version in master to 2.2.0-alpha-dev And according to f8d80a285cf941505277d9060d0357b5b7e543d2 ("Bump version to 2.1.3-alpha-dev") numeric version have 1 at the end, since it means "-dev".
Azat Khuzhin 9b63b5d4 2017-01-22T18:21:57 Bump version to 2.1.8-stable everywhere P.S. in referenced commit I made a mistake and instead of *-rc* I wrote *-beta*. See-also: f4489b8323cda0bf8eed7c1353911a852d7a947c ("Bump version to 2.1.7-beta everywhere")
Azat Khuzhin a7513cc9 2017-01-15T12:31:27 automake: do not use serial-tests if parallel-test-harness available Revert: 61179dec7716975a151c6dae4524ae504d05780e ("automake: define serial-tests only if automake have this option") Revert: Revert: 44d755e00e249c09914cf35089c16735df82e270 ("test/automake: don't use paralell test harness (since automake 1.12)")
Azat Khuzhin f4489b83 2016-11-02T00:31:31 Bump version to 2.1.7-beta everywhere - cmake basic - cmake detecting from git -- event_fuzzy_version_from_git() - autotools - win32 - appveyor
Vlad Shcherban adc402ba 2016-09-29T18:31:53 Adding option to ignore clock_gettime: --disable-clock-gettime macOS 10.12 introduced `clock_gettime` to libsystem. This means, built on OS X 10.12 application would crash on earlier versions of OS X because it will try to call clock_gettime. This options is useful to make backwards compatible macOS apps. Fixes: #398 Fixes: #399 Fixes: #400
Azat Khuzhin 51019e94 2016-07-13T17:40:48 Bump version to 2.1.6-beta everywhere - cmake basic - cmake detecting from git -- event_fuzzy_version_from_git() - autotools - win32 - appveyor
Azat Khuzhin 43eb56c7 2016-08-11T16:15:45 tests: use waitpid(..., WNOWAIT) to fix failing of main/fork under solaris According to solaris docs: "One instance of a SIGCHLD signal is queued for each child process whose status has changed. If waitpid() returns because the status of a child process is available, and WNOWAIT was not specified in options, any pending SIGCHLD signal associated with the process ID of that child process is discarded. Any other pending SIGCHLD signals remain pending." And interesting thing that it works if you add sleep(1) before waitpid(), and also if you run with --verbose (some race or what). But linux doesn't support WNOWAIT in waitpid() so add detection into cmake/autotools. Fixes: #387 Link: https://bugzilla.redhat.com/show_bug.cgi?id=840782
Azat Khuzhin 671a24f2 2016-08-08T18:10:56 autotools/win32: fix searching ssl library
Azat Khuzhin bb09535b 2016-08-07T22:19:39 autoconf: fix --disable-thread-support build under win32 Fixes: https://ci.appveyor.com/project/azat/libevent/build/job/gvud4tcqsd5bnarl Fixes: https://ci.appveyor.com/project/azat/libevent/build/2.1.6.80/job/5frnb1c3n4quxxqy Fixes: https://ci.appveyor.com/project/azat/libevent/build/2.1.6.80/job/3wdahbrew7setmoa
Mark Ellzey 30316177 2016-06-28T10:37:24 [#372] check for errno.h
Rainer Keller b5ca3656 2016-05-30T16:53:41 For non GCC/clang on OSX the -Wno-deprecated-declarations may not be valid Closes: nmathewson/Libevent#129
Azat Khuzhin 61179dec 2016-05-11T16:02:02 automake: define serial-tests only if automake have this option P.S. I did try a lot of other ways, but seems that this is the only one that will work. Fixes: automake 1.11 Travis-CI: https://travis-ci.org/azat/libevent/jobs/129398265
Jan Heylen b8d7c621 2016-04-20T07:31:25 libevent_core and libevent_extra also deserve a pkgconfig file
Azat Khuzhin f29f59e8 2016-03-10T00:25:09 Replace -Wswitch-enum with -Wswitch, and add it into cmake rules too According to https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html: -Wswitch-enum Warn whenever a switch statement has an index of enumerated type and lacks a case for one or more of the named codes of that enumeration. case labels outside the enumeration range also provoke warnings when this option is used. The only difference between -Wswitch and this option is that this option gives a warning about an omitted enumeration code even if there is a *default label*.
Azat Khuzhin 959a4c20 2015-11-25T17:47:42 autotools: fix getservbyname() detection The mentioned commit adds this check under-the-else of the previous condition between getaddrinfo()/gethostbyname_r(), so this check is triggered only when we don't have getaddrinfo() which is wrong, fix this by move it upper. Fixes [CI] since it uses getservbyname() and it failed with autotools only (cmake detection is ok). CI: https://travis-ci.org/libevent/libevent/builds/93125954 Fixes: af08a94085e49e6942835b4c6b50a774536d5b5b ("Check for getservbyname even if not on win32.")
Azat Khuzhin c4e9d9bd 2015-11-23T18:44:03 sample/https-client: check for ERR_remove_thread_state() existence Fixes: freebsd 9.2 build
Nick Mathewson 683f5568 2015-01-05T09:16:12 Increment version to 2.1.5-beta
Mike Frysinger 0c492b33 2014-06-13T17:07:50 add a --disable-samples configure flag For people building & installing libevent in a distro, building all these sample apps are not useful. Add a flag to turn them off.
Nick Mathewson de268feb 2014-03-21T13:20:34 Increment version to 2.1.4-alpha-dev
Nick Mathewson d08273ec 2014-03-16T12:09:24 Increment version to 2.1.4-alpha
Nick Mathewson cbfa8da1 2014-03-03T11:23:55 Merge remote-tracking branch 'origin/patches-2.0'
Trond Norbye b56611d7 2014-02-19T06:49:31 Add -Qunused-arguments for clang on macos The clang compiler provided with macosx emits warnings like: CC bufferevent.lo clang: warning: argument unused during compilation: '-I .' clang: warning: argument unused during compilation: '-I ./compat' clang: warning: argument unused during compilation: '-I ./include' clang: warning: argument unused during compilation: '-I ./include' for each file being compiled. This generates a lot of noise during compilation making it hard to see "real" errors. This patch mute those warnings.
Nick Mathewson f665d5cb 2014-02-24T10:32:00 Stop checking for inet_aton; we don't use it. We had cmake and autoconf tests for the inet_aton function... but we never actually use it any more. (The autoconf tests still use the callability of inet_aton to decide whether we need to link against -lresolv) Reported by Harlan Stenn.
Nick Mathewson f8d80a28 2013-05-01T23:12:08 Bump version to 2.1.3-alpha-dev