GNU/FreeBSD source pieces

This directory contains some sources and patches that I use for my port of glibc to FreeBSD. Here is the raw directory listing: ls -l and ls -lrt.
  • config-accepted-diffs is a patch to config..guess, config.sub. It has already been accepted (see, but is here so you can easily patch autoconfiguring packages.
  • glibc-20021003-diffs and glibc-20021003-diffs.tgz. These diffs are relative to a CVS glibc snapshot glibc-20021003.tar.bz2, which is effectively identical to glibc-2.3 with glibc-linuxthreads-2.3 add-on Look at the sysdeps/unix/bsd/bsd4.4/freebsd/README file. Also pick one of two kernel-includes packages that matches your kernel version:

  • kernel-include-4.0.tar.gz
    After unpacking a kernel includes package, you need to cd into it and run "./patchit" once.
  • binutils- or binutils- is a patch, relative to the Linux binutils found on It has been accepted into the CVS binutils.
  • gcc-3.2-diffs is a patch, relative to the official gcc-3.2 (yes you need gcc-3.2 now - this version of glibc refuses to compile with gcc <= 3.1).
  • gnu-port is the list of steps I'm making to rebuild the system from source on i386.
  • gnu-alpha-port [OUTDATED] is the list of steps I'm making to crosscompile a glibc from source for alpha.
  • glibc-port [OUTDATED] is a set of personal notes I make during the glibc port.



    The glibc port currently compiles fine for i386 and alpha, and passes "make check" for i386, except for 3 test failures (tst-dir.c - rewinddir problem, linuxthreads/ex10 - strange crash, some mtrace thing - __cxa_atexit problem).

    I use FreeBSD 4.0, and the kernel-includes come from this version and from FreeBSD 4.6.

    Earlier versions used symbol versioning starting at GLIBC_2.2.6. Now I use GLIBC_2.3.
    This is an incompatible change that breaks all binaries. If you don't want to rebuild world, you can patch the shlib-versions files (trivial).
    Earlier versions used, Now I use, To keep your old binaries running, you can make symlinks -> and -> and remove all lib*2..2.90*. (The last step is so that ldconfig doesn't replace your handmade symlinks by its own).

    Other ports:

  • gdb-5.2.1-diffs or gdb-5.2-diffs (works only well when compiled with native gcc against native libc),
  • strace-4.4-freebsd.tar.gz (port of strace, better than truss)
  • libtool-diffs (to be applied to every package containing a copy of libtool), libtool-1.4.2-diffs (to be applied to libtool-1.4.2 only)
  • bison-1.35-diffs
  • sh-utils-2.0.11-diffs (note: the coreutils-4.5.1 compile without problems)
  • tar-1.13.25-diffs
  • cpio-2.5-diffs
  • findutils-4.1.7-diffs
  • diffutils-2.8.1-diffs
  • m4-1.4o-diffs
  • make-3.79.2a1-diffs
  • ncurses-5.2-diffs
  • sharutils-4.3.72-diffs
  • pth-1.4.1-diffs (you really don't need this since linuxthreads works)
  • gmp-4.0.1-diffs
  • gdbm-1.8.0-diffs
  • db-4.0.14-diffs
  • pciutils-2.1.9-diffs
  • perl-5.8.0-diffs
  • ElectricFence-2.2.2-diffs
  • ash-freebsdgnu-diffs
  • gdbm-1.8.2-diffs
  • libxml-1.8.16-diffs
  • libxml2-2.4.12-diffs
  • mktemp-1.5-diffs
  • patch-2.5.4-diffs
  • pcre-3.9-diffs
  • sash-3.4-diffs
  • texi2roff-2.0-freebsd-diffs
  • zlib-1.1.3-diffs
  • ndbm.tar.gz



    -- Bruno