| ## Check that llvm-objcopy preserves ARM mapping symbols for relocatable files. |
| # RUN: yaml2obj %s -o %t.o -DTYPE=REL |
| # RUN: llvm-objcopy --strip-unneeded %t.o %t1.o |
| # RUN: llvm-nm -j --special-syms %t1.o | FileCheck %s --match-full-lines |
| # RUN: llvm-objcopy --discard-all %t.o %t2.o |
| # RUN: llvm-nm -j --special-syms %t2.o | FileCheck %s --match-full-lines |
| |
| # CHECK: $a |
| # CHECK-NEXT: $a.a |
| # CHECK-NEXT: $d |
| # CHECK-NEXT: $d.d |
| # CHECK-NEXT: $t |
| # CHECK-NEXT: $t.t |
| # CHECK-NOT: $x |
| |
| ## A mapping symbol can be deleted if specified explicitly. |
| # RUN: llvm-objcopy -w -N '$d*' %t.o %t3.o |
| # RUN: llvm-nm --special-syms %t3.o | FileCheck /dev/null --implicit-check-not='$d' |
| |
| ## Mapping symbols are not preserved for executable files |
| # RUN: yaml2obj %s -o %t.exec -DTYPE=EXEC |
| # RUN: llvm-objcopy --strip-unneeded %t.exec %t1.exec |
| # RUN: llvm-nm --special-syms %t1.exec | count 0 |
| |
| # RUN: yaml2obj %s -o %t.so -DTYPE=DYN |
| # RUN: llvm-objcopy --strip-unneeded %t.so %t1.so |
| # RUN: llvm-nm --special-syms %t1.so | count 0 |
| |
| !ELF |
| FileHeader: |
| Class: ELFCLASS32 |
| Data: ELFDATA2LSB |
| Type: ET_[[TYPE]] |
| Machine: EM_ARM |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| Symbols: |
| - Name: $a |
| Section: .text |
| - Name: $aa |
| Section: .text |
| - Name: $a.a |
| Section: .text |
| - Name: $d |
| Section: .text |
| - Name: $dd |
| Section: .text |
| - Name: $d.d |
| Section: .text |
| - Name: $m |
| Section: .text |
| - Name: $t |
| Section: .text |
| - Name: $tt |
| Section: .text |
| - Name: $t.t |
| Section: .text |
| - Name: $x |
| Section: .text |