From bd7c407524d1ed68aff7fc3f367d82038a3cf50f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Albert=20Gr=C3=A4f?= <aggraef@gmail.com>
Date: Fri, 2 Aug 2024 18:34:05 +0200
Subject: [PATCH] mingw64: More compile fixes.

---
 externals/OSCx/send+dump/dumpOSC.c                        | 4 ++--
 externals/OSCx/send+dump/dumpUDP.c                        | 2 +-
 externals/OSCx/send+dump/htmsocket.c                      | 8 ++++----
 externals/OSCx/src/dumpOSC.c                              | 6 +++---
 externals/OSCx/src/htmsocket.c                            | 8 ++++----
 externals/creb/modules/bmatrix~.c                         | 2 +-
 externals/creb/modules/dwt~.c                             | 4 ++--
 externals/hid/HID Utilities Source/HID_Config_Utilities.c | 4 ++--
 externals/hid/HID Utilities Source/HID_Utilities.c        | 4 ++--
 .../io/hidio/HID_Utilities_Source/HID_Config_Utilities.c  | 4 ++--
 externals/io/hidio/HID_Utilities_Source/HID_Utilities.c   | 4 ++--
 externals/maxlib/chord.c                                  | 2 --
 externals/pdp/system/kernel/pdp_packet.c                  | 4 ++--
 externals/pdp/system/kernel/pdp_packet2.c                 | 4 ++--
 externals/pidip/modules/pdp_baltan.c                      | 2 +-
 externals/pidip/modules/pdp_edge.c                        | 2 +-
 externals/pidip/modules/pdp_vertigo.c                     | 2 +-
 externals/unauthorized/mp3streamin~.c                     | 2 +-
 externals/unauthorized/playlist.c                         | 2 +-
 externals/unauthorized/sonogram~.c                        | 2 +-
 externals/unauthorized/speexin~.c                         | 2 +-
 pd/extra/pd~/pd~.c                                        | 2 +-
 22 files changed, 37 insertions(+), 39 deletions(-)

diff --git a/externals/OSCx/send+dump/dumpOSC.c b/externals/OSCx/send+dump/dumpOSC.c
index 7603fca8e..12a45fc76 100644
--- a/externals/OSCx/send+dump/dumpOSC.c
+++ b/externals/OSCx/send+dump/dumpOSC.c
@@ -138,7 +138,7 @@ static int unixinitudp(int chan)
 	if((sockfd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0)
 			return sockfd;
 	
-	bzero((char *)&serv_addr, sizeof(serv_addr));
+	memset((char *)&serv_addr, 0, sizeof(serv_addr));
 	serv_addr.sun_family = AF_UNIX;
 	strcpy(serv_addr.sun_path, UNIXDG_PATH);
 	sprintf(serv_addr.sun_path+strlen(serv_addr.sun_path), "%d", chan);
@@ -160,7 +160,7 @@ static int initudp(int chan)
 	
 	if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
 			return sockfd;
-	bzero((char *)&serv_addr, sizeof(serv_addr));
+	memset((char *)&serv_addr, 0, sizeof(serv_addr));
 	serv_addr.sin_family = AF_INET;
 	serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
 	serv_addr.sin_port = htons(chan);
diff --git a/externals/OSCx/send+dump/dumpUDP.c b/externals/OSCx/send+dump/dumpUDP.c
index 494a6e328..dc22a4548 100644
--- a/externals/OSCx/send+dump/dumpUDP.c
+++ b/externals/OSCx/send+dump/dumpUDP.c
@@ -92,7 +92,7 @@ static int initudp(int port) {
 	
 	if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
 			return sockfd;
-	bzero((char *)&serv_addr, sizeof(serv_addr));
+	memset((char *)&serv_addr, 0, sizeof(serv_addr));
 	serv_addr.sin_family = AF_INET;
 	serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
 	serv_addr.sin_port = htons(port);
diff --git a/externals/OSCx/send+dump/htmsocket.c b/externals/OSCx/send+dump/htmsocket.c
index 1cc17cd40..1bfb7dc89 100644
--- a/externals/OSCx/send+dump/htmsocket.c
+++ b/externals/OSCx/send+dump/htmsocket.c
@@ -133,7 +133,7 @@ void *OpenHTMSocket(char *host, int portnumber)
 		         * server that we want to send to.
 		*/
 		
-		bzero((char *) &o->userv_addr, sizeof(o->userv_addr));
+		memset((char *) &o->userv_addr, 0, sizeof(o->userv_addr));
 		       o->userv_addr.sun_family = AF_UNIX;
 		strcpy(o->userv_addr.sun_path, UNIXDG_PATH);
 			sprintf(o->userv_addr.sun_path+strlen(o->userv_addr.sun_path), "%d", portnumber);
@@ -152,7 +152,7 @@ void *OpenHTMSocket(char *host, int portnumber)
 			 * pathname, based on our process id.
 			 */
 		
-			bzero((char *) &ucl_addr, sizeof(ucl_addr));    /* zero out */
+			memset((char *) &ucl_addr, 0, sizeof(ucl_addr));    /* zero out */
 			ucl_addr.sun_family = AF_UNIX;
 			strcpy(ucl_addr.sun_path, UNIXDG_TMP);
 
@@ -183,7 +183,7 @@ void *OpenHTMSocket(char *host, int portnumber)
 		#ifdef WIN32
 			ZeroMemory((char *)&o->serv_addr, sizeof(o->serv_addr));
 		#else
-			bzero((char *)&o->serv_addr, sizeof(o->serv_addr));
+			memset((char *)&o->serv_addr, 0, sizeof(o->serv_addr));
 		#endif
 
 		o->serv_addr.sin_family = AF_INET;
@@ -243,7 +243,7 @@ void *OpenHTMSocket(char *host, int portnumber)
 			o->serv_addr.sin_port = htons(portnumber);
 			o->addr = &(o->serv_addr);
 			if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) >= 0) {
-					bzero((char *)&cl_addr, sizeof(cl_addr));
+					memset((char *)&cl_addr, 0, sizeof(cl_addr));
 				cl_addr.sin_family = AF_INET;
 				cl_addr.sin_addr.s_addr = htonl(INADDR_ANY);
 				cl_addr.sin_port = htons(0);
diff --git a/externals/OSCx/src/dumpOSC.c b/externals/OSCx/src/dumpOSC.c
index b3ddf5102..29edad52d 100644
--- a/externals/OSCx/src/dumpOSC.c
+++ b/externals/OSCx/src/dumpOSC.c
@@ -313,7 +313,7 @@ static void *dumpOSC_new(t_symbol *compatflag,
       int t = 1;
 	  mreq.imr_multiaddr.s_addr = inet_addr(castgroup->s_name);
 	  mreq.imr_interface.s_addr = htonl(INADDR_ANY);
-      if (setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&t,sizeof(t)) < 0) {
+      if (setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,(char*)&t,sizeof(t)) < 0) {
 		  sys_sockerror("setsockopt");
       }
 	  if (setsockopt(sockfd,IPPROTO_IP,IP_ADD_MEMBERSHIP,(char*)&mreq,sizeof(mreq)) < 0) {
@@ -400,7 +400,7 @@ void dumpOSC_setup(void)
 		if((sockfd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0)
 				return sockfd;
 		
-		bzero((char *)&serv_addr, sizeof(serv_addr));
+		memset((char *)&serv_addr, 0, sizeof(serv_addr));
 		serv_addr.sun_family = AF_UNIX;
 		strcpy(serv_addr.sun_path, UNIXDG_PATH);
 		sprintf(serv_addr.sun_path+strlen(serv_addr.sun_path), "%d", chan);
@@ -448,7 +448,7 @@ static int initudp(int chan)
 	if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
 			return sockfd;
 
-	bzero((char *)&serv_addr, sizeof(serv_addr));
+	memset((char *)&serv_addr, 0, sizeof(serv_addr));
 	serv_addr.sin_family = AF_INET;
 	serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
 	serv_addr.sin_port = htons(chan);
diff --git a/externals/OSCx/src/htmsocket.c b/externals/OSCx/src/htmsocket.c
index 3abd7f6c4..4b5c6ca2b 100644
--- a/externals/OSCx/src/htmsocket.c
+++ b/externals/OSCx/src/htmsocket.c
@@ -154,7 +154,7 @@ void *OpenHTMSocket(char *host, int portnumber, short *multicast_TTL)
 		         * server that we want to send to.
 		*/
 		
-		bzero((char *) &o->userv_addr, sizeof(o->userv_addr));
+		memset((char *) &o->userv_addr, 0, sizeof(o->userv_addr));
 		       o->userv_addr.sun_family = AF_UNIX;
 		strcpy(o->userv_addr.sun_path, UNIXDG_PATH);
 			sprintf(o->userv_addr.sun_path+strlen(o->userv_addr.sun_path), "%d", portnumber);
@@ -173,7 +173,7 @@ void *OpenHTMSocket(char *host, int portnumber, short *multicast_TTL)
 			 * pathname, based on our process id.
 			 */
 		
-			bzero((char *) &ucl_addr, sizeof(ucl_addr));    /* zero out */
+			memset((char *) &ucl_addr, 0, sizeof(ucl_addr));    /* zero out */
 			ucl_addr.sun_family = AF_UNIX;
 			strcpy(ucl_addr.sun_path, UNIXDG_TMP);
 
@@ -204,7 +204,7 @@ void *OpenHTMSocket(char *host, int portnumber, short *multicast_TTL)
 		#ifdef WIN32
 			ZeroMemory((char *)&o->serv_addr, sizeof(o->serv_addr));
 		#else
-			bzero((char *)&o->serv_addr, sizeof(o->serv_addr));
+			memset((char *)&o->serv_addr, 0, sizeof(o->serv_addr));
 		#endif
 
 		o->serv_addr.sin_family = AF_INET;
@@ -290,7 +290,7 @@ void *OpenHTMSocket(char *host, int portnumber, short *multicast_TTL)
 			o->serv_addr.sin_port = htons(portnumber);
 			o->addr = &(o->serv_addr);
 			if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) >= 0) {
-					bzero((char *)&cl_addr, sizeof(cl_addr));
+					memset((char *)&cl_addr, 0, sizeof(cl_addr));
 				cl_addr.sin_family = AF_INET;
 				cl_addr.sin_addr.s_addr = htonl(INADDR_ANY);
 				cl_addr.sin_port = htons(0);
diff --git a/externals/creb/modules/bmatrix~.c b/externals/creb/modules/bmatrix~.c
index 90676b448..6f6398488 100644
--- a/externals/creb/modules/bmatrix~.c
+++ b/externals/creb/modules/bmatrix~.c
@@ -77,7 +77,7 @@ static t_int *matrix_perform(t_int *w)
       memcpy(x, in, sizeof(t_float)*n);
       in = x;
     }
-  bzero(out, sizeof(t_float)*n); /* init output */
+  memset(out, 0, sizeof(t_float)*n); /* init output */
 
   for (j=0; j<n; j++)
       for (i=0; i<n; i++) 
diff --git a/externals/creb/modules/dwt~.c b/externals/creb/modules/dwt~.c
index f212b0bee..d79e2997d 100644
--- a/externals/creb/modules/dwt~.c
+++ b/externals/creb/modules/dwt~.c
@@ -747,8 +747,8 @@ t_class *dwt_class, *idwt_class, *dwt16_class, *idwt16_class;
 
 static void dwt_reset(t_dwt *x)
 {
-  bzero(x->x_ctl.c_update, 16*sizeof(t_float));
-  bzero(x->x_ctl.c_predict, 16*sizeof(t_float));
+  memset(x->x_ctl.c_update, 0, 16*sizeof(t_float));
+  memset(x->x_ctl.c_predict, 0, 16*sizeof(t_float));
 
     x->x_ctl.c_update[7] = .25;
     x->x_ctl.c_update[8] = .25;
diff --git a/externals/hid/HID Utilities Source/HID_Config_Utilities.c b/externals/hid/HID Utilities Source/HID_Config_Utilities.c
index a8e97b2af..4d865a3eb 100644
--- a/externals/hid/HID Utilities Source/HID_Config_Utilities.c	
+++ b/externals/hid/HID Utilities Source/HID_Config_Utilities.c	
@@ -82,7 +82,7 @@ unsigned char HIDConfigureAction (pRecDevice * ppDevice, pRecElement * ppElement
 		pDevice = HIDGetNextDevice (pDevice);
 	}
 	saveValueArray = (long *) malloc (sizeof (long) * numDevices * maxElements); // 2D array to save values
-	bzero(saveValueArray,sizeof (long) * numDevices * maxElements); // clear array
+	memset(saveValueArray,0,sizeof (long) * numDevices * maxElements); // clear array
 
 	// store current values
 	deviceNum = 0;
@@ -168,7 +168,7 @@ void HIDSaveElementConfig (FILE * fileRef, pRecDevice pDevice, pRecElement pElem
 	if (HIDIsValidElement(pDevice,pElement))
 	{
 		// clear rec
-		bzero(&saveRec,sizeof(recSaveHID));
+		memset(&saveRec,0,sizeof(recSaveHID));
 
 		saveRec.actionCookie = actionCookie;
 
diff --git a/externals/hid/HID Utilities Source/HID_Utilities.c b/externals/hid/HID Utilities Source/HID_Utilities.c
index b7b22c536..febfe7d37 100644
--- a/externals/hid/HID Utilities Source/HID_Utilities.c	
+++ b/externals/hid/HID Utilities Source/HID_Utilities.c	
@@ -290,7 +290,7 @@ static void hid_AddElement (CFTypeRef refElement, pRecElement * ppElementCurrent
 		// it preserves the structure of the lements as collections have children and elements are siblings to each other
 
 		// clear record
-		bzero(pElement,sizeof(recElement));
+		memset(pElement,0,sizeof(recElement));
 
 		// get element info
         pElement->type = elementType;
@@ -587,7 +587,7 @@ static pRecDevice hid_BuildDevice (io_object_t hidDevice)
         kern_return_t result = IORegistryEntryCreateCFProperties (hidDevice, &hidProperties, kCFAllocatorDefault, kNilOptions);
 
 		// clear record
-		bzero(pDevice, sizeof(recDevice));
+		memset(pDevice, 0, sizeof(recDevice));
 
         if ((result == KERN_SUCCESS) && (NULL != hidProperties))
         {
diff --git a/externals/io/hidio/HID_Utilities_Source/HID_Config_Utilities.c b/externals/io/hidio/HID_Utilities_Source/HID_Config_Utilities.c
index a8e97b2af..4d865a3eb 100644
--- a/externals/io/hidio/HID_Utilities_Source/HID_Config_Utilities.c
+++ b/externals/io/hidio/HID_Utilities_Source/HID_Config_Utilities.c
@@ -82,7 +82,7 @@ unsigned char HIDConfigureAction (pRecDevice * ppDevice, pRecElement * ppElement
 		pDevice = HIDGetNextDevice (pDevice);
 	}
 	saveValueArray = (long *) malloc (sizeof (long) * numDevices * maxElements); // 2D array to save values
-	bzero(saveValueArray,sizeof (long) * numDevices * maxElements); // clear array
+	memset(saveValueArray,0,sizeof (long) * numDevices * maxElements); // clear array
 
 	// store current values
 	deviceNum = 0;
@@ -168,7 +168,7 @@ void HIDSaveElementConfig (FILE * fileRef, pRecDevice pDevice, pRecElement pElem
 	if (HIDIsValidElement(pDevice,pElement))
 	{
 		// clear rec
-		bzero(&saveRec,sizeof(recSaveHID));
+		memset(&saveRec,0,sizeof(recSaveHID));
 
 		saveRec.actionCookie = actionCookie;
 
diff --git a/externals/io/hidio/HID_Utilities_Source/HID_Utilities.c b/externals/io/hidio/HID_Utilities_Source/HID_Utilities.c
index b7b22c536..febfe7d37 100644
--- a/externals/io/hidio/HID_Utilities_Source/HID_Utilities.c
+++ b/externals/io/hidio/HID_Utilities_Source/HID_Utilities.c
@@ -290,7 +290,7 @@ static void hid_AddElement (CFTypeRef refElement, pRecElement * ppElementCurrent
 		// it preserves the structure of the lements as collections have children and elements are siblings to each other
 
 		// clear record
-		bzero(pElement,sizeof(recElement));
+		memset(pElement,0,sizeof(recElement));
 
 		// get element info
         pElement->type = elementType;
@@ -587,7 +587,7 @@ static pRecDevice hid_BuildDevice (io_object_t hidDevice)
         kern_return_t result = IORegistryEntryCreateCFProperties (hidDevice, &hidProperties, kCFAllocatorDefault, kNilOptions);
 
 		// clear record
-		bzero(pDevice, sizeof(recDevice));
+		memset(pDevice, 0, sizeof(recDevice));
 
         if ((result == KERN_SUCCESS) && (NULL != hidProperties))
         {
diff --git a/externals/maxlib/chord.c b/externals/maxlib/chord.c
index ad3f6eb2d..7cf12b366 100644
--- a/externals/maxlib/chord.c
+++ b/externals/maxlib/chord.c
@@ -25,9 +25,7 @@
 #include "m_pd.h"
 #include <stdio.h>
 #include <string.h>
-#ifndef _WIN32
 #include <stdlib.h>
-#endif
 
 
 #define MAX_POLY 32                 /* maximum number of notes played at a time */
diff --git a/externals/pdp/system/kernel/pdp_packet.c b/externals/pdp/system/kernel/pdp_packet.c
index aa44ceb09..e37716426 100644
--- a/externals/pdp/system/kernel/pdp_packet.c
+++ b/externals/pdp/system/kernel/pdp_packet.c
@@ -122,7 +122,7 @@ pdp_packet_setup(void)
 
     pdp_pool_size = PDP_INITIAL_POOL_SIZE;
     pdp_pool = (t_pdp **)pdp_alloc(PDP_INITIAL_POOL_SIZE * sizeof(t_pdp *));
-    bzero(pdp_pool, pdp_pool_size * sizeof(t_pdp *));
+    memset(pdp_pool, 0, pdp_pool_size * sizeof(t_pdp *));
     class_list = pdp_list_new(0);
     pthread_mutex_init(&pdp_pool_mutex, NULL);
 }
@@ -172,7 +172,7 @@ _pdp_pool_expand_nolock(void){
     /* double the size */
     int new_pool_size = pdp_pool_size << 1;
     t_pdp **new_pool = (t_pdp **)pdp_alloc(new_pool_size * sizeof(t_pdp *));
-    bzero(new_pool, new_pool_size * sizeof(t_pdp *));
+    memset(new_pool, 0, new_pool_size * sizeof(t_pdp *));
     memcpy(new_pool, pdp_pool, pdp_pool_size * sizeof(t_pdp *));
     pdp_dealloc(pdp_pool);
     pdp_pool = new_pool;
diff --git a/externals/pdp/system/kernel/pdp_packet2.c b/externals/pdp/system/kernel/pdp_packet2.c
index 8ee62f2f9..eb828f244 100644
--- a/externals/pdp/system/kernel/pdp_packet2.c
+++ b/externals/pdp/system/kernel/pdp_packet2.c
@@ -120,7 +120,7 @@ pdp_packet_setup(void)
 
     pdp_pool_size = PDP_INITIAL_POOL_SIZE;
     pdp_pool = (t_pdp **)pdp_alloc(PDP_INITIAL_POOL_SIZE * sizeof(t_pdp *));
-    bzero(pdp_pool, pdp_pool_size * sizeof(t_pdp *));
+    memset(pdp_pool, 0, pdp_pool_size * sizeof(t_pdp *));
     class_list = pdp_list_new(0);
     pthread_mutex_init(&pdp_pool_mutex, NULL);
 }
@@ -169,7 +169,7 @@ _pdp_pool_expand_nolock(void){
     /* double the size */
     int new_pool_size = pdp_pool_size << 1;
     t_pdp **new_pool = (t_pdp **)pdp_alloc(new_pool_size * sizeof(t_pdp *));
-    bzero(new_pool, new_pool_size * sizeof(t_pdp *));
+    memset(new_pool, 0, new_pool_size * sizeof(t_pdp *));
     memcpy(new_pool, pdp_pool, pdp_pool_size * sizeof(t_pdp *));
     pdp_dealloc(pdp_pool);
     pdp_pool = new_pool;
diff --git a/externals/pidip/modules/pdp_baltan.c b/externals/pidip/modules/pdp_baltan.c
index 7b7cb70db..87a2909f2 100755
--- a/externals/pidip/modules/pdp_baltan.c
+++ b/externals/pidip/modules/pdp_baltan.c
@@ -81,7 +81,7 @@ static void pdp_baltan_process_yv12(t_pdp_baltan *x)
        x->x_pixels = size;
        x->x_planebuf = (int*)getbytes(x->x_pixels*PLANES*sizeof(int));
        post("pdp_baltan : allocated plane buffer (size=%d)", x->x_pixels*PLANES*sizeof(int) );
-       bzero(x->x_planebuf, x->x_pixels*PLANES*sizeof(int));
+       memset(x->x_planebuf, 0, x->x_pixels*PLANES*sizeof(int));
        x->x_plane = 0;
        if ( !x->x_planebuf ) 
        {
diff --git a/externals/pidip/modules/pdp_edge.c b/externals/pidip/modules/pdp_edge.c
index 5d986a2cb..5ef146b60 100755
--- a/externals/pidip/modules/pdp_edge.c
+++ b/externals/pidip/modules/pdp_edge.c
@@ -54,7 +54,7 @@ typedef struct pdp_edge_struct
 static void pdp_edge_allocate(t_pdp_edge *x)
 {
   x->x_map = (int*) getbytes ( ( x->x_vwidth * x->x_vheight * sizeof (int) ) << 1 );
-  bzero(x->x_map, ( x->x_vwidth * x->x_vheight * sizeof (int) ) << 1 );
+  memset(x->x_map, 0, ( x->x_vwidth * x->x_vheight * sizeof (int) ) << 1 );
 }
 
 static void pdp_edge_free_ressources(t_pdp_edge *x)
diff --git a/externals/pidip/modules/pdp_vertigo.c b/externals/pidip/modules/pdp_vertigo.c
index 39dd53047..f620dd16b 100755
--- a/externals/pidip/modules/pdp_vertigo.c
+++ b/externals/pidip/modules/pdp_vertigo.c
@@ -76,7 +76,7 @@ static void pdp_vertigo_allocate(t_pdp_vertigo *x, t_floatarg fnewsize )
     x->x_buffer = (short int *) getbytes( 2*(( nsize + (nsize>>1))<<1) );
     if ( x->x_buffer )
     {
-       bzero( x->x_buffer, 2*((nsize + (nsize>>1))<<1) );
+       memset( x->x_buffer, 0, 2*((nsize + (nsize>>1))<<1) );
        x->x_current_buffer = x->x_buffer;
        x->x_alt_buffer = x->x_buffer + (nsize + (nsize>>1));
     }
diff --git a/externals/unauthorized/mp3streamin~.c b/externals/unauthorized/mp3streamin~.c
index eb3c5aade..1547ff650 100644
--- a/externals/unauthorized/mp3streamin~.c
+++ b/externals/unauthorized/mp3streamin~.c
@@ -119,7 +119,7 @@ int setsocketoptions(int sockfd)
 
 #ifndef _MSC_VER
     sockopt = 1;
-    if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &sockopt, sizeof(int)) < 0)
+    if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char*)&sockopt, sizeof(int)) < 0)
     {
         post("mp3streamin~ : setsockopt SO_REUSEADDR failed");
         perror( "setsockopt" );
diff --git a/externals/unauthorized/playlist.c b/externals/unauthorized/playlist.c
index f663152b0..255e5567a 100644
--- a/externals/unauthorized/playlist.c
+++ b/externals/unauthorized/playlist.c
@@ -78,7 +78,7 @@ int scandir(const char *dir, struct dirent ***namelist,
     if (closedir(d)) return(-1);
     if (i == 0) return(-1);
     if (compar != NULL)
-        qsort((void *)(*namelist), (size_t)i, sizeof(struct dirent *), compar);
+        qsort((void *)(*namelist), (size_t)i, sizeof(struct dirent *), (int (*)(const void *, const void *))compar);
 
     return(i);
 }
diff --git a/externals/unauthorized/sonogram~.c b/externals/unauthorized/sonogram~.c
index 9d3b1aeff..f7d79d39c 100644
--- a/externals/unauthorized/sonogram~.c
+++ b/externals/unauthorized/sonogram~.c
@@ -587,7 +587,7 @@ static void sonogram_update_part(t_sonogram *x, t_glist *glist, t_int bstart, t_
             perror( "pthread_attr_setdetachstate" );
             return;
         }
-        if ( pthread_create( &x->x_updatechild, &update_child_attr, sonogram_do_update_part, x ) < 0 )
+        if ( pthread_create( (pthread_t*)&x->x_updatechild, &update_child_attr, sonogram_do_update_part, x ) < 0 )
         {
             post( "sonogram~ : could not launch update thread" );
             perror( "pthread_create" );
diff --git a/externals/unauthorized/speexin~.c b/externals/unauthorized/speexin~.c
index 308b0aacb..c2b18d166 100644
--- a/externals/unauthorized/speexin~.c
+++ b/externals/unauthorized/speexin~.c
@@ -118,7 +118,7 @@ int setsocketoptions(int sockfd)
 
 #ifdef _WIN32
     sockopt = 1;
-    if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &sockopt, sizeof(int)) < 0)
+    if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char*)&sockopt, sizeof(int)) < 0)
     {
         post("speexin~ : setsockopt SO_REUSEADDR failed");
         perror( "setsockopt" );
diff --git a/pd/extra/pd~/pd~.c b/pd/extra/pd~/pd~.c
index dde893908..3ea9f2944 100644
--- a/pd/extra/pd~/pd~.c
+++ b/pd/extra/pd~/pd~.c
@@ -358,7 +358,7 @@ static void pd_tilde_donew(t_pd_tilde *x, char *pddir, char *schedlibdir,
             _dup2(pipe1[0], 0);
         if (pipe2[1] != 1)
             _dup2(pipe2[1], 1);
-        pid = _spawnv(P_NOWAIT, pdexecbuf, execargv);
+        pid = _spawnv(P_NOWAIT, pdexecbuf, (const char * const *)execargv);
         if (pid < 0)
         {
             post("%s: couldn't start subprocess (%s)\n", execargv[0],
-- 
GitLab