Nathan Mentley <nathanmentley@xxxxxxxxx> writes: > For example. in this code segment: > > if (address < KERNEL_BASE || address + size > sNextVirtualAddress) { > panic("mmu_free: asked to unmap out of range region (%p, size % > lx)\n", > (void *)address, size); > } > > (address + size > sNextVirtualAddress) always returns true... no matter > what size (address + size) actually is. What are the types of these variables? Perhaps something is a signed type when it should be an unsigned type. > Secondly, While building gcc it outputs a x86_64 gcclib, but it doesn't > output the x86 gcclib. Is there an option or setting in the build script > that will output the gcclib for both architectures? You have to set up a multilib. See, e.g., gcc/config/i386/t-linux64. Ian