// Check that cvtres properly generates COFF for different machine types. The // only things that changes with machine type are the machine constant listed // in the COFF header, and the relocation types in the relocation tables. // The input was generated with the following command, using the original Windows // rc.exe: // > rc /fo test_resource.res /nologo test_resource.rc // The object files we are comparing against were generated with these commands // using the original Windows cvtres.exe. // > cvtres /machine:X86 /readonly /nologo /out:test_resource.obj.coff \ // test_resource.res // > cvtres /machine:X64 /readonly /nologo /out:test_resource.obj.coff.x64 \ // test_resource.res // > cvtres /machine:ARM /readonly /nologo /out:test_resource.obj.coff.x64 \ // test_resource.res RUN: llvm-cvtres /machine:X86 /out:%t %p/Inputs/test_resource.res RUN: llvm-readobj -h -relocations %t | FileCheck %s -check-prefix=X86 RUN: llvm-cvtres /machine:X64 /out:%t %p/Inputs/test_resource.res RUN: llvm-readobj -h -relocations %t | FileCheck %s -check-prefix=X64 RUN: llvm-cvtres /machine:ARM /out:%t %p/Inputs/test_resource.res RUN: llvm-readobj -h -relocations %t | FileCheck %s -check-prefix=ARM RUN: llvm-cvtres /machine:ARM64 /out:%t %p/Inputs/test_resource.res RUN: llvm-readobj -h -relocations %t | FileCheck %s -check-prefix=ARM64 X86: Machine: IMAGE_FILE_MACHINE_I386 (0x14C) X86-DAG: Relocations [ X86-DAG: .rsrc$01 { X86-NEXT: 0x1E8 IMAGE_REL_I386_DIR32NB $R000000 X86-NEXT: 0x198 IMAGE_REL_I386_DIR32NB $R000001 X86-NEXT: 0x1A8 IMAGE_REL_I386_DIR32NB $R000002 X86-NEXT: 0x1C8 IMAGE_REL_I386_DIR32NB $R000003 X86-NEXT: 0x1D8 IMAGE_REL_I386_DIR32NB $R000004 X86-NEXT: 0x1F8 IMAGE_REL_I386_DIR32NB $R000005 X86-NEXT: 0x1B8 IMAGE_REL_I386_DIR32NB $R000006 X86-NEXT: 0x188 IMAGE_REL_I386_DIR32NB $R000007 X64: Machine: IMAGE_FILE_MACHINE_AMD64 (0x8664) X64-DAG: Relocations [ X64-DAG: .rsrc$01 { X64-NEXT: 0x1E8 IMAGE_REL_AMD64_ADDR32NB $R000000 X64-NEXT: 0x198 IMAGE_REL_AMD64_ADDR32NB $R000001 X64-NEXT: 0x1A8 IMAGE_REL_AMD64_ADDR32NB $R000002 X64-NEXT: 0x1C8 IMAGE_REL_AMD64_ADDR32NB $R000003 X64-NEXT: 0x1D8 IMAGE_REL_AMD64_ADDR32NB $R000004 X64-NEXT: 0x1F8 IMAGE_REL_AMD64_ADDR32NB $R000005 X64-NEXT: 0x1B8 IMAGE_REL_AMD64_ADDR32NB $R000006 X64-NEXT: 0x188 IMAGE_REL_AMD64_ADDR32NB $R000007 ARM: Machine: IMAGE_FILE_MACHINE_ARMNT (0x1C4) ARM-DAG: Relocations [ ARM-DAG: .rsrc$01 { ARM-NEXT: 0x1E8 IMAGE_REL_ARM_ADDR32NB $R000000 ARM-NEXT: 0x198 IMAGE_REL_ARM_ADDR32NB $R000001 ARM-NEXT: 0x1A8 IMAGE_REL_ARM_ADDR32NB $R000002 ARM-NEXT: 0x1C8 IMAGE_REL_ARM_ADDR32NB $R000003 ARM-NEXT: 0x1D8 IMAGE_REL_ARM_ADDR32NB $R000004 ARM-NEXT: 0x1F8 IMAGE_REL_ARM_ADDR32NB $R000005 ARM-NEXT: 0x1B8 IMAGE_REL_ARM_ADDR32NB $R000006 ARM-NEXT: 0x188 IMAGE_REL_ARM_ADDR32NB $R000007 ARM64: Machine: IMAGE_FILE_MACHINE_ARM64 (0xAA64) ARM64-DAG: Relocations [ ARM64-DAG: .rsrc$01 { ARM64-NEXT: 0x1E8 IMAGE_REL_ARM64_ADDR32NB $R000000 ARM64-NEXT: 0x198 IMAGE_REL_ARM64_ADDR32NB $R000001 ARM64-NEXT: 0x1A8 IMAGE_REL_ARM64_ADDR32NB $R000002 ARM64-NEXT: 0x1C8 IMAGE_REL_ARM64_ADDR32NB $R000003 ARM64-NEXT: 0x1D8 IMAGE_REL_ARM64_ADDR32NB $R000004 ARM64-NEXT: 0x1F8 IMAGE_REL_ARM64_ADDR32NB $R000005 ARM64-NEXT: 0x1B8 IMAGE_REL_ARM64_ADDR32NB $R000006 ARM64-NEXT: 0x188 IMAGE_REL_ARM64_ADDR32NB $R000007