Up to [The MirOS Project] / src / sys / arch / i386 / include
Request diff between arbitrary revisions - Display revisions graphically
Keyword substitution: kv
Default branch: MAIN
enable (E)COFF execution This is very weird though: I only got an NMAGIC executable with the following source code and build way to work, which is auto-detected by GNU bfd as “pe-i386”, but cannot be created by ld(1) in an auto- mated manner… tg@bleu:~ $ as -o hwtdb.o hwtdb.s tg@bleu:~ $ ld --oformat binary -Ttext 0 hwtdb.o -o hwtdb tg@bleu:~ $ ./hwtdb Hello, World! .intel_syntax noprefix .text .globl _start _start: fhdr: .short 0x014C # f_magic .short 3 # f_nscns .long 0, 0, 0 # f_timdat, f_symptr, f_nsyms .short ohsz # f_opthdr .short 0x010F # f_flags ohdr: .short 0407 # magic .short 134 # vstamp .long tssz # tsize .long dssz # dsize .long bssz # bsize .long 0x1C000000 # entry .long 0x1C000000 # text_start .long 0x1C000000 + dofs # data_start .long 0 # bss_start ohsz = . - ohdr shdrt: .asciz ".text" # s_name . = shdrt + 8 .long 0x1C000000 # s_paddr .long 0x1C000000 # s_vaddr .long tssz # s_size .long tsec # s_scnptr .long 0, 0 # s_relptr, s_lnnoptr .short 0, 0 # s_nreloc, s_nlnno .long 0x20 # s_flags shdrd: .asciz ".data" # s_name . = shdrd + 8 .long 0x1C000000 + dofs # s_paddr .long 0x1C000000 + dofs # s_vaddr .long dssz # s_size .long dsec # s_scnptr .long 0, 0 # s_relptr, s_lnnoptr .short 0, 0 # s_nreloc, s_nlnno .long 0x40 # s_flags shdrb: .asciz ".bss" # s_name . = shdrb + 8 .long 0 # s_paddr .long 0x1C000000 + bofs # s_vaddr .long bssz # s_size .long 0 # s_scnptr .long 0, 0 # s_relptr, s_lnnoptr .short 0, 0 # s_nreloc, s_nlnno .long 0x80 # s_flags .p2align 4, 0 fofs = . tsec: call Lmain Ltext: .ascii "Hello, World!\n" Ltxsz = . - Ltext sc_write: mov eax,4 int 0x80 ret Lmain: pop ecx push dword ptr Ltxsz push ecx push dword ptr 1 call sc_write add esp,12 push dword ptr 0 call sc__exit sc__exit: xor eax,eax inc eax int 0x80 1: jmp 1b tpad: .p2align 4, 0x90 tssz = . - tsec dofs = . - fofs dsec: dpad: .p2align 4, 0 dssz = . - dsec bofs = . - fofs bsec: bssz = . - bsec
don't even bother with (E)COFF for now, it's broken anyway
put a.out and (E)COFF into #ifndef SMALL_KERNEL
throw in EXEC_ECOFF support for i386... I get an EPERM but maybe someone can debug this?
* merge src/sys/ (at least the better part of it) * revert IPv6 networking to OpenBSD, since I didn't get IPV4_MAPPED addresses working :(
Import the OpenBSD foundation of MirOS BSD
Initial revision