libkernaux ========== Auxiliary library for kernel development. Table of contents ----------------- * [Overview](#libkernaux) * [Table of contents](#table-of-contents) * [Tips](#tips) Tips ---- Configure with cross-compiler in `$PATH` to make without it in `$PATH`: ``` ./configure \ --host=i686-elf \ AR="$(which i686-elf-ar)" \ CC="$(which i686-elf-gcc)" \ RANLIB="$(which i686-elf-ranlib)" \ CFLAGS='-ffreestanding -nostdinc -nostdlib -fno-builtin -fno-stack-protector -Wall -Wextra' ``` To install into specific directory use full path: `DESTDIR="$(pwd)/dest" make install` instead of `DESTDIR=dest make install`. Check if compilation targets i386: `objdump -d src/arch/i386.o`. It should output something like this: ``` src/arch/i386.o: file format elf32-i386 Disassembly of section .text: 00000000 : 0: 0f 20 c0 mov %cr0,%eax 3: c3 ret 00000004 : 4: 0f 20 e0 mov %cr4,%eax 7: c3 ret 00000008 : 8: 8b 44 24 04 mov 0x4(%esp),%eax c: 0f 22 c0 mov %eax,%cr0 f: c3 ret 00000010 : 10: 8b 44 24 04 mov 0x4(%esp),%eax 14: 0f 22 d8 mov %eax,%cr3 17: c3 ret 00000018 : 18: 8b 44 24 04 mov 0x4(%esp),%eax 1c: 0f 22 e0 mov %eax,%cr4 1f: c3 ret ```