As discussed in issue #128, introduce a new build TARGET
linux-glibc-legacy to allow the build on old, legacy OS.
Should be backported to 2.0.
---
INSTALL | 25 +
Makefile | 20 ++--
2 files changed, 27 insertions(+), 18 deletions(-)
diff --git a/INSTALL b/INSTALL
index dd80b64..40e3a04 100644
--- a/INSTALL
+++ b/INSTALL
@@ -370,18 +370,19 @@ and section 3 (build environment). It often refers to
section 4 (dependencies).
To build haproxy, you have to choose your target OS amongst the following ones
and assign it to the TARGET variable :
- - linux-glibc for Linux kernel 2.6.28 and above
- - solaris for Solaris 8 or 10 (others untested)
- - freebsd for FreeBSD 5 to 12 (others untested)
- - netbsd for NetBSD
- - osx for Mac OS/X
- - openbsd for OpenBSD 5.7 and above
- - aix51 for AIX 5.1
- - aix52 for AIX 5.2
- - cygwin for Cygwin
- - haiku for Haiku
- - generic for any other OS or version.
- - custom to manually adjust every setting
+ - linux-glibc for Linux kernel 2.6.28 and above
+ - linux-glibc-legacy for Linux kernel 2.6.28 and above without new features
+ - solaris for Solaris 8 or 10 (others untested)
+ - freebsd for FreeBSD 5 to 12 (others untested)
+ - netbsd for NetBSD
+ - osx for Mac OS/X
+ - openbsd for OpenBSD 5.7 and above
+ - aix51 for AIX 5.1
+ - aix52 for AIX 5.2
+ - cygwin for Cygwin
+ - haiku for Haiku
+ - generic for any other OS or version.
+ - custom to manually adjust every setting
You may also choose your CPU to benefit from some optimizations. This is
particularly important on UltraSparc machines. For this, you can assign
diff --git a/Makefile b/Makefile
index 5536d54..ec15cbd 100644
--- a/Makefile
+++ b/Makefile
@@ -141,8 +141,8 @@ DOCDIR = $(PREFIX)/doc/haproxy
TARGET system
# Use TARGET= to optimize for a specifc target OS among the
# following list (use the default "generic" if uncertain) :
-#linux-glibc, solaris, freebsd, openbsd, netbsd, cygwin,
-#haiku, aix51, aix52, osx, generic, custom
+#linux-glibc, linux-glibc-legacy, solaris, freebsd, openbsd, netbsd,
+#cygwin, haiku, aix51, aix52, osx, generic, custom
TARGET =
TARGET CPU
@@ -327,6 +327,14 @@ ifeq ($(TARGET),linux-glibc)
USE_GETADDRINFO)
endif
+# For linux >= 2.6.28, glibc without new features
+ifeq ($(TARGET),linux-glibc-legacy)
+ set_target_defaults = $(call default_opts, \
+USE_POLL USE_TPROXY USE_LIBCRYPT USE_DL USE_RT USE_CRYPT_H USE_NETFILTER \
+USE_CPU_AFFINITY USE_THREAD USE_EPOLL USE_FUTEX USE_LINUX_TPROXY \
+USE_ACCEPT4 USE_LINUX_SPLICE USE_PRCTL USE_THREAD_DUMP USE_GETADDRINFO)
+endif
+
# Solaris 8 and above
ifeq ($(TARGET),solaris)
# We also enable getaddrinfo() which works since solaris 8.
@@ -733,8 +741,8 @@ all:
@echo
@echo "Please choose the target among the following supported list :"
@echo
- @echo " linux-glibc, solaris, freebsd, openbsd, netbsd, cygwin,"
- @echo " haiku, aix51, aix52, osx, generic, custom"
+ @echo " linux-glibc, linux-glibc-legacy, solaris, freebsd, openbsd,
netbsd,"
+ @echo " cygwin, haiku, aix51, aix52, osx, generic, custom"
@echo
@echo "Use \"generic\" if you don't want any optimization, \"custom\"
if you"
@echo "want to precisely tweak every option, or choose the target which"
@@ -810,8 +818,8 @@ help:
fi; \
else \
echo "TARGET not set, you may pass 'TARGET=xxx' to set one among
:";\
-echo " linux-glibc, solaris, freebsd, netbsd, osx, openbsd,"; \
-echo " aix51, aix52, cygwin, haiku, generic, custom"; \
+echo " linux-glibc, linux-glibc-legacy, solaris, freebsd, netbsd,
osx,"; \
+echo " openbsd, aix51, aix52, cygwin, haiku, generic, custom"; \
fi
$(Q)echo;echo "Enabled features for TARGET '$(TARGET)' (disable with
'USE_xxx=') :"
$(Q)set -- $(foreach opt,$(patsubst USE_%,%,$(use_opts)),$(if
$(USE_$(opt)),$(opt),)); echo " $$*" | (fmt || cat) 2>/dev/null
--
2.7.4