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

