===> 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' [-Wimplicit-int] *auth_finduser P((char*const user,const sock)), ~~~~~ ^ ./authenticate.h:9:14: note: expanded from macro 'P' #define P(x) x ^ ./authenticate.h:22:9: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] const allowemptypw)), ~~~~~ ^ ./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:640:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] main(int argc,const char*const argv[]) ^ 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: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-13.4.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/include/sys/socket.h:708: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-13.4.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/include/sys/socket.h:704: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) ^ == 28 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' [-Wimplicit-int] *auth_finduser P((char*const user,const sock)), ~~~~~ ^ ./authenticate.h:9:14: note: expanded from macro 'P' #define P(x) x ^ ./authenticate.h:22:9: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] const allowemptypw)), ~~~~~ ^ ./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: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-13.4.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/include/sys/socket.h:710: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:134:18: warning: expression result unused [-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:135:18: warning: expression result unused [-Wunused-value] { if(!db_open(virtualhostdb,DB_HASH,DB_RDONLY,0666,&dbenv,(void*)0,&db)) ^~~~~~~~~~~~~ ./sdb.h:40:3: note: expanded from macro 'db_open' (file,type,flags,mode,dbenv,dbinfo,dbpp,-1) ^~~~ 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:164:17: warning: expression result unused [-Wunused-value] db_appexit(&dbenv); ^~~~~~ ./sdb.h:38:28: note: expanded from macro 'db_appexit' #define db_appexit(dbenv) (dbenv,-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: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:236:1: warning: non-void function does not return a value [-Wreturn-type] } ^ 17 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: implicit declaration of function 'xcreat' is invalid in C99 [-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' [-Wimplicit-int] { register i; /* within the set [0-9A-Za-z-_] */ ~~~~~~~~ ^ 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<<bitsSERIAL-rotbSERIAL) ~~~~~~~~~~~~^~~~~~~~~~~ xcreat.c:97:23: note: place parentheses around the '-' expression to silence this warning { 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<<bitsSERIAL-rotbSERIAL) ~~~~~~~~~~^~~~~~~~~~~ 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:49: note: expanded from macro 'mrotbSERIAL' #define mrotbSERIAL ((maskSERIAL&irotbSERIAL-1)+irotbSERIAL) ^~~~~~~~~~~ xcreat.c:60:36: note: expanded from macro 'irotbSERIAL' #define irotbSERIAL (1L<<bitsSERIAL-rotbSERIAL) ~~~~~~~~~~~~^~~~~~~~~~~ xcreat.c:97:23: note: place parentheses around the '-' expression to silence this warning { unsigned long retry=mrotbSERIAL;int i; /* create unique file name */ ^~~~~~~~~~~ xcreat.c:61:49: note: expanded from macro 'mrotbSERIAL' #define mrotbSERIAL ((maskSERIAL&irotbSERIAL-1)+irotbSERIAL) ^~~~~~~~~~~ xcreat.c:60:36: note: expanded from macro 'irotbSERIAL' #define irotbSERIAL (1L<<bitsSERIAL-rotbSERIAL) ~~~~~~~~~~^~~~~~~~~~~ xcreat.c:99:32: warning: operator '<<' has lower precedence than '-'; '-' will be evaluated first [-Wshift-op-parentheses] { ultoan(maskSERIAL&(retry-=irotbSERIAL)+(long)getpid(),p+1);*p=UNIQ_PREFIX; ^~~~~~~~~~~ xcreat.c:60:36: note: expanded from macro 'irotbSERIAL' #define irotbSERIAL (1L<<bitsSERIAL-rotbSERIAL) ~~~~~~~~~~~~^~~~~~~~~~~ xcreat.c:99:32: note: place parentheses around the '-' expression to silence this warning { ultoan(maskSERIAL&(retry-=irotbSERIAL)+(long)getpid(),p+1);*p=UNIQ_PREFIX; ^~~~~~~~~~~ xcreat.c:60:36: note: expanded from macro 'irotbSERIAL' #define irotbSERIAL (1L<<bitsSERIAL-rotbSERIAL) ~~~~~~~~~~^~~~~~~~~~~ xcreat.c:124:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] for(q=name;p=strchr(q,'/');q=p+1); /* find last DIRSEP */ ~^~~~~~~~~~~~~~ xcreat.c:124:15: note: place parentheses around the assignment to silence this warning for(q=name;p=strchr(q,'/');q=p+1); /* find last DIRSEP */ ^ ( ) xcreat.c:124:15: note: use '==' to turn this assignment into an equality comparison for(q=name;p=strchr(q,'/');q=p+1); /* find last DIRSEP */ ^ == 8 warnings generated. clang -pipe -Os -O -DINET6 -c dbops.c In file included from dbops.c:12: ./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 */ ^ dbops.c:36:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] static dounlink(const char*file) ~~~~~~ ^ dbops.c:41:1: warning: non-void function does not return a value [-Wreturn-type] } ^ dbops.c:48:27: warning: expression result unused [-Wunused-value] dbinited=!db_appinit(cplib,0,&dbenv, ^~~~~ ./sdb.h:37:3: note: expanded from macro 'db_appinit' (db_home,db_config,dbenv,flags,-1) ^~~~~~~ dbops.c:59:17: warning: expression result unused [-Wunused-value] db_appexit(&dbenv),dbinited=0; ^~~~~~ ./sdb.h:38:28: note: expanded from macro 'db_appexit' #define db_appexit(dbenv) (dbenv,-1) ^~~~~ dbops.c:76:26: warning: expression result unused [-Wunused-value] if(reterrno=db_open(statedbfile,DB_HASH, ^~~~~~~~~~~ ./sdb.h:40:3: note: expanded from macro 'db_open' (file,type,flags,mode,dbenv,dbinfo,dbpp,-1) ^~~~ dbops.c:76:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(reterrno=db_open(statedbfile,DB_HASH, ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dbops.c:76:17: note: place parentheses around the assignment to silence this warning if(reterrno=db_open(statedbfile,DB_HASH, ^ ( dbops.c:76:17: note: use '==' to turn this assignment into an equality comparison if(reterrno=db_open(statedbfile,DB_HASH, ^ == 11 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 */ ^ ( ) 1 warning generated. clang -pipe -Os -O -DINET6 -c simplecrypt.c cd md5; clang -pipe -Os -O -DINET6 -c md5c.c clang -pipe -Os -O -DINET6 -c makevpopdb.c makevpopdb.c:44:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] main(int argc,const char*argv[]) ^ makevpopdb.c:52:17: warning: expression result unused [-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) ^~~~~~~ makevpopdb.c:55:17: warning: expression result unused [-Wunused-value] { if(db_open(dbname,DB_HASH,DB_CREATE|DB_TRUNCATE,0666,&dbenv,(void*)0,&db)) ^~~~~~ ./sdb.h:40:3: note: expanded from macro 'db_open' (file,type,flags,mode,dbenv,dbinfo,dbpp,-1) ^~~~ makevpopdb.c:72:17: warning: expression result unused [-Wunused-value] db_appexit(&dbenv); ^~~~~~ ./sdb.h:38:28: note: expanded from macro 'db_appexit' #define db_appexit(dbenv) (dbenv,-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 not found for -lcrypt 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