| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,8 @@ | ||
| .section __TEXT,__cstring | ||
| .globl _hello_world, _hello_its_me | ||
|
|
||
| _hello_world: | ||
| .asciz "Hello world!\n" | ||
|
|
||
| _hello_its_me: | ||
| .asciz "Hello, it's me\n" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| # REQUIRES: x86 | ||
| # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o | ||
| # RUN: lld -flavor darwinnew -dylib %t.o -o %t.dylib | ||
|
|
||
| # RUN: llvm-objdump --syms --exports-trie %t.dylib | \ | ||
| # RUN: FileCheck %s --check-prefix=EXPORTS | ||
| # EXPORTS-LABEL: SYMBOL TABLE: | ||
| # EXPORTS-DAG: [[#%x, HELLO_ADDR:]] {{.*}} _hello | ||
| # EXPORTS-DAG: [[#%x, HELLO_WORLD_ADDR:]] {{.*}} _hello_world | ||
| # EXPORTS-DAG: [[#%x, HELLO_ITS_ME_ADDR:]] {{.*}} _hello_its_me | ||
| # EXPORTS-DAG: [[#%x, HELLO_ITS_YOU_ADDR:]] {{.*}} _hello_its_you | ||
| # EXPORTS-LABEL: Exports trie: | ||
| # EXPORTS-DAG: 0x{{0*}}[[#%X, HELLO_ADDR]] _hello | ||
| # EXPORTS-DAG: 0x{{0*}}[[#%X, HELLO_WORLD_ADDR]] _hello_world | ||
| # EXPORTS-DAG: 0x{{0*}}[[#%x, HELLO_ITS_ME_ADDR:]] _hello_its_me | ||
| # EXPORTS-DAG: 0x{{0*}}[[#%x, HELLO_ITS_YOU_ADDR:]] _hello_its_you | ||
|
|
||
| ## Check that we are sharing prefixes in the trie. | ||
| # RUN: obj2yaml %t.dylib | FileCheck %s | ||
| # CHECK-LABEL: ExportTrie: | ||
| # CHECK: Name: '' | ||
| # CHECK: Name: _hello | ||
| # CHECK: Name: _ | ||
| # CHECK: Name: world | ||
| # CHECK: Name: its_ | ||
| # CHECK: Name: me | ||
| # CHECK: Name: you | ||
|
|
||
| .section __TEXT,__cstring | ||
| .globl _hello, _hello_world, _hello_its_me, _hello_its_you | ||
|
|
||
| ## Test for when an entire symbol name is a prefix of another. | ||
| _hello: | ||
| .asciz "Hello!\n" | ||
|
|
||
| _hello_world: | ||
| .asciz "Hello world!\n" | ||
|
|
||
| .data | ||
| _hello_its_me: | ||
| .asciz "Hello, it's me\n" | ||
|
|
||
| _hello_its_you: | ||
| .asciz "Hello, it's you\n" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| # REQUIRES: x86 | ||
| # RUN: llvm-mc -filetype=obj -triple=i386-apple-darwin %s -o %t.i386.o | ||
| # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.x86_64.o | ||
| # RUN: llvm-lipo %t.i386.o %t.x86_64.o -create -o %t.fat.o | ||
| # RUN: lld -flavor darwinnew -arch x86_64 -o /dev/null %t.fat.o | ||
|
|
||
| # RUN: llvm-lipo %t.i386.o -create -o %t.noarch.o | ||
| # RUN: not lld -flavor darwinnew -arch x86_64 -o /dev/null %t.noarch.o 2>&1 | \ | ||
| # RUN: FileCheck %s -DFILE=%t.noarch.o | ||
| # CHECK: error: unable to find matching architecture in [[FILE]] | ||
|
|
||
| .text | ||
| .global _main | ||
| _main: | ||
| mov $0, %eax | ||
| ret |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| # REQUIRES: x86 | ||
| # RUN: yaml2obj %s -o %t.o | ||
| # RUN: not lld -flavor darwinnew -arch x86_64 -o /dev/null %t.o 2>&1 | \ | ||
| # RUN: FileCheck %s -DFILE=%t.o | ||
| # CHECK: error: [[FILE]]: fat_arch struct extends beyond end of file | ||
|
|
||
| !fat-mach-o | ||
| FatHeader: | ||
| magic: 0xCAFEBABE | ||
| nfat_arch: 2 | ||
| FatArchs: | ||
| Slices: |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| # REQUIRES: x86 | ||
| # RUN: yaml2obj %s -o %t.o | ||
| # RUN: not lld -flavor darwinnew -arch x86_64 -o /dev/null %t.o 2>&1 | \ | ||
| # RUN: FileCheck %s -DFILE=%t.o | ||
| # CHECK: error: [[FILE]]: slice extends beyond end of file | ||
|
|
||
| !fat-mach-o | ||
| FatHeader: | ||
| magic: 0xCAFEBABE | ||
| nfat_arch: 2 | ||
| FatArchs: | ||
| - cputype: 0x01000007 | ||
| cpusubtype: 0x00000003 | ||
| offset: 0x0000000000001000 | ||
| size: 0 | ||
| align: 12 | ||
| - cputype: 0x00000007 | ||
| cpusubtype: 0x00000003 | ||
| offset: 0x000000000000B000 | ||
| size: 0 | ||
| align: 12 | ||
| Slices: |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| # REQUIRES: x86 | ||
| # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o | ||
| # RUN: lld -flavor darwinnew -dylib %t.o -o %t.dylib | ||
|
|
||
| # RUN: obj2yaml %t.dylib | FileCheck %s | ||
| # CHECK: export_size: 0 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,4 @@ | ||
| # REQUIRES: x86 | ||
| # RUN: not lld -flavor darwinnew -o /dev/null %t-no-such-file.o 2>&1 | FileCheck %s | ||
|
|
||
| # CHECK: error: cannot open {{.*}}no-such-file.o |