User Tools

Site Tools


releases:3.2.0:developersguide:usingnetbsdcode

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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
releases/3.2.0/developersguide/usingnetbsdcode.txt · Last modified: 2014/11/14 17:50 by lionelsambuc