# RUN: yaml2obj --docnum=1 %s -o %t.elf-x86-64
# RUN: yaml2obj --docnum=2 %s -o %t2.elf-x86-64

--- !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
  - Name:    SomeOtherFunction
    Binding: STB_GLOBAL
  - Name:    puts
    Binding: STB_GLOBAL

--- !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

# RUN: rm -f %t.a
# RUN: llvm-ar rcsU %t.a %t.elf-x86-64 %t2.elf-x86-64
# RUN: llvm-nm --print-armap %t.a | FileCheck %s

# RUN: rm -f %t.a
# RUN: env SYM64_THRESHOLD=0 llvm-ar crTs %t.a %t.elf-x86-64 %t2.elf-x86-64
# RUN: llvm-nm --print-armap  %t.a | FileCheck %s
# RUN: grep '/SYM64/' %t.a
 
# RUN: rm -f %t.a
# RUN: env SYM64_THRESHOLD=836 llvm-ar rcsU %t.a %t.elf-x86-64 %t2.elf-x86-64
# RUN: llvm-nm --print-armap %t.a | FileCheck %s
# RUN: grep '/SYM64/' %t.a

# RUN: rm -f %t.a
# RUN: env SYM64_THRESHOLD=837 llvm-ar rcsU %t.a %t.elf-x86-64 %t2.elf-x86-64
# RUN: llvm-nm --print-armap %t.a | FileCheck %s
# RUN: not grep '/SYM64/' %t.a

# CHECK: Archive map
# CHECK-NEXT: main in {{.*}}.elf-x86-64
# CHECK-NEXT: foo in {{.*}}2.elf-x86-64
# CHECK-NEXT: main in {{.*}}2.elf-x86-64
# CHECK-NOT: bar


# RUN: rm -f %t.a
# RUN: llvm-ar --format=gnu rcT %t.a %t.elf-x86-64 %t2.elf-x86-64
# RUN: llvm-nm --print-armap %t.a | FileCheck -DFILE=%/t.elf-x86-64 -DFILE2=%/t2.elf-x86-64 --check-prefix=THIN %s

# THIN: Archive map
# THIN-NEXT: main in [[FILE]]
# THIN-NEXT: foo in [[FILE2]]
# THIN-NEXT: main in [[FILE2]]


# CHECK: {{.*}}.elf-x86-64:
# CHECK-NEXT:                  U SomeOtherFunction
# CHECK-NEXT: 0000000000000000 T main
# CHECK-NEXT:                  U puts

# CHECK: {{.*}}2.elf-x86-64:
# CHECK-NEXT: 0000000000000000 t bar
# CHECK-NEXT: 0000000000000006 T foo
# CHECK-NEXT: 0000000000000016 T main

# RUN: rm -f %t.a
# RUN: llvm-ar rcSU %t.a %t.elf-x86-64 %t2.elf-x86-64
# RUN: llvm-nm --print-armap %t.a | FileCheck %s --check-prefix=NOMAP

# NOMAP-NOT: Archive map

# RUN: llvm-ar s %t.a
# RUN: llvm-nm --print-armap %t.a | FileCheck %s

## Check that the archive does have a corrupt symbol table.
# RUN: rm -f %t.a
# RUN: cp %p/Inputs/archive-test.a-corrupt-symbol-table %t.a
# RUN: llvm-nm --print-armap %t.a | FileCheck %s --check-prefix=CORRUPT

# CORRUPT: Archive map
# CORRUPT-NEXT: mbin in trivial-object-test.elf-x86-64
# CORRUPT-NEXT: foo in trivial-object-test2.elf-x86-64
# CORRUPT-NEXT: main in trivial-object-test2.elf-x86-64

# CORRUPT: {{.*}}.elf-x86-64:
# CORRUPT-NEXT:                  U SomeOtherFunction
# CORRUPT-NEXT: 0000000000000000 T main
# CORRUPT-NEXT:                  U puts

# CORRUPT: {{.*}}2.elf-x86-64:
# CORRUPT-NEXT: 0000000000000000 t bar
# CORRUPT-NEXT: 0000000000000006 T foo
# CORRUPT-NEXT: 0000000000000016 T main

## Check that the we *don't* update the symbol table.
# RUN: llvm-ar s %t.a
# RUN: llvm-nm --print-armap %t.a | FileCheck %s --check-prefix=CORRUPT

## Repeat the test with llvm-ranlib.

# RUN: rm -f %t.a
# RUN: llvm-ar rcSU %t.a %t.elf-x86-64 %t2.elf-x86-64
# RUN: llvm-nm --print-armap %t.a | FileCheck %s --check-prefix=NOMAP

# RUN: llvm-ranlib %t.a
# RUN: llvm-nm --print-armap %t.a | FileCheck %s

# RUN: llvm-nm --print-armap %p/Inputs/macho-archive-x86_64.a | FileCheck %s --check-prefix=BSD-MachO
# RUN: llvm-nm --print-armap %p/Inputs/macho-archive-unsorted-x86_64.a | FileCheck %s --check-prefix=BSD-MachO

# BSD-MachO: Archive map
# BSD-MachO: _bar in bar.o
# BSD-MachO: _foo in foo.o

# RUN: rm -f %t.a
# RUN: llvm-ar --format=bsd rcsU %t.a %p/Inputs/trivial-object-test.macho-x86-64 %p/Inputs/trivial-object-test2.macho-x86-64
# RUN: llvm-nm --print-armap %t.a | FileCheck --check-prefix=MACHO %s

# RUN: rm -f %t.a
# RUN: env SYM64_THRESHOLD=784 llvm-ar --format=darwin rcsU %t.a %p/Inputs/trivial-object-test.macho-x86-64 %p/Inputs/trivial-object-test2.macho-x86-64
# RUN: llvm-nm --print-armap %t.a | FileCheck --check-prefix=MACHO %s
# RUN: grep '__\.SYMDEF_64' %t.a

# RUN: rm -f %t.a
# RUN: env SYM64_THRESHOLD=785 llvm-ar --format=darwin rcsU %t.a %p/Inputs/trivial-object-test.macho-x86-64 %p/Inputs/trivial-object-test2.macho-x86-64
# RUN: llvm-nm --print-armap %t.a | FileCheck --check-prefix=MACHO %s
# RUN: not grep '__\.SYMDEF_64' %t.a

# MACHO: Archive map
# MACHO-NEXT: _main in trivial-object-test.macho-x86-64
# MACHO-NEXT: _foo in trivial-object-test2.macho-x86-64
# MACHO-NEXT: _main in trivial-object-test2.macho-x86-64
# MACHO-NOT: {{^}}bar

# MACHO: trivial-object-test.macho-x86-64
# MACHO-NEXT: 0000000000000028 s L_.str
# MACHO-NEXT:                  U _SomeOtherFunction
# MACHO-NEXT: 0000000000000000 T _main
# MACHO-NEXT:                  U _puts

# MACHO: trivial-object-test2.macho-x86-64
# MACHO-NEXT: 0000000000000000 t _bar
# MACHO-NEXT: 0000000000000001 T _foo
# MACHO-NEXT: 0000000000000002 T _main

# RUN: llvm-nm --print-armap %p/Inputs/macho-toc64-archive-x86_64.a | FileCheck --check-prefix=MACHO-TOC64 %s

# MACHO-TOC64: Archive map
# MACHO-TOC64-NEXT: _test in test.o
# MACHO-TOC64-NEXT: _test in xtest.o

# RUN: rm -f %t.a
# RUN: llvm-ar --format=gnu rcsU %t.a %p/Inputs/coff-short-import-code %p/Inputs/coff-short-import-data
# RUN: llvm-nm --print-armap %t.a | FileCheck --check-prefix=COFF-SHORT-IMPORT %s

# COFF-SHORT-IMPORT:      Archive map
# COFF-SHORT-IMPORT-NEXT: __imp__foo in coff-short-import-code
# COFF-SHORT-IMPORT-NEXT: _foo in coff-short-import-code
# COFF-SHORT-IMPORT-NEXT: __imp__bar in coff-short-import-data
# COFF-SHORT-IMPORT-NOT:  _bar in coff-short-import-data

## Test that we pad the symbol table so that it ends in a multiple of 8 bytes:
## 8 + 60 + 36 == 104
# RUN: rm -f %t.a
# RUN: llvm-ar --format=bsd rcsU %t.a %p/Inputs/trivial-object-test.macho-x86-64
# RUN: FileCheck --check-prefix=MACHO-SYMTAB-ALIGN %s < %t.a
# MACHO-SYMTAB-ALIGN: !<arch>
# MACHO-SYMTAB-ALIGN-NEXT: #1/12           {{..........}}  0     0     0       36        `

## Test that we pad the symbol table so that it ends in a multiple of 8 bytes:
## 8 + 60 + 52 == 120
# RUN: rm -f %t.a
# RUN: llvm-ar --format=bsd rcsD %t.a %p/Inputs/trivial-object-test.macho-x86-64 %p/Inputs/trivial-object-test.macho-x86-64
# RUN: FileCheck --check-prefix=MACHO-SYMTAB-ALIGN2 %s < %t.a
# MACHO-SYMTAB-ALIGN2: !<arch>
# MACHO-SYMTAB-ALIGN2-NEXT: #1/12           0           0     0     0       52        `

## With a gnu symbol table we only align to two
# 8 + 60 + 14 = 82
# RUN: rm -f %t.a
# RUN: llvm-ar --format=gnu rcsD %t.a %p/Inputs/trivial-object-test.macho-x86-64
# RUN: FileCheck --check-prefix=GNU-SYMTAB-ALIGN %s < %t.a
# GNU-SYMTAB-ALIGN: !<arch>
# GNU-SYMTAB-ALIGN-NEXT: /               0           0     0     0       14        `


## ** Test the behavior of an empty archive:

## No symbol table emitted for GNU archives
# RUN: rm -f %t.a
# RUN: llvm-ar rcs --format=gnu %t.a
# RUN: not grep -q '/               ' %t.a

## No symbol table for BSD archives
# RUN: rm -f %t.a
# RUN: llvm-ar rcs --format=bsd %t.a
# RUN: not grep -q '__\.SYMDEF' %t.a

## And we do emit a symbol table for DARWIN archives
# RUN: rm -f %t.a
# RUN: llvm-ar rcs --format=darwin %t.a
# RUN: grep -q '__\.SYMDEF' %t.a
