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=<target_name> 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

Reply via email to