diff --git a/sim/erc32/ChangeLog b/sim/erc32/ChangeLog
index db08909..311da25 100644
--- a/sim/erc32/ChangeLog
+++ b/sim/erc32/ChangeLog
@@ -1,5 +1,13 @@
 2021-06-12  Mike Frysinger  <vapier@gentoo.org>
 
+	* erc32.c (uart_rx): Change caddr_t to void*.
+	(uart_intr): Likewise.
+	(wdog_intr): Likewise.
+	(rtc_intr): Likewise.
+	(gpt_intr): Likewise.
+
+2021-06-12  Mike Frysinger  <vapier@gentoo.org>
+
 	* Makefile.in: Add $(EXEEXT) to sis.
 
 2021-06-12  Mike Frysinger  <vapier@gentoo.org>
diff --git a/sim/erc32/erc32.c b/sim/erc32/erc32.c
index 747ac78..91f734c 100644
--- a/sim/erc32/erc32.c
+++ b/sim/erc32/erc32.c
@@ -272,17 +272,17 @@
 static void	flush_uart (void);
 static void	uarta_tx (void);
 static void	uartb_tx (void);
-static void	uart_rx (caddr_t arg);
-static void	uart_intr (caddr_t arg);
+static void	uart_rx (void *arg);
+static void	uart_intr (void *arg);
 static void	uart_irq_start (void);
-static void	wdog_intr (caddr_t arg);
+static void	wdog_intr (void *arg);
 static void	wdog_start (void);
-static void	rtc_intr (caddr_t arg);
+static void	rtc_intr (void *arg);
 static void	rtc_start (void);
 static uint32	rtc_counter_read (void);
 static void	rtc_scaler_set (uint32 val);
 static void	rtc_reload_set (uint32 val);
-static void	gpt_intr (caddr_t arg);
+static void	gpt_intr (void *arg);
 static void	gpt_start (void);
 static uint32	gpt_counter_read (void);
 static void	gpt_scaler_set (uint32 val);
@@ -1262,7 +1262,7 @@
 }
 
 static void
-uart_rx(caddr_t arg)
+uart_rx(void *arg)
 {
     int32           rsize;
     char            rxd;
@@ -1304,7 +1304,7 @@
 }
 
 static void
-uart_intr(caddr_t arg)
+uart_intr(void *arg)
 {
     read_uart(0xE8);		/* Check for UART interrupts every 1000 clk */
     flush_uart();		/* Flush UART ports      */
@@ -1327,7 +1327,7 @@
 /* Watch-dog */
 
 static void
-wdog_intr(caddr_t arg)
+wdog_intr(void *arg)
 {
     if (wdog_status == disabled) {
 	wdog_status = stopped;
@@ -1365,7 +1365,7 @@
 
 
 static void
-rtc_intr(caddr_t arg)
+rtc_intr(void *arg)
 {
     if (rtc_counter == 0) {
 
@@ -1416,7 +1416,7 @@
 }
 
 static void
-gpt_intr(caddr_t arg)
+gpt_intr(void *arg)
 {
     if (gpt_counter == 0) {
 	mec_irq(12);
