mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-12 13:58:58 -04:00

Patch from Zack Weinberg. His message: This one eliminates all use of AC_CHECK_LIB in the configure script. AC_CHECK_LIB has a serious flaw: if the library you mention *exists* but is not *necessary* for the function you want, it adds it to $(LIBS) anyway. This was fine in the days of static libraries, because the linker would ignore an .a library that didn't contain anything you needed. However, ELF shared libraries are different (let's not get into why): the linker will by default record a DT_NEEDED entry for every shared object mentioned on the link command line. Thus, every use of AC_CHECK_LIB is a potential unnecessary DT_NEEDED, making extra work for the dynamic loader. The cure is simply to use AC_SEARCH_LIBS instead; it first tries to find the function you ask for in libc, and only if that doesn't work does it try to use the extra library you mention. For the same reasons, pkg-config .pc files should distinguish between the libraries to use for shared linkage (Libs:) and the additional libraries needed for static linkage (Libs.private:). I have also made that correction in this patch. I also took the opportunity to clean up the substitution variables a little and make absolutely sure that the core library does not get linked against zlib. svn:r1338
To build libevent, type $ ./configure && make (If you got libevent from the subversion repository, you will first need to run the included "autogen.sh" script in order to generate the configure script.) Install as root via # make install You can run the regression tests by $ make verify Before, reporting any problems, please run the regression tests. To enable the low-level tracing build the library as: CFLAGS=-DUSE_DEBUG ./configure [...] Acknowledgements: ----------------- The following people have helped with suggestions, ideas, code or fixing bugs: Alejo Weston Andros Adamson William Ahern Stas Bekman Andrew Danforth Mike Davis Shie Erlich Alexander von Gernler Artur Grabowski Aaron Hopkins Claudio Jeker Scott Lamb Adam Langley Philip Lewis David Libenzi Nick Mathewson Andrey Matveev Richard Nyberg Jon Oberheide Phil Oleson Dave Pacheco Tassilo von Parseval Pierre Phaneuf Jon Poland Bert JW Regeer Dug Song Taral If I have forgotten your name, please contact me.
Description
A public libevent repository. The official repository is still at at git://levent.git.sourceforge.net/gitroot/levent/libevent
Readme
Multiple Licenses
11 MiB
Languages
C
88.3%
CMake
3.9%
Python
2.5%
M4
2.3%
Roff
1.8%
Other
1.2%