From 3e024022c3370e94b7002ddd183ac9a622ab89d2 Mon Sep 17 00:00:00 2001 From: Rany Hany Date: Mon, 13 May 2024 16:34:22 +0300 Subject: [PATCH] linux-atm: fix build with GCC 14 Basic changes to make linux-atm build without any issues with GCC 14. Besides some errors caused by -Wpointer-sign, there was also an issue with socklen_t not being used for getsockopt() and accept() sometimes. I also updated the Debian patch to include the latest changes from version "1:2.5.1-5.1" in Debian Sid. This allowed me to drop "600-fix-format-errors.patch" and "700-include_sockios.patch". Signed-off-by: Rany Hany --- package/network/utils/linux-atm/Makefile | 2 +- ...an_16.patch => 000-debian_2.5.1-5.1.patch} | 133 ++++++++++++------ .../510-remove-LINUX_NETDEVICE-hack.patch | 4 +- .../patches/600-fix-format-errors.patch | 11 -- ...l-include.patch => 600-musl-include.patch} | 0 .../patches/700-fix-gcc14-build.patch | 82 +++++++++++ .../patches/800-include_sockios.patch | 21 --- 7 files changed, 176 insertions(+), 77 deletions(-) rename package/network/utils/linux-atm/patches/{000-debian_16.patch => 000-debian_2.5.1-5.1.patch} (87%) delete mode 100644 package/network/utils/linux-atm/patches/600-fix-format-errors.patch rename package/network/utils/linux-atm/patches/{700-musl-include.patch => 600-musl-include.patch} (100%) create mode 100644 package/network/utils/linux-atm/patches/700-fix-gcc14-build.patch delete mode 100644 package/network/utils/linux-atm/patches/800-include_sockios.patch diff --git a/package/network/utils/linux-atm/Makefile b/package/network/utils/linux-atm/Makefile index 43f4b6556b..c48309da9c 100644 --- a/package/network/utils/linux-atm/Makefile +++ b/package/network/utils/linux-atm/Makefile @@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=linux-atm PKG_VERSION:=2.5.2 -PKG_RELEASE:=7 +PKG_RELEASE:=8 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@SF/$(PKG_NAME) diff --git a/package/network/utils/linux-atm/patches/000-debian_16.patch b/package/network/utils/linux-atm/patches/000-debian_2.5.1-5.1.patch similarity index 87% rename from package/network/utils/linux-atm/patches/000-debian_16.patch rename to package/network/utils/linux-atm/patches/000-debian_2.5.1-5.1.patch index 4abaac07e8..27bf6b1ad1 100644 --- a/package/network/utils/linux-atm/patches/000-debian_16.patch +++ b/package/network/utils/linux-atm/patches/000-debian_2.5.1-5.1.patch @@ -1,3 +1,45 @@ +--- a/src/mpoad/mpcd.8 ++++ b/src/mpoad/mpcd.8 +@@ -28,7 +28,7 @@ mpcd \- ATM MPOA (Multi\-Protocol Over A + .B ]] + .SH DESCRIPTION + MPOA client +-.SM(MPC) is responsible for creating and receiving ++.SM (MPC) is responsible for creating and receiving + internetwork layer shortcuts. Using these shortcuts MPCs forward + unicast internetwork layer packets effectively over ATM without need + for routing protocols. +@@ -43,7 +43,7 @@ accepts shortcuts and packets arriving o + shortcuts is done with the help of + .SM MPOA + server +-.SM(MPS). ++.SM (MPS). + .PP + Just as the Linux + .SM LAN +--- a/src/led/zeppelin.8 ++++ b/src/led/zeppelin.8 +@@ -99,7 +99,7 @@ Ring and ATM parts of the ELAN, so using + recommended. Token Ring support has received less testing than its + Ethernet counterpart. + .SH FILES +-.IP \fI/var/run/lec[interface number].pid\fP ++.IP \fI/var/run/lec[interface\ number].pid\fP + The file containing the process id of zeppelin. + .SH BUGS + John Bonham died 1980 and Led Zeppelin broke. +--- a/src/sigd/atmsigd.conf.4 ++++ b/src/sigd/atmsigd.conf.4 +@@ -125,7 +125,7 @@ a comment. The `#' character cannot be e + .P + If an option is specified in \fBatmsigd.conf\fP and on the command + line, the command line has priority. +-.COMPATIBILITY ++.SH COMPATIBILITY + Certain options used by past versions of \fBatmsigd\fP but no longer documented + on the man page are still recognized and supported, but they also yield a + warning message. Future versions of \fBatmsigd\fP will not recognize those --- a/src/arpd/io.c +++ b/src/arpd/io.c @@ -277,7 +277,8 @@ static void accept_new(void) @@ -226,45 +268,52 @@ if (trans) { /* set send socket buffer if we are transmitting */ ---- a/src/mpoad/mpcd.8 -+++ b/src/mpoad/mpcd.8 -@@ -28,7 +28,7 @@ mpcd \- ATM MPOA (Multi\-Protocol Over A - .B ]] - .SH DESCRIPTION - MPOA client --.SM(MPC) is responsible for creating and receiving -+.SM (MPC) is responsible for creating and receiving - internetwork layer shortcuts. Using these shortcuts MPCs forward - unicast internetwork layer packets effectively over ATM without need - for routing protocols. -@@ -43,7 +43,7 @@ accepts shortcuts and packets arriving o - shortcuts is done with the help of - .SM MPOA - server --.SM(MPS). -+.SM (MPS). - .PP - Just as the Linux - .SM LAN ---- a/src/led/zeppelin.8 -+++ b/src/led/zeppelin.8 -@@ -99,7 +99,7 @@ Ring and ATM parts of the ELAN, so using - recommended. Token Ring support has received less testing than its - Ethernet counterpart. - .SH FILES --.IP \fI/var/run/lec[interface number].pid\fP -+.IP \fI/var/run/lec[interface\ number].pid\fP - The file containing the process id of zeppelin. - .SH BUGS - John Bonham died 1980 and Led Zeppelin broke. ---- a/src/sigd/atmsigd.conf.4 -+++ b/src/sigd/atmsigd.conf.4 -@@ -125,7 +125,7 @@ a comment. The `#' character cannot be e - .P - If an option is specified in \fBatmsigd.conf\fP and on the command - line, the command line has priority. --.COMPATIBILITY -+.SH COMPATIBILITY - Certain options used by past versions of \fBatmsigd\fP but no longer documented - on the man page are still recognized and supported, but they also yield a - warning message. Future versions of \fBatmsigd\fP will not recognize those +@@ -663,7 +664,7 @@ int no_check = 0; + exit(0); + + usage: +- fprintf(stderr, Usage); ++ fprintf(stderr, "%s", Usage); + exit(1); + } + +--- a/src/arpd/arp.c ++++ b/src/arpd/arp.c +@@ -17,6 +17,7 @@ + #include /* for ntohs, etc. */ + #define _LINUX_NETDEVICE_H /* very crude hack for glibc2 */ + #include ++#include + #include + #include + #include +--- a/src/arpd/itf.c ++++ b/src/arpd/itf.c +@@ -14,6 +14,7 @@ + #include + #define _LINUX_NETDEVICE_H /* glibc2 */ + #include ++#include + #include + + #include "atmd.h" +--- a/src/maint/atmdump.c ++++ b/src/maint/atmdump.c +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + #include /* for htonl and ntohl */ + #include + +--- a/src/maint/saaldump.c ++++ b/src/maint/saaldump.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + #include + + #include "pdu.h" diff --git a/package/network/utils/linux-atm/patches/510-remove-LINUX_NETDEVICE-hack.patch b/package/network/utils/linux-atm/patches/510-remove-LINUX_NETDEVICE-hack.patch index d76ec1eaf4..c16df18aa9 100644 --- a/package/network/utils/linux-atm/patches/510-remove-LINUX_NETDEVICE-hack.patch +++ b/package/network/utils/linux-atm/patches/510-remove-LINUX_NETDEVICE-hack.patch @@ -28,8 +28,8 @@ in Linux 4.20. #include -#define _LINUX_NETDEVICE_H /* glibc2 */ #include + #include #include - --- a/src/arpd/io.c +++ b/src/arpd/io.c @@ -21,7 +21,6 @@ @@ -48,5 +48,5 @@ in Linux 4.20. #include /* for ntohs, etc. */ -#define _LINUX_NETDEVICE_H /* very crude hack for glibc2 */ #include + #include #include - #include diff --git a/package/network/utils/linux-atm/patches/600-fix-format-errors.patch b/package/network/utils/linux-atm/patches/600-fix-format-errors.patch deleted file mode 100644 index ef484f2fa3..0000000000 --- a/package/network/utils/linux-atm/patches/600-fix-format-errors.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/test/ttcp.c -+++ b/src/test/ttcp.c -@@ -664,7 +664,7 @@ int no_check = 0; - exit(0); - - usage: -- fprintf(stderr, Usage); -+ fprintf(stderr, "%s", Usage); - exit(1); - } - diff --git a/package/network/utils/linux-atm/patches/700-musl-include.patch b/package/network/utils/linux-atm/patches/600-musl-include.patch similarity index 100% rename from package/network/utils/linux-atm/patches/700-musl-include.patch rename to package/network/utils/linux-atm/patches/600-musl-include.patch diff --git a/package/network/utils/linux-atm/patches/700-fix-gcc14-build.patch b/package/network/utils/linux-atm/patches/700-fix-gcc14-build.patch new file mode 100644 index 0000000000..a19dc6c767 --- /dev/null +++ b/package/network/utils/linux-atm/patches/700-fix-gcc14-build.patch @@ -0,0 +1,82 @@ +--- a/src/arpd/io.c ++++ b/src/arpd/io.c +@@ -615,7 +615,7 @@ int ip_itf_info(int number,uint32_t *ip, + int get_local(int fd,struct sockaddr_atmsvc *addr) + { + int result; +- size_t length; ++ socklen_t length; + + length = sizeof(struct sockaddr_atmsvc); + result = getsockname(fd,(struct sockaddr *) addr,&length); +--- a/src/led/conn.c ++++ b/src/led/conn.c +@@ -405,7 +405,7 @@ Conn_t *accept_conn(Conn_t *conn) + { + Conn_t *new; + struct sockaddr_atmsvc addr; +- size_t len; ++ socklen_t len; + int fd; + char buff[MAX_ATM_ADDR_LEN+1]; + +@@ -538,7 +538,7 @@ static int handle_accept(Conn_t *conn) + */ + static int handle_data(Conn_t *conn) + { +- char buff[MAX_CTRL_FRAME]; ++ unsigned char buff[MAX_CTRL_FRAME]; + int retval; + + retval = recv_frame(conn, buff, sizeof(buff)); +--- a/src/led/frames.c ++++ b/src/led/frames.c +@@ -312,7 +312,7 @@ static void handle_ready_ind(Conn_t *con + * dependant handler functions. + * Returns < 0 for serious error + */ +-int handle_frame(Conn_t *conn, char *buff, int size) ++int handle_frame(Conn_t *conn, unsigned char *buff, int size) + { + struct ctrl_frame *frame; + +--- a/src/led/frames.h ++++ b/src/led/frames.h +@@ -13,7 +13,7 @@ int validate_frame(unsigned char *buff, + void send_ready_ind(Conn_t *conn); + void send_register_req(void); + +-int handle_frame(Conn_t *conn, char *buff, int size); ++int handle_frame(Conn_t *conn, unsigned char *buff, int size); + uint32_t send_flush_req(Conn_t *conn); + + void parse_tlvs(uint16_t opcode, unsigned char *tlvp, int numtlvs, int sizeoftlvs); +--- a/src/led/join.c ++++ b/src/led/join.c +@@ -43,7 +43,7 @@ static int read_join_rsp(char *buff, int + static int parse_join_rsp(unsigned char *buff, int size); + + static int get_bus_addr(struct sockaddr_atmsvc *addr); +-static int read_bus_arp(Conn_t *conn, struct sockaddr_atmsvc *addr, char *buff, int buffsize); ++static int read_bus_arp(Conn_t *conn, struct sockaddr_atmsvc *addr, unsigned char *buff, int buffsize); + + /* + * 5.1, Initial state +@@ -693,7 +693,7 @@ static int get_bus_addr(struct sockaddr_ + fd_set rfds; + struct timeval tv; + int n = 0, retval, timeout; +- char buff[MAX_CTRL_FRAME]; ++ unsigned char buff[MAX_CTRL_FRAME]; + + timeout = 4; /* wait response for 4 seconds */ + lec_params.c7c_current_timeout = 1; +@@ -740,7 +740,7 @@ static int get_bus_addr(struct sockaddr_ + * Tries to read BUS ATM address in *addr + * returns < 0 for error, 0 for not found > 0 for success + */ +-static int read_bus_arp(Conn_t *conn, struct sockaddr_atmsvc *addr, char *buff, int buffsize) ++static int read_bus_arp(Conn_t *conn, struct sockaddr_atmsvc *addr, unsigned char *buff, int buffsize) + { + int frame_size; + struct ctrl_frame *frame; diff --git a/package/network/utils/linux-atm/patches/800-include_sockios.patch b/package/network/utils/linux-atm/patches/800-include_sockios.patch deleted file mode 100644 index edb385ca10..0000000000 --- a/package/network/utils/linux-atm/patches/800-include_sockios.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/src/maint/saaldump.c 2020-03-29 22:58:01.089711789 +0200 -+++ b/src/maint/saaldump.c 2020-03-29 22:59:17.564639387 +0200 -@@ -6,6 +6,7 @@ - #include - #endif - -+#include - #include - #include - #include ---- a/src/maint/atmdump.c 2020-03-29 22:58:18.573694469 +0200 -+++ b/src/maint/atmdump.c 2020-03-29 22:58:49.956729365 +0200 -@@ -6,6 +6,7 @@ - #include - #endif - -+#include - #include - #include - #include - -- 2.30.2