mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-17 02:56:51 +00:00
BUILD: fix kFreeBSD build.
kFreeBSD needs to be treated as a distinct target from FreeBSD since the underlying system libc is the GNU one. Thus, relying only on __GLIBC__ no longer suffice. - freebsd-glibc new target, key difference is including crypt.h and linking to libdl like linux. - cpu affinity available but the api is still the FreeBSD's. - enabling auxiliary data access only for Linux. Patch based on preliminary work done by @bigon. closes #1555
This commit is contained in:
parent
c055e30176
commit
43a568575f
11
Makefile
11
Makefile
@ -177,8 +177,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, linux-musl, solaris, freebsd, dragonfly,
|
||||
# openbsd, netbsd, cygwin, haiku, aix51, aix52, aix72-gcc, osx, generic,
|
||||
# linux-glibc, linux-glibc-legacy, linux-musl, solaris, freebsd, freebsd-glibc,
|
||||
# dragonfly, openbsd, netbsd, cygwin, haiku, aix51, aix52, aix72-gcc, osx, generic,
|
||||
# custom
|
||||
TARGET =
|
||||
|
||||
@ -412,6 +412,13 @@ ifeq ($(TARGET),freebsd)
|
||||
USE_ACCEPT4 USE_CLOSEFROM USE_GETADDRINFO USE_PROCCTL)
|
||||
endif
|
||||
|
||||
# kFreeBSD glibc
|
||||
ifeq ($(TARGET),freebsd-glibc)
|
||||
set_target_defaults = $(call default_opts, \
|
||||
USE_POLL USE_TPROXY USE_LIBCRYPT USE_THREAD USE_CPU_AFFINITY USE_KQUEUE \
|
||||
USE_ACCEPT4 USE_GETADDRINFO USE_CRYPT_H USE_DL)
|
||||
endif
|
||||
|
||||
# DragonFlyBSD 4.3 and above
|
||||
ifeq ($(TARGET),dragonfly)
|
||||
set_target_defaults = $(call default_opts, \
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
#include <haproxy/api-t.h>
|
||||
|
||||
#if defined(__linux__) || defined(__DragonFly__)
|
||||
#if defined(__linux__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
|
||||
|
||||
# define CPUSET_REPR cpu_set_t
|
||||
# define CPUSET_USE_CPUSET
|
||||
|
@ -43,7 +43,7 @@ extern void *__elf_aux_vector;
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#if defined(__GLIBC__) && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
|
||||
#if defined(__linux__) && defined(__GLIBC__) && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
|
||||
#include <sys/auxv.h>
|
||||
#endif
|
||||
|
||||
@ -4791,7 +4791,7 @@ const char *get_exec_path()
|
||||
{
|
||||
const char *ret = NULL;
|
||||
|
||||
#if defined(__GLIBC__) && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
|
||||
#if defined(__linux__) && defined(__GLIBC__) && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
|
||||
long execfn = getauxval(AT_EXECFN);
|
||||
|
||||
if (execfn && execfn != ENOENT)
|
||||
|
Loading…
Reference in New Issue
Block a user