[lxc-devel] [PATCH 7/8] Include config.h early for _GNU_SOURCE with musl libc
Natanael Copa
ncopa at alpinelinux.org
Wed Jan 29 14:23:49 UTC 2014
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 <ncopa at alpinelinux.org>
---
src/lxc/af_unix.c | 4 ++--
src/lxc/cgmanager.c | 5 ++---
src/lxc/cgroup.c | 5 ++---
src/lxc/conf.c | 5 ++---
src/lxc/freezer.c | 4 ++--
src/lxc/lxc_start.c | 5 ++---
src/lxc/lxc_unshare.c | 5 ++---
src/lxc/start.c | 1 -
8 files changed, 14 insertions(+), 20 deletions(-)
diff --git a/src/lxc/af_unix.c b/src/lxc/af_unix.c
index 830b941..c1ed2ba 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 <stddef.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
-#define __USE_GNU
#include <sys/socket.h>
-#undef __USE_GNU
#include <sys/un.h>
#include "log.h"
diff --git a/src/lxc/cgmanager.c b/src/lxc/cgmanager.c
index 29c0e99..0fb57cf 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 <stdio.h>
-#undef _GNU_SOURCE
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
@@ -39,7 +39,6 @@
#include <net/if.h>
#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 fd60155..fb8b341 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 <stdio.h>
-#undef _GNU_SOURCE
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
@@ -39,7 +39,6 @@
#include <net/if.h>
#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 71b3407..ccfbb8e 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 <stdio.h>
-#undef _GNU_SOURCE
#include <stdlib.h>
#include <stdarg.h>
#include <errno.h>
@@ -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 c33a727..89c7fab 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 <stdio.h>
-#undef _GNU_SOURCE
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
diff --git a/src/lxc/lxc_start.c b/src/lxc/lxc_start.c
index 4b6b1f7..19ebea0 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 <stdio.h>
-#undef _GNU_SOURCE
#include <libgen.h>
#include <stdlib.h>
#include <unistd.h>
@@ -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 792bfd9..a591d0a 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 <stdio.h>
-#undef _GNU_SOURCE
#include <errno.h>
#include <getopt.h>
#include <libgen.h>
@@ -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 5808c89..423bdd5 100644
--- a/src/lxc/start.c
+++ b/src/lxc/start.c
@@ -24,7 +24,6 @@
#include "config.h"
#include <stdio.h>
-#undef _GNU_SOURCE
#include <string.h>
#include <stdlib.h>
#include <dirent.h>
--
1.8.5.3
More information about the lxc-devel
mailing list