From: Natanael Copa Date: Wed, 29 Jan 2014 14:23:49 +0000 (+0000) Subject: Include config.h early for _GNU_SOURCE with musl libc X-Git-Tag: lxc-1.0.0.beta4~48 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d06245b81b736d46da1ce88b51287dede0c9e2d3;p=thirdparty%2Flxc.git Include config.h early for _GNU_SOURCE with musl libc This fixes various compile errors when building with musl libc. For example: In file included from start.c:66:0: monitor.h:38:12: error: 'NAME_MAX' undeclared here (not in a function) char name[NAME_MAX+1]; ^ start.c: In function 'setup_signal_fd': start.c:202:2: error: implicit declaration of function 'sigfillset' [-Werror=implicit-function-declaration] if (sigfillset(&mask) || ^ ... In file included from freezer.c:36:0: monitor.h:39:12: error: 'NAME_MAX' undeclared here (not in a function) char name[NAME_MAX+1]; ^ ... In file included from cgroup.c:45:0: conf.h:87:13: error: 'IFNAMSIZ' undeclared here (not in a function) char veth1[IFNAMSIZ]; /* needed for deconf */ ^ cgroup.c: In function 'find_cgroup_subsystems': cgroup.c:230:3: error: implicit declaration of function 'strdup' [-Werror=implicit-function-declaration] (*kernel_subsystems)[kernel_subsystems_count] = strdup(line); ^ ... In file included from conf.c:65:0: conf.h:87:13: error: 'IFNAMSIZ' undeclared here (not in a function) char veth1[IFNAMSIZ]; /* needed for deconf */ ^ In file included from conf.c:66:0: conf.c: In function 'run_buffer': log.h:263:9: error: implicit declaration of function 'strsignal' [-Werror=implicit-function-declaration] struct lxc_log_locinfo locinfo = LXC_LOG_LOCINFO_INIT; \ ^ ... af_unix.c: In function 'lxc_abstract_unix_send_credential': af_unix.c:208:9: error: variable 'cred' has initializer but incomplete type struct ucred cred = { ^ af_unix.c:209:3: error: unknown field 'pid' specified in initializer .pid = getpid(), ^ af_unix.c:209:3: error: excess elements in struct initializer [-Werror] af_unix.c:209:3: error: (near initialization for 'cred') [-Werror] af_unix.c:210:3: error: unknown field 'uid' specified in initializer .uid = getuid(), ^ af_unix.c:210:3: error: excess elements in struct initializer [-Werror] af_unix.c:210:3: error: (near initialization for 'cred') [-Werror] af_unix.c:211:3: error: unknown field 'gid' specified in initializer .gid = getgid(), ^ and more... Signed-off-by: Natanael Copa Acked-by: Serge E. Hallyn --- diff --git a/src/lxc/af_unix.c b/src/lxc/af_unix.c index 830b941df..c1ed2ba4b 100644 --- a/src/lxc/af_unix.c +++ b/src/lxc/af_unix.c @@ -20,14 +20,14 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "config.h" + #include #include #include #include #include -#define __USE_GNU #include -#undef __USE_GNU #include #include "log.h" diff --git a/src/lxc/cgmanager.c b/src/lxc/cgmanager.c index 29c0e9905..0fb57cf64 100644 --- a/src/lxc/cgmanager.c +++ b/src/lxc/cgmanager.c @@ -20,9 +20,9 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#define _GNU_SOURCE +#include "config.h" + #include -#undef _GNU_SOURCE #include #include #include @@ -39,7 +39,6 @@ #include #include "error.h" -#include "config.h" #include "commands.h" #include "list.h" #include "conf.h" diff --git a/src/lxc/cgroup.c b/src/lxc/cgroup.c index bf5dfe3eb..a44982af0 100644 --- a/src/lxc/cgroup.c +++ b/src/lxc/cgroup.c @@ -20,9 +20,9 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#define _GNU_SOURCE +#include "config.h" + #include -#undef _GNU_SOURCE #include #include #include @@ -39,7 +39,6 @@ #include #include "error.h" -#include "config.h" #include "commands.h" #include "list.h" #include "conf.h" diff --git a/src/lxc/conf.c b/src/lxc/conf.c index 7dc1fefee..06307b735 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -20,9 +20,9 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#define _GNU_SOURCE +#include "config.h" + #include -#undef _GNU_SOURCE #include #include #include @@ -60,7 +60,6 @@ #include "network.h" #include "error.h" #include "parse.h" -#include "config.h" #include "utils.h" #include "conf.h" #include "log.h" diff --git a/src/lxc/freezer.c b/src/lxc/freezer.c index c33a727d5..89c7fab4e 100644 --- a/src/lxc/freezer.c +++ b/src/lxc/freezer.c @@ -20,9 +20,9 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#define _GNU_SOURCE +#include "config.h" + #include -#undef _GNU_SOURCE #include #include #include diff --git a/src/lxc/lxc_start.c b/src/lxc/lxc_start.c index 4b6b1f75b..19ebea028 100644 --- a/src/lxc/lxc_start.c +++ b/src/lxc/lxc_start.c @@ -20,9 +20,9 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#define _GNU_SOURCE +#include "config.h" + #include -#undef _GNU_SOURCE #include #include #include @@ -48,7 +48,6 @@ #include "conf.h" #include "cgroup.h" #include "utils.h" -#include "config.h" #include "confile.h" #include "arguments.h" diff --git a/src/lxc/lxc_unshare.c b/src/lxc/lxc_unshare.c index 792bfd9ae..a591d0aa7 100644 --- a/src/lxc/lxc_unshare.c +++ b/src/lxc/lxc_unshare.c @@ -20,9 +20,9 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#define _GNU_SOURCE +#include "config.h" + #include -#undef _GNU_SOURCE #include #include #include @@ -39,7 +39,6 @@ #include "caps.h" #include "cgroup.h" -#include "config.h" #include "error.h" #include "log.h" #include "namespace.h" diff --git a/src/lxc/start.c b/src/lxc/start.c index 5808c89cf..423bdd5b7 100644 --- a/src/lxc/start.c +++ b/src/lxc/start.c @@ -24,7 +24,6 @@ #include "config.h" #include -#undef _GNU_SOURCE #include #include #include