xref: /llvm-project/llvm/test/tools/llvm-objcopy/ELF/symbol-copy.test (revision 55c81d4282c5da0189711261a11537bc8a7fe85c)
1*55c81d42SFangrui Song# RUN: yaml2obj %s -o %t
26e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy %t %t2
3298ea3f5SJordan Rupprecht# RUN: llvm-readobj --symbols %t2 | FileCheck %s
46e4dc6f2SAlexander Shaposhnikov
56e4dc6f2SAlexander Shaposhnikov!ELF
66e4dc6f2SAlexander ShaposhnikovFileHeader:
76e4dc6f2SAlexander Shaposhnikov  Class:           ELFCLASS64
86e4dc6f2SAlexander Shaposhnikov  Data:            ELFDATA2LSB
96e4dc6f2SAlexander Shaposhnikov  Type:            ET_EXEC
106e4dc6f2SAlexander Shaposhnikov  Machine:         EM_X86_64
116e4dc6f2SAlexander ShaposhnikovSections:
126e4dc6f2SAlexander Shaposhnikov  - Name:            .text
136e4dc6f2SAlexander Shaposhnikov    Type:            SHT_PROGBITS
146e4dc6f2SAlexander Shaposhnikov    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
156e4dc6f2SAlexander Shaposhnikov    Address:         0x1000
166e4dc6f2SAlexander Shaposhnikov    AddressAlign:    0x0000000000000010
176e4dc6f2SAlexander Shaposhnikov    Content:         "0000000000000000"
186e4dc6f2SAlexander Shaposhnikov  - Name:            .data
196e4dc6f2SAlexander Shaposhnikov    Type:            SHT_PROGBITS
206e4dc6f2SAlexander Shaposhnikov    Flags:           [ SHF_ALLOC ]
216e4dc6f2SAlexander Shaposhnikov    Address:         0x2000
226e4dc6f2SAlexander Shaposhnikov    AddressAlign:    0x0000000000000010
236e4dc6f2SAlexander Shaposhnikov    Content:         "0000000000000000"
246e4dc6f2SAlexander ShaposhnikovSymbols:
256e4dc6f2SAlexander Shaposhnikov  - Name:     _start
266e4dc6f2SAlexander Shaposhnikov    Type:     STT_FUNC
276e4dc6f2SAlexander Shaposhnikov    Section:  .text
286e4dc6f2SAlexander Shaposhnikov    Value:    0x1000
296e4dc6f2SAlexander Shaposhnikov    Size:     4
306da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
316e4dc6f2SAlexander Shaposhnikov  - Name:     bam
326e4dc6f2SAlexander Shaposhnikov    Type:     STT_FUNC
336e4dc6f2SAlexander Shaposhnikov    Section:  .text
346e4dc6f2SAlexander Shaposhnikov    Value:    0x1001
356e4dc6f2SAlexander Shaposhnikov    Size:     4
364e71702cSGeorge Rimar    Other:    [ STV_HIDDEN ]
376da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
386e4dc6f2SAlexander Shaposhnikov  - Name:     foo
396e4dc6f2SAlexander Shaposhnikov    Type:     STT_FUNC
406e4dc6f2SAlexander Shaposhnikov    Section:  .text
416e4dc6f2SAlexander Shaposhnikov    Value:    0x1004
426da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
436e4dc6f2SAlexander Shaposhnikov  - Name:     faz
446e4dc6f2SAlexander Shaposhnikov    Type:     STT_OBJECT
456e4dc6f2SAlexander Shaposhnikov    Section:  .data
466e4dc6f2SAlexander Shaposhnikov    Value:    0x2002
476e4dc6f2SAlexander Shaposhnikov    Size:     2
484e71702cSGeorge Rimar    Other:    [ STV_INTERNAL ]
496da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
506e4dc6f2SAlexander Shaposhnikov  - Name:     bar
516e4dc6f2SAlexander Shaposhnikov    Type:     STT_OBJECT
526e4dc6f2SAlexander Shaposhnikov    Section:  .data
536e4dc6f2SAlexander Shaposhnikov    Value:    0x2000
546e4dc6f2SAlexander Shaposhnikov    Size:     4
556da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
566e4dc6f2SAlexander Shaposhnikov  - Name:     baz
576e4dc6f2SAlexander Shaposhnikov    Type:     STT_OBJECT
586e4dc6f2SAlexander Shaposhnikov    Section:  .data
596e4dc6f2SAlexander Shaposhnikov    Value:    0x2004
606e4dc6f2SAlexander Shaposhnikov    Size:     4
616da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
626e4dc6f2SAlexander Shaposhnikov
636e4dc6f2SAlexander Shaposhnikov#CHECK: Symbols [
646e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
656e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name:
666e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x0
676e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 0
686e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Local
696e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: None
706e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other: 0
716e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: Undefined
726e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
736e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
746e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name: _start
756e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x1000
766e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 4
776e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Global
786e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: Function
796e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other: 0
806e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: .text
816e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
826e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
836e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name: bam
846e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x1001
856e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 4
866e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Global
876e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: Function
886e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other [
896e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:      STV_HIDDEN
906e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    ]
916e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: .text
926e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
936e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
946e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name: foo
956e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x1004
966e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 0
976e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Global
986e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: Function
996e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other: 0
1006e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: .text
1016e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
1026e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
1036e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name: faz
1046e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x2002
1056e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 2
1066e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Global
1076e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: Object
1086e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other [
1096e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:      STV_INTERNAL
1106e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    ]
1116e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: .data
1126e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
1136e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
1146e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name: bar
1156e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x2000
1166e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 4
1176e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Global
1186e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: Object
1196e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other: 0
1206e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: .data
1216e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
1226e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
1236e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name: baz
1246e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x2004
1256e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 4
1266e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Global
1276e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: Object
1286e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other: 0
1296e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: .data
1306e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
1316e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:]
132