From: Jan Janssen Date: Fri, 27 May 2022 19:15:22 +0000 (+0200) Subject: meson: Build header tests with -pedantic X-Git-Tag: v252-rc1~908 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5476cb988c111e91befe5cc6ff5106ce9a003645;p=thirdparty%2Fsystemd.git meson: Build header tests with -pedantic By using __extension__, we can silence pedantic errors we cannot or do not want to fix. This in particular silences: - enum values being outside of int range - variadic macros - long long being C99 - type of bit-field ‘type’ is a GCC extension - use of C99 bool in public header functions --- diff --git a/src/systemd/meson.build b/src/systemd/meson.build index 10a67efbd12..c13e88b5948 100644 --- a/src/systemd/meson.build +++ b/src/systemd/meson.build @@ -86,6 +86,9 @@ foreach header : _systemd_headers + _not_installed_headers + [libudev_h_path] '-Wall', '-Wextra', '-Werror', + '-pedantic', + '-Wno-long-long', + '-Wno-variadic-macros', '-include', meson.current_source_dir() / header, '-o/dev/null', '/dev/null']) diff --git a/src/systemd/sd-bus-vtable.h b/src/systemd/sd-bus-vtable.h index 8b316fac5ac..bed6160042d 100644 --- a/src/systemd/sd-bus-vtable.h +++ b/src/systemd/sd-bus-vtable.h @@ -34,7 +34,7 @@ enum { _SD_BUS_VTABLE_WRITABLE_PROPERTY = 'W' }; -enum { +__extension__ enum { SD_BUS_VTABLE_DEPRECATED = 1ULL << 0, SD_BUS_VTABLE_HIDDEN = 1ULL << 1, SD_BUS_VTABLE_UNPRIVILEGED = 1ULL << 2, @@ -51,7 +51,7 @@ enum { #define SD_BUS_VTABLE_CAPABILITY(x) ((uint64_t) (((x)+1) & 0xFFFF) << 40) enum { - _SD_BUS_VTABLE_PARAM_NAMES = 1 << 0, + _SD_BUS_VTABLE_PARAM_NAMES = 1 << 0 }; extern const unsigned sd_bus_object_vtable_format; @@ -67,8 +67,8 @@ struct sd_bus_vtable { /* Please do not initialize this structure directly, use the * macros below instead */ - uint8_t type:8; - uint64_t flags:56; + __extension__ uint8_t type:8; + __extension__ uint64_t flags:56; union { struct { size_t element_size; diff --git a/src/systemd/sd-bus.h b/src/systemd/sd-bus.h index a07a76170c3..1f3e462a0d2 100644 --- a/src/systemd/sd-bus.h +++ b/src/systemd/sd-bus.h @@ -55,7 +55,7 @@ typedef struct { /* Flags */ -enum { +__extension__ enum { SD_BUS_CREDS_PID = 1ULL << 0, SD_BUS_CREDS_TID = 1ULL << 1, SD_BUS_CREDS_PPID = 1ULL << 2, @@ -94,15 +94,15 @@ enum { _SD_BUS_CREDS_ALL = (1ULL << 34) -1 }; -enum { +__extension__ enum { SD_BUS_NAME_REPLACE_EXISTING = 1ULL << 0, SD_BUS_NAME_ALLOW_REPLACEMENT = 1ULL << 1, SD_BUS_NAME_QUEUE = 1ULL << 2 }; -enum { +__extension__ enum { SD_BUS_MESSAGE_DUMP_WITH_HEADER = 1ULL << 0, - SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY = 1ULL << 1, + SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY = 1ULL << 1 }; /* Callbacks */ diff --git a/src/systemd/sd-device.h b/src/systemd/sd-device.h index 2d122888644..55b0338ffe2 100644 --- a/src/systemd/sd-device.h +++ b/src/systemd/sd-device.h @@ -34,7 +34,7 @@ typedef struct sd_device sd_device; typedef struct sd_device_enumerator sd_device_enumerator; typedef struct sd_device_monitor sd_device_monitor; -typedef enum sd_device_action_t { +__extension__ typedef enum sd_device_action_t { SD_DEVICE_ADD, SD_DEVICE_REMOVE, SD_DEVICE_CHANGE, @@ -45,7 +45,7 @@ typedef enum sd_device_action_t { SD_DEVICE_UNBIND, _SD_DEVICE_ACTION_MAX, _SD_DEVICE_ACTION_INVALID = -EINVAL, - _SD_ENUM_FORCE_S64(DEVICE_ACTION), + _SD_ENUM_FORCE_S64(DEVICE_ACTION) } sd_device_action_t; /* callback */ diff --git a/src/systemd/sd-dhcp-client.h b/src/systemd/sd-dhcp-client.h index 20c1894aaa1..da0d9d2b8be 100644 --- a/src/systemd/sd-dhcp-client.h +++ b/src/systemd/sd-dhcp-client.h @@ -40,8 +40,8 @@ enum { SD_DHCP_CLIENT_EVENT_EXPIRED = 3, SD_DHCP_CLIENT_EVENT_RENEW = 4, SD_DHCP_CLIENT_EVENT_SELECTING = 5, - SD_DHCP_CLIENT_EVENT_TRANSIENT_FAILURE = 6, /* Sent when we have not received a reply after the first few attempts. - * The client may want to start acquiring link-local addresses. */ + SD_DHCP_CLIENT_EVENT_TRANSIENT_FAILURE = 6 /* Sent when we have not received a reply after the first few attempts. + * The client may want to start acquiring link-local addresses. */ }; /* https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xhtml#options */ @@ -212,13 +212,13 @@ enum { SD_DHCP_OPTION_PRIVATE_CLASSLESS_STATIC_ROUTE = 249, /* [RFC7844] */ SD_DHCP_OPTION_PRIVATE_PROXY_AUTODISCOVERY = 252, /* [RFC7844] */ SD_DHCP_OPTION_PRIVATE_LAST = 254, - SD_DHCP_OPTION_END = 255, /* [RFC2132] */ + SD_DHCP_OPTION_END = 255 /* [RFC2132] */ }; /* Suboptions for SD_DHCP_OPTION_RELAY_AGENT_INFORMATION option */ enum { SD_DHCP_RELAY_AGENT_CIRCUIT_ID = 1, - SD_DHCP_RELAY_AGENT_REMOTE_ID = 2, + SD_DHCP_RELAY_AGENT_REMOTE_ID = 2 }; typedef struct sd_dhcp_client sd_dhcp_client; @@ -256,14 +256,14 @@ int sd_dhcp_client_set_client_id( uint8_t type, const uint8_t *data, size_t data_len); -int sd_dhcp_client_set_iaid_duid( +__extension__ int sd_dhcp_client_set_iaid_duid( sd_dhcp_client *client, bool iaid_set, uint32_t iaid, uint16_t duid_type, const void *duid, size_t duid_len); -int sd_dhcp_client_set_iaid_duid_llt( +__extension__ int sd_dhcp_client_set_iaid_duid_llt( sd_dhcp_client *client, bool iaid_set, uint32_t iaid, diff --git a/src/systemd/sd-dhcp-lease.h b/src/systemd/sd-dhcp-lease.h index 578ac6d4db7..2a7e720fea5 100644 --- a/src/systemd/sd-dhcp-lease.h +++ b/src/systemd/sd-dhcp-lease.h @@ -34,7 +34,7 @@ typedef struct sd_dhcp_route sd_dhcp_route; sd_dhcp_lease *sd_dhcp_lease_ref(sd_dhcp_lease *lease); sd_dhcp_lease *sd_dhcp_lease_unref(sd_dhcp_lease *lease); -typedef enum sd_dhcp_lease_server_type_t { +__extension__ typedef enum sd_dhcp_lease_server_type_t { SD_DHCP_LEASE_DNS, SD_DHCP_LEASE_NTP, SD_DHCP_LEASE_SIP, @@ -43,7 +43,7 @@ typedef enum sd_dhcp_lease_server_type_t { SD_DHCP_LEASE_LPR, _SD_DHCP_LEASE_SERVER_TYPE_MAX, _SD_DHCP_LEASE_SERVER_TYPE_INVALID = -EINVAL, - _SD_ENUM_FORCE_S64(DHCP_LEASE_SERVER_TYPE), + _SD_ENUM_FORCE_S64(DHCP_LEASE_SERVER_TYPE) } sd_dhcp_lease_server_type_t; int sd_dhcp_lease_get_address(sd_dhcp_lease *lease, struct in_addr *addr); diff --git a/src/systemd/sd-dhcp-server.h b/src/systemd/sd-dhcp-server.h index 371834dd8da..a8ca76d2ae3 100644 --- a/src/systemd/sd-dhcp-server.h +++ b/src/systemd/sd-dhcp-server.h @@ -32,7 +32,7 @@ _SD_BEGIN_DECLARATIONS; typedef struct sd_dhcp_server sd_dhcp_server; enum { - SD_DHCP_SERVER_EVENT_LEASE_CHANGED = 1 << 0, + SD_DHCP_SERVER_EVENT_LEASE_CHANGED = 1 << 0 }; int sd_dhcp_server_new(sd_dhcp_server **ret, int ifindex); diff --git a/src/systemd/sd-dhcp6-client.h b/src/systemd/sd-dhcp6-client.h index 9d6b99ca307..77139a664b5 100644 --- a/src/systemd/sd-dhcp6-client.h +++ b/src/systemd/sd-dhcp6-client.h @@ -36,7 +36,7 @@ enum { SD_DHCP6_CLIENT_EVENT_RESEND_EXPIRE = 10, SD_DHCP6_CLIENT_EVENT_RETRANS_MAX = 11, SD_DHCP6_CLIENT_EVENT_IP_ACQUIRE = 12, - SD_DHCP6_CLIENT_EVENT_INFORMATION_REQUEST = 13, + SD_DHCP6_CLIENT_EVENT_INFORMATION_REQUEST = 13 }; /* https://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml#dhcpv6-parameters-2 */ @@ -183,7 +183,7 @@ enum { SD_DHCP6_OPTION_SLAP_QUAD = 140, /* RFC 8948 */ SD_DHCP6_OPTION_V6_DOTS_RI = 141, /* RFC 8973 */ SD_DHCP6_OPTION_V6_DOTS_ADDRESS = 142, /* RFC 8973 */ - SD_DHCP6_OPTION_IPV6_ADDRESS_ANDSF = 143, /* RFC 6153 */ + SD_DHCP6_OPTION_IPV6_ADDRESS_ANDSF = 143 /* RFC 6153 */ /* option codes 144-65535 are unassigned */ }; diff --git a/src/systemd/sd-ipv4acd.h b/src/systemd/sd-ipv4acd.h index 90d3f0a0d11..24a0bab7e4e 100644 --- a/src/systemd/sd-ipv4acd.h +++ b/src/systemd/sd-ipv4acd.h @@ -31,7 +31,7 @@ _SD_BEGIN_DECLARATIONS; enum { SD_IPV4ACD_EVENT_STOP = 0, SD_IPV4ACD_EVENT_BIND = 1, - SD_IPV4ACD_EVENT_CONFLICT = 2, + SD_IPV4ACD_EVENT_CONFLICT = 2 }; typedef struct sd_ipv4acd sd_ipv4acd; @@ -50,7 +50,7 @@ int sd_ipv4acd_set_ifname(sd_ipv4acd *acd, const char *interface_name); int sd_ipv4acd_get_ifname(sd_ipv4acd *acd, const char **ret); int sd_ipv4acd_set_address(sd_ipv4acd *acd, const struct in_addr *address); int sd_ipv4acd_is_running(sd_ipv4acd *acd); -int sd_ipv4acd_start(sd_ipv4acd *acd, bool reset_conflicts); +__extension__ int sd_ipv4acd_start(sd_ipv4acd *acd, bool reset_conflicts); int sd_ipv4acd_stop(sd_ipv4acd *acd); sd_ipv4acd *sd_ipv4acd_ref(sd_ipv4acd *acd); sd_ipv4acd *sd_ipv4acd_unref(sd_ipv4acd *acd); diff --git a/src/systemd/sd-ipv4ll.h b/src/systemd/sd-ipv4ll.h index ed014b53f22..58f6f169ecf 100644 --- a/src/systemd/sd-ipv4ll.h +++ b/src/systemd/sd-ipv4ll.h @@ -31,7 +31,7 @@ _SD_BEGIN_DECLARATIONS; enum { SD_IPV4LL_EVENT_STOP = 0, SD_IPV4LL_EVENT_BIND = 1, - SD_IPV4LL_EVENT_CONFLICT = 2, + SD_IPV4LL_EVENT_CONFLICT = 2 }; typedef struct sd_ipv4ll sd_ipv4ll; diff --git a/src/systemd/sd-lldp-rx.h b/src/systemd/sd-lldp-rx.h index bfeac14ce3e..fbbe7dc22a4 100644 --- a/src/systemd/sd-lldp-rx.h +++ b/src/systemd/sd-lldp-rx.h @@ -32,14 +32,14 @@ _SD_BEGIN_DECLARATIONS; typedef struct sd_lldp_rx sd_lldp_rx; typedef struct sd_lldp_neighbor sd_lldp_neighbor; -typedef enum sd_lldp_rx_event_t { +__extension__ typedef enum sd_lldp_rx_event_t { SD_LLDP_RX_EVENT_ADDED, SD_LLDP_RX_EVENT_REMOVED, SD_LLDP_RX_EVENT_UPDATED, SD_LLDP_RX_EVENT_REFRESHED, _SD_LLDP_RX_EVENT_MAX, _SD_LLDP_RX_EVENT_INVALID = -EINVAL, - _SD_ENUM_FORCE_S64(LLDP_RX_EVENT), + _SD_ENUM_FORCE_S64(LLDP_RX_EVENT) } sd_lldp_rx_event_t; typedef void (*sd_lldp_rx_callback_t)(sd_lldp_rx *lldp_rx, sd_lldp_rx_event_t event, sd_lldp_neighbor *n, void *userdata); diff --git a/src/systemd/sd-lldp-tx.h b/src/systemd/sd-lldp-tx.h index 97ecd5e181b..349a2716eb3 100644 --- a/src/systemd/sd-lldp-tx.h +++ b/src/systemd/sd-lldp-tx.h @@ -31,13 +31,13 @@ _SD_BEGIN_DECLARATIONS; typedef struct sd_lldp_tx sd_lldp_tx; -typedef enum sd_lldp_multicast_mode_t { +__extension__ typedef enum sd_lldp_multicast_mode_t { SD_LLDP_MULTICAST_MODE_NEAREST_BRIDGE, SD_LLDP_MULTICAST_MODE_NON_TPMR_BRIDGE, SD_LLDP_MULTICAST_MODE_CUSTOMER_BRIDGE, _SD_LLDP_MULTICAST_MODE_MAX, _SD_LLDP_MULTICAST_MODE_INVALID = -EINVAL, - _SD_ENUM_FORCE_S64(LLDP_TX_MODE), + _SD_ENUM_FORCE_S64(LLDP_TX_MODE) } sd_lldp_multicast_mode_t; int sd_lldp_tx_new(sd_lldp_tx **ret); diff --git a/src/systemd/sd-lldp.h b/src/systemd/sd-lldp.h index c32d7894764..b55c5512f93 100644 --- a/src/systemd/sd-lldp.h +++ b/src/systemd/sd-lldp.h @@ -34,7 +34,7 @@ enum { SD_LLDP_TYPE_SYSTEM_DESCRIPTION = 6, SD_LLDP_TYPE_SYSTEM_CAPABILITIES = 7, SD_LLDP_TYPE_MGMT_ADDRESS = 8, - SD_LLDP_TYPE_PRIVATE = 127, + SD_LLDP_TYPE_PRIVATE = 127 }; /* IEEE 802.1AB-2009 Clause 8.5.2: Chassis subtypes */ @@ -46,7 +46,7 @@ enum { SD_LLDP_CHASSIS_SUBTYPE_MAC_ADDRESS = 4, SD_LLDP_CHASSIS_SUBTYPE_NETWORK_ADDRESS = 5, SD_LLDP_CHASSIS_SUBTYPE_INTERFACE_NAME = 6, - SD_LLDP_CHASSIS_SUBTYPE_LOCALLY_ASSIGNED = 7, + SD_LLDP_CHASSIS_SUBTYPE_LOCALLY_ASSIGNED = 7 }; /* IEEE 802.1AB-2009 Clause 8.5.3: Port subtype */ @@ -58,7 +58,7 @@ enum { SD_LLDP_PORT_SUBTYPE_NETWORK_ADDRESS = 4, SD_LLDP_PORT_SUBTYPE_INTERFACE_NAME = 5, SD_LLDP_PORT_SUBTYPE_AGENT_CIRCUIT_ID = 6, - SD_LLDP_PORT_SUBTYPE_LOCALLY_ASSIGNED = 7, + SD_LLDP_PORT_SUBTYPE_LOCALLY_ASSIGNED = 7 }; /* IEEE 802.1AB-2009 Clause 8.5.8: System capabilities */ @@ -73,7 +73,7 @@ enum { SD_LLDP_SYSTEM_CAPABILITIES_STATION = 1 << 7, SD_LLDP_SYSTEM_CAPABILITIES_CVLAN = 1 << 8, SD_LLDP_SYSTEM_CAPABILITIES_SVLAN = 1 << 9, - SD_LLDP_SYSTEM_CAPABILITIES_TPMR = 1 << 10, + SD_LLDP_SYSTEM_CAPABILITIES_TPMR = 1 << 10 }; #define SD_LLDP_SYSTEM_CAPABILITIES_ALL UINT16_MAX @@ -107,7 +107,7 @@ enum { SD_LLDP_OUI_802_1_SUBTYPE_PROTOCOL_IDENTITY = 4, SD_LLDP_OUI_802_1_SUBTYPE_VID_USAGE_DIGEST = 5, SD_LLDP_OUI_802_1_SUBTYPE_MANAGEMENT_VID = 6, - SD_LLDP_OUI_802_1_SUBTYPE_LINK_AGGREGATION = 7, + SD_LLDP_OUI_802_1_SUBTYPE_LINK_AGGREGATION = 7 }; /* IEEE 802.1AB-2009 Annex F */ @@ -115,7 +115,7 @@ enum { SD_LLDP_OUI_802_3_SUBTYPE_MAC_PHY_CONFIG_STATUS = 1, SD_LLDP_OUI_802_3_SUBTYPE_POWER_VIA_MDI = 2, SD_LLDP_OUI_802_3_SUBTYPE_LINK_AGGREGATION = 3, - SD_LLDP_OUI_802_3_SUBTYPE_MAXIMUM_FRAME_SIZE = 4, + SD_LLDP_OUI_802_3_SUBTYPE_MAXIMUM_FRAME_SIZE = 4 }; _SD_END_DECLARATIONS; diff --git a/src/systemd/sd-ndisc.h b/src/systemd/sd-ndisc.h index d39a6ddb310..8d457a51e71 100644 --- a/src/systemd/sd-ndisc.h +++ b/src/systemd/sd-ndisc.h @@ -42,25 +42,25 @@ enum { SD_NDISC_OPTION_RDNSS = 25, SD_NDISC_OPTION_FLAGS_EXTENSION = 26, SD_NDISC_OPTION_DNSSL = 31, - SD_NDISC_OPTION_CAPTIVE_PORTAL = 37, + SD_NDISC_OPTION_CAPTIVE_PORTAL = 37 }; /* Route preference, RFC 4191, Section 2.1 */ enum { SD_NDISC_PREFERENCE_LOW = 3U, SD_NDISC_PREFERENCE_MEDIUM = 0U, - SD_NDISC_PREFERENCE_HIGH = 1U, + SD_NDISC_PREFERENCE_HIGH = 1U }; typedef struct sd_ndisc sd_ndisc; typedef struct sd_ndisc_router sd_ndisc_router; -typedef enum sd_ndisc_event_t { +__extension__ typedef enum sd_ndisc_event_t { SD_NDISC_EVENT_TIMEOUT, SD_NDISC_EVENT_ROUTER, _SD_NDISC_EVENT_MAX, _SD_NDISC_EVENT_INVALID = -EINVAL, - _SD_ENUM_FORCE_S64(NDISC_EVENT), + _SD_ENUM_FORCE_S64(NDISC_EVENT) } sd_ndisc_event_t; typedef void (*sd_ndisc_callback_t)(sd_ndisc *nd, sd_ndisc_event_t event, sd_ndisc_router *rt, void *userdata); diff --git a/src/systemd/sd-path.h b/src/systemd/sd-path.h index 5f2f03c27be..80c2a672ec1 100644 --- a/src/systemd/sd-path.h +++ b/src/systemd/sd-path.h @@ -110,7 +110,7 @@ enum { /* systemd-networkd search paths */ SD_PATH_SYSTEMD_SEARCH_NETWORK, - _SD_PATH_MAX, + _SD_PATH_MAX }; int sd_path_lookup(uint64_t type, const char *suffix, char **path); diff --git a/src/systemd/sd-resolve.h b/src/systemd/sd-resolve.h index 530bfd516e9..96b974306d6 100644 --- a/src/systemd/sd-resolve.h +++ b/src/systemd/sd-resolve.h @@ -47,7 +47,7 @@ typedef _sd_destroy_t sd_resolve_destroy_t; enum { SD_RESOLVE_GET_HOST = 1 << 0, SD_RESOLVE_GET_SERVICE = 1 << 1, - SD_RESOLVE_GET_BOTH = SD_RESOLVE_GET_HOST | SD_RESOLVE_GET_SERVICE, + SD_RESOLVE_GET_BOTH = SD_RESOLVE_GET_HOST | SD_RESOLVE_GET_SERVICE }; int sd_resolve_default(sd_resolve **ret);