* Christer Weinigel <[EMAIL PROTECTED]> [020710 02:01]:
> By the way, I'm seeing a really strange error:
>
> Finding PCI configuration type.
> PCI: Using configuration type 1
> Scanning PCI bus...PCI: pci_scan_bus for bus 0
> Error! malloc: Free_mem_ptr >= free_mem_end_ptr
>
> I decided to try to figure out what was going on and added a debug
> message to print out the values of eheap and heap in
> freebios/src/lib/malloc.c:
>
> void *malloc(size_t size)
> {
> void *p;
>
> + printk_info("heap = 0x%lx, eheap = 0x%lx\n", (long)_heap, (long)_eheap);
> MALLOCDBG((__FUNCTION__ " Enter, size %d, free_mem_ptr %p\n", size,
>free_mem_ptr));
>
> what is so strange is that this fixed the problem and it is
> repeatable, if I remove the printk, the error will reappear. Has
> anyone seen anything like this? Could it be gcc acting up?
>
> bash$ gcc -v
> Reading specs from /usr/lib/gcc-lib/i486-suse-linux/2.95.3/specs
> gcc version 2.95.3 20010315 (SuSE)
>
> bash$ ld -v
> GNU ld version 2.11.90.0.29 (with BFD 2.11.90.0.29)
I had a very similar problem where free_mem_end_ptr always got set to 0,
thus malloc did not work. I fixed it with using some older (2.10.x iirc)
binutils.
Did not have time to investigate this in detail yet though
Stefan
--
The x86 isn't all that complex - it just doesn't make a lot of
sense. -- Mike Johnson, Leader of 80x86 Design at AMD
Microprocessor Report (1994)