File 0003-move-all-attribute-definitions-to-compiler-h.patch of Package wicked.33048

From 71c88af525fe35e32af665dfa776104aa2a48f67 Mon Sep 17 00:00:00 2001
From: Clemens Famulla-Conrad <cfamullaconrad@suse.de>
Date: Tue, 19 Mar 2024 10:15:12 +0100
Subject: [PATCH 1/3] Move all __attribute__ definitions to compiler.h

---
 client/ifreload.c         | 15 +++++++-------
 include/Makefile.am       |  1 +
 include/wicked/compiler.h | 42 +++++++++++++++++++++++++++++++++++++++
 include/wicked/logging.h  | 24 +++++++++-------------
 src/duid.c                |  9 +--------
 src/duid.h                | 15 +++++---------
 src/fsm.c                 |  3 ++-
 testing/wunit.h           |  5 +++--
 8 files changed, 71 insertions(+), 43 deletions(-)
 create mode 100644 include/wicked/compiler.h

diff --git a/client/ifreload.c b/client/ifreload.c
index 8786cb3b..d8525457 100644
--- a/client/ifreload.c
+++ b/client/ifreload.c
@@ -38,6 +38,7 @@
 #include <wicked/netinfo.h>
 #include <wicked/logging.h>
 #include <wicked/fsm.h>
+#include <wicked/compiler.h>
 
 #include "wicked-client.h"
 #include "appconfig.h"
@@ -59,7 +60,7 @@ ifreload_mark_add(ni_ifworker_array_t *marked, ni_ifworker_t *w)
 
 static inline void
 ifreload_mark_down_lower_deps(const ni_fsm_t *fsm, ni_ifworker_array_t *marked, ni_ifworker_t *lower,
-				void (*logit)(const char *, ...) __fmtattr)
+				void (*logit)(const char *, ...) ni__printf(1, 2))
 {
 	ni_ifworker_t *w;
 	unsigned int i;
@@ -94,7 +95,7 @@ ifreload_mark_down_lower_deps(const ni_fsm_t *fsm, ni_ifworker_array_t *marked,
 
 static ni_bool_t
 ifreload_mark_down(const ni_fsm_t *fsm, ni_ifworker_array_t *marked, ni_ifworker_t *w,
-				void (*logit)(const char *, ...) __fmtattr,
+				void (*logit)(const char *, ...) ni__printf(1, 2),
 				unsigned int depth)
 {
 	/* ifdown is disabled when persistent mode is on (todo: add --force?) */
@@ -176,7 +177,7 @@ ifreload_mark_down(const ni_fsm_t *fsm, ni_ifworker_array_t *marked, ni_ifworker
 
 static void
 ifreload_mark_up_slave_deps(const ni_fsm_t *fsm, ni_ifworker_array_t *marked, ni_ifworker_t *master,
-				void (*logit)(const char *, ...) __fmtattr)
+				void (*logit)(const char *, ...) ni__printf(1, 2))
 {
 	ni_ifworker_t *w;
 	unsigned int i;
@@ -207,7 +208,7 @@ ifreload_mark_up_slave_deps(const ni_fsm_t *fsm, ni_ifworker_array_t *marked, ni
 
 static void
 ifreload_mark_up_master(const ni_fsm_t *fsm, ni_ifworker_array_t *marked, ni_ifworker_t *w,
-				void (*logit)(const char *, ...) __fmtattr)
+				void (*logit)(const char *, ...) ni__printf(1, 2))
 {
 	if (!ni_ifcheck_worker_config_exists(w)) {
 		logit("skipping %s set-up: no configuration available", w->name);
@@ -228,7 +229,7 @@ ifreload_mark_up_master(const ni_fsm_t *fsm, ni_ifworker_array_t *marked, ni_ifw
 
 static void
 ifreload_mark_up_lower_deps(const ni_fsm_t *fsm, ni_ifworker_array_t *marked, ni_ifworker_t *lower,
-				void (*logit)(const char *, ...) __fmtattr)
+				void (*logit)(const char *, ...) ni__printf(1, 2))
 {
 	ni_ifworker_t *w;
 	unsigned int i;
@@ -268,7 +269,7 @@ ifreload_mark_up_lower_deps(const ni_fsm_t *fsm, ni_ifworker_array_t *marked, ni
 
 static ni_bool_t
 ifreload_mark_up(const ni_fsm_t *fsm, ni_ifworker_array_t *marked, ni_ifworker_t *w,
-				void (*logit)(const char *, ...) __fmtattr)
+				void (*logit)(const char *, ...) ni__printf(1, 2))
 {
 	if (!ni_ifcheck_worker_config_exists(w)) {
 		logit("skipping %s set-up: no configuration available", w->name);
@@ -299,7 +300,7 @@ ifreload_mark_up(const ni_fsm_t *fsm, ni_ifworker_array_t *marked, ni_ifworker_t
 static void
 ifreload_mark_workers(const ni_fsm_t *fsm, ni_ifworker_array_t *down_marked, ni_ifworker_array_t *up_marked, const char *ifname)
 {
-	void (*logit)(const char *, ...) __fmtattr = ifname ? ni_note : ni_info;
+	void (*logit)(const char *, ...) ni__printf(1, 2) = ifname ? ni_note : ni_info;
 	ni_ifworker_t *w;
 	unsigned int i;
 
diff --git a/include/Makefile.am b/include/Makefile.am
index b913cafa..fed931d1 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -10,6 +10,7 @@ wicked_include_HEADERS		= \
 	wicked/bridge.h		\
 	wicked/client.h		\
 	wicked/constants.h	\
+	wicked/compiler.h	\
 	wicked/dbus.h		\
 	wicked/dbus-errors.h	\
 	wicked/dbus-service.h	\
diff --git a/include/wicked/compiler.h b/include/wicked/compiler.h
new file mode 100644
index 00000000..f5edf9a2
--- /dev/null
+++ b/include/wicked/compiler.h
@@ -0,0 +1,42 @@
+/*
+ * Compiler specific definitions
+ *
+ * Copyright (C) 2024 SUSE LLC
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef NI_WICKED_COMPILER_H
+#define NI_WICKED_COMPILER_H
+
+#ifdef __GNUC__
+
+# define ni__printf(a, b)	__attribute__ ((format (printf, a, b)))
+# define ni__noreturn		__attribute__ ((noreturn))
+# define ni__packed		__attribute__ ((__packed__))
+# define ni__unused		__attribute__ ((unused))
+# define ni__constructor	__attribute__ ((constructor))
+
+#else /* __GNUC__ */
+
+# define ni__printf(a, b)	/* */
+# define ni__noreturn		/* */
+# define ni__packed		/* */
+# define ni__unused		/* */
+# define ni__constructor	/* */
+
+#endif
+
+#endif /* NI_WICKED_COMPILER_H */
diff --git a/include/wicked/logging.h b/include/wicked/logging.h
index 7d2fbd89..db8874a5 100644
--- a/include/wicked/logging.h
+++ b/include/wicked/logging.h
@@ -8,22 +8,16 @@
 #define __WICKED_LOGGING_H__
 
 #include <wicked/types.h>
+#include <wicked/compiler.h>
 
-#ifdef __GNUC__
-# define __fmtattr	__attribute__ ((format (printf, 1, 2)))
-# define __noreturn	__attribute__ ((noreturn))
-#else
-# define __fmtattr	/* */
-# define __noreturn	/* */
-#endif
-
-extern void		ni_info(const char *, ...) __fmtattr;
-extern void		ni_note(const char *, ...) __fmtattr;
-extern void		ni_warn(const char *, ...) __fmtattr;
-extern void		ni_error(const char *, ...) __fmtattr;
-extern void		ni_error_extra(const char *, ...) __fmtattr;
-extern void		ni_trace(const char *, ...) __fmtattr;
-extern void		ni_fatal(const char *, ...) __fmtattr __noreturn;
+
+extern void		ni_info(const char *, ...) ni__printf(1, 2);
+extern void		ni_note(const char *, ...) ni__printf(1, 2);
+extern void		ni_warn(const char *, ...) ni__printf(1, 2);
+extern void		ni_error(const char *, ...) ni__printf(1, 2);
+extern void		ni_error_extra(const char *, ...) ni__printf(1, 2);
+extern void		ni_trace(const char *, ...) ni__printf(1, 2);
+extern void		ni_fatal(const char *, ...) ni__printf(1, 2) ni__noreturn;
 
 extern int		ni_enable_debug(const char *);
 extern int		ni_debug_set_default(const char *);
diff --git a/src/duid.c b/src/duid.c
index 188b9e2d..fcc8321c 100644
--- a/src/duid.c
+++ b/src/duid.c
@@ -71,11 +71,6 @@ struct ni_duid_map {
 	struct flock	flock;
 };
 
-/*
- * compiler (gcc) specific ...
- */
-#define NI_PACKED __attribute__((__packed__))
-
 /*
  * DUID typed packed data union
  */
@@ -84,9 +79,7 @@ typedef union ni_duid_data {
 	ni_duid_llt_t		llt;
 	ni_duid_ll_t		ll;
 	ni_duid_en_t		en;
-} NI_PACKED ni_duid_data_t;
-
-#undef NI_PACKED
+} ni__packed ni_duid_data_t;
 
 
 /*
diff --git a/src/duid.h b/src/duid.h
index 756d7cef..c7eec24c 100644
--- a/src/duid.h
+++ b/src/duid.h
@@ -27,6 +27,7 @@
 
 #include <wicked/types.h>
 #include <wicked/util.h>
+#include <wicked/compiler.h>
 
 
 /*
@@ -61,11 +62,6 @@
 #define NI_DUID_TYPE_LL		3
 #define NI_DUID_TYPE_UUID	4
 
-/*
- * We use gcc compiler specific attributes for
- * these direct access structs to duid members.
- */
-#define NI_PACKED __attribute__((__packed__))
 
 /*
  * DUID type 1, Link-layer address plus time
@@ -77,7 +73,7 @@ typedef struct ni_duid_llt {
 	uint16_t		hwtype;         /* link layer address type    */
 	uint32_t		v6time;		/* second since 2000 % 2^32   */
 	unsigned char		hwaddr[];	/* link layer address         */
-} NI_PACKED ni_duid_llt_t;
+} ni__packed ni_duid_llt_t;
 
 /*
  * DUID type 2, Vendor-assigned unique ID based on Enterprise Number
@@ -89,7 +85,7 @@ typedef struct ni_duid_en {
 	uint16_t		type;		/* type 2                     */
 	uint32_t		enterprise;	/* assigned enterprise-number */
 	unsigned char		identifier[];	/* machine unique identifier  */
-} NI_PACKED ni_duid_en_t;
+} ni__packed ni_duid_en_t;
 
 /*
  * DUID type 3, Link-layer address
@@ -100,7 +96,7 @@ typedef struct ni_duid_ll {
 	uint16_t		type;		/* type 3                     */
 	uint16_t		hwtype;		/* RFC 826 hardware type code */
 	unsigned char		hwaddr[];	/* link layer address         */
-} NI_PACKED ni_duid_ll_t;
+} ni__packed ni_duid_ll_t;
 
 /*
  * DUID type 4, UUID-Based DHCPv6 Unique Identifier
@@ -111,9 +107,8 @@ typedef struct ni_duid_ll {
 typedef struct ni_duid_uuid {
 	uint16_t		type;		/* type 4                     */
 	ni_uuid_t		uuid;		/* RFC4122 UUID as bytes      */
-} NI_PACKED ni_duid_uuid_t;
+} ni__packed ni_duid_uuid_t;
 
-#undef NI_PACKED
 
 typedef struct ni_duid_map	ni_duid_map_t;
 
diff --git a/src/fsm.c b/src/fsm.c
index 603e8b44..caadd9b9 100644
--- a/src/fsm.c
+++ b/src/fsm.c
@@ -26,6 +26,7 @@
 #include <wicked/client.h>
 #include <wicked/bridge.h>
 #include <wicked/ovs.h>
+#include <wicked/compiler.h>
 #include <xml-schema.h>
 
 #include "dbus-objects/model.h"
@@ -2910,7 +2911,7 @@ ni_ifworker_type_from_object_path(const char *path, const char **suffix)
 unsigned int
 ni_fsm_get_matching_workers(ni_fsm_t *fsm, ni_ifmatcher_t *match, ni_ifworker_array_t *result)
 {
-	void (*logit)(const char *, ...) __fmtattr;
+	void (*logit)(const char *, ...) ni__printf(1, 2);
 	unsigned int i;
 
 	if (ni_string_eq(match->name, "all")) {
diff --git a/testing/wunit.h b/testing/wunit.h
index af79826f..84f14223 100644
--- a/testing/wunit.h
+++ b/testing/wunit.h
@@ -43,6 +43,7 @@
 #include <string.h>
 #include <wicked/logging.h>
 #include <wicked/util.h>
+#include <wicked/compiler.h>
 
 typedef struct wunit_s wunit_t;
 typedef void (*wunit_test_fn)();
@@ -60,7 +61,7 @@ struct wunit_s {
 	*current;
 };
 
-__attribute__((unused)) static wunit_t wunit_ctx = {
+ni__unused static wunit_t wunit_ctx = {
 	.testcases_idx = 0,
 	.fail = 0,
 	.ok = 0,
@@ -110,7 +111,7 @@ __attribute__((unused)) static wunit_t wunit_ctx = {
 
 #define TESTCASE(ts_name)								\
 	static void testcase_##ts_name(void);						\
-	static void wunit_register_##ts_name(void)     __attribute__((constructor));	\
+	static void wunit_register_##ts_name(void)	ni__constructor;		\
 	static void wunit_register_##ts_name(void)					\
 	{										\
 		unsigned int i = wunit_ctx.testcases_idx;				\
-- 
2.35.3


From c273e4f26650059b69c097c671b7bfb8c1018068 Mon Sep 17 00:00:00 2001
From: Clemens Famulla-Conrad <cfamullaconrad@suse.de>
Date: Tue, 19 Mar 2024 10:16:03 +0100
Subject: [PATCH 2/3] wunit.h: add header guard macros

---
 testing/wunit.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/testing/wunit.h b/testing/wunit.h
index 84f14223..6fb31d60 100644
--- a/testing/wunit.h
+++ b/testing/wunit.h
@@ -38,6 +38,9 @@
  *		make check
  */
 
+#ifndef NI_TESTING_WUNIT_H
+#define NI_TESTING_WUNIT_H
+
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -151,3 +154,5 @@ ni__unused static wunit_t wunit_ctx = {
 											\
 		return wunit_ctx.fail > 0 ? 1 : 0;					\
 	}
+
+#endif /* NI_TESTING_WUNIT_H */
-- 
2.35.3


From 4847702c1872661e80e5802cbf8405c033d310ec Mon Sep 17 00:00:00 2001
From: Clemens Famulla-Conrad <cfamullaconrad@suse.de>
Date: Tue, 19 Mar 2024 10:16:03 +0100
Subject: [PATCH 3/3] logging.h: align header guard macro

---
 include/wicked/logging.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/wicked/logging.h b/include/wicked/logging.h
index db8874a5..4938450e 100644
--- a/include/wicked/logging.h
+++ b/include/wicked/logging.h
@@ -4,8 +4,8 @@
  * Copyright (C) 2010-2012 Olaf Kirch <okir@suse.de>
  */
 
-#ifndef __WICKED_LOGGING_H__
-#define __WICKED_LOGGING_H__
+#ifndef NI_WICKED_LOGGING_H
+#define NI_WICKED_LOGGING_H
 
 #include <wicked/types.h>
 #include <wicked/compiler.h>
@@ -143,4 +143,4 @@ extern unsigned int	ni_log_level;
 		__warned = 1; \
 	} while (0)
 
-#endif /* __WICKED_LOGGING_H__ */
+#endif /* NI_WICKED_LOGGING_H */
-- 
2.35.3

openSUSE Build Service is sponsored by