This patch was added for windows. Does it help you? It switches to errno.h
--- getopt.c 2018-09-13 21:27:52.000000000 -0400 +++ ../../3.4/spamc/getopt.c 2018-09-17 07:12:38.758722882 -0400 @@ -21,7 +21,7 @@ #include <string.h> #include <assert.h> #include <stdlib.h> -#include <err.h> +#include <errno.h> #include "getopt.h" #ifdef WIN32 @@ -246,7 +246,8 @@ if((bp = strchr(longopt, '='))) { opt = strdup(bp+1); if (opt == NULL) { - err(1, NULL); + fprintf(stderr, "%s: %s\n", argv[0], strerror(errno)); + exit(1); } longoptlen -= strlen(bp); } On 9/17/2018 4:37 PM, James Hsieh wrote: > So this isn't a complaint. I think the SA team has done a great job getting > this release out and yes, it works fine for me under Linux. > > However, any creative ways for getting around the fact that err.h is now part > of spamc/getopt.c? This breaks older OSes (which admittedly I probably > shouldn't care about or use anymore) such as Solaris 10. For a double dot > release, this seems a bit unfortunate though I agree, really need to get this > system on to something more modern. > > make -f spamc/Makefile spamc/spamc > /usr/local/bin/gcc -g spamc/spamc.c spamc/getopt.c spamc/libspamc.c > spamc/utils.c \ > -o spamc/spamc -L/usr/lib -L/usr/ccs/lib > -L/opt/solarisstudio12.3/prod/lib/sparc -L/opt/solarisstudio12.3/prod/lib > -L/lib -L/usr/local/lib -ldl -lz -lnsl -lsocket > spamc/getopt.c:24:17: fatal error: err.h: No such file or directory > compilation terminated. > *** Error code 1 > make: Fatal error: Command failed for target `spamc/spamc' > Current working directory /export/src/Mail-SpamAssassin-3.4.2 > *** Error code 1 > make: Fatal error: Command failed for target `spamc/spamc' > > --James > -- Kevin A. McGrail VP Fundraising, Apache Software Foundation Chair Emeritus Apache SpamAssassin Project https://www.linkedin.com/in/kmcgrail - 703.798.0171