David Given f67c98e239 Distributions are a pain --- let's not bother any more. Instead, we just tag 7 gadi atpakaļ
..
include b549980af2 Wasn't exporting the plat headers; refactor to make this a little cleaner. 7 gadi atpakaļ
libsys 420c47c386 Fix dependency error (only shows up with make, not ninja. Odd). 7 gadi atpakaļ
README a7323e1a8b Documented floating-point status. 17 gadi atpakaļ
boot.s b8e1348f2a Ensured that _errno is always defined. Rejigged the pc86 boot code so it doesn't always waste 510 bytes of memory. 17 gadi atpakaļ
build-pkg.lua 3df4906d52 Turns out I wasn't building the syscall libraries. Do so. 7 gadi atpakaļ
build-tools.lua f253b6a169 linux386 builds. Also, forgot to turn back on the language runtimes. 7 gadi atpakaļ
descr 5bae29a00c ego now builds and is used. 7 gadi atpakaļ

README

# $Source$
# $State$
# $Revision$


The linux386 platform
=====================

linux386 is an i386-based BSP that produces Linux ELF executables.

This port only implements a very limited number of system calls; basically,
just enough to make the demo apps run. Adding more is easy, but there are some
subtleties that require more thought. The port should be considered only in
proof-of-concept stage right now.

Important note: you *can't* link access ELF shared libraries from these
executables. In other words, you have to all your work from inside ACK.

IEEE floating point is available, but requires an FPU.

The executables are generated with aelfslod and are extremely simple; there's
one rwx ELF section which contains all the application's code and data. This
is not optimal, but it does work.


Bugs
====

isatty() is a stub and always returns 0.


Example command line
====================

ack -mlinux386 -O -o linux386.exe examples/paranoia.c

The file linux386.exe can then be run on a i386 Linux machine (or on an
emulation thereof).


David Given
dg@cowlark.com