| # Check that symbol referenced by an entry in the global part of GOT |
| # has a corresponded entry in the .dynsym section. |
| |
| # Build executable |
| # RUN: yaml2obj -format=elf %s > %t.o |
| # RUN: lld -flavor old-gnu -target mipsel -e glob -o %t.exe %t.o |
| # RUN: llvm-readobj -dyn-symbols %t.exe | FileCheck -check-prefix=CHECK-DYN %s |
| |
| # Build executabl (yaml format)e |
| # RUN: lld -flavor old-gnu -target mipsel -e glob \ |
| # RUN: --output-filetype=yaml -o %t.yaml %t.o |
| # RUN: FileCheck -check-prefix=CHECK-GOT %s < %t.yaml |
| |
| # CHECK-DYN: Format: ELF32-mips |
| # CHECK-DYN: Arch: mipsel |
| # CHECK-DYN: AddressSize: 32bit |
| # CHECK-DYN: LoadName: |
| # CHECK-DYN: DynamicSymbols [ |
| # CHECK-DYN: Symbol { |
| # CHECK-DYN: Name: @ (0) |
| # CHECK-DYN: Value: 0x0 |
| # CHECK-DYN: Size: 0 |
| # CHECK-DYN: Binding: Local (0x0) |
| # CHECK-DYN: Type: None (0x0) |
| # CHECK-DYN: Other: 0 |
| # CHECK-DYN: Section: Undefined (0x0) |
| # CHECK-DYN: } |
| # CHECK-DYN: Symbol { |
| # CHECK-DYN: Name: weakf@ (1) |
| # CHECK-DYN: Value: 0x0 |
| # CHECK-DYN: Size: 0 |
| # CHECK-DYN: Binding: Weak (0x2) |
| # CHECK-DYN: Type: None (0x0) |
| # CHECK-DYN: Other: 0 |
| # CHECK-DYN: Section: Undefined (0x0) |
| # CHECK-DYN: } |
| # CHECK-DYN: ] |
| |
| # CHECK-GOT: - type: got |
| # CHECK-GOT: content: [ 00, 00, 00, 00 ] |
| # CHECK-GOT: alignment: 4 |
| # CHECK-GOT: section-choice: custom-required |
| # CHECK-GOT: section-name: .got |
| # CHECK-GOT: permissions: rw- |
| # CHECK-GOT: - type: got |
| # CHECK-GOT: content: [ 00, 00, 00, 80 ] |
| # CHECK-GOT: alignment: 4 |
| # CHECK-GOT: section-choice: custom-required |
| # CHECK-GOT: section-name: .got |
| # CHECK-GOT: permissions: rw- |
| # CHECK-GOT: - ref-name: L000 |
| # CHECK-GOT: type: got |
| # CHECK-GOT: content: [ 00, 00, 00, 00 ] |
| # CHECK-GOT: alignment: 4 |
| # CHECK-GOT: section-choice: custom-required |
| # CHECK-GOT: section-name: .got |
| # CHECK-GOT: permissions: rw- |
| # CHECK-GOT: references: |
| # CHECK-GOT: - kind: LLD_R_MIPS_GLOBAL_GOT |
| # CHECK-GOT: offset: 0 |
| # CHECK-GOT: target: weakf |
| |
| FileHeader: |
| Class: ELFCLASS32 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_MIPS |
| Flags: [ EF_MIPS_PIC, EF_MIPS_CPIC, |
| EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ] |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| AddressAlign: 0x10 |
| Size: 0x04 |
| - Name: .rel.text |
| Type: SHT_REL |
| Link: .symtab |
| AddressAlign: 0x04 |
| Info: .text |
| Relocations: |
| - Offset: 0x00 |
| Symbol: weakf |
| Type: R_MIPS_GOT16 |
| |
| Symbols: |
| Global: |
| - Name: glob |
| Section: .text |
| Weak: |
| - Name: weakf |