There is already some variation in our version of the zfs lualibs that is specific to illumos. This change will shutup warnings about redefining toupper() and friends and use our standard definitions for these macros in ctype.h
https://github.com/illumos/illumos-gate/blob/master/usr/src/uts/common/fs/zfs/lua/lbaselib.c#L18
https://github.com/illumos/illumos-gate/blob/master/usr/src/uts/common/fs/zfs/lua/lstrlib.c#L32
Silences warnings such as:
cc -target x86_64-unknown-freebsd12.0 --sysroot=/var/tmp/home/sbruno/bsd/fbsd_head/amd64.amd64/tmp -B/var/tmp/home/sbruno/bsd/fbsd_head/amd64.amd64/tmp/usr/bin -fpic -DPIC -O2 -pipe -I/home/sbruno/bsd/fbsd_head/sys/cddl/compat/opensolaris -I/home/sbruno/bsd/fbsd_head/cddl/compat/opensolaris/include -I/home/sbruno/bsd/fbsd_head/cddl/compat/opensolaris/lib/libumem -I/home/sbruno/bsd/fbsd_head/cddl/contrib/opensolaris/lib/libzpool/common -I/home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/sys -I/home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs -I/home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua -I/home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/common/zfs -I/home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common -I/home/sbruno/bsd/fbsd_head/cddl/contrib/opensolaris/head -I/home/sbruno/bsd/fbsd_head/cddl/contrib/opensolaris/lib/libnvpair -I/home/sbruno/bsd/fbsd_head/cddl/contrib/opensolaris/lib/libcmdutils -DWANTS_MUTEX_OWNED -I/home/sbruno/bsd/fbsd_head/lib/libpthread/thread -I/home/sbruno/bsd/fbsd_head/lib/libpthread/sys -I/home/sbruno/bsd/fbsd_head/lib/libthr/arch/amd64/include -g -DDEBUG=1 -DNEED_SOLARIS_BOOLEAN -g -MD -MF.depend.lstrlib.pico -MTlstrlib.pico -std=iso9899:1999 -fstack-protector-strong -Wno-pointer-sign -Wno-unknown-pragmas -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef -Wno-address-of-packed-member -Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter -Wno-parentheses -Qunused-arguments -c /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c -o lstrlib.pico /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:115:12: warning: implicitly declaring library function 'tolower' with type 'int (int)' [-Wimplicit-function-declaration] p[i] = tolower(uchar(s[i])); ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:115:12: note: include the header <ctype.h> or explicitly provide a declaration for 'tolower' /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:128:12: warning: implicitly declaring library function 'toupper' with type 'int (int)' [-Wimplicit-function-declaration] p[i] = toupper(uchar(s[i])); ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:128:12: note: include the header <ctype.h> or explicitly provide a declaration for 'toupper' /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:298:22: warning: implicitly declaring library function 'isalpha' with type 'int (int)' [-Wimplicit-function-declaration] case 'a' : res = isalpha(c); break; ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:298:22: note: include the header <ctype.h> or explicitly provide a declaration for 'isalpha' /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:300:22: warning: implicitly declaring library function 'isdigit' with type 'int (int)' [-Wimplicit-function-declaration] case 'd' : res = isdigit(c); break; ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:300:22: note: include the header <ctype.h> or explicitly provide a declaration for 'isdigit' /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:302:22: warning: implicitly declaring library function 'islower' with type 'int (int)' [-Wimplicit-function-declaration] case 'l' : res = islower(c); break; ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:302:22: note: include the header <ctype.h> or explicitly provide a declaration for 'islower' /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:304:22: warning: implicitly declaring library function 'isspace' with type 'int (int)' [-Wimplicit-function-declaration] case 's' : res = isspace(c); break; ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:304:22: note: include the header <ctype.h> or explicitly provide a declaration for 'isspace' /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:305:22: warning: implicitly declaring library function 'isupper' with type 'int (int)' [-Wimplicit-function-declaration] case 'u' : res = isupper(c); break; ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:305:22: note: include the header <ctype.h> or explicitly provide a declaration for 'isupper' /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:307:22: warning: implicitly declaring library function 'isxdigit' with type 'int (int)' [-Wimplicit-function-declaration] case 'x' : res = isxdigit(c); break; ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c:307:22: note: include the header <ctype.h> or explicitly provide a declaration for 'isxdigit'
cc -target x86_64-unknown-freebsd12.0 --sysroot=/var/tmp/home/sbruno/bsd/fbsd_head/amd64.amd64/tmp -B/var/tmp/home/sbruno/bsd/fbsd_head/amd64.amd64/tmp/usr/bin -fpic -DPIC -O2 -pipe -I/home/sbruno/bsd/fbsd_head/sys/cddl/compat/opensolaris -I/home/sbruno/bsd/fbsd_head/cddl/compat/opensolaris/include -I/home/sbruno/bsd/fbsd_head/cddl/compat/opensolaris/lib/libumem -I/home/sbruno/bsd/fbsd_head/cddl/contrib/opensolaris/lib/libzpool/common -I/home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/sys -I/home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs -I/home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua -I/home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/common/zfs -I/home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common -I/home/sbruno/bsd/fbsd_head/cddl/contrib/opensolaris/head -I/home/sbruno/bsd/fbsd_head/cddl/contrib/opensolaris/lib/libnvpair -I/home/sbruno/bsd/fbsd_head/cddl/contrib/opensolaris/lib/libcmdutils -DWANTS_MUTEX_OWNED -I/home/sbruno/bsd/fbsd_head/lib/libpthread/thread -I/home/sbruno/bsd/fbsd_head/lib/libpthread/sys -I/home/sbruno/bsd/fbsd_head/lib/libthr/arch/amd64/include -g -DDEBUG=1 -DNEED_SOLARIS_BOOLEAN -g -MD -MF.depend.lbaselib.pico -MTlbaselib.pico -std=iso9899:1999 -fstack-protector-strong -Wno-pointer-sign -Wno-unknown-pragmas -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef -Wno-address-of-packed-member -Wno-switch -Wno-switch-enum -Wno-knr-promoted-parameter -Wno-parentheses -Qunused-arguments -c /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lbaselib.c -o lbaselib.pico /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lbaselib.c:56:9: warning: implicitly declaring library function 'isalpha' with type 'int (int)' [-Wimplicit-function-declaration] if (isalnum((unsigned char)*s)) { ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lbaselib.c:23:21: note: expanded from macro 'isalnum' #define isalnum(C) (isalpha(C) || isdigit(C)) ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lbaselib.c:56:9: note: include the header <ctype.h> or explicitly provide a declaration for 'isalpha' /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lbaselib.c:23:21: note: expanded from macro 'isalnum' #define isalnum(C) (isalpha(C) || isdigit(C)) ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lbaselib.c:56:9: warning: implicitly declaring library function 'isdigit' with type 'int (int)' [-Wimplicit-function-declaration] if (isalnum((unsigned char)*s)) { ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lbaselib.c:23:35: note: expanded from macro 'isalnum' #define isalnum(C) (isalpha(C) || isdigit(C)) ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lbaselib.c:56:9: note: include the header <ctype.h> or explicitly provide a declaration for 'isdigit' /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lbaselib.c:23:35: note: expanded from macro 'isalnum' #define isalnum(C) (isalpha(C) || isdigit(C)) ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lbaselib.c:60:26: warning: implicitly declaring library function 'toupper' with type 'int (int)' [-Wimplicit-function-declaration] : toupper((unsigned char)*s) - 'A' + 10; ^ /home/sbruno/bsd/fbsd_head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lbaselib.c:60:26: note: include the header <ctype.h> or explicitly provide a declaration for 'toupper' 3 warnings generated.