| # RUN: yaml2obj -docnum=1 %s > %t.elf-x86-64 |
| # RUN: echo create %t.a > %t.mri |
| # RUN: echo 'addmod "%t.elf-x86-64"' >> %t.mri |
| # RUN: echo save >> %t.mri |
| # RUN: echo end >> %t.mri |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| Symbols: |
| - Name: main |
| Type: STT_FUNC |
| Section: .text |
| Binding: STB_GLOBAL |
| Size: 0x0000000000000024 |
| - Name: SomeOtherFunction |
| Binding: STB_GLOBAL |
| - Name: puts |
| Binding: STB_GLOBAL |
| |
| # RUN: llvm-ar -M < %t.mri |
| # RUN: llvm-nm -M %t.a | FileCheck %s |
| |
| # CHECK: Archive map |
| # CHECK-NEXT: main in {{.*}}elf-x86-64 |
| |
| # CHECK: {{.*}}elf-x86-64: |
| # CHECK-NEXT: U SomeOtherFunction |
| # CHECK-NEXT: 0000000000000000 T main |
| # CHECK-NEXT: U puts |
| |
| ## Now test that CREATE overwrites an existing file. |
| # RUN: yaml2obj -docnum=2 %s > %t2.elf-x86-64 |
| |
| # RUN: echo create %t.a > %t2.mri |
| # RUN: echo addmod %t2.elf-x86-64 >> %t2.mri |
| # RUN: echo save >> %t2.mri |
| # RUN: echo end >> %t2.mri |
| |
| # RUN: llvm-ar -M < %t2.mri |
| # RUN: llvm-nm -M %t.a | FileCheck --check-prefix=NEW %s |
| |
| # NEW: Archive map |
| # NEW-NEXT: foo in {{.*}}2.elf-x86-64 |
| # NEW-NEXT: main in {{.*}}2.elf-x86-64 |
| |
| # NEW: {{.*}}2.elf-x86-64: |
| # NEW-NEXT: 0000000000000000 t bar |
| # NEW-NEXT: 0000000000000006 T foo |
| # NEW-NEXT: 0000000000000016 T main |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |
| Symbols: |
| - Name: bar |
| Type: STT_FUNC |
| Section: .text |
| - Name: foo |
| Type: STT_FUNC |
| Section: .text |
| Binding: STB_GLOBAL |
| Value: 0x0000000000000006 |
| - Name: main |
| Type: STT_FUNC |
| Section: .text |
| Binding: STB_GLOBAL |
| Value: 0x0000000000000016 |