xref: /OK3568_Linux_fs/buildroot/package/socketcand/0001-Fix-GCC10-build-failure.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1From ae0af080058a576d62c72ffc011d644d0b4dcb98 Mon Sep 17 00:00:00 2001
2From: Yegor Yefremov <yegorslists@googlemail.com>
3Date: Tue, 7 Jul 2020 19:39:41 +0200
4Subject: [PATCH] Fix GCC10 build failure (#17)
5
6GCC10 breaks on multiple definitions:
7
8ld: /tmp/ccFiGYO7.o:(.bss+0x114): multiple definition of `tv'; /tmp/cc7f6J5h.o:(.bss+0x80): first defined here
9
10Change the scope of the related variables.
11
12Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
13
14[Retrieved from:
15https://github.com/linux-can/socketcand/commit/ae0af080058a576d62c72ffc011d644d0b4dcb98]
16Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
17---
18 socketcand.c  | 3 ++-
19 state_bcm.c   | 4 ++--
20 state_isotp.c | 2 +-
21 state_raw.c   | 2 +-
22 4 files changed, 6 insertions(+), 5 deletions(-)
23
24diff --git a/socketcand.c b/socketcand.c
25index 8d84754..6125be9 100644
26--- a/socketcand.c
27+++ b/socketcand.c
28@@ -102,7 +102,6 @@ socklen_t unaddrlen;
29 struct sockaddr_un remote_unaddr;
30 socklen_t remote_unaddrlen;
31 char* interface_string;
32-struct ifreq ifr, ifr_brd;
33
34 int state_changed(char *buf, int current_state)
35 {
36@@ -666,6 +665,8 @@ int receive_command(int socket, char *buffer) {
37 }
38
39 void determine_adress() {
40+	struct ifreq ifr, ifr_brd;
41+
42 	int probe_socket = socket(AF_INET, SOCK_DGRAM, 0);
43
44 	if(probe_socket < 0) {
45diff --git a/state_bcm.c b/state_bcm.c
46index cfaa8ed..05a5f7c 100644
47--- a/state_bcm.c
48+++ b/state_bcm.c
49@@ -28,8 +28,6 @@
50 #define RXLEN 128
51
52 int sc = -1;
53-fd_set readfds;
54-struct timeval tv;
55
56 void state_bcm() {
57 	int i, j, ret;
58@@ -38,6 +36,7 @@ void state_bcm() {
59 	struct ifreq ifr;
60 	char rxmsg[RXLEN];
61 	char buf[MAXLEN];
62+	fd_set readfds;
63
64 	struct {
65 		struct bcm_msg_head msg_head;
66@@ -91,6 +90,7 @@ void state_bcm() {
67 	}
68
69 	if (FD_ISSET(sc, &readfds)) {
70+		struct timeval tv;
71
72 		ret = recvfrom(sc, &msg, sizeof(msg), 0,
73 			       (struct sockaddr*)&caddr, &caddrlen);
74diff --git a/state_isotp.c b/state_isotp.c
75index 5c671f9..e1b944b 100644
76--- a/state_isotp.c
77+++ b/state_isotp.c
78@@ -25,7 +25,6 @@
79 #include <linux/sockios.h>
80
81 int si = -1;
82-fd_set readfds;
83
84 void state_isotp() {
85 	int i, items, ret;
86@@ -39,6 +38,7 @@ void state_isotp() {
87 	char buf[MAXLEN]; /* inet commands to can */
88 	unsigned char isobuf[ISOTPLEN+1]; /* binary buffer for isotp socket */
89 	unsigned char tmp;
90+	fd_set readfds;
91
92 	while(previous_state != STATE_ISOTP) {
93
94diff --git a/state_raw.c b/state_raw.c
95index e83e6ec..2c49975 100644
96--- a/state_raw.c
97+++ b/state_raw.c
98@@ -25,7 +25,6 @@
99 int raw_socket;
100 struct ifreq ifr;
101 struct sockaddr_can addr;
102-fd_set readfds;
103 struct msghdr msg;
104 struct can_frame frame;
105 struct iovec iov;
106@@ -36,6 +35,7 @@ struct cmsghdr *cmsg;
107 void state_raw() {
108 	char buf[MAXLEN];
109 	int i, ret, items;
110+	fd_set readfds;
111
112 	if(previous_state != STATE_RAW) {
113
114