From: Willy Tarreau Date: Thu, 16 Apr 2020 13:14:17 +0000 (+0200) Subject: BUILD: Makefile: add linux-musl to TARGET X-Git-Tag: v2.2-dev6~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=39b2fda9155ee0233585e48701274756337796aa;p=thirdparty%2Fhaproxy.git BUILD: Makefile: add linux-musl to TARGET Other users are using musl, namely on Docker. It builds fine with linux-glibc-legacy but not linux-glibc, which needs to first disable USE_BACKTRACE. Better add a valid entry for it instead of hacking around another libc. --- diff --git a/INSTALL b/INSTALL index 78424ee3c7..61878922ec 100644 --- a/INSTALL +++ b/INSTALL @@ -372,6 +372,7 @@ and assign it to the TARGET variable : - linux-glibc for Linux kernel 2.6.28 and above - linux-glibc-legacy for Linux kernel 2.6.28 and above without new features + - linux-musl for Linux kernel 2.6.28 and above with musl libc - solaris for Solaris 8 or 10 (others untested) - freebsd for FreeBSD 5 to 12 (others untested) - netbsd for NetBSD diff --git a/Makefile b/Makefile index d5841a5495..1e42139890 100644 --- a/Makefile +++ b/Makefile @@ -139,8 +139,8 @@ DOCDIR = $(PREFIX)/doc/haproxy #### TARGET system # Use TARGET= to optimize for a specific target OS among the # following list (use the default "generic" if uncertain) : -# linux-glibc, linux-glibc-legacy, solaris, freebsd, openbsd, netbsd, -# cygwin, haiku, aix51, aix52, aix72-gcc, osx, generic, custom +# linux-glibc, linux-glibc-legacy, linux-musl, solaris, freebsd, openbsd, +# netbsd, cygwin, haiku, aix51, aix52, aix72-gcc, osx, generic, custom TARGET = #### TARGET CPU @@ -341,6 +341,18 @@ ifeq ($(TARGET),linux-glibc-legacy) USE_ACCEPT4 USE_LINUX_SPLICE USE_PRCTL USE_THREAD_DUMP USE_GETADDRINFO) endif +# For linux >= 2.6.28 and musl +ifeq ($(TARGET),linux-musl) + 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_NS USE_TFO \ + USE_GETADDRINFO) +ifneq ($(shell echo __arm__/__aarch64__ | $(CC) -E -xc - | grep '^[^\#]'),__arm__/__aarch64__) + TARGET_LDFLAGS=-latomic +endif +endif + # Solaris 8 and above ifeq ($(TARGET),solaris) # We also enable getaddrinfo() which works since solaris 8. @@ -757,8 +769,8 @@ all: @echo @echo "Please choose the target among the following supported list :" @echo - @echo " linux-glibc, linux-glibc-legacy, solaris, freebsd, openbsd, netbsd," - @echo " cygwin, haiku, aix51, aix52, aix72-gcc, osx, generic, custom" + @echo " linux-glibc, linux-glibc-legacy, linux-musl, solaris, freebsd, openbsd, " + @echo " netbsd, cygwin, haiku, aix51, aix52, aix72-gcc, 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"