From: Willy Tarreau Date: Wed, 23 Mar 2011 19:00:53 +0000 (+0100) Subject: [BUILD] add the USE_GETADDRINFO build option X-Git-Tag: v1.5-dev8~263 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=64bc40b654bcba4b1299b0d414fe6e286ad37dce;p=thirdparty%2Fhaproxy.git [BUILD] add the USE_GETADDRINFO build option This one is used to call getaddrinfo() to resolve IPv6 host names. --- diff --git a/Makefile b/Makefile index 6d3f156516..cd6aac9420 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,7 @@ # USE_LIBCRYPT : enable crypted passwords using -lcrypt # USE_CRYPT_H : set it if your system requires including crypt.h # USE_VSYSCALL : enable vsyscall on Linux x86, bypassing libc +# USE_GETADDRINFO : use getaddrinfo() to resolve IPv6 host names. # # Options can be forced by specifying "USE_xxx=1" or can be disabled by using # "USE_xxx=" (empty string). @@ -215,12 +216,14 @@ ifeq ($(TARGET),linux26) else ifeq ($(TARGET),solaris) # This is for Solaris 8 + # We also enable getaddrinfo() which works since solaris 8. USE_POLL = implicit TARGET_CFLAGS = -fomit-frame-pointer -DFD_SETSIZE=65536 -D_REENTRANT TARGET_LDFLAGS = -lnsl -lsocket USE_TPROXY = implicit USE_LIBCRYPT = implicit USE_CRYPT_H = implicit + USE_GETADDRINFO = implicit else ifeq ($(TARGET),freebsd) # This is for FreeBSD @@ -354,6 +357,11 @@ OPTIONS_CFLAGS += -DNEED_CRYPT_H BUILD_OPTIONS += $(call ignore_implicit,USE_CRYPT_H) endif +ifneq ($(USE_GETADDRINFO),) +OPTIONS_CFLAGS += -DUSE_GETADDRINFO +BUILD_OPTIONS += $(call ignore_implicit,USE_GETADDRINFO) +endif + ifneq ($(USE_POLL),) OPTIONS_CFLAGS += -DENABLE_POLL OPTIONS_OBJS += src/ev_poll.o diff --git a/Makefile.bsd b/Makefile.bsd index 1ce871b724..05ad3ac195 100644 --- a/Makefile.bsd +++ b/Makefile.bsd @@ -77,6 +77,7 @@ OPT_OBJS = # set some defines when needed. # Known ones are -DENABLE_POLL # - use -DTPROXY to compile with transparent proxy support. +# - use -DUSE_GETADDRINFO to use of getaddrinfo() to resolve IPv6 host names DEFINE = -DTPROXY # May be changed to patch PAGE_SIZE on every platform when using dlmalloc diff --git a/Makefile.osx b/Makefile.osx index f60508e99a..f3ecdb8ff6 100644 --- a/Makefile.osx +++ b/Makefile.osx @@ -77,6 +77,7 @@ ADDLIB = # set some defines when needed. # Known ones are -DENABLE_POLL # - use -DTPROXY to compile with transparent proxy support. +# - use -DUSE_GETADDRINFO to use of getaddrinfo() to resolve IPv6 host names DEFINE = -DTPROXY # May be changed to patch PAGE_SIZE on every platform when using dlmalloc diff --git a/README b/README index d16dadd371..78349514c3 100644 --- a/README +++ b/README @@ -70,6 +70,17 @@ install it on target systems. Available build options for PCRE are : Warning! group references on Solaris seem broken. Use static-pcre whenever possible. +Recent systems can resolve IPv6 host names using getaddrinfo(). This primitive +is not present in all libcs and does not work in all of them either. Support in +glibc was broken before 2.3. Some embedded libs may not properly work either, +thus, support is disabled by default, meaning that some host names which only +resolve as IPv6 addresses will not resolve and configs might emit an error +during parsing. If you know that your OS libc has reliable support for +getaddrinfo(), you can add USE_GETADDRINFO=1 on the make command line to enable +it. This is the recommended option for most Linux distro packagers since it's +working fine on all recent mainstream distros. It is automatically enabled on +Solaris 8 and above, as it's known to work. + By default, the DEBUG variable is set to '-g' to enable debug symbols. It is not wise to disable it on uncommon systems, because it's often the only way to get a complete core when you need one. Otherwise, you can set DEBUG to '-s' to