diff options
Diffstat (limited to 'package/open-lldp/0002-get-inline-functions-work-with-both-gnu11-and-gnu89.patch')
-rw-r--r-- | package/open-lldp/0002-get-inline-functions-work-with-both-gnu11-and-gnu89.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/package/open-lldp/0002-get-inline-functions-work-with-both-gnu11-and-gnu89.patch b/package/open-lldp/0002-get-inline-functions-work-with-both-gnu11-and-gnu89.patch new file mode 100644 index 0000000000..57a23b2a70 --- /dev/null +++ b/package/open-lldp/0002-get-inline-functions-work-with-both-gnu11-and-gnu89.patch @@ -0,0 +1,73 @@ +From e186ca9ebda181f62504a1922559ef3ddae5e3b6 Mon Sep 17 00:00:00 2001 +From: Laurent Charpentier <laurent_pubs@yahoo.com> +Date: Mon, 15 Jan 2018 11:24:45 +0100 +Subject: [PATCH] get inline functions work with both gnu11 and gnu89 + +After gcc upgraded to gcc5, and if the codes are compiled without optimization(-O0), and the below error will happen: + +./include/lldp_8021qaz.h:237:12: error: inline function 'ieee8021qaz_clif_cmd' declared but never defined [-Werror] + inline int ieee8021qaz_clif_cmd(void *data, struct sockaddr_un *from, + ^ +./include/lldp_8021qaz.h:222:13: error: inline function 'set_prio_map' declared but never defined [-Werror] + inline void set_prio_map(u32 *prio_map, u8 prio, int tc); + ^ +./include/lldp_8021qaz.h:221:12: error: inline function 'get_prio_map' declared but never defined [-Werror] + inline int get_prio_map(u32 prio_map, int tc); + +gcc5 defaults to -std=gnu11 instead of -std=gnu89, and it requires that exactly one C source file has the callable copy of the inline function. + +Signed-off-by: Laurent Charpentier <laurent_pubs@yahoo.com> +--- + include/lldp_8021qaz.h | 6 ------ + lldp_8021qaz.c | 4 ++-- + 2 files changed, 2 insertions(+), 8 deletions(-) + +diff --git a/include/lldp_8021qaz.h b/include/lldp_8021qaz.h +index 55353b8..09dee20 100644 +--- a/include/lldp_8021qaz.h ++++ b/include/lldp_8021qaz.h +@@ -218,9 +218,6 @@ int ieee8021qaz_mod_app(struct app_tlv_head *head, int peer, + u8 prio, u8 sel, u16 proto, u32 ops); + int ieee8021qaz_app_sethw(char *ifname, struct app_tlv_head *head); + +-inline int get_prio_map(u32 prio_map, int tc); +-inline void set_prio_map(u32 *prio_map, u8 prio, int tc); +- + struct ieee8021qaz_tlvs *ieee8021qaz_data(const char *); + + int ieee8021qaz_tlvs_rxed(const char *ifname); +@@ -234,9 +231,6 @@ int ieee8021qaz_rchange(struct port *port, struct lldp_agent *, + void ieee8021qaz_ifup(char *ifname, struct lldp_agent *); + void ieee8021qaz_ifdown(char *ifname, struct lldp_agent *); + u8 ieee8021qaz_mibDeleteObject(struct port *port, struct lldp_agent *); +-inline int ieee8021qaz_clif_cmd(void *data, struct sockaddr_un *from, +- socklen_t fromlen, char *ibuf, int ilen, +- char *rbuf); + int ieee8021qaz_check_operstate(void); + int get_dcbx_hw(const char *ifname, __u8 *dcbx); + +diff --git a/lldp_8021qaz.c b/lldp_8021qaz.c +index 094676d..f154317 100644 +--- a/lldp_8021qaz.c ++++ b/lldp_8021qaz.c +@@ -396,7 +396,7 @@ static int read_cfg_file(char *ifname, struct lldp_agent *agent, + return 0; + } + +-inline int get_prio_map(u32 prio_map, int prio) ++static inline int get_prio_map(u32 prio_map, int prio) + { + if (prio > 7) + return 0; +@@ -404,7 +404,7 @@ inline int get_prio_map(u32 prio_map, int prio) + return (prio_map >> (4 * (7-prio))) & 0xF; + } + +-inline void set_prio_map(u32 *prio_map, u8 prio, int tc) ++static inline void set_prio_map(u32 *prio_map, u8 prio, int tc) + { + u32 mask = ~(0xffffffff & (0xF << (4 * (7-prio)))); + *prio_map &= mask; +-- +2.14.3 + |