bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/11995] New: linker test fails


From: nathan at gcc dot gnu dot org
Subject: [Bug ld/11995] New: linker test fails
Date: 9 Sep 2010 14:38:20 -0000

As discussed at http://www.cygwin.com/ml/binutils/2010-09/msg00125.html I'm
seeing some test fails, and apparently Matthew is not.  Here's one of those 
fails:

/home/nathan/binutils/arm-none-linux-gnueabi/ld/../gas/as-new   -o
tmpdir/farcall-mixed-app.o 
/home/nathan/binutils/src/ld/testsuite/ld-arm/farcall-mixed-app.s

/home/nathan/binutils/arm-none-linux-gnueabi/ld/ld-new   -o
tmpdir/farcall-mixed-app-v5 -L/home/nathan/binutils/src/ld/testsuite/ld-arm
tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx --section-start .far_arm=0x2100000
--section-start .far_thumb=0x2200000 tmpdir/farcall-mixed-app.o

/home/nathan/binutils/arm-none-linux-gnueabi/ld/../binutils/objdump -fdw -h
tmpdir/farcall-mixed-app-v5 > objdump.out

The fail from ld.log is:
regexp_diff match failure
regexp "^ .*:   000081e8        .word   0x000081e8$"
line   " 2100034:       000081f8        .word   0x000081f8"
regexp_diff match failure
regexp "^ .*:   000081dc        .word   0x000081dc$"
line   " 210003c:       000081ec        .word   0x000081ec"
regexp_diff match failure
regexp "^ .*:   000081dc        .word   0x000081dc$"
line   " 2200014:       000081ec        .word   0x000081ec"
FAIL: Mixed ARM/Thumb arch5 dynamic application with farcalls

AFAICT the contents I get are consistent.  The question is why is it different?

Here's the elf header:

tmpdir/farcall-mixed-app-v5:     file format elf32-littlearm
architecture: arm, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x00008210

Sections:
Idx Name          Size      VMA       LMA       File off  Algn  Flags
  0 .interp       00000011  00008000  00008000  00008000  2**0  CONTENTS, ALLOC,
LOAD, READONLY, DATA
  1 .hash         00000048  00008014  00008014  00008014  2**2  CONTENTS, ALLOC,
LOAD, READONLY, DATA
  2 .dynsym       000000d0  0000805c  0000805c  0000805c  2**2  CONTENTS, ALLOC,
LOAD, READONLY, DATA
  3 .dynstr       00000091  0000812c  0000812c  0000812c  2**0  CONTENTS, ALLOC,
LOAD, READONLY, DATA
  4 .rel.dyn      00000008  000081c0  000081c0  000081c0  2**2  CONTENTS, ALLOC,
LOAD, READONLY, DATA
  5 .rel.plt      00000010  000081c8  000081c8  000081c8  2**2  CONTENTS, ALLOC,
LOAD, READONLY, DATA
  6 .plt          0000002c  000081d8  000081d8  000081d8  2**2  CONTENTS, ALLOC,
LOAD, READONLY, CODE
  7 .text         00000038  00008210  00008210  00008210  2**4  CONTENTS, ALLOC,
LOAD, READONLY, CODE
  8 .dynamic      000000a8  00010248  00010248  00008248  2**2  CONTENTS, ALLOC,
LOAD, DATA
  9 .got          00000014  000102f0  000102f0  000082f0  2**2  CONTENTS, ALLOC,
LOAD, DATA
 10 .data         00000004  00010304  00010304  00008304  2**0  CONTENTS, ALLOC,
LOAD, DATA
 11 .bss          00000004  00010308  00010308  00008308  2**0  ALLOC
 12 .ARM.attributes 00000018  00000000  00000000  00018018  2**0  CONTENTS, 
READONLY
 13 .far_arm      00000040  02100000  02100000  00010000  2**4  CONTENTS, ALLOC,
LOAD, READONLY, CODE
 14 .far_thumb    00000018  02200000  02200000  00018000  2**4  CONTENTS, ALLOC,
LOAD, READONLY, CODE


Here's the PLT
000081d8 <.plt>:
    81d8:       e52de004        push    {lr}            ; (str lr, [sp, #-4]!)
    81dc:       e59fe004        ldr     lr, [pc, #4]    ; 81e8 <_start-0x28>
    81e0:       e08fe00e        add     lr, pc, lr
    81e4:       e5bef008        ldr     pc, [lr, #8]!
    81e8:       00008108        .word   0x00008108
    81ec:       e28fc600        add     ip, pc, #0
    81f0:       e28cca08        add     ip, ip, #32768  ; 0x8000
    81f4:       e5bcf108        ldr     pc, [ip, #264]! ; 0x108
    81f8:       e28fc600        add     ip, pc, #0
    81fc:       e28cca08        add     ip, ip, #32768  ; 0x8000
    8200:       e5bcf100        ldr     pc, [ip, #256]! ; 0x100

and as you can see, 81f8 and 81ec are plt entry points (and 81dc and 81e8 are
not).  My guess is one of the preceeding sections has gotten bigger.

I get the same for both arm-eabi and arm-none-linux-gnueabi targets.

-- 
           Summary: linker test fails
           Product: binutils
           Version: 2.21 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
        AssignedTo: unassigned at sources dot redhat dot com
        ReportedBy: nathan at gcc dot gnu dot org
                CC: bug-binutils at gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: arm-none-linux-gnueabi


http://sourceware.org/bugzilla/show_bug.cgi?id=11995

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]