DELTA 292934 70403 780 SVNc!rO// This struct contains the global configuration for the linker. // Most fields are direct mapping from the command line options // and such fields have the same name as the corresponding options. // Most fields are initialized by the driver.// The only instance of Configuration struct.ENDREP DELTA 292934 71196 3320 SVNRz-J_AOE<(x^Rj0+%;1- kqֶґ(^i@ Iޛ7چjT  H Ȩzo€A,!W%NB- 2*R$ؓ'* fQtDi5Xi^4yy {/-~J&<8Sc D64gV_ =aLl(bTfNH8a܅rq*>bx?h:bϼUk ʹCiPe]z!qۍĕ̠wGh?y:1WQӛ\:{0 vNj*e -n:d+mɡ1.3s[nf^Y ijsݨMc^¬0֦ sє6 1ENDREP DELTA 292934 74529 845 SVN[  fu"ENDREP DELTA 292934 77889 4415 SVNoaC q&n.@E | Szgdg 9hHuu%pR`xu gKrl2Z<13sUR- #`=4x^TQo0~WP%RWLVl{D&'fCM;;u*]Xsﻋ! f͸YLpZt61)74 *ԍ g? CGx crohIhq|Ѥ`L@Hl{Ƅ57kTSgZN0OJw.6ߔLg`Dh2AW- J8E!F{L/3Gt2JVX(adōZ4" tT=D!SXKv*9`EU{:TQYT6@e>O!iU|%r0:/ 'RnGp8ڿuC+I4nn݆0s=Q'}K)lz|n8e)y ֦?| uM}h36m2J%~8_;ӮI36- cA߃^BO=6hiĀW,HZdڵ#Dl"i=|ipG>n`WܐgpH蕲Ah2q}7| jէx0I#o\m=v5'Ay(|EI##ܡpURQzu_Na}x'/,bcs4T# CՍZS!. FݥOr-ENDREP DELTA 292934 82317 2015 SVN%+w*[iaHJu2 l hJ[vGroupGroupReststd::unique_ptr createObjectFile(MemoryBufferRef MB); std::unique_ptr createSharedENDREP DELTA 292934 88013 1836 SVN/QBjAO4^O// Usually sections are copied to the output as atomic chunks of data, // but some special types of sections are split into small pieces of data // and each piece is copied to a different place in the output. // This class represents such special sections. // For each piece of data, we maintain the offsets in the input section and // in the output section. The latter may be -1 if it is not assigned yet. std::vector> Offsets; ENDREP DELTA 292934 92245 1725 SVNL`.#l/w--not included into via relocationsan interruptENDREP DELTA 292934 95784 12289 SVNYJX^j( ?1p})7h=ZJ&J@E5Mf1HIsRela ? sizeof(Elf_Rela) : sizeof(Elf_Rel)BPBP ? Body->DynamicSymbolTableIndex : 0; unsigned Reloc; if (!CBP && Body && isGnuIFunc(*Body)) Reloc = Target->getIRelativeReloc(); else if (!CBPcast>(Body)->OffsetInBssBP!Config->Entry.empty()) ++NumEntries; // DT_DEBUG if (!Config->Entry.empty()) WriteVal(DT_DEBUG, 0ssss if (this->Header.sh_flags & SHF_STRINGS) { uintX_t Offset = 0;I, OutputOffset))ENDREP DELTA 292934 112073 2749 SVN[CJCIGTH5*+mU]B^T0/j3E|yqx^j@T)i0I qJ MKXF֫]?8wvfL½Pfld@4yT:EONv*pSt4amAe[BԖ%b˽dK|PK.p *findFile(SymbolBody *BGroupENDREP DELTA 292934 116191 1478 SVN.$  }1 return createObjectFileENDREP DELTA 292934 117682 3296 SVN a"g$^#i`ssss is significant only when NeedsCopy is true. bool NeedsCopy = false; uintX_t OffsetInBssENDREP DELTA 292934 120991 10805 SVNde  '=')ENDREP DELTA 292934 133184 12766 SVN'_^, N3>asNX jHy6Cz+?\ )aF x^N0]5S.0[ba>@hZvQ{J5ثkptUw9RW R ٦yqnI(T(b0FWX':#U ϶{X_fYkz4oѝY'ob< ngލI,`HN ȁm }OVsdx^WmsD_(NqI=@҉iih$ 0ޝ\%Ou}gno=d3 P+1O,u[6MeSq$9;k&_2WX~ytL*2 zjSDCkii[.u:*uL@ RXY2/ dP Qs#!Q}^{^Gm ^ FF7F y .?; fX*5/+ (JR6,QlaeD  `XI4@,Ʋ*Xg}NvG-鰗I%J.iPcafCӵ]kS1`9I>{[' 8fMe3L#-bf^\Mq 3c]L_\q߅Sb$3lk x.Y\-ȥ6e㑏jzJU a' D{QUOC`ġSUDFJyju{"pʷ{GqZ t֯huz7*ֵ&lk7W;ƶmg$? CGӀE_ͨ-| \0"t˾!!LwežhS)2[Aq$kH;v rr)/ yts1k"g,Nþ4O/[V^?:Z:;Mzį| u+-](/]r_HyS_W)桧A`kxbͷ@ei<_,Mr˼c&BѷFퟚ8*V]ENDREP DELTA SVNwyww# REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-freebsd %s -o %t # RUN: ld.lld -shared %t -o %t.so # RUN: ld.lld %t %t.so -o %t.exe # RUN: llvm-readobj -dynamic-table %t.so | FileCheck -check-prefix=DSO %s # RUN: llvm-readobj -dynamic-table %t.exe | FileCheck -check-prefix=EXE %s # EXE: DynamicSection [ # EXE: 0x0000000000000015 DEBUG 0x0 # EXE: ] # DSO: DynamicSection [ # DSO-NOT: 0x0000000000000015 DEBUG 0x0 # DSO: ] .globl _start _start: ENDREP DELTA 292934 415168 691 SVN+g  715 DEBUG 0x0ENDREP DELTA 292934 428970 578 SVN``Sf!8msQBB0 R_X86_64_GLOB_DAT bar 0x0 // CHECK-NEXT: 0x120BB0 - (0x11000 + 2) - 4 = 4266 // 0x120B0 - (0x11006 + 2) - 4 = 4260 // 0x120A8 - (0x1100c + 2) - 4 = 4262 // DISASM: _start: // DISASM-NEXT: 11000: {{.*}} jmpq *4266(%rip) // DISASM-NEXT: 11006: {{.*}} jmpq *4260(%rip) // DISASM-NEXT: 1100c: {{.*}} jmpq *4262ENDREP DELTA 292934 438606 558 SVN88RTXvs{o@xQB0 - 0x11000 - 5 = 4251 // 0x120B67 // DISASM-NEXT: 11005: {{.*}} callq 4270BBENDREP DELTA 292934 466516 768 SVNccvnw|g896ENDREP DELTA 292934 470262 945 SVNno FF2ENDREP DELTA 292934 471220 1124 SVN#7"C'2e">E510 // FULLRELRO-NEXT: Offset: 0x21118 // FULLRELRO-NEXT: Offset: 0x211312 // FULLRELRO-NEXT: MemSize: 312F0 // PARTRELRO-NEXT: Offset: 0x20F48 // PARTRELRO-NEXT: MemSize: 248ENDREP DELTA 292934 475049 533 SVN&c  L|*15 DEBUG 0x0ENDREP DELTA 292934 475595 1625 SVNQ  3i15 DEBUG 0x0ENDREP DELTA 292934 483622 680 SVN "_!k-lc6a.a$o]BB8 R_X86_64_TPOFF64 tls0 0x0 // CHECK-NEXT: } // CHECK-NEXT: ] //0x11000 + 4249 + 7 = 0x120B0 //0x1100A + 4247 + 7 = 0x120B8 //0x11014 + 4237 + 7 = 0x120Ba9 10 00 00 movq 4265a7 10 00 00 movq 42639d 10 00 00 movq 4253ENDREP DELTA 292934 485343 668 SVNQQ"3!Pmn]+p[kf1F0 //RELOC-NEXT: Offset: 0x20FF0 R_X86_64_TPOFF64 tlsshared0 0x0 //RELOC-NEXT: 0x120FF0 //0x11019 + (4296 + 7) = 0x120Fe0 10 00 00 addq 4320d8 10 00 00 addq 4312ENDREP DELTA 292934 486024 600 SVNJJ < R= ;8 R_386_TLS_TPOFF tlsshared0 0x0 // NORELOC-NEXT: 0x1205CENDREP DELTA 292934 487284 1225 SVNLL"(!&H_  d70&8 // GOTREL-NEXT: Offset: 0x20588 R_386_TLS_TPOFF tlsshared0 0x0 // GOTREL-NEXT: 0x1205C8 // 73812 = (.got)[1] = 0x1205C8 20 01 00 movl 73816c 20 01 00 addl 73820ENDREP DELTA 292934 518162 1203 SVNYl@]8NKj{{[0-9abcdef]*}} 10000000 00000000 017a5200 01781e01 # CHECK: {{[0-9abcdef]*}} 100c1f00 20000000 18000000 e4ffffff # Note, this one that matters {{[0-9abcdef]*}} ffffffff 20000000 00000000 00480e10 # CHECK: {{[0-9abcdef]*}}ENDREP DELTA SVNy%yyx^U]o0}ϯS՗ W)eUڲQ%dچ&$dMl8ЪtnҶ`{9X7G`9&R*ZS@ L(cmsz}_FDNyIsWR9gWYw Bޞs?VCqAϙrbT{'D).t++& x Qo"PGM vQ2 x Om)&2Z0W<0!&bH# ȼ6|K ]AL\ڈFC~쵨yp9Ⱥdf$'lw9:> cnJr%x AgRY>e,u0*սv-+*&5O05[ֱ7ǖ {4"hCV+ fEy%O{Ydypm查뻫tgmtSұ_