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