aboutsummaryrefslogtreecommitdiff
path: root/irc
diff options
context:
space:
mode:
authorBrooks Davis <brooks@FreeBSD.org>2023-12-06 19:41:25 +0000
committerBrooks Davis <brooks@FreeBSD.org>2023-12-08 23:24:17 +0000
commit7723e73e5ee58e3afbb05cb4423729914d04491d (patch)
tree15344f8a148e3eef15a95df80110b80f8b9f0ed1 /irc
parent4cf63f596dd42bee1c83ae79e991813f8d3143af (diff)
downloadports-7723e73e5ee58e3afbb05cb4423729914d04491d.tar.gz
ports-7723e73e5ee58e3afbb05cb4423729914d04491d.zip
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.
Diffstat (limited to 'irc')
-rw-r--r--irc/irc/Makefile4
-rw-r--r--irc/irc/files/patch-ircd_ircd.c42
-rw-r--r--irc/irc/files/patch-ircd_ircd__ext.h10
-rw-r--r--irc/irc/files/patch-ircd_s__debug.c14
4 files changed, 67 insertions, 3 deletions
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;
+ }
+