# REQUIRES: x86
+# RUN: rm -fr %t
+# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o
+# RUN: %lld -o %t %t.o
-# RUN: rm -rf %t; split-file %s %t
-
-# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/main.s -o %t.o
-# RUN: %lld -o %t.out %t.o
-
-## Check option format.
+## Check option format
# RUN: not %lld \
# RUN: -rename_section B@GUS_SEG b@gus_sect S/ASHY_SEG st*rry_sect \
# RUN: -rename_section __FROM_SECT __from_sect __TO_SECT \
# BAD2-DAG: error: invalid name for segment or section: -o
# BAD2-DAG: error: {{.*}}: unhandled file type
-## Check that section and segment renames happen.
-# RUN: %lld -lSystem \
+## Check that section and segment renames happen
+# RUN: %lld \
# RUN: -rename_section __FROM_SECT __from_sect __TO_SECT __to_sect \
# RUN: -rename_segment __FROM_SEG __TO_SEG \
# RUN: -rename_section __TEXT __cstring __RODATA __cstring \
-# RUN: -o %t.out %t.o
-# RN: llvm-otool -l %t.out | FileCheck %s
+# RUN: -o %t %t.o
+# RUN: llvm-objdump --macho --all-headers %t | FileCheck %s
# CHECK: {{^}}Section{{$}}
# CHECK-NEXT: sectname __text
# CHECK-NEXT: sectname __cstring
# CHECK-NEXT: segname __RODATA
-## Check interaction between -rename_section and -rename_segment.
-## rename_segment should be applied after rename_section, so the output
-## name of rename_section is renamed by rename_segment.
-## (ld64 leaves an empty __TO_SECT,__to_sect in the output for the intermediate
-## name, but it too writes the actual data to __SEG,__to_sect.)
-# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/small.s \
-# RUN: -o %t/small.o
-# RUN: %lld -dylib \
-# RUN: -rename_section __FROM_SECT __from_sect __TO_SECT __to_sect \
-# RUN: -rename_segment __TO_SECT __SEG \
-# RUN: -o %t.dylib %t/small.o
-# RUN: llvm-otool -l %t.dylib | FileCheck --check-prefix=SECTSEGYES %s
-# RUN: %lld -dylib \
-# RUN: -rename_segment __TO_SECT __SEG \
-# RUN: -rename_section __FROM_SECT __from_sect __TO_SECT __to_sect \
-# RUN: -o %t.dylib %t/small.o
-# RUN: llvm-otool -l %t.dylib | FileCheck --check-prefix=SECTSEGYES %s
-# SECTSEGYES: Section
-# SECTSEGYES-NEXT: sectname __text
-# SECTSEGYES-NEXT: segname __TEXT
-# SECTSEGYES: Section
-# SECTSEGYES-NEXT: sectname __to_sect
-# SECTSEGYES-NEXT: segname __SEG
-## ...but rename_segment has no effect if it doesn't match the name after
-## rename_section is applied.
-# RUN: %lld -dylib \
-# RUN: -rename_section __FROM_SECT __from_sect __TO_SECT __to_sect \
-# RUN: -rename_segment __FROM_SECT __SEG \
-# RUN: -o %t.dylib %t/small.o
-# RUN: llvm-otool -l %t.dylib | FileCheck --check-prefix=SECTSEGSOME %s
-# SECTSEGSOME: Section
-# SECTSEGSOME-NEXT: sectname __text
-# SECTSEGSOME-NEXT: segname __TEXT
-# SECTSEGSOME: Section
-# SECTSEGSOME-NEXT: sectname __to_sect
-# SECTSEGSOME-NEXT: segname __TO_SECT
-## If rename_section would only match after rename_segment, rename_section has
-## no effect.
-# RUN: %lld -dylib \
-# RUN: -rename_section __SEG __from_sect __TO_SECT __to_sect \
-# RUN: -rename_segment __FROM_SECT __SEG \
-# RUN: -o %t.dylib %t/small.o
-# RUN: llvm-otool -l %t.dylib | FileCheck --check-prefix=SECTSEGNO %s
-# RUN: %lld -dylib \
-# RUN: -rename_segment __FROM_SECT __SEG \
-# RUN: -rename_section __SEG __from_sect __TO_SECT __to_sect \
-# RUN: -o %t.dylib %t/small.o
-# RUN: llvm-otool -l %t.dylib | FileCheck --check-prefix=SECTSEGNO %s
-# SECTSEGNO: Section
-# SECTSEGNO-NEXT: sectname __text
-# SECTSEGNO-NEXT: segname __TEXT
-# SECTSEGNO: Section
-# SECTSEGNO-NEXT: sectname __from_sect
-# SECTSEGNO-NEXT: segname __SEG
-
-#--- main.s
.section __FROM_SECT,__from_sect
.global _from_sect
_from_sect:
.global _main
_main:
ret
-
-#--- small.s
-.section __FROM_SECT,__from_sect
-.global _from_sect
-_from_sect:
- .space 8