[PATCH] D31528: [ELF][MIPS] Multi-GOT implementation

Ed Maste via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 3 11:46:01 PDT 2017


emaste added a comment.

I compared the tmp objects in the failing and passing case using diffoscope and noticed one unexpected difference, although it does not appear to be root cause of the failure.

With stat() differences elided I see:

  --- fail
  +++ work
  ├── file list
  │ @@ -1,3 +1,4 @@
  │ +mips-got-and-copy.s.tmp.exe
  │  mips-got-and-copy.s.tmp.o
  │  mips-got-and-copy.s.tmp.so
  │  mips-got-and-copy.s.tmp.so.o
  ├── mips-got-and-copy.s.tmp.so
  ├── readelf --wide --symbols {}
  │ │ @@ -1,16 +1,16 @@
  │ │  
  │ │  Symbol table '.dynsym' contains 6 entries:
  │ │     Num:    Value  Size Type    Bind   Vis      Ndx Name
  │ │       0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
  │ │ -     1: 00010008     0 FUNC    GLOBAL DEFAULT    7 foo1
  │ │ -     2: 00010004     0 FUNC    GLOBAL DEFAULT    7 foo0
  │ │ +     1: 00010000     0 NOTYPE  GLOBAL DEFAULT    7 _foo
  │ │ +     2: 00020000     4 OBJECT  GLOBAL DEFAULT    8 data0
  │ │       3: 00020004     4 OBJECT  GLOBAL DEFAULT    8 data1
  │ │ -     4: 00020000     4 OBJECT  GLOBAL DEFAULT    8 data0
  │ │ -     5: 00010000     0 NOTYPE  GLOBAL DEFAULT    7 _foo
  │ │ +     4: 00010004     0 FUNC    GLOBAL DEFAULT    7 foo0
  │ │ +     5: 00010008     0 FUNC    GLOBAL DEFAULT    7 foo1
  │ │  
  │ │  Symbol table '.symtab' contains 8 entries:
  │ │     Num:    Value  Size Type    Bind   Vis      Ndx Name
  │ │       0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
  │ │       1: 00028000     0 NOTYPE  LOCAL  HIDDEN   ABS _gp
  │ │       2: 000001c0     0 NOTYPE  LOCAL  HIDDEN     5 _DYNAMIC
  │ │       3: 00010000     0 NOTYPE  GLOBAL DEFAULT    7 _foo
  ├── readelf --wide --decompress --hex-dump=.hash {}
  │ │ @@ -1,7 +1,7 @@
  │ │  
  │ │  Hex dump of section '.hash':
  │ │ -  0x00000188 00000006 00000006 00000002 00000001 ................
  │ │ -  0x00000198 00000004 00000003 00000000 00000005 ................
  │ │ +  0x00000188 00000006 00000006 00000004 00000005 ................
  │ │ +  0x00000198 00000002 00000003 00000000 00000001 ................
  │ │    0x000001a8 00000000 00000000 00000000 00000000 ................
  │ │    0x000001b8 00000000 00000000                   ........

so for some reason the sort order for .dynsym is reversed between the two cases.


Repository:
  rL LLVM

https://reviews.llvm.org/D31528





More information about the llvm-commits mailing list