summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2022-05-11 17:37:03 +0200
committerThomas Haller <thaller@redhat.com>2022-05-12 15:47:57 +0200
commit5cc31b79dda16cdbd44586adf09ea0f1e80a4b0c (patch)
tree22da9f7c851ee4ca970aad7b0e96ac7b406181c2
parent7de0ba41998d927a9d53a0866110e320e1feb6ad (diff)
libnm: avoid duplicate typedefs for NMClient/NMDevice
clang 3.4.2-9.el7 does not like this: $ clang -DHAVE_CONFIG_H -I. -I.. -I../src/libnm-core-public -I./src/libnm-core-public -I../src/libnm-client-public -I./src/libnm-client-public -pthread -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -Wall -Werror -Wextra -Wdeclaration-after-statement -Wfloat-equal -Wformat-nonliteral -Wformat-security -Wimplicit-function-declaration -Winit-self -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef -Wvla -Wno-duplicate-decl-specifier -Wno-format-y2k -Wno-missing-field-initializers -Wno-sign-compare -Wno-tautological-constant-out-of-range-compare -Wno-unknown-pragmas -Wno-unused-parameter -Qunused-arguments -Wunknown-warning-option -Wtypedef-redefinition -Warray-bounds -Wparentheses-equality -Wunused-value -Wimplicit-fallthrough -fno-strict-aliasing -fdata-sections -ffunction-sections -Wl,--gc-sections -g -O2 -MT examples/C/glib/examples_C_glib_add_connection_libnm-add-connection-libnm.o -MD -MP -MF examples/C/glib/.deps/examples_C_glib_add_connection_libnm-add-connection-libnm.Tpo -c -o examples/C/glib/examples_C_glib_add_connection_libnm-add-connection-libnm.o `test -f 'examples/C/glib/add-connection-libnm.c' || echo '../'`examples/C/glib/add-connection-libnm.c ... ../src/libnm-client-public/nm-client.h:149:31: error: redefinition of typedef 'NMClient' is a C11 feature [-Werror,-Wtypedef-redefinition] typedef struct _NMClient NMClient; ^ Our code base is C11 internally (actually "-std=gnu11"), but this problem happens when we build the example. The warning is actually correct, because our public headers should be more liberal (and possibly be C99 or even C89, this is undefined). Fixes: 649314ddaa4c ('libnm: replace nm-types.h by defining the types in respective headers')
-rw-r--r--src/libnm-client-public/nm-active-connection.h22
-rw-r--r--src/libnm-client-public/nm-object.h6
2 files changed, 15 insertions, 13 deletions
diff --git a/src/libnm-client-public/nm-active-connection.h b/src/libnm-client-public/nm-active-connection.h
index 5aba2fff74..5c3148269a 100644
--- a/src/libnm-client-public/nm-active-connection.h
+++ b/src/libnm-client-public/nm-active-connection.h
@@ -43,8 +43,6 @@ G_BEGIN_DECLS
#define NM_ACTIVE_CONNECTION_VPN "vpn"
#define NM_ACTIVE_CONNECTION_MASTER "master"
-typedef struct _NMDevice NMDevice;
-
/**
* NMActiveConnection:
*/
@@ -64,14 +62,18 @@ NM_AVAILABLE_IN_1_10
NMActivationStateFlags nm_active_connection_get_state_flags(NMActiveConnection *connection);
NM_AVAILABLE_IN_1_8
NMActiveConnectionStateReason nm_active_connection_get_state_reason(NMActiveConnection *connection);
-NMDevice *nm_active_connection_get_master(NMActiveConnection *connection);
-gboolean nm_active_connection_get_default(NMActiveConnection *connection);
-NMIPConfig *nm_active_connection_get_ip4_config(NMActiveConnection *connection);
-NMDhcpConfig *nm_active_connection_get_dhcp4_config(NMActiveConnection *connection);
-gboolean nm_active_connection_get_default6(NMActiveConnection *connection);
-NMIPConfig *nm_active_connection_get_ip6_config(NMActiveConnection *connection);
-NMDhcpConfig *nm_active_connection_get_dhcp6_config(NMActiveConnection *connection);
-gboolean nm_active_connection_get_vpn(NMActiveConnection *connection);
+
+struct _NMDevice;
+
+struct _NMDevice *nm_active_connection_get_master(NMActiveConnection *connection);
+
+gboolean nm_active_connection_get_default(NMActiveConnection *connection);
+NMIPConfig *nm_active_connection_get_ip4_config(NMActiveConnection *connection);
+NMDhcpConfig *nm_active_connection_get_dhcp4_config(NMActiveConnection *connection);
+gboolean nm_active_connection_get_default6(NMActiveConnection *connection);
+NMIPConfig *nm_active_connection_get_ip6_config(NMActiveConnection *connection);
+NMDhcpConfig *nm_active_connection_get_dhcp6_config(NMActiveConnection *connection);
+gboolean nm_active_connection_get_vpn(NMActiveConnection *connection);
G_END_DECLS
diff --git a/src/libnm-client-public/nm-object.h b/src/libnm-client-public/nm-object.h
index 5b3b8b1350..c6daf1e6ca 100644
--- a/src/libnm-client-public/nm-object.h
+++ b/src/libnm-client-public/nm-object.h
@@ -23,8 +23,6 @@ G_BEGIN_DECLS
#define NM_OBJECT_PATH "path"
#define NM_OBJECT_CLIENT "client"
-typedef struct _NMClient NMClient;
-
/**
* NMObject:
*/
@@ -35,8 +33,10 @@ GType nm_object_get_type(void);
const char *nm_object_get_path(NMObject *object);
+struct _NMClient;
+
NM_AVAILABLE_IN_1_24
-NMClient *nm_object_get_client(NMObject *object);
+struct _NMClient *nm_object_get_client(NMObject *object);
G_END_DECLS