====== NetBSD libc invocation ====== NetBSD libc is in the master branch and hooked into the make world/elf-libraries procedure. In the latest version of the master branch, gcc and clang *always* use the netbsd headers and libraries, and no elf libraries of the minix libraries are generated any more, to simplify things. ====== NetBSD Code Patch System ====== In order to be able to neatly track NetBSD sources, and easily import and patch more, there is a system to retrieve NetBSD sources using cvs, and automatically generate patch files from the current Minix code with respect to the current NetBSD code. ===== Imported NetBSD code ===== The list of imported NetBSD sub-hierarchies is in **tools/nbsd_ports**. Each line is an imported hierarchy, where the first column is the Minix location, and the second column is the NetBSD CVS location. E.g.: common/lib/libc src/common/lib/libc lib/nbsd_libc src/lib/libc lib/nbsd_libm src/lib/libm nbsd_include src/include The CVS revision of the NetBSD code currently imported in Minix is set in **nbsd.config**. ==== Hierarchy Maintenance ==== Install the ''cvs'' package. pkgin in cvs After running the following command, the original NetBSD sources will be stored, for reference, in src/nbsdsrc. cd /usr/src/tools && make nbsd_fetch Using **nbsd.config**, this fetches the right revision of the imported hierarchies. To update each hierarchy's patch file (minix-port.patch): make nbsd_diff ====== Remaining Issues ====== * Implement issetugid.c * Can't build image with clang * RENAME * syslog doesn't seem to work (connects to unix domain socket) * Make off_t, time_t, mode_t match NetBSD's types * Clean up other warnings * The sys/bswap.h header indirectly includes sys/endian.h, which implicitly declares the bswap{16,32,64} functions; sys/bswap.h later declares them as well, resulting in a compilation error * Phase out MINIX sed * zoneinfo build problem with gcc/clang * signal number conflicts * test set build failures * feature-test macros vary on the level of POSIX conformance (_POSIX*_VERSION), functionnality of chown (_POSIX_CHOWN_RESTRICTED), path too long signalling (_POSIX_NO_TRUNC), support of job control (_POSIX_JOB_CONTROL), perhaps tty disabling (_POSIX_VDISABLE, cannot figure it out), and a host of post-1993 POSIX features, not all of them implemented in the MINIX system; I guess src/nbsd_include/sys/unistd.h is unchanged from NetBSD * not-stubbed uuid_xxx(3) functions (need uuidgen). * widely distributed ~/.ashrc uses non-standard construction ''if [ "$-" : '.*i.*''' which takes advantage of ''expr'' and ''test''/''['' being the same with MINIX port of ''ash(1)'', not so with NetBSD * MSG_DONTWAIT is missing ====== Resolved Issues, with future follow-up ====== * dns lookups need resolv.conf; fine, we need a resolv.conf then; when everyone uses it, we can phase out nonamed * Password format