]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUILD: Makefile: add linux-musl to TARGET
authorWilly Tarreau <w@1wt.eu>
Thu, 16 Apr 2020 13:14:17 +0000 (15:14 +0200)
committerWilly Tarreau <w@1wt.eu>
Thu, 16 Apr 2020 13:17:13 +0000 (15:17 +0200)
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.

INSTALL
Makefile

diff --git a/INSTALL b/INSTALL
index 78424ee3c7133f0b1cf49db696f89c2367d361e2..61878922ec6124d72831c848a9897dac987b54fa 100644 (file)
--- 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
index d5841a549584c761f64047041106846c9d85fea6..1e4213989083b8a3d21b958fe260eaa8d932aacb 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -139,8 +139,8 @@ DOCDIR = $(PREFIX)/doc/haproxy
 #### TARGET system
 # Use TARGET=<target_name> 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"