From 09e5e3dbdd4eade0190bb2bd303115dbb4336f9b Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Thu, 20 Aug 2020 19:06:41 +0200 Subject: [PATCH] package/igd2-for-linux: fix build with gcc 10 Fixes: - http://autobuild.buildroot.org/results/f296984c3851fc28341210e36ef1b55b2edac209 Signed-off-by: Fabrice Fontaine Signed-off-by: Thomas Petazzoni --- .../0001-fix-build-with-gcc-10.patch | 199 ++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 package/igd2-for-linux/0001-fix-build-with-gcc-10.patch diff --git a/package/igd2-for-linux/0001-fix-build-with-gcc-10.patch b/package/igd2-for-linux/0001-fix-build-with-gcc-10.patch new file mode 100644 index 0000000000..32474a3adb --- /dev/null +++ b/package/igd2-for-linux/0001-fix-build-with-gcc-10.patch @@ -0,0 +1,199 @@ +From 23ed73623810a0894c8efd9eb79dd38483794a3b Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Thu, 20 Aug 2020 18:17:03 +0200 +Subject: [PATCH] fix build with gcc 10 + +This will fix build failures with -fno-common which is enabled by +default with gcc 10 + +Fixes: + - http://autobuild.buildroot.org/results/f296984c3851fc28341210e36ef1b55b2edac209 + +Signed-off-by: Fabrice Fontaine +[Retrieved from: +https://github.com/Orange-OpenSource/igd2-for-linux/commit/23ed73623810a0894c8efd9eb79dd38483794a3b] +Signed-off-by: Fabrice Fontaine +--- + linuxigd2/src/gatedevice.c | 37 +++++++++++++++++++++++++++++++++ + linuxigd2/src/gatedevice.h | 42 +++++++++----------------------------- + linuxigd2/src/pinholev6.c | 2 ++ + linuxigd2/src/pinholev6.h | 2 +- + linuxigd2/src/pmlist.c | 5 +++++ + linuxigd2/src/pmlist.h | 2 +- + linuxigd2/src/wanipv6fw.h | 3 --- + 7 files changed, 56 insertions(+), 37 deletions(-) + +diff --git a/linuxigd2/src/gatedevice.c b/linuxigd2/src/gatedevice.c +index 8be53e5..a50525d 100644 +--- a/linuxigd2/src/gatedevice.c ++++ b/linuxigd2/src/gatedevice.c +@@ -41,6 +41,43 @@ + #include "wanipv6fw.h" + #include "config.h" + ++// Thread which contains all kind of timers and threads used in gatedevice.c and deviceprotection.c ++TimerThread gExpirationTimerThread; ++ ++// IGD Device Globals ++UpnpDevice_Handle deviceHandle; ++UpnpDevice_Handle deviceHandleIPv6; ++UpnpDevice_Handle deviceHandleIPv6UlaGua; ++char *gateUDN; ++char *wanUDN; ++char *wanConnectionUDN; ++char *lanUDN; ++long int startup_time; ++unsigned long connection_stats[STATS_LIMIT]; // this is used for defining if connection is in idling ++long int idle_time; ++ ++// State Variables ++char ConnectionType[50]; ++char PossibleConnectionTypes[50]; ++char ConnectionStatus[20]; ++char LastConnectionError[35]; ++long int AutoDisconnectTime; ++long int IdleDisconnectTime; ++long int WarnDisconnectDelay; ++int RSIPAvailable; ++int NATEnabled; ++char ExternalIPAddress[INET6_ADDRSTRLEN]; ++int PortMappingNumberOfEntries; ++int PortMappingEnabled; ++char RemoteHost[INET6_ADDRSTRLEN]; // updated IPv6 addrss length 16 -> 46 ++long int SystemUpdateID; ++ ++// WANEthLinkConfig state variables ++char EthernetLinkStatus[12]; ++ ++char FirewallEnabled[2]; ++char InboundPinholeAllowed[2]; ++ + //Definitions for mapping expiration timer thread + static ThreadPool gExpirationThreadPool; + static ThreadPoolJob gEventUpdateJob; +diff --git a/linuxigd2/src/gatedevice.h b/linuxigd2/src/gatedevice.h +index 28d6b21..dbaa0c2 100644 +--- a/linuxigd2/src/gatedevice.h ++++ b/linuxigd2/src/gatedevice.h +@@ -33,42 +33,20 @@ + #include "util.h" + + // Thread which contains all kind of timers and threads used in gatedevice.c and deviceprotection.c +-TimerThread gExpirationTimerThread; ++extern TimerThread gExpirationTimerThread; + + // IGD Device Globals +-UpnpDevice_Handle deviceHandle; +-UpnpDevice_Handle deviceHandleIPv6; +-UpnpDevice_Handle deviceHandleIPv6UlaGua; +-char *gateUDN; +-char *wanUDN; +-char *wanConnectionUDN; +-char *lanUDN; +-long int startup_time; +-unsigned long connection_stats[STATS_LIMIT]; // this is used for defining if connection is in idling +-long int idle_time; +- +-// State Variables +-char ConnectionType[50]; +-char PossibleConnectionTypes[50]; +-char ConnectionStatus[20]; +-char LastConnectionError[35]; +-long int AutoDisconnectTime; +-long int IdleDisconnectTime; +-long int WarnDisconnectDelay; +-int RSIPAvailable; +-int NATEnabled; +-char ExternalIPAddress[INET6_ADDRSTRLEN]; +-int PortMappingNumberOfEntries; +-int PortMappingEnabled; +-char RemoteHost[INET6_ADDRSTRLEN]; // updated IPv6 addrss length 16 -> 46 +-long int SystemUpdateID; +- +-// WANEthLinkConfig state variables +-char EthernetLinkStatus[12]; ++extern UpnpDevice_Handle deviceHandle; ++extern UpnpDevice_Handle deviceHandleIPv6; ++extern UpnpDevice_Handle deviceHandleIPv6UlaGua; ++extern char *gateUDN; ++extern char *wanUDN; ++extern char *wanConnectionUDN; ++extern char *lanUDN; + + // Linked list for portmapping entries +-struct portMap *pmlist_Head; +-struct portMap *pmlist_Current; ++extern struct portMap *pmlist_Head; ++extern struct portMap *pmlist_Current; + + // WanIPConnection Actions + int EventHandler(Upnp_EventType EventType, void *Event, void *Cookie); +diff --git a/linuxigd2/src/pinholev6.c b/linuxigd2/src/pinholev6.c +index 44e8a19..78f886d 100644 +--- a/linuxigd2/src/pinholev6.c ++++ b/linuxigd2/src/pinholev6.c +@@ -41,6 +41,8 @@ extern "C" { + #include "gatedevice.h" + #include "pinholev6.h" + ++struct pinholev6 *ph_first; ++ + static const char * add_rule_str = "ip6tables -I %s " //upnp forward chain + "-i %s " //input interface + "-o %s " //output interface +diff --git a/linuxigd2/src/pinholev6.h b/linuxigd2/src/pinholev6.h +index 295b9f9..353ae27 100644 +--- a/linuxigd2/src/pinholev6.h ++++ b/linuxigd2/src/pinholev6.h +@@ -37,7 +37,7 @@ struct pinholev6 { + + struct pinholev6 *next; + +-} *ph_first; ++}; + + struct phv6_expirationEvent + { +diff --git a/linuxigd2/src/pmlist.c b/linuxigd2/src/pmlist.c +index 1b3fe05..95d0c61 100644 +--- a/linuxigd2/src/pmlist.c ++++ b/linuxigd2/src/pmlist.c +@@ -41,6 +41,11 @@ + #include "iptc.h" + #endif + ++// Linked list for portmapping entries ++struct portMap *pmlist_Head; ++struct portMap *pmlist_Current; ++struct portMap *pmlist_Tail; ++ + /** + * Create new portMap struct of rule to add iptables. + * portMap-struct is internal presentation of iptables rule in IGD. +diff --git a/linuxigd2/src/pmlist.h b/linuxigd2/src/pmlist.h +index 436d228..017500d 100644 +--- a/linuxigd2/src/pmlist.h ++++ b/linuxigd2/src/pmlist.h +@@ -57,7 +57,7 @@ struct portMap + + struct portMap* next; + struct portMap* prev; +-} *pmlist_Head, *pmlist_Tail, *pmlist_Current; ++}; + + //struct portMap* pmlist_NewNode(void); + struct portMap* pmlist_NewNode(int enabled, long int duration, char *remoteHost, +diff --git a/linuxigd2/src/wanipv6fw.h b/linuxigd2/src/wanipv6fw.h +index 55419fe..a50d267 100644 +--- a/linuxigd2/src/wanipv6fw.h ++++ b/linuxigd2/src/wanipv6fw.h +@@ -46,9 +46,6 @@ extern "C" { + #define ERR_SRC_ADD_WILDCARD 708 + #define ERR_NO_TRAFFIC 709 + +-char FirewallEnabled[2]; +-char InboundPinholeAllowed[2]; +- + //----------------------------------------------------------------------------- + + int InitFirewallv6(void); -- 2.30.2