A CVS snapshot of the current XFLAT source tree can be obtained by following the CVS links from the Project page.
The anonymous CVS commands are summarized below for your cut'n'paste pleasure below:
cvs -d:pserver:email@example.com:/cvsroot/xflat login cvs -z3 -d:pserver:firstname.lastname@example.org:/cvsroot/xflat co -P modulename
Where you just press enter if prompted for a password. Possible choices for modulename are listed in the next paragraph.
If you check out the entire XFLAT source tree (modulename=.), you will be downloading around 68Mb of files (at last count). An option is to download individual XFLAT modules using the following modulenames:
If you prefer to work from stable, released code then you can download the latest XFLAT release by following the Download links from the Project page.
The current XFLAT release is xflat-0.1.6.tar.gz dated July 12, 2006.
XFLAT has stabilized. This release simiply incorporates some very minor bugfixes and documentation updates from CVS.
This release has been verified through testing on a big-endian ARM946, the linux 2.6.14 kernel, and a recent uClibc snapshot on a 32-bit machine running SuSE 10.0.
This tarball includes all of the XFLAT packages except for the large archives directory that contains tarballs of the basic GNU toolchains (buildroot, gcc, uClibc, etc). The verified configurations use CVS snapshots that are not available in any other way. To have a buildable system, you will need to downlad the archives package separately (see http://xflat.sourceforge.net Download information. Follow the CVS download instructions using module name = archives).
0.1.0 2006-04-17 Gregory Nutt <email@example.com> * Initial Release * Code builds but XFLAT is untested in the buildroot environment 0.1.1 2006-04-21 Gregory Nutt <firstname.lastname@example.org> * Updated documentation * Corrected errors in config/rosedale configuration * Created config/arm-linux ARM7 little endian configuration * Removed the setenv script; it is now stored with the configuration. * uClibc patches moved to versioned directories. * Enable /sbin/init in busybox configurations * Fixed do_mmap arguments in linux 2.6 binfmt_xflat * Added big-endian target kernel support * Fixed error in xflat installation * Fixed errors in busybox and tinylogin link * Updated XFLAT startup files for uClibc >=0.9.28 * XFLAT "Hello, world." runs for rosedale configuration but does not yet boot to login. 0.1.2 2006-04-24 Gregory Nutt <email@example.com> * Fixed problem with xflat compatible liblongjmp.a * Added xflat compatible libsearch.a * Corrected busybox build; it needed special handling for call to longjmp(), bsearch(), and qsort() and access to _res. * Busybox and tinylogin were being built with the wrong compiler. * Added capability to select bash or msh compatible scripts. * Full working system demonstrated with new buildroot integration using big-endian arm946 ("rosedale") 0.1.3 2006-05-02 Gregory Nutt <firstname.lastname@example.org> * Integrated XFLAT test suite (still some outstanding C++ issues) * Converted all types used in XFLAT logic so that is should work correctly under a 64-bit host Linux (untested). 0.1.3rc1 2006-05-02 Gregory Nutt <email@example.com> * This release just fixes errors in the original 0.1.3 release * Fixed more dangling 32-/64-bit build issues 0.1.4 2006-05-04 Gregory Nutt <firstname.lastname@example.org> * Build tinylogin with statically linked libcrypt. This could change in the future if we decide to create a shared libcrypt. * Build tinylogin with -membedded-pic in CFLAGS * C++ static initializers work with gcc 3.x * Added C++ linking support to xflat-ld (not well tested) 0.1.5 2006-05-12 Gregory Nutt <email@example.com> * Verifed xflat-ld C++ linking support * Added documentation for the state of C++ in XFLAT * Fixed spurious prompts for FPU in uClibc build 0.1.6 2006-07-12 Gregory Nutt <firstname.lastname@example.org> * Added a FAQ to the XFLAT Documentation * Fixed an error in xflat-ld that would cause a link error with the -g option is used (-g generates an ELF debug file to match the XFLAT executable). 0.1.7 2006-xx-xx Gregory Nutt <email@example.com> (not yet released)
The XFLAT shared libraries is a mature technology has shipped on numerous handheld devices as proprietary software. This open source release includes an integration with a recent buildroot release (http://buildroot.uclibc.org/) from February of 2006.
As of this writing, only parts of buildroot have been integrated. Here is an overview:Architecture:
XFLAT is easily extended to most MMU-less processors. It does not depend on any special characteristics of the processor. XFLAT has shipped commercially on little-endian ARM7 and ARM9 but this support has not been re-verified in the present buildroot configuration. Only big-endian ARM9 support has been tested on hardware in this configuration.
|binutils:||Only binutils 2.16.1 have been verified|
|gcc:||Only gcc-3.4.5 has been tested. GCC requires patches for XFLAT (see xflat/gcc). Additional patches are required in order to use other versions.|
|uClibc:||XFLAT was shipped commercially on 0.9.20 and 0.9.26 in the past. Untested patches for these versions are provided. Current testing uses a uClibc snapshot dated March 15, 2006 (available in the XFLAT archives module).|
Each userspace application must be port for use with XFLAT. This includes standard porting steps that are necessary for uClinux (e.g., conversion of forks to vforks), but also some changes in the compiler name and in the linking command line. Only the following userspace packages have been built as of this writing.
|busybox:||Only a snapshot dated March 3, 2006 (available in the XFLAT archives module).|
|tinylogin:||Only a snapshot dated April 12, 2006 (available in the XFLAT archives module).|