From 7723e73e5ee58e3afbb05cb4423729914d04491d Mon Sep 17 00:00:00 2001 From: Brooks Davis Date: Wed, 6 Dec 2023 19:41:25 +0000 Subject: irc/irc: remove unneeded sbrk use It's use to print heap use, but it's often not correct for modern allocators. This should permit builds on aarch64 and riscv. --- irc/irc/Makefile | 4 +--- irc/irc/files/patch-ircd_ircd.c | 42 ++++++++++++++++++++++++++++++++++++ irc/irc/files/patch-ircd_ircd__ext.h | 10 +++++++++ irc/irc/files/patch-ircd_s__debug.c | 14 ++++++++++++ 4 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 irc/irc/files/patch-ircd_ircd.c create mode 100644 irc/irc/files/patch-ircd_ircd__ext.h create mode 100644 irc/irc/files/patch-ircd_s__debug.c (limited to 'irc') diff --git a/irc/irc/Makefile b/irc/irc/Makefile index 3aaea6194111..a7963f4d4b9a 100644 --- a/irc/irc/Makefile +++ b/irc/irc/Makefile @@ -1,5 +1,6 @@ PORTNAME= irc PORTVERSION= 2.11.2p3 +PORTREVISION= 1 CATEGORIES= irc MASTER_SITES= http://ftp.irc.org/ftp/irc/server/ \ ftp://ftp.archive.de.uu.net/pub/mirrors/ftp.irc.org/server/ \ @@ -9,9 +10,6 @@ DISTNAME= ${PORTNAME}${PORTVERSION} MAINTAINER= ports@FreeBSD.org COMMENT= The "Internet Relay Chat" Server -BROKEN_aarch64= Fails to link: missing sbrk -BROKEN_riscv64= Fails to link: missing sbrk - CONFLICTS_INSTALL= charybdis ircd-hybrid Nefarious \ ru-ircd-hybrid ircd-ru diff --git a/irc/irc/files/patch-ircd_ircd.c b/irc/irc/files/patch-ircd_ircd.c new file mode 100644 index 000000000000..659cd6f62620 --- /dev/null +++ b/irc/irc/files/patch-ircd_ircd.c @@ -0,0 +1,42 @@ +--- ircd/ircd.c.orig 2023-12-06 19:33:28 UTC ++++ ircd/ircd.c +@@ -49,7 +49,6 @@ char *debugmode = ""; /* -"- -"- -"- -"- */ + int firstrejoindone = 0; /* Server rejoined the network after + start */ + char *debugmode = ""; /* -"- -"- -"- -"- */ +-char *sbrk0; /* initial sbrk(0) */ + char *tunefile = IRCDTUNE_PATH; + volatile static int dorehash = 0, + dorestart = 0, +@@ -140,11 +139,9 @@ void restart(char *mesg) + void restart(char *mesg) + { + #ifdef USE_SYSLOG +- (void)syslog(LOG_WARNING, "Restarting Server because: %s (%u)", mesg, +- (u_int)((char *)sbrk((size_t)0)-sbrk0)); ++ (void)syslog(LOG_WARNING, "Restarting Server because: %s", mesg); + #endif +- sendto_flag(SCH_NOTICE, "Restarting server because: %s (%u)", mesg, +- (u_int)((char *)sbrk((size_t)0)-sbrk0)); ++ sendto_flag(SCH_NOTICE, "Restarting server because: %s (%u)"); + server_reboot(); + } + +@@ -175,8 +172,7 @@ void server_reboot(void) + { + Reg int i; + +- sendto_flag(SCH_NOTICE, "Aieeeee!!! Restarting server... (%u)", +- (u_int)((char *)sbrk((size_t)0)-sbrk0)); ++ sendto_flag(SCH_NOTICE, "Aieeeee!!! Restarting server..."); + + Debug((DEBUG_NOTICE,"Restarting server...")); + flush_connections(me.fd); +@@ -768,7 +764,6 @@ int main(int argc, char *argv[]) + { + uid_t uid, euid; + +- sbrk0 = (char *)sbrk((size_t)0); + uid = getuid(); + euid = geteuid(); + diff --git a/irc/irc/files/patch-ircd_ircd__ext.h b/irc/irc/files/patch-ircd_ircd__ext.h new file mode 100644 index 000000000000..8ac5180f60aa --- /dev/null +++ b/irc/irc/files/patch-ircd_ircd__ext.h @@ -0,0 +1,10 @@ +--- ircd/ircd_ext.h.orig 2023-12-06 19:35:50 UTC ++++ ircd/ircd_ext.h +@@ -37,7 +37,6 @@ extern char *debugmode; + extern int debuglevel; + extern int bootopt; + extern char *debugmode; +-extern char *sbrk0; + extern char *tunefile; + #ifdef DELAY_CLOSE + extern time_t nextdelayclose; diff --git a/irc/irc/files/patch-ircd_s__debug.c b/irc/irc/files/patch-ircd_s__debug.c new file mode 100644 index 000000000000..a25e1cd64749 --- /dev/null +++ b/irc/irc/files/patch-ircd_s__debug.c @@ -0,0 +1,14 @@ +--- ircd/s_debug.c.orig 2023-12-06 19:34:45 UTC ++++ ircd/s_debug.c +@@ -687,9 +687,8 @@ void count_memory(aClient *cptr, char *nick, int debug + sendto_one(cptr, ":%s %d %s :TOTAL: %lu [REAL]", + me.name, RPL_STATSDEBUG, nick, d_tot); + } +- sendto_one(cptr, ":%s %d %s :TOTAL: %d sbrk(0)-etext: %u", +- me.name, RPL_STATSDEBUG, nick, tot, +- (u_long)sbrk((size_t)0)-(u_long)sbrk0); ++ sendto_one(cptr, ":%s %d %s :TOTAL: %d", ++ me.name, RPL_STATSDEBUG, nick, tot); + return; + } + -- cgit v1.2.3