[sanitizer] Improve FreeBSD ASLR detection
[llvm-project.git] / llvm / test / tools / llvm-objcopy / MachO / strip-all.test
blobd64ea0b9bbfbc41feaab5e485bd1030fd4d3dd4a
1 ## Show that llvm-objcopy/llvm-strip removes all symbols and debug sections.
3 # RUN: yaml2obj %p/Inputs/strip-all.yaml -o %t.exec
4 # RUN: yaml2obj %p/Inputs/strip-all-with-dwarf.yaml -o %t.dwarf
5 # RUN: yaml2obj %p/Inputs/strip-chained-fixups.yaml -o %t.fixups
7 ## Check that the symbol list satisfies the order: local / defined external /
8 ## undefined external, otherwise llvm-objcopy will fail.
9 # RUN: llvm-objcopy %t.exec /dev/null
11 # RUN: llvm-objcopy --strip-all %t.exec %t.exec.stripped
12 # RUN: llvm-readobj --sections --relocations --symbols %t.exec.stripped \
13 # RUN:   | FileCheck --check-prefix=COMMON %s
15 # RUN: llvm-objcopy --strip-all %t.dwarf %t.dwarf.stripped
16 # RUN: llvm-readobj --sections --relocations --symbols %t.dwarf.stripped \
17 # RUN:   | FileCheck --check-prefixes=COMMON,DWARF %s
19 # RUN: llvm-objcopy --strip-all %t.fixups %t.fixups.stripped
20 # RUN: llvm-readobj --sections --relocations --symbols %t.fixups.stripped \
21 # RUN:   | FileCheck --check-prefix=COMMON %s
23 ## The output of "llvm-strip" should be identical with that of
24 ## "llvm-strip --strip-all" and "llvm-objcopy --strip-all".
25 # RUN: llvm-strip %t.exec -o %t2
26 # RUN: llvm-strip --strip-all %t.exec -o %t3
27 # cmp %t2 %t.exec.stripped
28 # cmp %t3 %t.exec.stripped
30 # RUN: llvm-strip %t.dwarf -o %t4
31 # RUN: llvm-strip --strip-all %t.dwarf -o %t5
32 # cmp %t4 %t.dwarf.stripped
33 # cmp %t5 %t.dwarf.stripped
35 # RUN: llvm-lipo %t.dwarf -create -output %t.dwarf.universal
36 # RUN: llvm-strip %t.dwarf.universal -o %t.dwarf.universal.stripped
37 # RUN: llvm-lipo %t.dwarf.universal.stripped -thin x86_64 -output %t6
38 # RUN: cmp %t6 %t.dwarf.stripped
40 # RUN: llvm-strip %t.exec -o %t7
41 # RUN: llvm-strip --strip-all %t.exec -o %t8
42 # cmp %t7 %t.fixups.stripped
43 # cmp %t8 %t.fixups.stripped
45 ## Make sure that debug sections are removed.
46 # DWARF:       Sections [
47 # DWARF-NOT:     Name: __debug_str
48 # DWARF-NOT:     Name: __debug_abbrev
49 # DWARF-NOT:     Name: __debug_info
50 # DWARF-NOT:     Name: __debug_macinfo
51 # DWARF-NOT:     Name: __apple_names
52 # DWARF-NOT:     Name: __apple_objc
53 # DWARF-NOT:     Name: __apple_namespac
54 # DWARF-NOT:     Name: __apple_types
55 # DWARF-NOT:     Name: __debug_line
56 # DWARF:       ]
58 ## Make sure that all relocations and symbols
59 ## (except those which have the flag ReferencedDynamically set) are removed.
60 # COMMON:      Relocations [
61 # COMMON-NEXT: ]
62 # COMMON-NEXT: Symbols [
63 # COMMON-NEXT:    Symbol {
64 # COMMON-NEXT:      Name: __mh_execute_header
65 # COMMON-NEXT:      Extern
66 # COMMON-NEXT:      Type: Section
67 # COMMON-NEXT:      Section: __text
68 # COMMON-NEXT:      RefType: UndefinedNonLazy
69 # COMMON-NEXT:      Flags [ (0x10)
70 # COMMON-NEXT:        ReferencedDynamically (0x10)
71 # COMMON-NEXT:      ]
72 # COMMON-NEXT:      Value:
73 # COMMON-NEXT:    }
74 # COMMON-NEXT: ]