brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · 9da8df2 Raw
130 lines · plain
1# REQUIRES: system-aix2## Test the -X option.3## The option specifies the type of object file on which llvm-ranlib will operate.4 5# RUN: rm -rf %t && mkdir %t && cd %t6# RUN: yaml2obj --docnum=1 -DFLAG=0x1DF %s -o t32_1.o7# RUN: yaml2obj --docnum=1 -DFLAG=0x1F7 %s -o t64_1.o8# RUN: yaml2obj --docnum=2 -DFLAG=0x1DF %s -o t32_2.o9# RUN: yaml2obj --docnum=2 -DFLAG=0x1F7 %s -o t64_2.o10 11# RUN: llvm-ar qS t_all.a t32_1.o t64_1.o t32_2.o t64_2.o12# RUN: cp t_all.a t_X32.a13# RUN: cp t_all.a t_X64.a14# RUN: cp t_all.a t_X32_64.a15 16## Test the OBJECT_MODE environment variable when adding symbol table.17# RUN: env -u OBJECT_MODE llvm-ranlib t_X32.a18# RUN: llvm-nm --print-armap t_X32.a 2>&1 | FileCheck --check-prefixes=GLOB32 --implicit-check-not="in t64" %s19# RUN: cp t_all.a t_X32.a20# RUN: env OBJECT_MODE=32 llvm-ranlib t_X32.a21# RUN: llvm-nm --print-armap t_X32.a 2>&1 | FileCheck --check-prefixes=GLOB32 --implicit-check-not="in t64" %s22 23# RUN: env OBJECT_MODE=64 llvm-ranlib t_X64.a24# RUN: llvm-nm --print-armap t_X64.a 2>&1 | FileCheck --check-prefixes=GLOB64 --implicit-check-not="in t32" %s25 26# RUN: env OBJECT_MODE=32_64 llvm-ranlib t_X32_64.a27# RUN: llvm-nm --print-armap t_X32_64.a 2>&1 | FileCheck --check-prefixes=GLOB32,GLOB64 %s28# RUN: cp t_all.a t_X32_64.a29# RUN: env OBJECT_MODE=any llvm-ranlib t_X32_64.a30# RUN: llvm-nm --print-armap t_X32_64.a 2>&1 | FileCheck --check-prefixes=GLOB32,GLOB64 %s31 32# RUN: cp t_all.a t_X32.a33# RUN: cp t_all.a t_X64.a34# RUN: cp t_all.a t_X32_64.a35 36## Test the -X option when adding symbol table.37# RUN: llvm-ranlib -X32 t_X32.a38# RUN: llvm-nm --print-armap t_X32.a 2>&1 | FileCheck --check-prefixes=GLOB32 --implicit-check-not="in t64" %s39# RUN: llvm-ranlib -X64 t_X32.a40# RUN: llvm-nm --print-armap t_X32.a 2>&1 | FileCheck --check-prefixes=GLOB32,GLOB64 %s41 42# RUN: llvm-ranlib -X64 t_X64.a43# RUN: llvm-nm --print-armap t_X64.a 2>&1 | FileCheck --check-prefixes=GLOB64 --implicit-check-not="in t32" %s44# RUN: llvm-ranlib -X32 t_X64.a45# RUN: llvm-nm --print-armap t_X32.a 2>&1 | FileCheck --check-prefixes=GLOB32,GLOB64 %s46 47# RUN: llvm-ranlib -X32_64 t_X32_64.a48# RUN: llvm-nm --print-armap t_X32_64.a 2>&1 | FileCheck --check-prefixes=GLOB32,GLOB64 %s49# RUN: cp t_all.a t_X32_64.a50# RUN: llvm-ranlib -Xany t_X32_64.a51# RUN: llvm-nm --print-armap t_X32_64.a 2>&1 | FileCheck --check-prefixes=GLOB32,GLOB64 %s52 53# RUN: cp t_all.a t_X32.a54# RUN: cp t_all.a t_X64.a55 56## Test that the -X option will override the "OBJECT_MODE" environment variable.57# RUN: env OBJECT_MODE=32_64 llvm-ranlib -X32 t_X32.a58# RUN: llvm-nm --print-armap t_X32.a 2>&1 | FileCheck --check-prefixes=GLOB32 --implicit-check-not="in t64" %s59 60# RUN: env OBJECT_MODE=32 llvm-ranlib -X64 t_X64.a61# RUN: llvm-nm --print-armap t_X64.a 2>&1 | FileCheck --check-prefixes=GLOB64 --implicit-check-not="in t32" %s62 63# GLOB32:      sym1_0x1DF in t32_1.o64# GLOB32-NEXT: sym2_0x1DF in t32_1.o65# GLOB32-NEXT: sym3_0x1DF in t32_2.o66# GLOB32-NEXT: sym4_0x1DF in t32_2.o67 68# GLOB64:      sym1_0x1F7 in t64_1.o69# GLOB64-NEXT: sym2_0x1F7 in t64_1.o70# GLOB64-NEXT: sym3_0x1F7 in t64_2.o71# GLOB64-NEXT: sym4_0x1F7 in t64_2.o72 73## Test invalid -X option and OBJECT_MODE enviornment var.74# RUN: not env OBJECT_MODE= llvm-ranlib t_X32.a 2>&1 | FileCheck --implicit-check-not="error:"  --check-prefixes=INVALID-OBJECT-MODE %s75# RUN: not env OBJECT_MODE="" llvm-ranlib t_X32.a 2>&1 | FileCheck --implicit-check-not="error:"  --check-prefixes=INVALID-OBJECT-MODE %s76# RUN: not env OBJECT_MODE=31 llvm-ranlib t_X64.a 2>&1 | FileCheck --implicit-check-not="error:"  --check-prefixes=INVALID-OBJECT-MODE %s77# RUN: not llvm-ranlib -X t_X64.a 2>&1 | FileCheck --implicit-check-not="error:"  --check-prefixes=INVALID-X-OPTION %s78# RUN: not llvm-ranlib -X31 t_X64.a 2>&1 | FileCheck --implicit-check-not="error:"  --check-prefixes=INVALID-X-OPTION %s79 80# INVALID-OBJECT-MODE: error: the OBJECT_MODE environment variable has an invalid value. OBJECT_MODE must be 32, 64, 32_64, or any81# INVALID-X-OPTION: error: the specified object mode is not valid. Specify -X32, -X64, -X32_64, or -Xany82 83--- !XCOFF84FileHeader:85  MagicNumber:       [[FLAG]]86Sections:87  - Name:            .data88    Flags:           [ STYP_DATA ]89Symbols:90  - Name:            sym1_[[FLAG]]91    Section:         .data92    Type:            0x400093    StorageClass:    C_EXT94    AuxEntries:95     - Type:                   AUX_CSECT96       SymbolAlignmentAndType: 0x0997       StorageMappingClass:    XMC_RW98  - Name:            sym2_[[FLAG]]99    Section:         .data100    Type:            0x4000101    StorageClass:    C_EXT102    AuxEntries:103     - Type:                   AUX_CSECT104       SymbolAlignmentAndType: 0x09105       StorageMappingClass:    XMC_RW106 107--- !XCOFF108FileHeader:109  MagicNumber:       [[FLAG]]110Sections:111  - Name:            .text112    Flags:           [ STYP_DATA ]113Symbols:114  - Name:            sym3_[[FLAG]]115    Section:         .text116    Type:            0x4000117    StorageClass:    C_EXT118    AuxEntries:119     - Type:                   AUX_CSECT120       SymbolAlignmentAndType: 0x09121       StorageMappingClass:    XMC_PR122  - Name:            sym4_[[FLAG]]123    Section:         .text124    Type:            0x4000125    StorageClass:    C_EXT126    AuxEntries:127     - Type:                   AUX_CSECT128       SymbolAlignmentAndType: 0x09129       StorageMappingClass:    XMC_PR130