This shows you the differences between two versions of the page.
releases:3.2.0:developersguide:usingnetbsdcode [2014/11/11 14:52] 127.0.0.1 external edit |
releases:3.2.0:developersguide:usingnetbsdcode [2014/11/14 17:50] (current) lionelsambuc |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== 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.: | ||
+ | <code> | ||
+ | common/lib/libc src/common/lib/libc | ||
+ | lib/nbsd_libc src/lib/libc | ||
+ | lib/nbsd_libm src/lib/libm | ||
+ | nbsd_include src/include | ||
+ | </code> | ||
+ | The CVS revision of the NetBSD code currently imported in Minix is set in **nbsd.config**. | ||
+ | ==== Hierarchy Maintenance ==== | ||
+ | Install the ''cvs'' package. | ||
+ | <code> | ||
+ | pkgin in cvs | ||
+ | </code> | ||
+ | After running the following command, the original NetBSD sources will be stored, for reference, in src/nbsdsrc. | ||
+ | <code> | ||
+ | cd /usr/src/tools && make nbsd_fetch | ||
+ | </code> | ||
+ | Using **nbsd.config**, this fetches the right revision of the imported hierarchies. | ||
+ | |||
+ | To update each hierarchy's patch file (minix-port.patch): | ||
+ | <code> | ||
+ | make nbsd_diff | ||
+ | </code> | ||
+ | |||
+ | ====== 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 | ||
+ | * <unistd.h> 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 |