This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
me vs gas mips64 relocation
- From: d p chang <weasel at meer dot net>
- To: binutils at sources dot redhat dot com, linux-mips at oss dot sgi dot com
- Date: 01 Feb 2002 05:45:19 -0800
- Subject: me vs gas mips64 relocation
- Reply-to: weasel at cs dot stanford dot edu
Hi there, I'm trying to figure out if i've just misconfigured
something here or if there is a real problem in gas. I did some
grovelling through the mailing list archives, but really am still
catching up.
Anyway, here at home i grabbed the current cvs binutils and configured
(i thought successfully since I only checked the assembly before the
final link and hadn't been looking at the reloc bits) it to cross
compile from macos x to mips64-linux. It appeared to be successful but
it wasn't until i had written the rest of my chipset startup logic
that I noticed a problem.
My test case looks like this:
.text
.comm my_test_global, 8, 8
LEAF(reloc_hi_test)
ld t0, my_test_global ; my problem
lui t0, %hi(my_test_global) ; works
addiu t0, %lo(my_test_global)
END(reloc_hi_test)
.end
i compile this w/ (i only just added all the verbosity flags).
mips64-linux-gcc -I /Volumes/Homey/dpc/Devel/linux-2.4.17/include/asm/gcc -D__KERNEL__ -I/Volumes/Homey/dpc/Devel/linux-2.4.17/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -G 0 -mno-abicalls -fno-pic -Wa,--trap -pipe -mips4 -mmad -Wa,-march=r5231 -mlong64 -mgp64 -mfp64 -ffreestanding -mabi=n32 reloc.S -c -o reloc.o -Wa,-acdhls -v -Wa,-v -Wa,-O0
and I get this from objdump:
reloc.o: file format elf32-tradbigmips
Disassembly of section .text:
00000000 <reloc_hi_test>:
0: 3c0c0000 lui t0,0x0
4: 258c0000 addiu t0,t0,0
4: R_MIPS_LO16 my_test_global
8: 3c0c0000 lui t0,0x0
8: R_MIPS_HI16 my_test_global
c: 258c0000 addiu t0,t0,0
c: R_MIPS_LO16 my_test_global
Anyway, the missing R_MIPS_HI16 relocation at offset 0 is my
problem. I had expected the two to generate the same code. am i
mistaken, did i screw something up configuring, is this a bug, or
something else?
\p