For the build logs, demonstrate that /dev/null and /dev/tty exist: crw-rw-rw- 1 root sys 4, 2 Jul 30 00:09 /dev/null crw-rw-rw- 1 bin terminal 3, 0 Jul 27 14:21 /dev/tty >>> /* work around NeXTstep bug */ >>> #define MKSH_BUILDSH 1 >>> #define MKSH__NO_SETEUGID 1 >>> #define MKSH_NO_SIGSETJMP 1 >>> #define _setjmp setjmp >>> #define _longjmp longjmp >>> #define USE_REALLOC_MALLOC 0 >>> #define MKSH_BROKEN_OFFSETOF 1 >>> #define MKSH_TYPEDEF_SSIZE_T int >>> #define MKSH_USABLE_SIGNALFUNC signal >>> #define MKSH_UNEMPLOYED 1 >>> #define MKSH_NOPROSPECTOFWORK 1 >>> #define MKSH__NO_SYMLINK 1 Hi from $MirOS: src/bin/mksh/Build.sh,v 1.780 2021/07/27 19:17:12 tg Exp $ on: $ uname -a >&2 | scosysv scosysv 3.2 2 i386 $ uname -X >&2 | | System = scosysv | Node = scosysv | Release = 3.2v4.2 | KernelID = 93/04/28 | Machine = Pentium | BusType = ISA | Serial = SCOunix42 | Users = unlim | OEM# = 0 | Origin# = 1 | NumCPU = 1 | Build.sh: Building the MirBSD Korn Shell R59 2021/06/29 on XENIX 3.2... Build.sh: Scanning for functions... please ignore any errors. ... which compiler type seems to be used $ cc -E -x2.3 -I. -DMKSH_USE_AUTOCONF_H -DMKSH_MAYBE_QUICK_C conftest.c | sed -n '/^ *[ce]t *= */s/^ *\([ce]t\) *= */\1=/p' | tr -d \015 >x [ ct="quickc" [ et="unknown" ==> which compiler type seems to be used... quickc ... if the compiler works $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> if the compiler works... yes ... if the compiler does not fail correctly $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _thiswillneverbedefinedIhope in file(s): ] conftest.o(conftest.c) ==> if the compiler does not fail correctly... no ==> if this could be tcc... no (implied) ==> if to rely on compiler for string pooling... no ==> for __attribute__((__bounded__))... no (implied) >>> #define HAVE_ATTRIBUTE_BOUNDED 0 ==> for __attribute__((__format__))... no (implied) >>> #define HAVE_ATTRIBUTE_FORMAT 0 ==> for __attribute__((__noreturn__))... no (implied) >>> #define HAVE_ATTRIBUTE_NORETURN 0 ==> for __attribute__((__pure__))... no (implied) >>> #define HAVE_ATTRIBUTE_PURE 0 ==> for __attribute__((__unused__))... no (implied) >>> #define HAVE_ATTRIBUTE_UNUSED 0 ==> for __attribute__((__used__))... no (implied) >>> #define HAVE_ATTRIBUTE_USED 0 ... if a reduced-feature mksh is requested $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _thiswillneverbedefinedIhope in file(s): ] conftest.o(conftest.c) ==> if a reduced-feature mksh is requested... no ... if invoking as sh should be handled specially $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _thiswillneverbedefinedIhope in file(s): ] conftest.o(conftest.c) ==> if invoking as sh should be handled specially... no ... if mksh will be built without job control $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> if mksh will be built without job control... yes ... if mksh will be built without job signals $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> if mksh will be built without job signals... yes ... if the default UTF-8 mode is specified $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _thiswillneverbedefinedIhope in file(s): ] conftest.o(conftest.c) ==> if the default UTF-8 mode is specified... no ==> if the default UTF-8 mode is disabled... no (implied) ... if the MidnightBSD 0.1 ash compatibility mode is requested $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _thiswillneverbedefinedIhope in file(s): ] conftest.o(conftest.c) ==> if the MidnightBSD 0.1 ash compatibility mode is requested... no ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> ... yes >>> #define HAVE_SYS_TIME_H 1 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> ... yes >>> #define HAVE_TIME_H 1 ... whether and can both be included $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> whether and can both be included... yes >>> #define HAVE_BOTH_TIME_H 1 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> ... yes >>> #define HAVE_SYS_SELECT_H 1 ... whether and can both be included $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] /usr/include/sys/select.h(41) : error C2011: 'timeval' : type type redefinition ==> whether and can both be included... no >>> #define HAVE_SELECT_TIME_H 0 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(9) : fatal error C1024: cannot open include file 'sys/bsdtypes.h' ==> ... no >>> #define HAVE_SYS_BSDTYPES_H 0 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> ... yes >>> #define HAVE_SYS_FILE_H 1 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(10) : fatal error C1024: cannot open include file 'sys/mkdev.h' ==> ... no >>> #define HAVE_SYS_MKDEV_H 0 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(10) : fatal error C1024: cannot open include file 'sys/mman.h' ==> ... no >>> #define HAVE_SYS_MMAN_H 0 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> ... yes >>> #define HAVE_SYS_PARAM_H 1 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> ... yes >>> #define HAVE_SYS_PTEM_H 1 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> ... yes >>> #define HAVE_SYS_RESOURCE_H 1 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> ... yes >>> #define HAVE_SYS_SYSMACROS_H 1 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(9) : fatal error C1024: cannot open include file 'bstring.h' ==> ... no >>> #define HAVE_BSTRING_H 0 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> ... yes >>> #define HAVE_GRP_H 1 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(9) : fatal error C1024: cannot open include file 'io.h' ==> ... no >>> #define HAVE_IO_H 0 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(9) : fatal error C1024: cannot open include file 'libgen.h' ==> ... no >>> #define HAVE_LIBGEN_H 0 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(10) : fatal error C1024: cannot open include file 'libutil.h' ==> ... no >>> #define HAVE_LIBUTIL_H 0 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(9) : fatal error C1024: cannot open include file 'paths.h' ==> ... no >>> #define HAVE_PATHS_H 0 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(10) : fatal error C1024: cannot open include file 'stdint.h' ==> ... no >>> #define HAVE_STDINT_H 0 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> ... yes >>> #define HAVE_STRINGS_H 1 ==> ... no (cached) >>> #define HAVE_TERMIOS_H 0 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> ... yes >>> #define HAVE_ULIMIT_H 1 ... $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> ... yes >>> #define HAVE_VALUES_H 1 ... for large file support $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(13) : error C2118: negative subscript ==> for large file support... no ... ... with -D_FILE_OFFSET_BITS=64 $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -D_FILE_OFFSET_BITS=64 -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(13) : error C2118: negative subscript ==> ... with -D_FILE_OFFSET_BITS=64... no ... ... with -D_LARGE_FILES=1 $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -D_LARGE_FILES=1 -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(13) : error C2118: negative subscript ==> ... with -D_LARGE_FILES=1... no ... for standard 32-bit integer types $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(10) : error C2065: 'uint32_t' : undefined ] conftest.c(10) : error C2064: term does not evaluate to a function ] conftest.c(10) : error C2144: syntax error : missing ')' before type 'size_t' ==> for standard 32-bit integer types... no >>> #define HAVE_CAN_INTTYPES 0 ... for UCB 32-bit integer types $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(10) : error C2065: 'u_int32_t' : undefined ] conftest.c(10) : error C2064: term does not evaluate to a function ] conftest.c(10) : error C2144: syntax error : missing ')' before type 'size_t' ==> for UCB 32-bit integer types... no >>> #define HAVE_CAN_UCBINTS 0 ... for standard 8-bit integer type $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(10) : error C2065: 'uint8_t' : undefined ] conftest.c(10) : error C2064: term does not evaluate to a function ] conftest.c(10) : error C2144: syntax error : missing ')' before type 'size_t' ==> for standard 8-bit integer type... no >>> #define HAVE_CAN_INT8TYPE 0 ... for UCB 8-bit integer type $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(10) : error C2065: 'u_int8_t' : undefined ] conftest.c(10) : error C2064: term does not evaluate to a function ] conftest.c(10) : error C2144: syntax error : missing ')' before type 'size_t' ==> for UCB 8-bit integer type... no >>> #define HAVE_CAN_UCBINT8 0 ... sig_t $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(11) : error C2054: expected '(' to follow 'sig_t' ] conftest.c(11) : error C2061: syntax error : identifier 'foo' ==> sig_t... no ... sighandler_t $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(11) : error C2054: expected '(' to follow 'sighandler_t' ] conftest.c(11) : error C2061: syntax error : identifier 'foo' ==> sighandler_t... no ... __sighandler_t $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(11) : error C2054: expected '(' to follow '__sighandler_t' ] conftest.c(11) : error C2061: syntax error : identifier 'foo' ==> __sighandler_t... no >>> #define sig_t nosig_t >>> #define HAVE_SIG_T 0 ... checking if the final link command may succeed cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c conftest.c conftest.c cc -x2.3 -l2.3 -ldir -o a.out conftest.o || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ==> checking if the final link command may succeed... yes ... the sys_errlist[] array and sys_nerr $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> the sys_errlist[] array and sys_nerr... yes ==> the _sys_errlist[] array and _sys_nerr... no (implied) >>> #define HAVE_SYS_ERRLIST 1 ... the sys_signame[] array $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _sys_signame in file(s): ] conftest.o(conftest.c) ==> the sys_signame[] array... no ... the _sys_signame[] array $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] __sys_signame in file(s): ] conftest.o(conftest.c) ==> the _sys_signame[] array... no >>> #define HAVE_SYS_SIGNAME 0 ... the sys_siglist[] array $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _sys_siglist in file(s): ] conftest.o(conftest.c) ==> the sys_siglist[] array... no ... the _sys_siglist[] array $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] __sys_siglist in file(s): ] conftest.o(conftest.c) ==> the _sys_siglist[] array... no >>> #define HAVE_SYS_SIGLIST 0 ... flock $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(14) : error C2065: 'LOCK_EX' : undefined ] conftest.c(14) : error C2065: 'LOCK_UN' : undefined ==> flock... no >>> #define HAVE_FLOCK 0 ... whether we can lock files with fcntl $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> whether we can lock files with fcntl... yes >>> #define HAVE_LOCK_FCNTL 1 ... getrlimit and setrlimit $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _getrlimit in file(s): ] conftest.o(conftest.c) ] _setrlimit in file(s): ] conftest.o(conftest.c) ==> getrlimit and setrlimit... no >>> #define HAVE_RLIMIT 0 ==> rlim_t... no (implied) >>> #define HAVE_RLIM_T 0 ... getrusage $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _getrusage in file(s): ] conftest.o(conftest.c) ==> getrusage... no >>> #define HAVE_GETRUSAGE 0 ... getsid $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _getsid in file(s): ] conftest.o(conftest.c) ==> getsid... no >>> #define HAVE_GETSID 0 ... gettimeofday $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _gettimeofday in file(s): ] conftest.o(conftest.c) ==> gettimeofday... no >>> #define HAVE_GETTIMEOFDAY 0 ... killpg $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _killpg in file(s): ] conftest.o(conftest.c) ==> killpg... no >>> #define HAVE_KILLPG 0 ... memmove $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _memmove in file(s): ] conftest.o(conftest.c) ==> memmove... no >>> #define HAVE_MEMMOVE 0 ... bcopy $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _bcopy in file(s): ] conftest.o(conftest.c) ==> bcopy... no >>> #define HAVE_BCOPY 0 ==> if to use mknod(), makedev() and friends... no (cached) >>> #define HAVE_MKNOD 0 ... for mmap and munmap $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(18) : error C2065: 'PROT_READ' : undefined ] conftest.c(18) : error C2065: 'MAP_PRIVATE' : undefined ==> for mmap and munmap... no >>> #define HAVE_MMAP 0 ==> for ftruncate... no (implied) >>> #define HAVE_FTRUNCATE 0 ... nice $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> nice... yes >>> #define HAVE_NICE 1 ... rename $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _rename in file(s): ] conftest.o(conftest.c) ==> rename... no >>> #define HAVE_RENAME 0 ... revoke $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _revoke in file(s): ] conftest.o(conftest.c) ==> revoke... no >>> #define HAVE_REVOKE 0 ==> setlocale(LC_CTYPE, "")... no (cached) >>> #define HAVE_SETLOCALE_CTYPE 0 ==> nl_langinfo(CODESET)... no (implied) >>> #define HAVE_LANGINFO_CODESET 0 ... select $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> select... yes >>> #define HAVE_SELECT 1 ==> setresugid... no (cached) >>> #define HAVE_SETRESUGID 0 ==> setgroups... no (implied) >>> #define HAVE_SETGROUPS 0 ... sigaction $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _sigaction in file(s): ] conftest.o(conftest.c) ==> sigaction... no >>> #define HAVE_SIGACTION 0 ==> strerror... no (implied) >>> #define HAVE_STRERROR 0 ... strsignal $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(10) : error C2109: subscript on nonarray ==> strsignal... no >>> #define HAVE_STRSIGNAL 0 ... strlcpy $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _strlcpy in file(s): ] conftest.o(conftest.c) ==> strlcpy... no >>> #define HAVE_STRLCPY 0 ... strstr $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] ] /bin/ld : error: Unresolved externals: ] ] ] ] _strstr in file(s): ] conftest.o(conftest.c) ==> strstr... no >>> #define HAVE_STRSTR 0 ==> for declaration of flock()... yes (implied) >>> #define HAVE_FLOCK_DECL 1 ==> for declaration of revoke()... yes (implied) >>> #define HAVE_REVOKE_DECL 1 ... for declaration of sys_errlist[] and sys_nerr $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ==> for declaration of sys_errlist[] and sys_nerr... yes >>> #define HAVE_SYS_ERRLIST_DECL 1 ==> for declaration of sys_siglist[]... no (implied) >>> #define HAVE_SYS_SIGLIST_DECL 0 ... for struct stat.st_mtimensec $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(10) : error C2039: 'st_mtimensec' : not struct member ==> for struct stat.st_mtimensec... no ... for struct stat.st_mtimespec.tv_nsec $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(10) : error C2039: 'st_mtimespec' : not struct member ==> for struct stat.st_mtimespec.tv_nsec... no ... for struct stat.st_mtim.tv_nsec $ cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -l2.3 -ldir conftest.c || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done ] conftest.c ] conftest.c(10) : error C2039: 'st_mtim' : not struct member ==> for struct stat.st_mtim.tv_nsec... no >>> #define HAVE_ST_MTIMENSEC 0 ==> if to use persistent history... no >>> #define HAVE_PERSISTENT_HISTORY 0 ... checking if the C Preprocessor supports -dD $ cc -E -x2.3 -I. -DMKSH_USE_AUTOCONF_H -dD conftest.c >x ] fatal error C1023: cannot open source file '-dD' ==> checking if the C Preprocessor supports -dD... no ... done. No list of signal names available via cpp. Falling back... NSIG=30 ... ABRT=6 FPE=8 ILL=4 INT=2 SEGV=11 TERM=15 ALRM=14 BUS=10 CHLD=18 CONT=25 HUP=1 KILL=9 PIPE=13 QUIT=3 STOP=23 TSTP=24 TTIN=26 TTOU=27 USR1=16 USR2=17 POLL=20 PROF=29 SYS=12 TRAP=5 VTALRM=28 EMT=7 PWR=19 done. >>> #define MKSH_BUILD_R 599 Build.sh: Finished configuration testing, now producing output. + Running genopt on 'rlimits.opt'... + Running genopt on 'sh_flags.opt'... + Running genopt on 'ulimits.opt'... cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c lalloc.c lalloc.c cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c edit.c edit.c edit.c(277) : warning C4047: '=' : different levels of indirection edit.c(279) : warning C4047: '=' : different levels of indirection edit.c(280) : warning C4047: '=' : different levels of indirection edit.c(419) : warning C4047: '=' : different levels of indirection edit.c(431) : warning C4047: '=' : different levels of indirection edit.c(503) : warning C4047: '=' : different levels of indirection edit.c(562) : warning C4047: '=' : different levels of indirection edit.c(796) : warning C4047: '=' : different levels of indirection edit.c(2269) : warning C4061: long/short mismatch in argument : conversion supplied edit.c(2444) : warning C4061: long/short mismatch in argument : conversion supplied edit.c(2566) : warning C4061: long/short mismatch in argument : conversion supplied edit.c(2905) : warning C4061: long/short mismatch in argument : conversion supplied edit.c(2943) : warning C4061: long/short mismatch in argument : conversion supplied edit.c(3877) : warning C4061: long/short mismatch in argument : conversion supplied edit.c(4099) : warning C4061: long/short mismatch in argument : conversion supplied edit.c(4850) : warning C4061: long/short mismatch in argument : conversion supplied edit.c(4850) : warning C4061: long/short mismatch in argument : conversion supplied edit.c(4958) : warning C4061: long/short mismatch in argument : conversion supplied edit.c(5583) : warning C4061: long/short mismatch in argument : conversion supplied edit.c(5668) : warning C4061: long/short mismatch in argument : conversion supplied cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c eval.c eval.c eval.c(154) : warning C4047: '=' : different levels of indirection eval.c(156) : warning C4047: '=' : different levels of indirection eval.c(159) : warning C4047: '=' : different levels of indirection eval.c(172) : warning C4047: '=' : different levels of indirection eval.c(190) : warning C4047: '=' : different levels of indirection eval.c(1079) : warning C4047: '=' : different levels of indirection eval.c(1082) : warning C4047: '=' : different levels of indirection eval.c(1095) : warning C4047: '=' : different levels of indirection eval.c(1302) : warning C4047: '=' : different levels of indirection eval.c(1307) : warning C4047: '=' : different levels of indirection eval.c(1460) : warning C4047: '=' : different levels of indirection eval.c(1464) : warning C4047: '=' : different levels of indirection eval.c(1470) : warning C4047: '=' : different levels of indirection eval.c(1715) : warning C4047: '=' : different levels of indirection eval.c(1803) : warning C4047: '=' : different levels of indirection eval.c(1862) : warning C4090: different 'const/volatile' qualifiers eval.c(1862) : warning C4022: 'memcpy' : pointer mismatch : parameter 1 eval.c(1863) : warning C4090: different 'const/volatile' qualifiers eval.c(1880) : warning C4028: parameter 1 declaration different eval.c(1918) : warning C4090: different 'const/volatile' qualifiers eval.c(1929) : warning C4090: different 'const/volatile' qualifiers eval.c(1929) : warning C4022: 'afree' : pointer mismatch : parameter 1 eval.c(1950) : warning C4028: parameter 1 declaration different eval.c(1993) : warning C4028: parameter 1 declaration different eval.c(2006) : warning C4090: different 'const/volatile' qualifiers eval.c(2012) : warning C4028: parameter 2 declaration different eval.c(2012) : warning C4028: parameter 3 declaration different eval.c(2012) : warning C4028: parameter 4 declaration different eval.c(2050) : warning C4047: '=' : different levels of indirection eval.c(1077) : warning C4061: long/short mismatch in argument : conversion supplied eval.c(1171) : warning C4061: long/short mismatch in argument : conversion supplied eval.c(1565) : warning C4061: long/short mismatch in argument : conversion supplied eval.c(2048) : warning C4061: long/short mismatch in argument : conversion supplied cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c exec.c exec.c exec.c(1707) : warning C4090: different 'const/volatile' qualifiers exec.c(1707) : warning C4024: 'call_builtin' : different types : parameter 2 exec.c(760) : warning C4061: long/short mismatch in argument : conversion supplied cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c expr.c expr.c cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c funcs.c funcs.c funcs.c(430) : warning C4047: '=' : different levels of indirection funcs.c(492) : warning C4047: '=' : different levels of indirection funcs.c(504) : warning C4047: '=' : different levels of indirection funcs.c(838) : warning C4090: different 'const/volatile' qualifiers funcs.c(838) : warning C4024: 'c_unalias' : different types : parameter 1 funcs.c(2233) : warning C4090: different 'const/volatile' qualifiers funcs.c(2233) : warning C4024: 'c_typeset' : different types : parameter 1 funcs.c(1185) : warning C4061: long/short mismatch in argument : conversion supplied cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c histrap.c histrap.c histrap.c(333) : warning C4090: different 'const/volatile' qualifiers histrap.c(356) : warning C4028: parameter 1 declaration different histrap.c(1340) : warning C4090: different 'const/volatile' qualifiers histrap.c(1429) : warning C4090: different 'const/volatile' qualifiers histrap.c(1429) : warning C4022: 'afree' : pointer mismatch : parameter 1 histrap.c(252) : warning C4061: long/short mismatch in argument : conversion supplied cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c jobs.c jobs.c jobs.c(309) : warning C4061: long/short mismatch in argument : conversion supplied jobs.c(806) : warning C4061: long/short mismatch in argument : conversion supplied cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c lex.c lex.c cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c main.c main.c main.c(131) : warning C4056: overflow in constant arithmetic main.c(255) : warning C4090: different 'const/volatile' qualifiers main.c(437) : warning C4090: different 'const/volatile' qualifiers main.c(704) : warning C4090: different 'const/volatile' qualifiers main.c(704) : warning C4024: 'c_builtin' : different types : parameter 1 main.c(984) : warning C4061: long/short mismatch in argument : conversion supplied main.c(989) : warning C4061: long/short mismatch in argument : conversion supplied main.c(1291) : warning C4061: long/short mismatch in argument : conversion supplied cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c misc.c misc.c misc.c(2656) : warning C4028: parameter 2 declaration different misc.c(549) : warning C4061: long/short mismatch in argument : conversion supplied cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c shf.c shf.c cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c syn.c syn.c syn.c(277) : warning C4047: '=' : different levels of indirection syn.c(278) : warning C4047: '=' : different levels of indirection syn.c(330) : warning C4047: '=' : different levels of indirection syn.c(332) : warning C4047: '=' : different levels of indirection syn.c(349) : warning C4047: '=' : different levels of indirection syn.c(350) : warning C4047: '=' : different levels of indirection syn.c(351) : warning C4047: '=' : different levels of indirection syn.c(352) : warning C4047: '=' : different levels of indirection syn.c(353) : warning C4047: '=' : different levels of indirection syn.c(357) : warning C4047: '=' : different levels of indirection syn.c(414) : warning C4047: '=' : different levels of indirection syn.c(415) : warning C4047: '=' : different levels of indirection syn.c(416) : warning C4047: '=' : different levels of indirection syn.c(519) : warning C4047: '=' : different levels of indirection syn.c(521) : warning C4047: '=' : different levels of indirection syn.c(631) : warning C4047: '=' : different levels of indirection syn.c(651) : warning C4047: '=' : different levels of indirection syn.c(654) : warning C4047: '=' : different levels of indirection syn.c(754) : warning C4047: '=' : different levels of indirection syn.c(763) : warning C4047: '=' : different levels of indirection syn.c(766) : warning C4047: '=' : different levels of indirection syn.c(1016) : warning C4047: '=' : different levels of indirection syn.c(1031) : warning C4047: '=' : different levels of indirection syn.c(94) : warning C4061: long/short mismatch in argument : conversion supplied cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c tree.c tree.c tree.c(237) : warning C4061: long/short mismatch in argument : conversion supplied cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c var.c var.c var.c(87) : warning C4090: different 'const/volatile' qualifiers var.c(764) : warning C4090: different 'const/volatile' qualifiers var.c(764) : warning C4022: 'rpl_bcopy' : pointer mismatch : parameter 2 var.c(765) : warning C4090: different 'const/volatile' qualifiers var.c(765) : warning C4022: 'memcpy' : pointer mismatch : parameter 1 var.c(943) : warning C4090: different 'const/volatile' qualifiers var.c(943) : warning C4022: 'afree' : pointer mismatch : parameter 1 var.c(1035) : warning C4090: different 'const/volatile' qualifiers var.c(1035) : warning C4022: 'afree' : pointer mismatch : parameter 1 var.c(1058) : warning C4090: different 'const/volatile' qualifiers var.c(1058) : warning C4022: 'aresize' : pointer mismatch : parameter 1 var.c(1059) : warning C4090: different 'const/volatile' qualifiers var.c(1059) : warning C4022: 'memcpy' : pointer mismatch : parameter 1 var.c(1097) : warning C4090: different 'const/volatile' qualifiers var.c(1097) : warning C4022: 'afree' : pointer mismatch : parameter 1 var.c(1106) : warning C4090: different 'const/volatile' qualifiers var.c(1106) : warning C4022: 'afree' : pointer mismatch : parameter 1 var.c(1205) : warning C4047: '=' : different levels of indirection var.c(1237) : warning C4047: '=' : different levels of indirection var.c(1237) : warning C4090: different 'const/volatile' qualifiers var.c(1242) : warning C4047: '=' : different levels of indirection var.c(1398) : warning C4090: different 'const/volatile' qualifiers var.c(1398) : warning C4022: 'afree' : pointer mismatch : parameter 1 var.c(1410) : warning C4090: different 'const/volatile' qualifiers var.c(1410) : warning C4022: 'afree' : pointer mismatch : parameter 1 var.c(1533) : warning C4090: different 'const/volatile' qualifiers var.c(1533) : warning C4022: 'afree' : pointer mismatch : parameter 1 var.c(1546) : warning C4090: different 'const/volatile' qualifiers var.c(1546) : warning C4022: 'afree' : pointer mismatch : parameter 1 var.c(549) : warning C4061: long/short mismatch in argument : conversion supplied var.c(931) : warning C4061: long/short mismatch in argument : conversion supplied var.c(1014) : warning C4061: long/short mismatch in argument : conversion supplied var.c(2103) : warning C4061: long/short mismatch in argument : conversion supplied var.c(2115) : warning C4061: long/short mismatch in argument : conversion supplied var.c(2141) : warning C4061: long/short mismatch in argument : conversion supplied cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c strlcpy.c strlcpy.c cc -x2.3 -I. -DMKSH_USE_AUTOCONF_H -c ulimit.c ulimit.c ulimit.c(134) : warning C4028: parameter 2 declaration different cc -x2.3 -l2.3 -ldir -o mksh lalloc.o edit.o eval.o exec.o expr.o funcs.o histrap.o jobs.o lex.o main.o misc.o shf.o syn.o tree.o var.o strlcpy.o ulimit.o || for _f in ${tcfn}*; do case $_f in *.1|*.faq|*.ico) ;; *) rm -f "$_f" ;; esac; done size mksh 249212 + 23528 + 8024 = 280764 = 0x448bc Installing the shell: # install -c -s -o root -g bin -m 555 mksh /bin/mksh # grep -x /bin/mksh /etc/shells >/dev/null || echo /bin/mksh >>/etc/shells # install -c -o root -g bin -m 444 dot.mkshrc /usr/share/doc/mksh/examples/ Installing the manual: # install -c -o root -g bin -m 444 lksh.1 mksh.1 /usr/share/man/man1/ Run the regression test suite: ./test.sh Please also read the sample file dot.mkshrc and the fine manual. Run FAQ2HTML.sh and place FAQ.htm into a suitable location as well.