Wrong string address
H.J. Lu
hjl.tools@gmail.com
Sun Nov 15 16:14:00 GMT 2009
On Sat, Nov 14, 2009 at 11:06 PM, Halip Ilie <lupuroshu@yahoo.com> wrote:
> Hello. I'm trying to compile geezer's OS dev examples (http://files.osdev.org/mirrors/geezer/osd/code/osd.zip), with gcc 4.4.2 and binutils 2.20, both compiled with Cygwin and targetting i586-elf (--target=i586-elf), on a Win XP SP3.
>
> The problem is that in the resulting binary, the addresses of strings are wrong. Here's what I mean (in the first example, it only prints 2 strings on the screen, memcpy is used to copy bytes in the video memory):
> 10011a: 6a 20 push $0x20
> 10011c: 68 60 81 04 08 push $0x8048160
> 100121: ff 75 fc pushl -0x4(%ebp)
> 100124: e8 6a ff ff ff call 100093 <memcpy>
> // .......
> 10012e: 68 a0 81 04 08 push $0x80481a0
> //........
> 10013b: 50 push %eax
> 10013c: e8 52 ff ff ff call 100093 <memcpy>
> These two: 0x8048160 and 0x80481a0 should be the addresses of two strings. But the correct addresses are actually at 0x100160 and 0x1001a0. With MinGW, the output is correct, and tried cross-compiling it's binutils-src package, with the same result.
>
Please open a bug report with a testcase.
Thanks.
--
H.J.
More information about the Binutils
mailing list