===> Building for cucipop-1.31nb3 clang -pipe -Os -O -DINET6 -c cucipop.c In file included from cucipop.c:18: ./config.h:4:25: warning: '/*' within block comment [-Wcomment] /*#define USEfcntl_lock /**/ /* to test which combinations make sense */ ^ ./config.h:5:20: warning: '/*' within block comment [-Wcomment] /*#define USElockf /**/ /* run the lockingtest program part of */ ^ ./config.h:6:20: warning: '/*' within block comment [-Wcomment] /*#define USEflock /**/ /* the procmail installation process */ ^ ./config.h:8:25: warning: '/*' within block comment [-Wcomment] /*#define SHADOW_PASSWD /**/ /* shadow password library support */ ^ ./config.h:65:38: warning: '/*' within block comment [-Wcomment] /*#define LOG_FAILED_PASSWORD /* log failed passwords */ ^ In file included from cucipop.c:45: ./authenticate.h:16:42: warning: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int] *auth_finduser P((char*const user,const sock)), ~~~~~ ^ int ./authenticate.h:9:14: note: expanded from macro 'P' #define P(x) x ^ ./authenticate.h:22:9: warning: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int] const allowemptypw)), ~~~~~ ^ int ./authenticate.h:9:14: note: expanded from macro 'P' #define P(x) x ^ cucipop.c:184:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(sip=getstate(Vuser,tsessionstart)) ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cucipop.c:184:12: note: place parentheses around the assignment to silence this warning if(sip=getstate(Vuser,tsessionstart)) ^ ( ) cucipop.c:184:12: note: use '==' to turn this assignment into an equality comparison if(sip=getstate(Vuser,tsessionstart)) ^ == cucipop.c:202:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] { for(;*p=tolower(*p);p++); ~~^~~~~~~~~~~~ cucipop.c:202:10: note: place parentheses around the assignment to silence this warning { for(;*p=tolower(*p);p++); ^ ( ) cucipop.c:202:10: note: use '==' to turn this assignment into an equality comparison { for(;*p=tolower(*p);p++); ^ == cucipop.c:219:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(arg1=strchr(linebuf,' ')) ~~~~^~~~~~~~~~~~~~~~~~~~ cucipop.c:219:10: note: place parentheses around the assignment to silence this warning if(arg1=strchr(linebuf,' ')) ^ ( ) cucipop.c:219:10: note: use '==' to turn this assignment into an equality comparison if(arg1=strchr(linebuf,' ')) ^ == cucipop.c:221:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(arg2=strchr(arg1,' ')) ~~~~^~~~~~~~~~~~~~~~~ cucipop.c:221:13: note: place parentheses around the assignment to silence this warning if(arg2=strchr(arg1,' ')) ^ ( ) cucipop.c:221:13: note: use '==' to turn this assignment into an equality comparison if(arg2=strchr(arg1,' ')) ^ == cucipop.c:287:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(pass=auth_finduser(user,fileno(sockin))) ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cucipop.c:287:10: note: place parentheses around the assignment to silence this warning if(pass=auth_finduser(user,fileno(sockin))) ^ ( ) cucipop.c:287:10: note: use '==' to turn this assignment into an equality comparison if(pass=auth_finduser(user,fileno(sockin))) ^ == cucipop.c:347:6: warning: add explicit braces to avoid dangling else [-Wdangling-else] else ^ cucipop.c:563:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(sip=getstate(Vuser,tsessionstart)) ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cucipop.c:563:12: note: place parentheses around the assignment to silence this warning if(sip=getstate(Vuser,tsessionstart)) ^ ( ) cucipop.c:563:12: note: use '==' to turn this assignment into an equality comparison if(sip=getstate(Vuser,tsessionstart)) ^ == cucipop.c:571:8: warning: add explicit braces to avoid dangling else [-Wdangling-else] else ^ cucipop.c:580:11: warning: passing arguments to 'hsort' without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] hsort(msgs,msgs_filled,sizeof*msgs,mcmp,mswap); ^ cucipop.c:640:1: warning: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int] main(int argc,const char*const argv[]) ^ int cucipop.c:657:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while(chp=*++argv) ~~~^~~~~~~~ cucipop.c:657:15: note: place parentheses around the assignment to silence this warning while(chp=*++argv) ^ ( ) cucipop.c:657:15: note: use '==' to turn this assignment into an equality comparison while(chp=*++argv) ^ == cucipop.c:720:34: warning: passing arguments to 'auth_finduid' without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] auth_mailboxname(auth_finduid(getuid(),0)),virtualhostdb, ^ cucipop.c:720:48: warning: data argument not used by format string [-Wformat-extra-args] auth_mailboxname(auth_finduid(getuid(),0)),virtualhostdb, ^ cucipop.c:740:64: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] if(getpeername(fileno(sockin),(struct sockaddr*)&peername,&namelen)&& ^~~~~~~~ /Applications/Xcode-15.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/usr/include/sys/socket.h:724:78: note: passing argument to parameter here int getpeername(int, struct sockaddr * __restrict, socklen_t * __restrict) ^ cucipop.c:768:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(pidf=fopen(linebuf,"w")) ~~~~^~~~~~~~~~~~~~~~~~~ cucipop.c:768:12: note: place parentheses around the assignment to silence this warning if(pidf=fopen(linebuf,"w")) ^ ( ) cucipop.c:768:12: note: use '==' to turn this assignment into an equality comparison if(pidf=fopen(linebuf,"w")) ^ == cucipop.c:779:59: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] if((curfd=accept(serverfd,(struct sockaddr*)&peername,&namelen))<0) ^~~~~~~~ /Applications/Xcode-15.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/usr/include/sys/socket.h:720:73: note: passing argument to parameter here int accept(int, struct sockaddr * __restrict, socklen_t * __restrict) ^ cucipop.c:783:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while(namelen=fork()); ~~~~~~~^~~~~~~ cucipop.c:783:15: note: place parentheses around the assignment to silence this warning while(namelen=fork()); ^ ( ) cucipop.c:783:15: note: use '==' to turn this assignment into an equality comparison while(namelen=fork()); ^ == cucipop.c:788:5: warning: add explicit braces to avoid dangling else [-Wdangling-else] else ^ cucipop.c:855:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(pass=checkchallenge(arg2)) ~~~~^~~~~~~~~~~~~~~~~~~~~ cucipop.c:855:15: note: place parentheses around the assignment to silence this warning if(pass=checkchallenge(arg2)) ^ ( ) cucipop.c:855:15: note: use '==' to turn this assignment into an equality comparison if(pass=checkchallenge(arg2)) ^ == cucipop.c:906:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(i=findmsg()) ~^~~~~~~~~~ cucipop.c:906:9: note: place parentheses around the assignment to silence this warning if(i=findmsg()) ^ ( ) cucipop.c:906:9: note: use '==' to turn this assignment into an equality comparison if(i=findmsg()) ^ == cucipop.c:991:6: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(i=findmsg()) ~^~~~~~~~~~ cucipop.c:991:6: note: place parentheses around the assignment to silence this warning if(i=findmsg()) ^ ( ) cucipop.c:991:6: note: use '==' to turn this assignment into an equality comparison if(i=findmsg()) ^ == cucipop.c:1017:9: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(i=findmsg()) ~^~~~~~~~~~ cucipop.c:1017:9: note: place parentheses around the assignment to silence this warning if(i=findmsg()) ^ ( ) cucipop.c:1017:9: note: use '==' to turn this assignment into an equality comparison if(i=findmsg()) ^ == cucipop.c:1074:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(slen=msgs[i].start-source) ~~~~^~~~~~~~~~~~~~~~~~~~~ cucipop.c:1074:15: note: place parentheses around the assignment to silence this warning if(slen=msgs[i].start-source) ^ ( ) cucipop.c:1074:15: note: use '==' to turn this assignment into an equality comparison if(slen=msgs[i].start-source) ^ == 30 warnings generated. clang -pipe -Os -O -DINET6 -c authenticate.c In file included from authenticate.c:29: ./config.h:4:25: warning: '/*' within block comment [-Wcomment] /*#define USEfcntl_lock /**/ /* to test which combinations make sense */ ^ ./config.h:5:20: warning: '/*' within block comment [-Wcomment] /*#define USElockf /**/ /* run the lockingtest program part of */ ^ ./config.h:6:20: warning: '/*' within block comment [-Wcomment] /*#define USEflock /**/ /* the procmail installation process */ ^ ./config.h:8:25: warning: '/*' within block comment [-Wcomment] /*#define SHADOW_PASSWD /**/ /* shadow password library support */ ^ ./config.h:65:38: warning: '/*' within block comment [-Wcomment] /*#define LOG_FAILED_PASSWORD /* log failed passwords */ ^ In file included from authenticate.c:47: ./authenticate.h:16:42: warning: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int] *auth_finduser P((char*const user,const sock)), ~~~~~ ^ int ./authenticate.h:9:14: note: expanded from macro 'P' #define P(x) x ^ ./authenticate.h:22:9: warning: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int] const allowemptypw)), ~~~~~ ^ int ./authenticate.h:9:14: note: expanded from macro 'P' #define P(x) x ^ authenticate.c:61:41: warning: '/*' within block comment [-Wcomment] /*#define MAILSPOOLHOME "/.mail" /* watch the leading / */ ^ authenticate.c:86:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] static void castlower(str)register char*str; /* and I'll take the low road */ ^ authenticate.c:106:52: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] if(!getsockname(sock,(struct sockaddr*)&sockname,&namelen)) ^~~~~~~~ /Applications/Xcode-15.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk/usr/include/sys/socket.h:726:78: note: passing argument to parameter here int getsockname(int, struct sockaddr * __restrict, socklen_t * __restrict) ^ authenticate.c:121:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(auth_logname= /* memory leak when out of memory */ ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ authenticate.c:121:18: note: place parentheses around the assignment to silence this warning if(auth_logname= /* memory leak when out of memory */ ^ ( authenticate.c:121:18: note: use '==' to turn this assignment into an equality comparison if(auth_logname= /* memory leak when out of memory */ ^ == authenticate.c:92:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] static void getlogname(user,sock)const char*user;const int sock; ^ authenticate.c:141:15: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] if(db->get(db,0,&k,&d,0)) ^ authenticate.c:143:27: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] foundentry=!db->get(db,0,&k,&d,0)<<1; /* fallback check */ ^ authenticate.c:160:11: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] db->close(db,0); ^ authenticate.c:162:26: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] else if(auth_logname=realloc(auth_logname,strlen(user)+1)) ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ authenticate.c:162:26: note: place parentheses around the assignment to silence this warning else if(auth_logname=realloc(auth_logname,strlen(user)+1)) ^ ( ) authenticate.c:162:26: note: use '==' to turn this assignment into an equality comparison else if(auth_logname=realloc(auth_logname,strlen(user)+1)) ^ == authenticate.c:167:21: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] { if(auth_logname=realloc(auth_logname,strlen(user)+1)) ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ authenticate.c:167:21: note: place parentheses around the assignment to silence this warning { if(auth_logname=realloc(auth_logname,strlen(user)+1)) ^ ( ) authenticate.c:167:21: note: use '==' to turn this assignment into an equality comparison { if(auth_logname=realloc(auth_logname,strlen(user)+1)) ^ == authenticate.c:128:28: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] static const struct passwd*cgetpwnam(user,sock)const char*user; ^ authenticate.c:134:18: warning: left operand of comma operator has no effect [-Wunused-value] if(!db_appinit(0,0,&dbenv,0)) ^ ./sdb.h:37:3: note: expanded from macro 'db_appinit' (db_home,db_config,dbenv,flags,-1) ^~~~~~~ authenticate.c:174:28: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] static const struct passwd*cgetpwuid(uid,sock)const uid_t uid;const int sock; ^ authenticate.c:186:24: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] /*const*/auth_identity*auth_finduser(user,sock)char*const user;const int sock; ^ authenticate.c:191:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(p=strchr(user,'@')) /* does the username contain an @? */ ~^~~~~~~~~~~~~~~~~ authenticate.c:191:10: note: place parentheses around the assignment to silence this warning if(p=strchr(user,'@')) /* does the username contain an @? */ ^ ( ) authenticate.c:191:10: note: use '==' to turn this assignment into an equality comparison if(p=strchr(user,'@')) /* does the username contain an @? */ ^ == authenticate.c:203:24: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] /*const*/auth_identity*auth_finduid(uid,sock)const uid_t uid;const int sock; ^ In file included from authenticate.c:47: ./authenticate.h:17:3: warning: a function declaration without a prototype is deprecated in all versions of C and is treated as a zero-parameter prototype in C2x, conflicting with a subsequent definition [-Wdeprecated-non-prototype] *auth_finduid Q((const uid_t uid,const sock)); ^ authenticate.c:215:5: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] int auth_checkpassword(pass,pw,allowemptypw)const auth_identity*const pass; ^ authenticate.c:230:12: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] const char*auth_getsecret(pass)const auth_identity*const pass; ^ authenticate.c:234:5: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] int auth_checkvalidshell(pass)const auth_identity*const pass; ^ authenticate.c:236:1: warning: non-void function does not return a value [-Wreturn-type] } ^ authenticate.c:273:12: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] const char*auth_mailboxname(pass)auth_identity*const pass; ^ authenticate.c:307:7: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] uid_t auth_whatuid(pass)const auth_identity*const pass; ^ authenticate.c:311:7: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] uid_t auth_whatgid(pass)const auth_identity*const pass; ^ authenticate.c:315:12: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] const char*auth_homedir(pass)const auth_identity*const pass; ^ authenticate.c:319:12: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] const char*auth_shell(pass)const auth_identity*const pass; ^ authenticate.c:323:12: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] const char*auth_username(pass)const auth_identity*const pass; ^ 34 warnings generated. clang -pipe -Os -O -DINET6 -c atotime.c clang -pipe -Os -O -DINET6 -c locking.c In file included from locking.c:11: ./config.h:4:25: warning: '/*' within block comment [-Wcomment] /*#define USEfcntl_lock /**/ /* to test which combinations make sense */ ^ ./config.h:5:20: warning: '/*' within block comment [-Wcomment] /*#define USElockf /**/ /* run the lockingtest program part of */ ^ ./config.h:6:20: warning: '/*' within block comment [-Wcomment] /*#define USEflock /**/ /* the procmail installation process */ ^ ./config.h:8:25: warning: '/*' within block comment [-Wcomment] /*#define SHADOW_PASSWD /**/ /* shadow password library support */ ^ ./config.h:65:38: warning: '/*' within block comment [-Wcomment] /*#define LOG_FAILED_PASSWORD /* log failed passwords */ ^ locking.c:61:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(ll=malloc(strlen(mbox)+STRLEN(lockext)+1)) ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ locking.c:61:8: note: place parentheses around the assignment to silence this warning if(ll=malloc(strlen(mbox)+STRLEN(lockext)+1)) ^ ( ) locking.c:61:8: note: use '==' to turn this assignment into an equality comparison if(ll=malloc(strlen(mbox)+STRLEN(lockext)+1)) ^ == locking.c:65:9: warning: call to undeclared function 'xcreat'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] switch(xcreat(ll,0644)) ^ 7 warnings generated. clang -pipe -Os -O -DINET6 -c xcreat.c xcreat.c:22:26: warning: '/*' within block comment [-Wcomment] /*#define NOuname /* uncomment if uname is not available */ ^ xcreat.c:23:26: warning: '/*' within block comment [-Wcomment] /*#define NOstrpbrk /* uncomment if strpbrk is not available */ ^ xcreat.c:24:38: warning: '/*' within block comment [-Wcomment] /*#define strchr(s,c) index(s,c) /* uncomment if strchr is not available */ ^ xcreat.c:85:12: warning: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int] { register i; /* within the set [0-9A-Za-z-_] */ ~~~~~~~~ ^ int xcreat.c:84:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] static void ultoan(val,dest)unsigned long val;char*dest; ^ xcreat.c:97:23: warning: operator '<<' has lower precedence than '-'; '-' will be evaluated first [-Wshift-op-parentheses] { unsigned long retry=mrotbSERIAL;int i; /* create unique file name */ ^~~~~~~~~~~ xcreat.c:61:34: note: expanded from macro 'mrotbSERIAL' #define mrotbSERIAL ((maskSERIAL&irotbSERIAL-1)+irotbSERIAL) ^~~~~~~~~~~ xcreat.c:60:36: note: expanded from macro 'irotbSERIAL' #define irotbSERIAL (1L<c_close(cs),cs=0; ^ dbops.c:94:15: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] db->close(db,0),dbisopen=0; ^ dbops.c:120:15: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] { db->cursor(db,0,&cs,0);d.data="";d.size=1; ^ dbops.c:121:16: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] if(!db->get(db,0,&d,&k,0)) ^ dbops.c:122:17: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] cs->c_get(cs,&k,&d,DB_SET); ^ dbops.c:124:16: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] if(!(cs->c_get(cs,&k,&d,DB_NEXT)&&cs->c_get(cs,&k,&d,DB_FIRST))&& ^ dbops.c:124:45: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] if(!(cs->c_get(cs,&k,&d,DB_NEXT)&&cs->c_get(cs,&k,&d,DB_FIRST))&& ^ dbops.c:129:14: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] cs->c_del(cs,0),cs->c_get(cs,&k,&d,DB_PREV); ^ dbops.c:129:30: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] cs->c_del(cs,0),cs->c_get(cs,&k,&d,DB_PREV); ^ dbops.c:130:28: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] d.data="";d.size=1;db->put(db,0,&d,&k,0); ^ dbops.c:134:26: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] if(checkrecover(db->get(db,0,&k,&d,0))) ^ dbops.c:137:13: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] { db->del(db,0,&k,0); ^ dbops.c:147:10: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] db->put(db,0,&k,&d,0); ^ 24 warnings generated. clang -pipe -Os -O -DINET6 -c hsort.c hsort.c:39:37: warning: operator '<<' has lower precedence than '-'; '-' will be evaluated first [-Wshift-op-parentheses] child=rroot+(childoffset=(parent-rroot<<1)+width); /* find child */ ~~~~~~^~~~~~~~ hsort.c:39:37: note: place parentheses around the '-' expression to silence this warning child=rroot+(childoffset=(parent-rroot<<1)+width); /* find child */ ^ ( ) hsort.c:21:6: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] void hsort(base,nelem,width,fcmp,fswap)void*base;size_t nelem,width; ^ In file included from hsort.c:14: ./hsort.h:8:6: warning: a function declaration without a prototype is deprecated in all versions of C and is treated as a zero-parameter prototype in C2x, conflicting with a subsequent definition [-Wdeprecated-non-prototype] void hsort Q((void*base,size_t nelem,size_t width, ^ 3 warnings generated. clang -pipe -Os -O -DINET6 -c simplecrypt.c cd md5; clang -pipe -Os -O -DINET6 -c md5c.c md5c.c:100:6: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] void MD5Init (context) ^ md5c.c:116:6: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] void MD5Update (context, input, inputLen) ^ md5c.c:158:6: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] void MD5Final (digest, context) ^ md5c.c:186:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] static void MD5Transform (state, block) ^ md5c.c:279:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] static void Encode (output, input, len) ^ md5c.c:297:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] static void Decode (output, input, len) ^ md5c.c:312:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] static void MD5_memcpy (output, input, len) ^ md5c.c:328:13: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] static void MD5_memset (output, value, len) ^ 8 warnings generated. clang -pipe -Os -O -DINET6 -c makevpopdb.c makevpopdb.c:44:1: warning: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int] main(int argc,const char*argv[]) ^ int makevpopdb.c:67:15: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] if(db->put(db,0,&k,&d,0)) ^ makevpopdb.c:70:11: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] db->close(db,0); ^ makevpopdb.c:52:17: warning: left operand of comma operator has no effect [-Wunused-value] if(db_appinit(0,0,&dbenv,0)) ^ ./sdb.h:37:3: note: expanded from macro 'db_appinit' (db_home,db_config,dbenv,flags,-1) ^~~~~~~ 4 warnings generated. clang -pipe -Os -O -DINET6 cucipop.o authenticate.o atotime.o locking.o xcreat.o dbops.o hsort.o simplecrypt.o md5/md5c.o -o cucipop -L/opt/pkg/lib -lcrypt ld: library 'crypt' not found clang: error: linker command failed with exit code 1 (use -v to see invocation) *** [cucipop] Error code 1 bmake: stopped making "all" in /Users/pbulk/build/mail/cucipop/work/cucipop-1.31 bmake: 1 error bmake: stopped making "all" in /Users/pbulk/build/mail/cucipop/work/cucipop-1.31 *** Error code 2 Stop. bmake[1]: stopped making "all" in /Volumes/data/jenkins/workspace/pkgsrc-macos-trunk-arm64/mail/cucipop *** Error code 1 Stop. bmake: stopped making "all" in /Volumes/data/jenkins/workspace/pkgsrc-macos-trunk-arm64/mail/cucipop