MINOR: build: add linux-glibc-legacy build TARGET

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.
This commit is contained in:
Lukas Tribus 2019-09-01 16:48:36 +02:00 committed by Willy Tarreau
parent 8a4ffa0aab
commit cc1eb1619f
2 changed files with 27 additions and 18 deletions

25
INSTALL
View File

@ -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 To build haproxy, you have to choose your target OS amongst the following ones
and assign it to the TARGET variable : and assign it to the TARGET variable :
- linux-glibc for Linux kernel 2.6.28 and above - linux-glibc for Linux kernel 2.6.28 and above
- solaris for Solaris 8 or 10 (others untested) - linux-glibc-legacy for Linux kernel 2.6.28 and above without new features
- freebsd for FreeBSD 5 to 12 (others untested) - solaris for Solaris 8 or 10 (others untested)
- netbsd for NetBSD - freebsd for FreeBSD 5 to 12 (others untested)
- osx for Mac OS/X - netbsd for NetBSD
- openbsd for OpenBSD 5.7 and above - osx for Mac OS/X
- aix51 for AIX 5.1 - openbsd for OpenBSD 5.7 and above
- aix52 for AIX 5.2 - aix51 for AIX 5.1
- cygwin for Cygwin - aix52 for AIX 5.2
- haiku for Haiku - cygwin for Cygwin
- generic for any other OS or version. - haiku for Haiku
- custom to manually adjust every setting - 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 You may also choose your CPU to benefit from some optimizations. This is
particularly important on UltraSparc machines. For this, you can assign particularly important on UltraSparc machines. For this, you can assign

View File

@ -141,8 +141,8 @@ DOCDIR = $(PREFIX)/doc/haproxy
#### TARGET system #### TARGET system
# Use TARGET=<target_name> to optimize for a specifc target OS among the # Use TARGET=<target_name> to optimize for a specifc target OS among the
# following list (use the default "generic" if uncertain) : # following list (use the default "generic" if uncertain) :
# linux-glibc, solaris, freebsd, openbsd, netbsd, cygwin, # linux-glibc, linux-glibc-legacy, solaris, freebsd, openbsd, netbsd,
# haiku, aix51, aix52, osx, generic, custom # cygwin, haiku, aix51, aix52, osx, generic, custom
TARGET = TARGET =
#### TARGET CPU #### TARGET CPU
@ -327,6 +327,14 @@ ifeq ($(TARGET),linux-glibc)
USE_GETADDRINFO) USE_GETADDRINFO)
endif 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 # Solaris 8 and above
ifeq ($(TARGET),solaris) ifeq ($(TARGET),solaris)
# We also enable getaddrinfo() which works since solaris 8. # We also enable getaddrinfo() which works since solaris 8.
@ -733,8 +741,8 @@ all:
@echo @echo
@echo "Please choose the target among the following supported list :" @echo "Please choose the target among the following supported list :"
@echo @echo
@echo " linux-glibc, solaris, freebsd, openbsd, netbsd, cygwin," @echo " linux-glibc, linux-glibc-legacy, solaris, freebsd, openbsd, netbsd,"
@echo " haiku, aix51, aix52, osx, generic, custom" @echo " cygwin, haiku, aix51, aix52, osx, generic, custom"
@echo @echo
@echo "Use \"generic\" if you don't want any optimization, \"custom\" if you" @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" @echo "want to precisely tweak every option, or choose the target which"
@ -810,8 +818,8 @@ help:
fi; \ fi; \
else \ else \
echo "TARGET not set, you may pass 'TARGET=xxx' to set one among :";\ echo "TARGET not set, you may pass 'TARGET=xxx' to set one among :";\
echo " linux-glibc, solaris, freebsd, netbsd, osx, openbsd,"; \ echo " linux-glibc, linux-glibc-legacy, solaris, freebsd, netbsd, osx,"; \
echo " aix51, aix52, cygwin, haiku, generic, custom"; \ echo " openbsd, aix51, aix52, cygwin, haiku, generic, custom"; \
fi fi
$(Q)echo;echo "Enabled features for TARGET '$(TARGET)' (disable with 'USE_xxx=') :" $(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 $(Q)set -- $(foreach opt,$(patsubst USE_%,%,$(use_opts)),$(if $(USE_$(opt)),$(opt),)); echo " $$*" | (fmt || cat) 2>/dev/null