linux-mips-fnet
[Top] [All Lists]

Pointers to globals incorrectly offset by +0x10000

To: <linuxce-devel@linuxce.org>, <linux-mips@fnet.fr>
Subject: Pointers to globals incorrectly offset by +0x10000
From: "Bradley D. LaRonde" <brad@ltc.com>
Date: Tue, 20 Jul 1999 14:12:34 -0400
The compiler/linker is generating incorrect addresses for my function
pointers and global pointers when I build the kernel.  It's adding 0x10000
to all of them.

Say, for example I have a global struct at 0x8000aa00.  When I pass a
pointer to that struct, the compiler/linker generate code that passes
0x8001aa00 instead of 0x8000aa00.

I've been able to reproduce the problem in a small test application.  I
hacked out almost everything out of a copy of arch/mips/kernel/head.S until
I found the problem.  Now I can make it disapper in my test app by
commenting one line in head.S.  It's a line toward the bottom that says:

    .org 0x3000

It's from that area at the bottom of arch/mips/kernel/head.S that EXPORTs
kernel_sp, swapper_pg_dir, etc.

Any ideas?


Regards,
Brad

<Prev in Thread] Current Thread [Next in Thread>
  • Pointers to globals incorrectly offset by +0x10000, Bradley D. LaRonde <=