[lxc-devel] [lxd/master] tree-wide: handle _GNU_SOURCE ifdefs correctly

brauner on Github lxc-bot at linuxcontainers.org
Mon Oct 21 16:36:20 UTC 2019


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 364 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20191021/4e5f32e2/attachment.bin>
-------------- next part --------------
From 21bb74017ad164233897022e8e286da5e8b722d0 Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Mon, 21 Oct 2019 18:35:19 +0200
Subject: [PATCH] tree-wide: handle _GNU_SOURCE ifdefs correctly

Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
 lxd-p2c/setns.go            | 4 +++-
 lxd/include/compiler.h      | 2 --
 lxd/main_checkfeature.go    | 4 +++-
 lxd/main_forkdns.go         | 4 +++-
 lxd/main_forkfile.go        | 4 +++-
 lxd/main_forkmount.go       | 4 +++-
 lxd/main_forknet.go         | 4 +++-
 lxd/main_forkproxy.go       | 4 +++-
 lxd/main_forkuevent.go      | 5 +++--
 lxd/main_nsexec.go          | 7 +++++--
 lxd/storage/storage_cgo.go  | 4 +++-
 lxd/ucred/ucred_gccgo.go    | 4 +++-
 shared/idmap/shift_linux.go | 4 +++-
 shared/util_linux_cgo.go    | 2 ++
 14 files changed, 40 insertions(+), 16 deletions(-)

diff --git a/lxd-p2c/setns.go b/lxd-p2c/setns.go
index 7d82162574..8d24b1a85f 100644
--- a/lxd-p2c/setns.go
+++ b/lxd-p2c/setns.go
@@ -1,7 +1,9 @@
 package main
 
 /*
-#define _GNU_SOURCE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
 #include <errno.h>
 #include <sched.h>
 #include <stdio.h>
diff --git a/lxd/include/compiler.h b/lxd/include/compiler.h
index 2be62d6eb3..3ed8222caf 100644
--- a/lxd/include/compiler.h
+++ b/lxd/include/compiler.h
@@ -25,8 +25,6 @@
 #define _GNU_SOURCE 1
 #endif
 
-#include "config.h"
-
 #ifndef thread_local
 #if __STDC_VERSION__ >= 201112L &&    \
     !(defined(__STDC_NO_THREADS__) || \
diff --git a/lxd/main_checkfeature.go b/lxd/main_checkfeature.go
index 65797c9477..f797290b93 100644
--- a/lxd/main_checkfeature.go
+++ b/lxd/main_checkfeature.go
@@ -7,7 +7,9 @@ import (
 /*
 #cgo CFLAGS: -std=gnu11 -Wvla -I ./include -I  ../shared/netutils
 
-#define _GNU_SOURCE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
 #include <errno.h>
 #include <fcntl.h>
 #include <linux/kcmp.h>
diff --git a/lxd/main_forkdns.go b/lxd/main_forkdns.go
index 7a6833a174..6ab83c4ea4 100644
--- a/lxd/main_forkdns.go
+++ b/lxd/main_forkdns.go
@@ -21,7 +21,9 @@ import (
 )
 
 /*
-#define _GNU_SOURCE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
 #include <errno.h>
 #include <fcntl.h>
 #include <stdbool.h>
diff --git a/lxd/main_forkfile.go b/lxd/main_forkfile.go
index e9f74e1bbf..16dfd0f2c9 100644
--- a/lxd/main_forkfile.go
+++ b/lxd/main_forkfile.go
@@ -7,7 +7,9 @@ import (
 )
 
 /*
-#define _GNU_SOURCE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
diff --git a/lxd/main_forkmount.go b/lxd/main_forkmount.go
index c861a725ca..813183b4f4 100644
--- a/lxd/main_forkmount.go
+++ b/lxd/main_forkmount.go
@@ -7,7 +7,9 @@ import (
 )
 
 /*
-#define _GNU_SOURCE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
 #include <ctype.h>
 #include <errno.h>
 #include <fcntl.h>
diff --git a/lxd/main_forknet.go b/lxd/main_forknet.go
index 26fc37dbdf..903ca3c6fd 100644
--- a/lxd/main_forknet.go
+++ b/lxd/main_forknet.go
@@ -10,7 +10,9 @@ import (
 )
 
 /*
-#define _GNU_SOURCE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
 #include <errno.h>
 #include <stdbool.h>
 #include <stdio.h>
diff --git a/lxd/main_forkproxy.go b/lxd/main_forkproxy.go
index 1801182d73..43454174d7 100644
--- a/lxd/main_forkproxy.go
+++ b/lxd/main_forkproxy.go
@@ -21,7 +21,9 @@ import (
 )
 
 /*
-#define _GNU_SOURCE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
 #include <errno.h>
 #include <fcntl.h>
 #include <stdbool.h>
diff --git a/lxd/main_forkuevent.go b/lxd/main_forkuevent.go
index 1926ba9e3a..94087deb9d 100644
--- a/lxd/main_forkuevent.go
+++ b/lxd/main_forkuevent.go
@@ -5,8 +5,9 @@ import (
 )
 
 /*
-
-#define _GNU_SOURCE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
 #include <asm/types.h>
 #include <errno.h>
 #include <fcntl.h>
diff --git a/lxd/main_nsexec.go b/lxd/main_nsexec.go
index 21e25d7cf3..9bcc05b8e1 100644
--- a/lxd/main_nsexec.go
+++ b/lxd/main_nsexec.go
@@ -1,4 +1,6 @@
 /**
+#cgo CFLAGS: -std=gnu11 -Wvla -fvisibility=hidden
+
  * This file is a bit funny. The goal here is to use setns() to manipulate
  * files inside the container, so we don't have to reason about the paths to
  * make sure they don't escape (we can simply rely on the kernel for
@@ -19,7 +21,9 @@
 package main
 
 /*
-#define _GNU_SOURCE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
 #include <errno.h>
 #include <fcntl.h>
 #include <grp.h>
@@ -300,5 +304,4 @@ __attribute__((constructor)) void init(void) {
 		checkfeature();
 }
 */
-// #cgo CFLAGS: -std=gnu11 -Wvla
 import "C"
diff --git a/lxd/storage/storage_cgo.go b/lxd/storage/storage_cgo.go
index 437e67ef1b..9973224f1a 100644
--- a/lxd/storage/storage_cgo.go
+++ b/lxd/storage/storage_cgo.go
@@ -4,7 +4,9 @@
 package storage
 
 /*
-#define _GNU_SOURCE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
 #define _FILE_OFFSET_BITS 64
 #include <dirent.h>
 #include <errno.h>
diff --git a/lxd/ucred/ucred_gccgo.go b/lxd/ucred/ucred_gccgo.go
index 15a58532c0..44b22dddac 100644
--- a/lxd/ucred/ucred_gccgo.go
+++ b/lxd/ucred/ucred_gccgo.go
@@ -8,7 +8,9 @@ import (
 )
 
 /*
-#define _GNU_SOURCE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
 #include <sys/socket.h>
 #include <sys/types.h>
 #include <errno.h>
diff --git a/shared/idmap/shift_linux.go b/shared/idmap/shift_linux.go
index 06c6aa5066..0c4de8cceb 100644
--- a/shared/idmap/shift_linux.go
+++ b/shared/idmap/shift_linux.go
@@ -17,7 +17,9 @@ import (
 
 // #cgo LDFLAGS: -lacl
 /*
-#define _GNU_SOURCE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
 #include <byteswap.h>
 #include <errno.h>
 #include <fcntl.h>
diff --git a/shared/util_linux_cgo.go b/shared/util_linux_cgo.go
index 36e11163c7..41663374c7 100644
--- a/shared/util_linux_cgo.go
+++ b/shared/util_linux_cgo.go
@@ -19,7 +19,9 @@ import (
 
 // #cgo LDFLAGS: -lutil -lpthread
 /*
+#ifndef _GNU_SOURCE
 #define _GNU_SOURCE
+#endif
 #include <errno.h>
 #include <fcntl.h>
 #include <grp.h>


More information about the lxc-devel mailing list