Written by Simon Josefsson on 2007-06-07. Last updated 2008-01-12. See http://josefsson.org/uclinux/ for more information.

Note about Blackfin uClinux

Blackfin uClinux has integrated this work, thanks to Robin Getz. If you are using Blackfin uClinux you do not need to apply these patches manually.

Download the uClinux distribution

Get it from http://uclinux.org/pub/uClinux/dist/
This was written for the 20070130 version,
MD5 72926ff263c0499abd9004f631a2bb82.
Unpack it as follows:
...........
$ tar xfj uClinux-dist-20070130.tar.bz2
...........

Download the m68k/Coldfire cross compiler

Get it from http://www.uclinux.org/pub/uClinux/m68k-elf-tools/
This was written for the 20061214 version,
MD5 24776e2bc5fe27b35fac0c989029ee68.
Install it as follows
...........
# sh ./m68k-uclinux-tools-20061214.sh
...........

Download libgpg-error, libgcrypt, gnutls, gsasl.

...........
$ cd uClinux-dist/lib
...........
...........
$ wget -q ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.5.tar.bz2
$ sha1sum libgpg-error-1.5.tar.bz2
1f83d9af8e8ed3bcbf3a5e9018db257dc6336655  libgpg-error-1.5.tar.bz2
$ tar xfj libgpg-error-1.5.tar.bz2
$ mv libgpg-error-1.5 libgpg-error
...........
...........
$ wget -q ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.2.4.tar.gz
$ sha1sum libgcrypt-1.2.4.tar.gz
d279e7a4464cccf0cc4e29c374a1e8325fc65b9a  libgcrypt-1.2.4.tar.gz
$ tar xfz libgcrypt-1.2.4.tar.gz
$ mv libgcrypt-1.2.4 libgcrypt
...........
...........
$ wget -q http://josefsson.org/gnutls/releases/gnutls-1.6.3.tar.bz2
$ sha1sum gnutls-1.6.3.tar.bz2
7553b9f7ddd4982c0759b814bc6d9bf892cf7347  gnutls-1.6.3.tar.bz2
$ tar xfj gnutls-1.6.3.tar.bz2
$ mv gnutls-1.6.3 gnutls
...........
...........
$ wget -q http://josefsson.org/gsasl/releases/gsasl-0.2.18.tar.gz
$ sha1sum gsasl-0.2.18.tar.gz
4447b365d34b2e4c605c16c8bd6819be3c404679  gsasl-0.2.18.tar.gz
$ tar xfz gsasl-0.2.18.tar.gz
$ mv gsasl-0.2.18 gsasl
...........

Download patch

Get it from http://josefsson.org/uclinux/
This was written for the 20070607 version,
SHA-1 01022c6fba6f9c480cb29ba35ba73bfbf2db3cdb.
Apply it as follows:
...........
$ patch -p 0 < 20070607.diff
patching file uClinux-dist/config/Configure.help
patching file uClinux-dist/config/config.in
patching file uClinux-dist/lib/Makefile
patching file uClinux-dist/lib/libgpg-error/makefile
patching file uClinux-dist/lib/libgcrypt/makefile
patching file uClinux-dist/lib/gnutls/makefile
patching file uClinux-dist/lib/gsasl/makefile
$
...........

Build uClinux

...........
$ cd uClinux-dist
$ make menuconfig
...........
I changed the kernel to 'linux-2.4' and CPU to Freescale/M5407C3.
Be sure to toggle 'Customize Vendor/User Settings' under
'Kernel/Library/Defaults Selection' in the first dialog.
Be sure to toggle libgpg-error, libgcrypt, gnutls and/or gsasl under
'Library Configuration' in the second dialog.
...........
$ make dep
$ make
...........
If you get build failures during ./configure of gnutls or gsasl
related to missing 'libgcrypt-config' you need to do:
...........
$ cd uClinux-dist/lib/libgcrypt/inst/bin
$ ln -s m68k-elf-linux-libgcrypt-config libgcrypt-config
...........

Finished

The packages, including in particular the libraries, should now be available from:

...........
          uClinux-dist/lib/libgpg-error/inst/
          uClinux-dist/lib/libgcrypt/inst/
          uClinux-dist/lib/gnutls/inst/
          uClinux-dist/lib/gsasl/inst/
...........