Page 1 of 1

HigherHalf Kernel and inline functions

Posted: Sat May 14, 2005 7:22 am
by kwurzel_alex
OK, I've got the HigherHalf Kernel running. But if I try to make a class with inline functions, GRUB reports "selected item cannot fit into memory".

Code: Select all

Memory Configuration

Name             Origin             Length             Attributes
*default*        0x00000000         0xffffffff

Linker script and memory map

                0xc0100000                . = 0xc0100000

.text           0xc0100000      0x637 load address 0x00100000
 *(.text)
 .text          0xc0100000       0x52 ./tmp/kernel/loader.o
                0xc010000c                _loader
 *fill*         0xc0100052        0x2 00
 .text          0xc0100054      0x5e3 ./tmp/kernel/kernel.o
                0xc010022a                CVideoRam::Clear()
                0xc0100366                CVideoRamManager::OutputHex(unsigned char)
                0xc0100546                CVideoRamManager::OutputChar(unsigned char)
                0xc0100466                CVideoRamManager::OutputHex(unsigned long)
                0xc01005da                CVideoRamManager::OutputPlainChar(unsigned char)
                0xc0100114                CVideoRam::SetFormatAt(int, int, unsigned char)
                0xc0100054                CVideoRam::SetAt(int, int, unsigned char, unsigned char)
                0xc01002e2                CVideoRamManager::CVideoRamManager(unsigned char)
                0xc010034c                CVideoRamManager::Output(char const*)
                0xc01003e0                CVideoRamManager::OutputHex(unsigned short)
                0xc0100278                CVideoRamManager::CVideoRamManager(unsigned char)
                0xc0100096                CVideoRam::SetSymbolAt(int, int, unsigned char)
                0xc0100192                CVideoRam::ScrollDown()
                0xc010060a                _main
                0xc01004de                CVideoRamManager::OutputDec(unsigned long)

(THE FOLLOWING FUNCTION IS THE ONE WHICH IS DECLARED INLINE. WHATS WRONG WITH IT???)

.gnu.linkonce.t._ZN16CVideoRamManager6OutputEPKh
                0xc0100638       0x3b
 .gnu.linkonce.t._ZN16CVideoRamManager6OutputEPKh
                0xc0100638       0x3b ./tmp/kernel/kernel.o
                0xc0100638                CVideoRamManager::Output(unsigned char const*)

.rodata         0xc0100674       0x10 load address 0x00100674
 *(.rodata)
 .rodata        0xc0100674       0x10 ./tmp/kernel/kernel.o

.rel.dyn

.data           0xc0101000     0x1000 load address 0x00101000
 *(.data)
 .data          0xc0101000     0x1000 ./tmp/kernel/loader.o

.bss            0xc0102000     0x4000 load address 0x00102000
                0xc0102000                _sbss = .
 *(COMMON)
 *(.bss)
 .bss           0xc0102000     0x4000 ./tmp/kernel/loader.o
                0xc0106000                _ebss = .
LOAD ./tmp/kernel/loader.o
LOAD ./tmp/kernel/kernel.o
OUTPUT(./sys/kernel.elf elf32-i386)

.comment        0x00000000       0x31
 .comment       0x00000000       0x1f ./tmp/kernel/loader.o
 .comment       0x0000001f       0x12 ./tmp/kernel/kernel.o 

Re:HigherHalf Kernel and inline functions

Posted: Sat May 14, 2005 8:24 am
by kwurzel_alex
OK everything right, it was a buggy version of gcc.