Smaller C: Difference between revisions

From OSDev Wiki
Jump to navigation Jump to search
Line 5: Line 5:
With some work you may even be able to run Smaller C in your OS (e.g. you need to port [[NASM]]/[[YASM]] or [[FASM]] (FASM is probably easier) to your OS and make appropriate changes in the Smaller C standard library to use your OS system calls instead of those for DOS, Windows and Linux).
With some work you may even be able to run Smaller C in your OS (e.g. you need to port [[NASM]]/[[YASM]] or [[FASM]] (FASM is probably easier) to your OS and make appropriate changes in the Smaller C standard library to use your OS system calls instead of those for DOS, Windows and Linux).


The core compiler comes with a preprocessor, a linker and a compiler driver (the driver invokes the preproccessor, the core compiler, the assembler, and the linker and supports options similar to those of [[GCC]]). The linker ([[smlrl]]) can produce the following executable formats: [[COM]], [[MZ]], [[PE]], [[ELF]], [[A.out]] and flat executables. Btw, [[COM]] and [[MZ]] may be booted directly with [[BootProg]].
The core compiler comes with a preprocessor, a linker and a compiler driver (the driver invokes the preproccessor, the core compiler, the assembler, and the linker and supports options similar to those of [[GCC]]). The linker ([[smlrl]]) can produce the following executable formats: [[COM]], [[MZ]], [[PE]], [[ELF(追記) ]], [[MACH-O (追記ここまで)]], [[A.out]] and flat executables. Btw, [[COM]] and [[MZ]] may be booted directly with [[BootProg]].


The standard C library is work-in-progress and it's close to completion.
The standard C library is work-in-progress and it's close to completion.

Revision as of 11:25, 17 October 2017

Smaller C is a simple and small single-pass C compiler, currently supporting most of the C language common between C89/ANSI C and C99 (minus some C89 and plus some C99 features).

The compiler self-hosts on DOS, Windows and Linux, meaning it can compile under and for all three OSes and it may additionally be used to write bootloaders and other parts OS running in Real Mode, Virtual 8086 Mode, Unreal Mode and 32-bit Protected Mode.

With some work you may even be able to run Smaller C in your OS (e.g. you need to port NASM/YASM or FASM (FASM is probably easier) to your OS and make appropriate changes in the Smaller C standard library to use your OS system calls instead of those for DOS, Windows and Linux).

The core compiler comes with a preprocessor, a linker and a compiler driver (the driver invokes the preproccessor, the core compiler, the assembler, and the linker and supports options similar to those of GCC). The linker (smlrl) can produce the following executable formats: COM, MZ, PE, ELF, MACH-O, A.out and flat executables. Btw, COM and MZ may be booted directly with BootProg.

The standard C library is work-in-progress and it's close to completion.

Fun fact: Smaller C runs on RetroBSD on a MIPS microcontroller and fits into the 96KB of user memory.

See Also

External Links

Retrieved from "https://wiki.osdev.org/index.php?title=Smaller_C&oldid=21622"