User Tools

Site Tools


releases:3.2.0:developersguide:usingnetbsdcode

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
  • <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 11:50 by lionelsambuc