ACK ANSI C compiler
I just thought that people here might be interested to know that I've been (slowly) working on resurrecting the old ACK compiler toolchain, used by Minix. It got open sourced a few years ago, under an extremely liberal BSD license.
The reason why I say this is that it is, as far as I know, the only decent free ANSI C i86 compiler. Tiny and small model only, unfortunately, but that's all that ELKS requires. It should certainly be better than bcc, but then a lot of things are...
Signature · 4 lines
+- David Given --McQ-+ | [email protected] | Wholesale theft is the sincerest form of flattery. | ([email protected]) | +- www.cowlark.com --+
Hi David,
Looks quite interesting and I will check it out when I have some free time. I am currently using the free Watcom compiler which supports the 8086 and upwards. I used this compiler (ver 10.0) years ago for a QNX based embedded system and it was quite good. The 8086 support is OKish, you have to fix some minor issues but nothing to difficult (like .386 pragma in the assembly listings). The full source code is available and the user group seems quite active.
See http://www.openwatcom.org/
To use it for my home grown system I wrote a simple runtime support and some basic library calls like putch/getch/sprintf/printf. I then wrote a monitor which included basic I/O interrupt handlers like int21/int10/int16. By using a tiny model (.com) I avoid the requirement for a locator. I then translate the binary com file into an intel hex file and upload it to my board. So far it seems to work OK. When I have some more time I will put all this stuff on my website.
Does ACK compiles ELKS?
Regards,
Hans.
----- Original Message ----- From: "David Given" <[email protected]>
To: <[email protected]>
Sent: Monday, August 15, 2005 5:12 PM
Subject: ACK ANSI C compiler
I just thought that people here might be interested to know that I've been (slowly) working on resurrecting the old ACK compiler toolchain, used by Minix. It got open sourced a few years ago, under an extremely liberal BSD license.
The reason why I say this is that it is, as far as I know, the only decent free ANSI C i86 compiler. Tiny and small model only, unfortunately, but that's all that ELKS requires. It should certainly be better than bcc, but then a lot of things are...
Signature · 4 lines
+- David Given --McQ-+ | [email protected] | Wholesale theft is the sincerest form of flattery. | ([email protected]) | +- www.cowlark.com --+
Quoted 1 line
Does ACK compiles ELKS
No it doesn't. Actually it is going to be a nightmare to make it compile under
ACK. But we probably should face the daemons...
Harry
Quoted 5 lines · Harry Kalogirou
Quoted 1 line
Does ACK compiles ELKS
No it doesn't. Actually it is going to be a nightmare to make it compile under
ACK. But we probably should face the daemons...
Apart from inline assembly, the biggest problem would most likely be generating the output binaries: the ACK's linker won't generate output files. Instead, the linker (it's called led) produces ack.out format files, just like any other object file, and relies on an architecture specific program to convert them into executable binaries.
(Given the vast number of different output formats, this is entirely reasonable, if a little unhelpful.)
For ELKS, you'd probably have to write two binary converters: one for the kernel, and one for the executables themselves. Neither of these would be particularly difficult, especially since ELKS binaries are heavily based on Minix binaries, and of course a Minix converter is supplied. (arch/i86/cv/cv.c if anyone's interested.)
Signature · 2 lines
"Curses! Foiled by the chilled dairy treats of righteousness!" --- Earthworm Jim (evil)
PATCH 1/1 Small Error Fixes
In reply to Harry KalogirouPATCH 1/1 Small Error Fixes
In reply to Harry KalogirouPATCH 1/1 Small Error Fixes
In reply to Harry KalogirouCommit these files with:
e.g
#patch -p0 < patch1.dma