This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

me vs gas mips64 relocation


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]