Settings Options¶
Here are the setting options for the compiler tools:
Compiler Settings¶
| Settings | Description |
|---|---|
| Compiler.Platform | Platform x86, x64, ARMv8A32 |
| Compiler.BaseAddress | Base address of the compiled application |
| Compiler.TraceLevel | Trace level for debugging |
| Compiler.MethodScanner | If true, enable the experimental method scanner |
| Compiler.Multithreading | If true, enables multithreading during compiling process |
| Compiler.Multithreading.MaxThreads | Maximum number of threads used by the compiler |
| Compiler.Binary | If true, emits object file, otherwise no object file is created |
| Compiler.EmitInline | If true, emits all inlined methods into the object file |
| Compiler.OutputFile | Filename of the object file |
| Compiler.SourceFiles | Filename(s) of the source files |
Compiler Optimizations Settings¶
| Settings | Description |
|---|---|
| Optimizations.Basic | If true, enables prebuilt transformation optimizations, like constant folding and strength reduction |
| Optimizations.SSA | If true, transforms instructions to Single Static Assignment (SSA) form |
| Optimizations.SCCP | If true, enables Sparse Conditional Constant Propagation (SCCP) optimizations |
| Optimizations.ValueNumbering | If true, enables the Value Numbering (VN) optimizations |
| Optimizations.LongExpansion | If true, transforms some 64-bit instructions into 32-bit instructions prior to platform transformations |
| Optimizations.BitTracker | If true, enables the bit tracker optimizations |
| Optimizations.LoopInvariantCodeMotion | If true, enables the loop invariant code motion optimizations |
| Optimizations.Devirtualization | If true, transforms virtual methods calls into static method calls |
| Optimizations.Platform | If true, enable platform specific optimizations |
| Optimizations.Inline | If true, small methods can be inlined |
| Optimizations.Inline.Maximum | Maximun number of instructions that can be inlined within a method |
| Optimizations.Inline.AggressiveMaximum | Maximun number of instructions that can be inlined when a method is explicited marked to be inlined |
| Optimizations.Inline.ExplicitOnly | If true, only explicitly marked methods are inlined |
| Optimizations.TwoPass | If true, some optimization stages are executed twice |
| Optimizations.Inline.Aggressive | Methods to be aggressively inline |
| Optimizations.Inline.Exclude | Methods that may not be inlined |
Linker Settings¶
| Settings | Description |
|---|---|
| Linker.Format | Type of ELF object file elf32 or elf64 |
| Linker.Symbols | If true, emits the symbols into the object file |
| Linker.StaticRelocations | If true, emits static relocation information into the object file |
| Linker.Drawf | If true, emits DWARF debug information into the object file |
| Linker.ShortSymbolNames | If true, emits short symbol names into the object file |
| Linker.CustomSections.{Name}.SectionName | Emits a custom linker section with this section name |
| Linker.CustomSections.{Name}.SourceFile | Emits a custom linker section using the specific file |
| Linker.CustomSections.{Name}.Address | Emits a custom linker section with this address |
Common Settings¶
| Settings | Description |
|---|---|
| SearchPaths | Folder to search for files |
| DefaultFolder | Default folder to output files |
| TemporaryFolder | Specifies a temporary folder |
Compiler Debug Settings¶
| Settings | Description |
|---|---|
| CompilerDebug.Statistics | If true, enables statistics gathering |
| CompilerDebug.DebugFile | Filename to emit a MOSA specific debug information |
| CompilerDebug.MapFile | Filename to emit a map of all symbols |
| CompilerDebug.CompileTimeFile | Filename to emit compile times for each method |
| CompilerDebug.AsmFile | Filename to emit ASM disassembly |
| CompilerDebug.NasmFile | Filename to emit disassembly using the NASM tool |
| CompilerDebug.InlinedFile | Filename to emit a list of all methods that were inlined |
| CompilerDebug.PreLinkHashFile | Filename to emit a list of all methods with their hash value prior to linking |
| CompilerDebug.PostLinkHashFile | Filename to emit a list of all methods with their hash value after linking |
Compiler X86 Settings¶
| Settings | Description |
|---|---|
| X86.InterruptMethodName | Name of the method that handles interrupts |
Explorer Settings¶
| Settings | Description |
|---|---|
| Explorer.Filter | Specifies the default method filter name when Explorer is launched |
Launcher Settings¶
| Settings | Description |
|---|---|
| Launcher.Start | If true, immediately start the compiler upon launch |
| Launcher.Launch | If true, launch a virtual machine after compiling the application and generating the virtual machine image |
| Launcher.Exit | If true, exit immediately after launch |
| Launcher.PlugKorlib | If true, automatically include the plugs for CoreLib |
| Launcher.HuntForCorLib | If true, search for CoreLib in various directories |
| Launcher.LaunchGDB | If true, launch the GNU GDB application after VM launch |
| Launcher.LaunchDebugger | If true, launch the MOSA debugger application after VM launch |
| Launcher.Test | If true, monitors VM serial for success or failure messages |
Image Settings¶
| Settings | Description |
|---|---|
| Image.Format | Format of the vritual image file BIN, IMG, VHD, VDI, ISO, VMDK |
| Image.FileSystem | File system of the primary partition in the image file FAT12, FAT16, FAT32, ISO???? |
| Image.BootLoader | Type of bootloader grub0.97, grub2.00, syslinux6.03, syslinux3.72 |
| Image.Destination | Destination directory of the image file |
| Image.ImageFile | Filename of the image file |
Emulator Settings¶
| Settings | Description |
|---|---|
| Emulator | Type of Emulator Qemu, VMware, Bochs |
| Emulator.Memory | Amount of memory for the virtual machine in MB |
| Emulator.Display | If true, show the video display |
| Emulator.GDB | If true, enables GDB within emulator |
| Emulator.Serial | Serial Emulation type None, Pipe, TCPServer, TCPClient |
| Emulator.Serial.Host | Serial Host Name or IP address |
| Emulator.Serial.Port | Serial Port |
| Emulator.Serial.Pipe | Serial Pipename |
GDB Settings¶
| Settings | Description |
|---|---|
| GDB.Host | Host IP or Name for GDB |
| GDB.Port | Port Number for GDB |
Multiboot Settings¶
| Settings | Description |
|---|---|
| Multiboot.Version | Multiboot version none, v1, v2 |
| Multiboot.Video | If true, enable VGA BIOS Extension (VBE) |
| Multiboot.Video.Width | Video Width |
| Multiboot.Video.Height | Video Height |
| Multiboot.Video.Depth | Video Depth |
Debugger Settings¶
| Settings | Description |
|---|---|
| Debugger.WatchFile | Filename of the watch file |
| Debugger.BreakpointFile | Filename of the breakpoint file |
Application Location Settings¶
| Settings | Description |
|---|---|
| AppLocation.Bochs | Location of the BOCHS application |
| AppLocation.Qemu | Location of the QEMU application |
| AppLocation.QemuBIOS | Location of the QEMU BIOS |
| AppLocation.QemuImg | Location of the QEMUImg application |
| AppLocation.VmwarePlayer | Location of the VMPlayer application |
| AppLocation.Ndisasm | Location of the Ndisasm application |
| AppLocation.Mkisofs | Location of the Mkisofs application |
| AppLocation.GDB | Location of the QEMU application |
Import Settings¶
| Settings | Description |
|---|---|
| Import | Filename of another settings file to import |