Merge pull request #351 from krihal/build_macos
Make Clixon build on MacOS.
This commit is contained in:
commit
971ecb1b7f
10 changed files with 112 additions and 12 deletions
|
|
@ -45,7 +45,13 @@ CPPFLAGS += -fPIC
|
||||||
endif
|
endif
|
||||||
SH_SUFFIX = @SH_SUFFIX@
|
SH_SUFFIX = @SH_SUFFIX@
|
||||||
LIBSTATIC_SUFFIX = @LIBSTATIC_SUFFIX@
|
LIBSTATIC_SUFFIX = @LIBSTATIC_SUFFIX@
|
||||||
INSTALLFLAGS = @INSTALLFLAGS@
|
|
||||||
|
ifeq ($(HOST_VENDOR),apple)
|
||||||
|
INSTALLFLAGS =
|
||||||
|
else
|
||||||
|
INSTALLFLAGS = @INSTALLFLAGS@
|
||||||
|
endif
|
||||||
|
|
||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
ifneq ($(LINKAGE),dynamic)
|
ifneq ($(LINKAGE),dynamic)
|
||||||
LDFLAGS += -rdynamic -L.
|
LDFLAGS += -rdynamic -L.
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,13 @@ CPPFLAGS += -fPIC
|
||||||
endif
|
endif
|
||||||
SH_SUFFIX = @SH_SUFFIX@
|
SH_SUFFIX = @SH_SUFFIX@
|
||||||
LIBSTATIC_SUFFIX = @LIBSTATIC_SUFFIX@
|
LIBSTATIC_SUFFIX = @LIBSTATIC_SUFFIX@
|
||||||
INSTALLFLAGS = @INSTALLFLAGS@
|
|
||||||
|
ifeq ($(HOST_VENDOR),apple)
|
||||||
|
INSTALLFLAGS =
|
||||||
|
else
|
||||||
|
INSTALLFLAGS = @INSTALLFLAGS@
|
||||||
|
endif
|
||||||
|
|
||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
ifneq ($(LINKAGE),dynamic)
|
ifneq ($(LINKAGE),dynamic)
|
||||||
# -rdynamic for using -ldl
|
# -rdynamic for using -ldl
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,13 @@ top_srcdir = @top_srcdir@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CFLAGS = @CFLAGS@
|
CFLAGS = @CFLAGS@
|
||||||
LINKAGE = @LINKAGE@
|
LINKAGE = @LINKAGE@
|
||||||
INSTALLFLAGS = @INSTALLFLAGS@
|
|
||||||
|
ifeq ($(HOST_VENDOR),apple)
|
||||||
|
INSTALLFLAGS =
|
||||||
|
else
|
||||||
|
INSTALLFLAGS = @INSTALLFLAGS@
|
||||||
|
endif
|
||||||
|
|
||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
|
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,13 @@ top_srcdir = @top_srcdir@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CFLAGS = @CFLAGS@
|
CFLAGS = @CFLAGS@
|
||||||
LINKAGE = @LINKAGE@
|
LINKAGE = @LINKAGE@
|
||||||
INSTALLFLAGS = @INSTALLFLAGS@
|
|
||||||
|
ifeq ($(HOST_VENDOR),apple)
|
||||||
|
INSTALLFLAGS =
|
||||||
|
else
|
||||||
|
INSTALLFLAGS = @INSTALLFLAGS@
|
||||||
|
endif
|
||||||
|
|
||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
|
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,13 @@ top_srcdir = @top_srcdir@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CFLAGS = @CFLAGS@
|
CFLAGS = @CFLAGS@
|
||||||
LINKAGE = @LINKAGE@
|
LINKAGE = @LINKAGE@
|
||||||
INSTALLFLAGS = @INSTALLFLAGS@
|
|
||||||
|
ifeq ($(HOST_VENDOR),apple)
|
||||||
|
INSTALLFLAGS =
|
||||||
|
else
|
||||||
|
INSTALLFLAGS = @INSTALLFLAGS@
|
||||||
|
endif
|
||||||
|
|
||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
|
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,13 @@ CLIXON_DEFAULT_CONFIG = @CLIXON_DEFAULT_CONFIG@
|
||||||
|
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CFLAGS = @CFLAGS@ -fPIC
|
CFLAGS = @CFLAGS@ -fPIC
|
||||||
INSTALLFLAGS = @INSTALLFLAGS@
|
|
||||||
|
ifeq ($(HOST_VENDOR),apple)
|
||||||
|
INSTALLFLAGS =
|
||||||
|
else
|
||||||
|
INSTALLFLAGS = @INSTALLFLAGS@
|
||||||
|
endif
|
||||||
|
|
||||||
with_restconf = @with_restconf@
|
with_restconf = @with_restconf@
|
||||||
|
|
||||||
INCLUDES = -I$(includedir) @INCLUDES@
|
INCLUDES = -I$(includedir) @INCLUDES@
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,13 @@ SH_SUFFIX = @SH_SUFFIX@
|
||||||
LIBSTATIC_SUFFIX = @LIBSTATIC_SUFFIX@
|
LIBSTATIC_SUFFIX = @LIBSTATIC_SUFFIX@
|
||||||
INSTALL = @INSTALL@
|
INSTALL = @INSTALL@
|
||||||
INSTALL_LIB = @INSTALL@
|
INSTALL_LIB = @INSTALL@
|
||||||
INSTALLFLAGS = @INSTALLFLAGS@
|
|
||||||
|
ifeq ($(HOST_VENDOR),apple)
|
||||||
|
INSTALLFLAGS =
|
||||||
|
else
|
||||||
|
INSTALLFLAGS = @INSTALLFLAGS@
|
||||||
|
endif
|
||||||
|
|
||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -134,12 +134,26 @@ create_socket(struct sockaddr *sa,
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
/* create inet socket */
|
/* create inet socket */
|
||||||
if ((s = socket(sa->sa_family,
|
|
||||||
SOCK_STREAM | SOCK_CLOEXEC | flags,
|
#ifndef __APPLE__
|
||||||
|
flags = SOCK_STREAM | SOCK_CLOEXEC | flags;
|
||||||
|
#else
|
||||||
|
flags = SOCK_STREAM | flags;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if ((s = socket(sa->sa_family, flags,
|
||||||
0)) < 0) {
|
0)) < 0) {
|
||||||
clicon_err(OE_UNIX, errno, "socket");
|
clicon_err(OE_UNIX, errno, "socket");
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
if (fcntl(s, O_CLOEXEC)) {
|
||||||
|
clicon_err(OE_UNIX, errno, "fcntl");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (void *)&on, sizeof(on)) == -1) {
|
if (setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (void *)&on, sizeof(on)) == -1) {
|
||||||
clicon_err(OE_UNIX, errno, "setsockopt SO_KEEPALIVE");
|
clicon_err(OE_UNIX, errno, "setsockopt SO_KEEPALIVE");
|
||||||
goto done;
|
goto done;
|
||||||
|
|
@ -201,11 +215,30 @@ fork_netns_socket(const char *netns,
|
||||||
char nspath[MAXPATHLEN]; /* Path to namespace file */
|
char nspath[MAXPATHLEN]; /* Path to namespace file */
|
||||||
struct stat st;
|
struct stat st;
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
int sock_flags = SOCK_DGRAM;
|
||||||
|
#else
|
||||||
|
int sock_flags = SOCK_DGRAM | SOCK_CLOEXEC;
|
||||||
|
#endif
|
||||||
|
|
||||||
clicon_debug(1, "%s %s", __FUNCTION__, netns);
|
clicon_debug(1, "%s %s", __FUNCTION__, netns);
|
||||||
if (socketpair(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0, sp) < 0){
|
if (socketpair(AF_UNIX, sock_flags, 0, sp) < 0){
|
||||||
clicon_err(OE_UNIX, errno, "socketpair");
|
clicon_err(OE_UNIX, errno, "socketpair");
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
if (fcntl(sp[0], O_CLOEXEC)) {
|
||||||
|
clicon_err(OE_UNIX, errno, "fcntl, sp[0]");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fcntl(sp[1], O_CLOEXEC)) {
|
||||||
|
clicon_err(OE_UNIX, errno, "fcntl, sp[1]");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Check namespace exists */
|
/* Check namespace exists */
|
||||||
sprintf(nspath,"/var/run/netns/%s", netns);
|
sprintf(nspath,"/var/run/netns/%s", netns);
|
||||||
if (stat(nspath, &st) < 0){
|
if (stat(nspath, &st) < 0){
|
||||||
|
|
|
||||||
|
|
@ -181,15 +181,34 @@ clixon_proc_socket(char **argv,
|
||||||
sigfn_t oldhandler = NULL;
|
sigfn_t oldhandler = NULL;
|
||||||
sigset_t oset;
|
sigset_t oset;
|
||||||
int sig = 0;
|
int sig = 0;
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
int sock_flags = SOCK_DGRAM;
|
||||||
|
#else
|
||||||
|
int sock_flags = SOCK_DGRAM | SOCK_CLOEXEC;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (argv == NULL){
|
if (argv == NULL){
|
||||||
clicon_err(OE_UNIX, EINVAL, "argv is NULL");
|
clicon_err(OE_UNIX, EINVAL, "argv is NULL");
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
if (socketpair(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0, sp) < 0){
|
if (socketpair(AF_UNIX, sock_flags, 0, sp) < 0){
|
||||||
clicon_err(OE_UNIX, errno, "socketpair");
|
clicon_err(OE_UNIX, errno, "socketpair");
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
if (fcntl(sp[0], O_CLOEXEC)) {
|
||||||
|
clicon_err(OE_UNIX, errno, "fcntl, sp[0]");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fcntl(sp[1], O_CLOEXEC)) {
|
||||||
|
clicon_err(OE_UNIX, errno, "fcntl, sp[1]");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
sigprocmask(0, NULL, &oset);
|
sigprocmask(0, NULL, &oset);
|
||||||
set_signal(SIGINT, clixon_proc_sigint, &oldhandler);
|
set_signal(SIGINT, clixon_proc_sigint, &oldhandler);
|
||||||
sig++;
|
sig++;
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,13 @@ CC = @CC@
|
||||||
CFLAGS = @CFLAGS@
|
CFLAGS = @CFLAGS@
|
||||||
INSTALL = @INSTALL@
|
INSTALL = @INSTALL@
|
||||||
INSTALL_LIB = @INSTALL@
|
INSTALL_LIB = @INSTALL@
|
||||||
INSTALLFLAGS = @INSTALLFLAGS@
|
|
||||||
|
ifeq ($(HOST_VENDOR),apple)
|
||||||
|
INSTALLFLAGS =
|
||||||
|
else
|
||||||
|
INSTALLFLAGS = @INSTALLFLAGS@
|
||||||
|
endif
|
||||||
|
|
||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue