[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGd32fb5e5f51d: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step (authored by SeanP, committed by abhina.sreeskantharajan). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 Files: clang/include/clang/Driver/Options.td clang/lib/Basic/Targets/OSTargets.h clang/lib/Basic/Targets/SystemZ.h clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/ZOS.cpp clang/lib/Driver/ToolChains/ZOS.h clang/test/Driver/zos-comp-cxx.cpp clang/test/Driver/zos-comp.c clang/test/Driver/zos-driver-defaults.c clang/test/Preprocessor/init-s390x.c Index: clang/test/Preprocessor/init-s390x.c === --- clang/test/Preprocessor/init-s390x.c +++ clang/test/Preprocessor/init-s390x.c @@ -183,17 +183,12 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS %s // RUN: %clang_cc1 -x c++ -std=gnu++14 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS -check-prefix S390X-ZOS-GNUXX %s -// S390X-ZOS-GNUXX: #define _EXT 1 // S390X-ZOS: #define _LONG_LONG 1 -// S390X-ZOS-GNUXX: #define _MI_BUILTIN 1 -// S390X-ZOS: #define _OPEN_DEFAULT 1 -// S390X-ZOS: #define _UNIX03_WITHDRAWN 1 -// S390X-ZOS-GNUXX: #define _XOPEN_SOURCE 600 // S390X-ZOS: #define __370__ 1 // S390X-ZOS: #define __64BIT__ 1 // S390X-ZOS: #define __BFP__ 1 // S390X-ZOS: #define __BOOL__ 1 -// S390X-ZOS-GNUXX: #define __DLL__ 1 +// S390X-ZOS: #define __COMPILER_VER__ 0x5000 // S390X-ZOS: #define __LONGNAME__ 1 // S390X-ZOS: #define __MVS__ 1 // S390X-ZOS: #define __THW_370__ 1 Index: clang/test/Driver/zos-driver-defaults.c === --- clang/test/Driver/zos-driver-defaults.c +++ clang/test/Driver/zos-driver-defaults.c @@ -1,8 +1,23 @@ -// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-ZOS-INCLUDES %s // RUN: %clang -### --target=s390x-none-zos -fno-short-enums -fsyntax-only %s 2>&1 | FileCheck %s +// RUN: %clangxx -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s +// RUN: %clang -### --target=s390x-none-zos -x c++ -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s + +//CHECK-C-MACRO: -D_UNIX03_WITHDRAWN +//CHECK-C-MACRO: -D_OPEN_DEFAULT + +//CHECK-CXX-MACRO: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO-NOT: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO: "-D" "_XOPEN_SOURCE=700" //CHECK-SHORT-ENUMS: -fshort-enums //CHECK-SHORT-ENUMS: -fno-signed-char +//CHECK-ZOS-INCLUDES: clang{{.*}} "-cc1" "-triple" "s390x-none-zos" +//CHECK-ZOS-INCLUDES-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +//CHECK-ZOS-INCLUDES-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +//CHECK-ZOS-INCLUDES-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// //CHECK-NOT: -fshort-enums //CHECK: -fno-signed-char Index: clang/test/Driver/zos-comp.c === --- /dev/null +++ clang/test/Driver/zos-comp.c @@ -0,0 +1,75 @@ +// Tests that the z/OS toolchain adds system includes to its search path. + +// RUN: %clang -c -### %s --target=s390x-ibm-zos 2>&1 \ +// RUN: | FileCheck %s + +// CHECK: "-D_UNIX03_WITHDRAWN" +// CHECK-SAME: "-D_OPEN_DEFAULT" +// CHECK-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK-SAME: "-internal-isystem" "/usr/include" +// CHECK-SAME: "-fshort-enums" +// CHECK-SAME: "-fno-signed-char" +// CHECK-SAME: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck --check-prefixes=CHECK2 %s + +// CHECK2: "-D_UNIX03_WITHDRAWN" +// CHECK2-SAME: "-D_OPEN_DEFAULT" +// CHECK2-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK2-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK2-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK2-SAME: "-internal-isystem" "/ABC/DEF" +// CHECK2-NOT: "-internal-isystem"
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
SeanP updated this revision to Diff 535937. SeanP added a comment. fix merge conflicts CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 Files: clang/include/clang/Driver/Options.td clang/lib/Basic/Targets/OSTargets.h clang/lib/Basic/Targets/SystemZ.h clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/ZOS.cpp clang/lib/Driver/ToolChains/ZOS.h clang/test/Driver/zos-comp-cxx.cpp clang/test/Driver/zos-comp.c clang/test/Driver/zos-driver-defaults.c clang/test/Preprocessor/init-s390x.c Index: clang/test/Preprocessor/init-s390x.c === --- clang/test/Preprocessor/init-s390x.c +++ clang/test/Preprocessor/init-s390x.c @@ -183,17 +183,12 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS %s // RUN: %clang_cc1 -x c++ -std=gnu++14 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS -check-prefix S390X-ZOS-GNUXX %s -// S390X-ZOS-GNUXX: #define _EXT 1 // S390X-ZOS: #define _LONG_LONG 1 -// S390X-ZOS-GNUXX: #define _MI_BUILTIN 1 -// S390X-ZOS: #define _OPEN_DEFAULT 1 -// S390X-ZOS: #define _UNIX03_WITHDRAWN 1 -// S390X-ZOS-GNUXX: #define _XOPEN_SOURCE 600 // S390X-ZOS: #define __370__ 1 // S390X-ZOS: #define __64BIT__ 1 // S390X-ZOS: #define __BFP__ 1 // S390X-ZOS: #define __BOOL__ 1 -// S390X-ZOS-GNUXX: #define __DLL__ 1 +// S390X-ZOS: #define __COMPILER_VER__ 0x5000 // S390X-ZOS: #define __LONGNAME__ 1 // S390X-ZOS: #define __MVS__ 1 // S390X-ZOS: #define __THW_370__ 1 Index: clang/test/Driver/zos-driver-defaults.c === --- clang/test/Driver/zos-driver-defaults.c +++ clang/test/Driver/zos-driver-defaults.c @@ -1,8 +1,23 @@ -// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-ZOS-INCLUDES %s // RUN: %clang -### --target=s390x-none-zos -fno-short-enums -fsyntax-only %s 2>&1 | FileCheck %s +// RUN: %clangxx -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s +// RUN: %clang -### --target=s390x-none-zos -x c++ -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s + +//CHECK-C-MACRO: -D_UNIX03_WITHDRAWN +//CHECK-C-MACRO: -D_OPEN_DEFAULT + +//CHECK-CXX-MACRO: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO-NOT: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO: "-D" "_XOPEN_SOURCE=700" //CHECK-SHORT-ENUMS: -fshort-enums //CHECK-SHORT-ENUMS: -fno-signed-char +//CHECK-ZOS-INCLUDES: clang{{.*}} "-cc1" "-triple" "s390x-none-zos" +//CHECK-ZOS-INCLUDES-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +//CHECK-ZOS-INCLUDES-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +//CHECK-ZOS-INCLUDES-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// //CHECK-NOT: -fshort-enums //CHECK: -fno-signed-char Index: clang/test/Driver/zos-comp.c === --- /dev/null +++ clang/test/Driver/zos-comp.c @@ -0,0 +1,75 @@ +// Tests that the z/OS toolchain adds system includes to its search path. + +// RUN: %clang -c -### %s --target=s390x-ibm-zos 2>&1 \ +// RUN: | FileCheck %s + +// CHECK: "-D_UNIX03_WITHDRAWN" +// CHECK-SAME: "-D_OPEN_DEFAULT" +// CHECK-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK-SAME: "-internal-isystem" "/usr/include" +// CHECK-SAME: "-fshort-enums" +// CHECK-SAME: "-fno-signed-char" +// CHECK-SAME: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck --check-prefixes=CHECK2 %s + +// CHECK2: "-D_UNIX03_WITHDRAWN" +// CHECK2-SAME: "-D_OPEN_DEFAULT" +// CHECK2-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK2-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK2-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK2-SAME: "-internal-isystem" "/ABC/DEF" +// CHECK2-NOT: "-internal-isystem" "/usr/include" +// CHECK2-SAME: "-fshort-enums" +// CHECK2-SAME: "-fno-signed-char" +// CHECK2-SAME: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF:/ghi/jkl %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
abhina.sreeskantharajan accepted this revision. abhina.sreeskantharajan added a comment. new changes LGTM CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
SeanP updated this revision to Diff 535353. SeanP added a comment. Got old diff last time. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 Files: clang/include/clang/Driver/Options.td clang/lib/Basic/Targets/OSTargets.h clang/lib/Basic/Targets/SystemZ.h clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/ZOS.cpp clang/lib/Driver/ToolChains/ZOS.h clang/test/Driver/zos-comp-cxx.cpp clang/test/Driver/zos-comp.c clang/test/Driver/zos-driver-defaults.c clang/test/Preprocessor/init-s390x.c Index: clang/test/Preprocessor/init-s390x.c === --- clang/test/Preprocessor/init-s390x.c +++ clang/test/Preprocessor/init-s390x.c @@ -183,17 +183,12 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS %s // RUN: %clang_cc1 -x c++ -std=gnu++14 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS -check-prefix S390X-ZOS-GNUXX %s -// S390X-ZOS-GNUXX: #define _EXT 1 // S390X-ZOS: #define _LONG_LONG 1 -// S390X-ZOS-GNUXX: #define _MI_BUILTIN 1 -// S390X-ZOS: #define _OPEN_DEFAULT 1 -// S390X-ZOS: #define _UNIX03_WITHDRAWN 1 -// S390X-ZOS-GNUXX: #define _XOPEN_SOURCE 600 // S390X-ZOS: #define __370__ 1 // S390X-ZOS: #define __64BIT__ 1 // S390X-ZOS: #define __BFP__ 1 // S390X-ZOS: #define __BOOL__ 1 -// S390X-ZOS-GNUXX: #define __DLL__ 1 +// S390X-ZOS: #define __COMPILER_VER__ 0x5000 // S390X-ZOS: #define __LONGNAME__ 1 // S390X-ZOS: #define __MVS__ 1 // S390X-ZOS: #define __THW_370__ 1 Index: clang/test/Driver/zos-driver-defaults.c === --- clang/test/Driver/zos-driver-defaults.c +++ clang/test/Driver/zos-driver-defaults.c @@ -1,8 +1,23 @@ -// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-ZOS-INCLUDES %s // RUN: %clang -### --target=s390x-none-zos -fno-short-enums -fsyntax-only %s 2>&1 | FileCheck %s +// RUN: %clangxx -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s +// RUN: %clang -### --target=s390x-none-zos -x c++ -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s + +//CHECK-C-MACRO: -D_UNIX03_WITHDRAWN +//CHECK-C-MACRO: -D_OPEN_DEFAULT + +//CHECK-CXX-MACRO: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO-NOT: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO: "-D" "_XOPEN_SOURCE=700" //CHECK-SHORT-ENUMS: -fshort-enums //CHECK-SHORT-ENUMS: -fno-signed-char +//CHECK-ZOS-INCLUDES: clang{{.*}} "-cc1" "-triple" "s390x-none-zos" +//CHECK-ZOS-INCLUDES-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +//CHECK-ZOS-INCLUDES-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +//CHECK-ZOS-INCLUDES-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// //CHECK-NOT: -fshort-enums //CHECK: -fno-signed-char Index: clang/test/Driver/zos-comp.c === --- /dev/null +++ clang/test/Driver/zos-comp.c @@ -0,0 +1,75 @@ +// Tests that the z/OS toolchain adds system includes to its search path. + +// RUN: %clang -c -### %s --target=s390x-ibm-zos 2>&1 \ +// RUN: | FileCheck %s + +// CHECK: "-D_UNIX03_WITHDRAWN" +// CHECK-SAME: "-D_OPEN_DEFAULT" +// CHECK-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK-SAME: "-internal-isystem" "/usr/include" +// CHECK-SAME: "-fshort-enums" +// CHECK-SAME: "-fno-signed-char" +// CHECK-SAME: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck --check-prefixes=CHECK2 %s + +// CHECK2: "-D_UNIX03_WITHDRAWN" +// CHECK2-SAME: "-D_OPEN_DEFAULT" +// CHECK2-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK2-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK2-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK2-SAME: "-internal-isystem" "/ABC/DEF" +// CHECK2-NOT: "-internal-isystem" "/usr/include" +// CHECK2-SAME: "-fshort-enums" +// CHECK2-SAME: "-fno-signed-char" +// CHECK2-SAME: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF:/ghi/jkl %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
SeanP updated this revision to Diff 535214. SeanP added a comment. Generalize path names in test cases so \\ on windows match. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 Files: clang/include/clang/Driver/Options.td clang/lib/Basic/Targets/OSTargets.h clang/lib/Basic/Targets/SystemZ.h clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/ZOS.cpp clang/lib/Driver/ToolChains/ZOS.h clang/test/Driver/zos-comp-cxx.cpp clang/test/Driver/zos-comp.c clang/test/Driver/zos-driver-defaults.c clang/test/Preprocessor/init-s390x.c Index: clang/test/Preprocessor/init-s390x.c === --- clang/test/Preprocessor/init-s390x.c +++ clang/test/Preprocessor/init-s390x.c @@ -183,17 +183,12 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS %s // RUN: %clang_cc1 -x c++ -std=gnu++14 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS -check-prefix S390X-ZOS-GNUXX %s -// S390X-ZOS-GNUXX: #define _EXT 1 // S390X-ZOS: #define _LONG_LONG 1 -// S390X-ZOS-GNUXX: #define _MI_BUILTIN 1 -// S390X-ZOS: #define _OPEN_DEFAULT 1 -// S390X-ZOS: #define _UNIX03_WITHDRAWN 1 -// S390X-ZOS-GNUXX: #define _XOPEN_SOURCE 600 // S390X-ZOS: #define __370__ 1 // S390X-ZOS: #define __64BIT__ 1 // S390X-ZOS: #define __BFP__ 1 // S390X-ZOS: #define __BOOL__ 1 -// S390X-ZOS-GNUXX: #define __DLL__ 1 +// S390X-ZOS: #define __COMPILER_VER__ 0x5000 // S390X-ZOS: #define __LONGNAME__ 1 // S390X-ZOS: #define __MVS__ 1 // S390X-ZOS: #define __THW_370__ 1 Index: clang/test/Driver/zos-driver-defaults.c === --- clang/test/Driver/zos-driver-defaults.c +++ clang/test/Driver/zos-driver-defaults.c @@ -1,8 +1,21 @@ -// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-ZOS-INCLUDES %s // RUN: %clang -### --target=s390x-none-zos -fno-short-enums -fsyntax-only %s 2>&1 | FileCheck %s +// RUN: %clangxx -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s +// RUN: %clang -### --target=s390x-none-zos -x c++ -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s + +//CHECK-C-MACRO: -D_UNIX03_WITHDRAWN +//CHECK-C-MACRO: -D_OPEN_DEFAULT + +//CHECK-CXX-MACRO: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO-NOT: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO: "-D" "_XOPEN_SOURCE=700" //CHECK-SHORT-ENUMS: -fshort-enums //CHECK-SHORT-ENUMS: -fno-signed-char +//CHECK-ZOS-INCLUDES: clang{{.*}} "-cc1" "-triple" "s390x-none-zos" +//CHECK-ZOS-INCLUDES-SAME: "-internal-isystem" {{".+/lib/clang/.+/include/zos_wrappers"}} "-internal-isystem" {{".+/lib/clang/.+/include"}} + //CHECK-NOT: -fshort-enums //CHECK: -fno-signed-char Index: clang/test/Driver/zos-comp.c === --- /dev/null +++ clang/test/Driver/zos-comp.c @@ -0,0 +1,75 @@ +// Tests that the z/OS toolchain adds system includes to its search path. + +// RUN: %clang -c -### %s --target=s390x-ibm-zos 2>&1 \ +// RUN: | FileCheck %s + +// CHECK: "-D_UNIX03_WITHDRAWN" +// CHECK-SAME: "-D_OPEN_DEFAULT" +// CHECK-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK-SAME: "-internal-isystem" "/usr/include" +// CHECK-SAME: "-fshort-enums" +// CHECK-SAME: "-fno-signed-char" +// CHECK-SAME: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck --check-prefixes=CHECK2 %s + +// CHECK2: "-D_UNIX03_WITHDRAWN" +// CHECK2-SAME: "-D_OPEN_DEFAULT" +// CHECK2-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK2-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK2-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK2-SAME: "-internal-isystem" "/ABC/DEF" +// CHECK2-NOT: "-internal-isystem" "/usr/include" +// CHECK2-SAME: "-fshort-enums" +// CHECK2-SAME: "-fno-signed-char" +// CHECK2-SAME: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF:/ghi/jkl %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck --check-prefixes=CHECK3 %s + +// CHECK3: "-D_UNIX03_WITHDRAWN" +// CHECK3-SAME:
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
SeanP marked 3 inline comments as done. SeanP added a comment. Thanks. made these changes. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
SeanP updated this revision to Diff 534729. SeanP added a comment. apply feedback CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 Files: clang/include/clang/Driver/Options.td clang/lib/Basic/Targets/OSTargets.h clang/lib/Basic/Targets/SystemZ.h clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/ZOS.cpp clang/lib/Driver/ToolChains/ZOS.h clang/test/Driver/zos-comp-cxx.cpp clang/test/Driver/zos-comp.c clang/test/Driver/zos-driver-defaults.c clang/test/Preprocessor/init-s390x.c Index: clang/test/Preprocessor/init-s390x.c === --- clang/test/Preprocessor/init-s390x.c +++ clang/test/Preprocessor/init-s390x.c @@ -183,17 +183,12 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS %s // RUN: %clang_cc1 -x c++ -std=gnu++14 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS -check-prefix S390X-ZOS-GNUXX %s -// S390X-ZOS-GNUXX: #define _EXT 1 // S390X-ZOS: #define _LONG_LONG 1 -// S390X-ZOS-GNUXX: #define _MI_BUILTIN 1 -// S390X-ZOS: #define _OPEN_DEFAULT 1 -// S390X-ZOS: #define _UNIX03_WITHDRAWN 1 -// S390X-ZOS-GNUXX: #define _XOPEN_SOURCE 600 // S390X-ZOS: #define __370__ 1 // S390X-ZOS: #define __64BIT__ 1 // S390X-ZOS: #define __BFP__ 1 // S390X-ZOS: #define __BOOL__ 1 -// S390X-ZOS-GNUXX: #define __DLL__ 1 +// S390X-ZOS: #define __COMPILER_VER__ 0x5000 // S390X-ZOS: #define __LONGNAME__ 1 // S390X-ZOS: #define __MVS__ 1 // S390X-ZOS: #define __THW_370__ 1 Index: clang/test/Driver/zos-driver-defaults.c === --- clang/test/Driver/zos-driver-defaults.c +++ clang/test/Driver/zos-driver-defaults.c @@ -1,8 +1,21 @@ -// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-ZOS-INCLUDES %s // RUN: %clang -### --target=s390x-none-zos -fno-short-enums -fsyntax-only %s 2>&1 | FileCheck %s +// RUN: %clangxx -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s +// RUN: %clang -### --target=s390x-none-zos -x c++ -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s + +//CHECK-C-MACRO: -D_UNIX03_WITHDRAWN +//CHECK-C-MACRO: -D_OPEN_DEFAULT + +//CHECK-CXX-MACRO: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO-NOT: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO: "-D" "_XOPEN_SOURCE=700" //CHECK-SHORT-ENUMS: -fshort-enums //CHECK-SHORT-ENUMS: -fno-signed-char +//CHECK-ZOS-INCLUDES: clang{{.*}} "-cc1" "-triple" "s390x-none-zos" +//CHECK-ZOS-INCLUDES-SAME: "-internal-isystem" {{".+/lib/clang/.+/include/zos_wrappers"}} "-internal-isystem" {{".+/lib/clang/.+/include"}} + //CHECK-NOT: -fshort-enums //CHECK: -fno-signed-char Index: clang/test/Driver/zos-comp.c === --- /dev/null +++ clang/test/Driver/zos-comp.c @@ -0,0 +1,75 @@ +// Tests that the z/OS toolchain adds system includes to its search path. + +// RUN: %clang -c -### %s --target=s390x-ibm-zos 2>&1 \ +// RUN: | FileCheck %s + +// CHECK: "-D_UNIX03_WITHDRAWN" +// CHECK-SAME: "-D_OPEN_DEFAULT" +// CHECK-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK-SAME: "-internal-isystem" "/usr/include" +// CHECK-SAME: "-fshort-enums" +// CHECK-SAME: "-fno-signed-char" +// CHECK-SAME: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck --check-prefixes=CHECK2 %s + +// CHECK2: "-D_UNIX03_WITHDRAWN" +// CHECK2-SAME: "-D_OPEN_DEFAULT" +// CHECK2-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK2-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK2-SAME: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK2-SAME: "-internal-isystem" "/ABC/DEF" +// CHECK2-NOT: "-internal-isystem" "/usr/include" +// CHECK2-SAME: "-fshort-enums" +// CHECK2-SAME: "-fno-signed-char" +// CHECK2-SAME: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF:/ghi/jkl %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck --check-prefixes=CHECK3 %s + +// CHECK3: "-D_UNIX03_WITHDRAWN" +// CHECK3-SAME: "-D_OPEN_DEFAULT" +// CHECK3-SAME: "-resource-dir"
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
MaskRay added inline comments. Comment at: clang/test/Driver/zos-comp.c:3 + +// RUN: %clang -c -### %s 2>&1 \ +// RUN:--target=s390x-ibm-zos \ wrap too quickly. The whole thing can be placed on one line. Comment at: clang/test/Driver/zos-comp.c:8 +// CHECK: "-D_UNIX03_WITHDRAWN" +// CHECK: "-D_OPEN_DEFAULT" +// CHECK: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" Use `-SAME:` whenever applicable CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
MaskRay added inline comments. Comment at: clang/include/clang/Driver/Options.td:3707 HelpText<"Enable stack probes">; +def mzos_sys_include_EQ : Joined<["-"], "mzos-sys-include=">, Flags<[NoXarchOption]>, MetaVarName<"">, +HelpText<"Path to system headers on z/OS">; Drop `NoXarchOption`. It has a confusing name. It's just to give an error for `-Xarch ...` which is not relevant here. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
fanbo-meng accepted this revision. fanbo-meng added a comment. LGTM CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
abhina.sreeskantharajan accepted this revision. abhina.sreeskantharajan added a comment. This revision is now accepted and ready to land. LGTM, it looks like CI is failing for some unrelated reason, but it would be good to kick it off again CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
SeanP updated this revision to Diff 534545. SeanP added a comment. minor clang-format updates CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 Files: clang/include/clang/Driver/Options.td clang/lib/Basic/Targets/OSTargets.h clang/lib/Basic/Targets/SystemZ.h clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/ZOS.cpp clang/lib/Driver/ToolChains/ZOS.h clang/test/Driver/zos-comp-cxx.cpp clang/test/Driver/zos-comp.c clang/test/Driver/zos-driver-defaults.c clang/test/Preprocessor/init-s390x.c Index: clang/test/Preprocessor/init-s390x.c === --- clang/test/Preprocessor/init-s390x.c +++ clang/test/Preprocessor/init-s390x.c @@ -183,17 +183,12 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS %s // RUN: %clang_cc1 -x c++ -std=gnu++14 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS -check-prefix S390X-ZOS-GNUXX %s -// S390X-ZOS-GNUXX: #define _EXT 1 // S390X-ZOS: #define _LONG_LONG 1 -// S390X-ZOS-GNUXX: #define _MI_BUILTIN 1 -// S390X-ZOS: #define _OPEN_DEFAULT 1 -// S390X-ZOS: #define _UNIX03_WITHDRAWN 1 -// S390X-ZOS-GNUXX: #define _XOPEN_SOURCE 600 // S390X-ZOS: #define __370__ 1 // S390X-ZOS: #define __64BIT__ 1 // S390X-ZOS: #define __BFP__ 1 // S390X-ZOS: #define __BOOL__ 1 -// S390X-ZOS-GNUXX: #define __DLL__ 1 +// S390X-ZOS: #define __COMPILER_VER__ 0x5000 // S390X-ZOS: #define __LONGNAME__ 1 // S390X-ZOS: #define __MVS__ 1 // S390X-ZOS: #define __THW_370__ 1 Index: clang/test/Driver/zos-driver-defaults.c === --- clang/test/Driver/zos-driver-defaults.c +++ clang/test/Driver/zos-driver-defaults.c @@ -1,8 +1,21 @@ -// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-ZOS-INCLUDES %s // RUN: %clang -### --target=s390x-none-zos -fno-short-enums -fsyntax-only %s 2>&1 | FileCheck %s +// RUN: %clangxx -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s +// RUN: %clang -### --target=s390x-none-zos -x c++ -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s + +//CHECK-C-MACRO: -D_UNIX03_WITHDRAWN +//CHECK-C-MACRO: -D_OPEN_DEFAULT + +//CHECK-CXX-MACRO: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO-NOT: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO: "-D" "_XOPEN_SOURCE=700" //CHECK-SHORT-ENUMS: -fshort-enums //CHECK-SHORT-ENUMS: -fno-signed-char +//CHECK-ZOS-INCLUDES: clang{{.*}} "-cc1" "-triple" "s390x-none-zos" +//CHECK-ZOS-INCLUDES-SAME: "-internal-isystem" {{".+/lib/clang/.+/include/zos_wrappers"}} "-internal-isystem" {{".+/lib/clang/.+/include"}} + //CHECK-NOT: -fshort-enums //CHECK: -fno-signed-char Index: clang/test/Driver/zos-comp.c === --- /dev/null +++ clang/test/Driver/zos-comp.c @@ -0,0 +1,76 @@ +// Tests that the z/OS toolchain adds system includes to its search path. + +// RUN: %clang -c -### %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck %s + +// CHECK: "-D_UNIX03_WITHDRAWN" +// CHECK: "-D_OPEN_DEFAULT" +// CHECK: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK: "-internal-isystem" "/usr/include" +// CHECK: "-fshort-enums" +// CHECK: "-fno-signed-char" +// CHECK: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck --check-prefixes=CHECK2 %s + +// CHECK2: "-D_UNIX03_WITHDRAWN" +// CHECK2: "-D_OPEN_DEFAULT" +// CHECK2: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK2: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK2: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK2: "-internal-isystem" "/ABC/DEF" +// CHECK2-NOT: "-internal-isystem" "/usr/include" +// CHECK2: "-fshort-enums" +// CHECK2: "-fno-signed-char" +// CHECK2: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF:/ghi/jkl %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck --check-prefixes=CHECK3 %s + +// CHECK3: "-D_UNIX03_WITHDRAWN" +// CHECK3: "-D_OPEN_DEFAULT" +// CHECK3: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK3: "-internal-isystem"
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
SeanP updated this revision to Diff 534232. SeanP added a comment. Removed __ptr32 address space from data layout. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 Files: clang/include/clang/Driver/Options.td clang/lib/Basic/Targets/OSTargets.h clang/lib/Basic/Targets/SystemZ.h clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/ZOS.cpp clang/lib/Driver/ToolChains/ZOS.h clang/test/Driver/zos-comp-cxx.cpp clang/test/Driver/zos-comp.c clang/test/Driver/zos-driver-defaults.c clang/test/Preprocessor/init-s390x.c Index: clang/test/Preprocessor/init-s390x.c === --- clang/test/Preprocessor/init-s390x.c +++ clang/test/Preprocessor/init-s390x.c @@ -183,17 +183,12 @@ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS %s // RUN: %clang_cc1 -x c++ -std=gnu++14 -E -dM -ffreestanding -triple=s390x-none-zos -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix S390X-ZOS -check-prefix S390X-ZOS-GNUXX %s -// S390X-ZOS-GNUXX: #define _EXT 1 // S390X-ZOS: #define _LONG_LONG 1 -// S390X-ZOS-GNUXX: #define _MI_BUILTIN 1 -// S390X-ZOS: #define _OPEN_DEFAULT 1 -// S390X-ZOS: #define _UNIX03_WITHDRAWN 1 -// S390X-ZOS-GNUXX: #define _XOPEN_SOURCE 600 // S390X-ZOS: #define __370__ 1 // S390X-ZOS: #define __64BIT__ 1 // S390X-ZOS: #define __BFP__ 1 // S390X-ZOS: #define __BOOL__ 1 -// S390X-ZOS-GNUXX: #define __DLL__ 1 +// S390X-ZOS: #define __COMPILER_VER__ 0x5000 // S390X-ZOS: #define __LONGNAME__ 1 // S390X-ZOS: #define __MVS__ 1 // S390X-ZOS: #define __THW_370__ 1 Index: clang/test/Driver/zos-driver-defaults.c === --- clang/test/Driver/zos-driver-defaults.c +++ clang/test/Driver/zos-driver-defaults.c @@ -1,8 +1,21 @@ -// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-ZOS-INCLUDES %s // RUN: %clang -### --target=s390x-none-zos -fno-short-enums -fsyntax-only %s 2>&1 | FileCheck %s +// RUN: %clangxx -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s +// RUN: %clang -### --target=s390x-none-zos -x c++ -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s + +//CHECK-C-MACRO: -D_UNIX03_WITHDRAWN +//CHECK-C-MACRO: -D_OPEN_DEFAULT + +//CHECK-CXX-MACRO: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO-NOT: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO: "-D" "_XOPEN_SOURCE=700" //CHECK-SHORT-ENUMS: -fshort-enums //CHECK-SHORT-ENUMS: -fno-signed-char +//CHECK-ZOS-INCLUDES: clang{{.*}} "-cc1" "-triple" "s390x-none-zos" +//CHECK-ZOS-INCLUDES-SAME: "-internal-isystem" {{".+/lib/clang/.+/include/zos_wrappers"}} "-internal-isystem" {{".+/lib/clang/.+/include"}} + //CHECK-NOT: -fshort-enums //CHECK: -fno-signed-char Index: clang/test/Driver/zos-comp.c === --- /dev/null +++ clang/test/Driver/zos-comp.c @@ -0,0 +1,76 @@ +// Tests that the z/OS toolchain adds system includes to its search path. + +// RUN: %clang -c -### %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck %s + +// CHECK: "-D_UNIX03_WITHDRAWN" +// CHECK: "-D_OPEN_DEFAULT" +// CHECK: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK: "-internal-isystem" "/usr/include" +// CHECK: "-fshort-enums" +// CHECK: "-fno-signed-char" +// CHECK: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck --check-prefixes=CHECK2 %s + +// CHECK2: "-D_UNIX03_WITHDRAWN" +// CHECK2: "-D_OPEN_DEFAULT" +// CHECK2: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK2: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK2: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK2: "-internal-isystem" "/ABC/DEF" +// CHECK2-NOT: "-internal-isystem" "/usr/include" +// CHECK2: "-fshort-enums" +// CHECK2: "-fno-signed-char" +// CHECK2: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF:/ghi/jkl %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck --check-prefixes=CHECK3 %s + +// CHECK3: "-D_UNIX03_WITHDRAWN" +// CHECK3: "-D_OPEN_DEFAULT" +// CHECK3: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK3:
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
abhina.sreeskantharajan added a comment. The CI shows the following lit tests are failing due to this patch which should be resolved first Failed Tests (7): Clang :: CodeGen/SystemZ/zos-alignment.c Clang :: CodeGen/target-data.c Clang :: CodeGen/wchar-size.c Clang :: Driver/zos-comp-cxx.cpp Clang :: Driver/zos-driver-defaults.c Clang :: Driver/zos-dwarfversion.c Clang :: Preprocessor/init-s390x.c Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153582/new/ https://reviews.llvm.org/D153582 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D153582: [SystemZ][z/OS] Add required options/macro/etc for z/os compilation step
SeanP created this revision. SeanP added reviewers: abhina.sreeskantharajan, Kai, fanbo-meng. Herald added a project: All. SeanP requested review of this revision. Herald added subscribers: cfe-commits, MaskRay. Herald added a project: clang. Add the required options and macros to the compilation step for z/os. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D153582 Files: clang/include/clang/Driver/Options.td clang/lib/Basic/Targets/OSTargets.h clang/lib/Basic/Targets/SystemZ.h clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/ZOS.cpp clang/lib/Driver/ToolChains/ZOS.h clang/test/Driver/zos-comp-cxx.cpp clang/test/Driver/zos-comp.c clang/test/Driver/zos-driver-defaults.c clang/test/Preprocessor/init-s390x.c Index: clang/test/Preprocessor/init-s390x.c === --- clang/test/Preprocessor/init-s390x.c +++ clang/test/Preprocessor/init-s390x.c @@ -193,7 +193,7 @@ // S390X-ZOS: #define __64BIT__ 1 // S390X-ZOS: #define __BFP__ 1 // S390X-ZOS: #define __BOOL__ 1 -// S390X-ZOS-GNUXX: #define __DLL__ 1 +// S390X-ZOS: #define __COMPILER_VER__ 0x5000 // S390X-ZOS: #define __LONGNAME__ 1 // S390X-ZOS: #define __MVS__ 1 // S390X-ZOS: #define __THW_370__ 1 Index: clang/test/Driver/zos-driver-defaults.c === --- clang/test/Driver/zos-driver-defaults.c +++ clang/test/Driver/zos-driver-defaults.c @@ -1,8 +1,21 @@ -// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-SHORT-ENUMS %s +// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-ZOS-INCLUDES %s // RUN: %clang -### --target=s390x-none-zos -fno-short-enums -fsyntax-only %s 2>&1 | FileCheck %s +// RUN: %clangxx -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s +// RUN: %clang -### --target=s390x-none-zos -x c++ -fsyntax-only %s 2>&1 | FileCheck --check-prefixes=CHECK-C-MACRO,CHECK-CXX-MACRO %s + +//CHECK-C-MACRO: -D_UNIX03_WITHDRAWN +//CHECK-C-MACRO: -D_OPEN_DEFAULT + +//CHECK-CXX-MACRO: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO-NOT: -D_XOPEN_SOURCE=600 +//CHECK-USER-CXX-MACRO: "-D" "_XOPEN_SOURCE=700" //CHECK-SHORT-ENUMS: -fshort-enums //CHECK-SHORT-ENUMS: -fno-signed-char +//CHECK-ZOS-INCLUDES: clang{{.*}} "-cc1" "-triple" "s390x-none-zos" +//CHECK-ZOS-INCLUDES-SAME: "-internal-isystem" {{".+/lib/clang/.+/include/zos_wrappers"}} "-internal-isystem" {{".+/lib/clang/.+/include"}} + //CHECK-NOT: -fshort-enums //CHECK: -fno-signed-char Index: clang/test/Driver/zos-comp.c === --- /dev/null +++ clang/test/Driver/zos-comp.c @@ -0,0 +1,76 @@ +// Tests that the z/OS toolchain adds system includes to its search path. + +// RUN: %clang -c -### %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck %s + +// CHECK: "-D_UNIX03_WITHDRAWN" +// CHECK: "-D_OPEN_DEFAULT" +// CHECK: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK: "-internal-isystem" "/usr/include" +// CHECK: "-fshort-enums" +// CHECK: "-fno-signed-char" +// CHECK: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck --check-prefixes=CHECK2 %s + +// CHECK2: "-D_UNIX03_WITHDRAWN" +// CHECK2: "-D_OPEN_DEFAULT" +// CHECK2: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK2: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK2: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK2: "-internal-isystem" "/ABC/DEF" +// CHECK2-NOT: "-internal-isystem" "/usr/include" +// CHECK2: "-fshort-enums" +// CHECK2: "-fno-signed-char" +// CHECK2: "-fno-signed-wchar" + +// RUN: %clang -c -### -mzos-sys-include=/ABC/DEF:/ghi/jkl %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck --check-prefixes=CHECK3 %s + +// CHECK3: "-D_UNIX03_WITHDRAWN" +// CHECK3: "-D_OPEN_DEFAULT" +// CHECK3: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" +// CHECK3: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include{{(/|)}}zos_wrappers" +// CHECK3: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|)}}include" +// CHECK3: "-internal-isystem" "/ABC/DEF" +// CHECK3: "-internal-isystem" "/ghi/jkl" +// CHECK3-NOT: "-internal-isystem" "/usr/include" +// CHECK3: "-fshort-enums" +// CHECK3: "-fno-signed-char" +// CHECK3: "-fno-signed-wchar" + +// RUN: %clang -c -### -nostdinc %s 2>&1 \ +// RUN: --target=s390x-ibm-zos \ +// RUN: | FileCheck