CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
143 lines
6.9 KiB
Plaintext
143 lines
6.9 KiB
Plaintext
// ---- /cetcompat (image is CET compatible)
|
|
RUN: yaml2obj %p/Inputs/ret42.yaml -o %t.obj
|
|
RUN: lld-link /out:%t.exe /entry:main /cetcompat %t.obj
|
|
RUN: llvm-readobj --coff-debug-directory %t.exe | FileCheck -check-prefix=CHECKCETCOMPAT %s
|
|
|
|
CHECKCETCOMPAT: DebugEntry {
|
|
CHECKCETCOMPAT: Characteristics: 0x0
|
|
CHECKCETCOMPAT: Type: ExtendedDLLCharacteristics (0x14)
|
|
CHECKCETCOMPAT: ExtendedCharacteristics [ (0x1)
|
|
CHECKCETCOMPAT: IMAGE_DLL_CHARACTERISTICS_EX_CET_COMPAT (0x1)
|
|
CHECKCETCOMPAT: ]
|
|
CHECKCETCOMPAT: RawData (
|
|
CHECKCETCOMPAT: 0000: 01000000 |....|
|
|
CHECKCETCOMPAT: )
|
|
CHECKCETCOMPAT: }
|
|
|
|
// ---- /cetcompat:no (image is not CET compatible)
|
|
RUN: yaml2obj %p/Inputs/ret42.yaml -o %t.obj
|
|
RUN: lld-link /out:%t.exe /entry:main /cetcompat:no %t.obj
|
|
RUN: llvm-readobj --coff-debug-directory %t.exe | FileCheck -check-prefix=CHECKNOCETCOMPAT %s
|
|
|
|
CHECKNOCETCOMPAT-NOT: Type: ExtendedDLLCharacteristics (0x14)
|
|
CHECKNOCETCOMPAT-NOT: IMAGE_DLL_CHARACTERISTICS_EX_CET_COMPAT (0x1)
|
|
|
|
// ---- /cetcompatstrict (CET in strict mode)
|
|
RUN: yaml2obj %p/Inputs/ret42.yaml -o %t.obj
|
|
RUN: lld-link /out:%t.exe /entry:main /cetcompatstrict %t.obj
|
|
RUN: llvm-readobj --coff-debug-directory %t.exe | FileCheck -check-prefix=CHECKCETCOMPATSTRICT %s
|
|
|
|
CHECKCETCOMPATSTRICT: DebugEntry {
|
|
CHECKCETCOMPATSTRICT: Characteristics: 0x0
|
|
CHECKCETCOMPATSTRICT: Type: ExtendedDLLCharacteristics (0x14)
|
|
CHECKCETCOMPATSTRICT: ExtendedCharacteristics [ (0x2)
|
|
CHECKCETCOMPATSTRICT: IMAGE_DLL_CHARACTERISTICS_EX_CET_COMPAT_STRICT_MODE (0x2)
|
|
CHECKCETCOMPATSTRICT: ]
|
|
CHECKCETCOMPATSTRICT: RawData (
|
|
CHECKCETCOMPATSTRICT: 0000: 02000000 |....|
|
|
CHECKCETCOMPATSTRICT: )
|
|
CHECKCETCOMPATSTRICT: }
|
|
|
|
// ---- /cetcompatstrict:no (image is not CET strict mode)
|
|
RUN: yaml2obj %p/Inputs/ret42.yaml -o %t.obj
|
|
RUN: lld-link /out:%t.exe /entry:main /cetcompatstrict:no %t.obj
|
|
RUN: llvm-readobj --coff-debug-directory %t.exe | FileCheck -check-prefix=CHECKNOCETSTRICT %s
|
|
|
|
CHECKNOCETSTRICT-NOT: Type: ExtendedDLLCharacteristics (0x14)
|
|
CHECKNOCETSTRICT-NOT: IMAGE_DLL_CHARACTERISTICS_EX_CET_COMPAT_STRICT_MODE (0x2)
|
|
|
|
// ---- /cetdynamicapisinproc
|
|
RUN: yaml2obj %p/Inputs/ret42.yaml -o %t.obj
|
|
RUN: lld-link /out:%t.exe /entry:main /cetdynamicapisinproc %t.obj
|
|
RUN: llvm-readobj --coff-debug-directory %t.exe | FileCheck -check-prefix=CHECKCETDYNAPI %s
|
|
|
|
CHECKCETDYNAPI: DebugEntry {
|
|
CHECKCETDYNAPI: Characteristics: 0x0
|
|
CHECKCETDYNAPI: Type: ExtendedDLLCharacteristics (0x14)
|
|
CHECKCETDYNAPI: ExtendedCharacteristics [ (0x8)
|
|
CHECKCETDYNAPI: IMAGE_DLL_CHARACTERISTICS_EX_CET_DYNAMIC_APIS_ALLOW_IN_PROC_ONLY (0x8)
|
|
CHECKCETDYNAPI: ]
|
|
CHECKCETDYNAPI: RawData (
|
|
CHECKCETDYNAPI: 0000: 08000000 |....|
|
|
CHECKCETDYNAPI: )
|
|
CHECKCETDYNAPI: }
|
|
|
|
// ---- /cetdynamicapisinproc:no (image is not CET dynamic apis allowed in proc)
|
|
RUN: yaml2obj %p/Inputs/ret42.yaml -o %t.obj
|
|
RUN: lld-link /out:%t.exe /entry:main /cetdynamicapisinproc:no %t.obj
|
|
RUN: llvm-readobj --coff-debug-directory %t.exe | FileCheck -check-prefix=CHECKNOCETDYNAPI %s
|
|
|
|
CHECKNOCETDYNAPI-NOT: Type: ExtendedDLLCharacteristics (0x14)
|
|
CHECKNOCETDYNAPI-NOT: Type: IMAGE_DLL_CHARACTERISTICS_EX_CET_DYNAMIC_APIS_ALLOW_IN_PROC_ONLY (0x8)
|
|
|
|
// ---- /cetipvalidationrelaxed (image is not CET in context ip validation relaxed mode)
|
|
RUN: yaml2obj %p/Inputs/ret42.yaml -o %t.obj
|
|
RUN: lld-link /out:%t.exe /entry:main /cetipvalidationrelaxed %t.obj
|
|
RUN: llvm-readobj --coff-debug-directory %t.exe | FileCheck -check-prefix=CHECKCETIPRELAXED %s
|
|
|
|
CHECKCETIPRELAXED: DebugEntry {
|
|
CHECKCETIPRELAXED: Characteristics: 0x0
|
|
CHECKCETIPRELAXED: Type: ExtendedDLLCharacteristics (0x14)
|
|
CHECKCETIPRELAXED: ExtendedCharacteristics [ (0x4)
|
|
CHECKCETIPRELAXED: IMAGE_DLL_CHARACTERISTICS_EX_CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE (0x4)
|
|
CHECKCETIPRELAXED: ]
|
|
CHECKCETIPRELAXED: RawData (
|
|
CHECKCETIPRELAXED: 0000: 04000000 |....|
|
|
CHECKCETIPRELAXED: )
|
|
CHECKCETIPRELAXED: }
|
|
|
|
// ---- /cetipvalidationrelaxed:no (image is not CET in IP validation relaxed mode)
|
|
RUN: yaml2obj %p/Inputs/ret42.yaml -o %t.obj
|
|
RUN: lld-link /out:%t.exe /entry:main /cetipvalidationrelaxed:no %t.obj
|
|
RUN: llvm-readobj --coff-debug-directory %t.exe | FileCheck -check-prefix=CHECKNOCETIPRELAXED %s
|
|
|
|
CHECKNOCETIPRELAXED-NOT: Type: ExtendedDLLCharacteristics (0x14)
|
|
CHECKNOCETIPRELAXED-NOT: Type: IMAGE_DLL_CHARACTERISTICS_EX_CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE (0x4)
|
|
|
|
// ---- /hotpatchcompatible requires /functionpadmin:6
|
|
RUN: yaml2obj %p/Inputs/ret42.yaml -o %t.obj
|
|
RUN: lld-link /out:%t.exe /entry:main /hotpatchcompatible /functionpadmin:6 %t.obj
|
|
RUN: llvm-readobj --coff-debug-directory %t.exe | FileCheck -check-prefix=CHECKHOTPATCHABLE %s
|
|
|
|
CHECKHOTPATCHABLE: DebugEntry {
|
|
CHECKHOTPATCHABLE: Characteristics: 0x0
|
|
CHECKHOTPATCHABLE: Type: ExtendedDLLCharacteristics (0x14)
|
|
CHECKHOTPATCHABLE: ExtendedCharacteristics [ (0x80)
|
|
CHECKHOTPATCHABLE: IMAGE_DLL_CHARACTERISTICS_EX_HOTPATCH_COMPATIBLE (0x80)
|
|
CHECKHOTPATCHABLE: ]
|
|
CHECKHOTPATCHABLE: RawData (
|
|
CHECKHOTPATCHABLE: 0000: 80000000 |....|
|
|
CHECKHOTPATCHABLE: )
|
|
CHECKHOTPATCHABLE: }
|
|
|
|
// ---- /hotpatchcompatible:no (image is not hotpatch compatible)
|
|
RUN: yaml2obj %p/Inputs/ret42.yaml -o %t.obj
|
|
RUN: lld-link /out:%t.exe /entry:main /hotpatchcompatible:no %t.obj
|
|
RUN: llvm-readobj --coff-debug-directory %t.exe | FileCheck -check-prefix=CHECKNOHOTPATCHABLE %s
|
|
|
|
CHECKNOHOTPATCHABLE-NOT: Type: ExtendedDLLCharacteristics (0x14)
|
|
CHECKNOHOTPATCHABLE-NOT: Type: IMAGE_DLL_CHARACTERISTICS_EX_HOTPATCH_COMPATIBLE (0x80)
|
|
|
|
// ---- /hotpatchcompatible more than 6 bytes is accepted
|
|
RUN: lld-link /out:%t.exe /entry:main /hotpatchcompatible /functionpadmin:10 %t.obj
|
|
RUN: llvm-readobj --coff-debug-directory %t.exe | FileCheck -check-prefix=CHECKHOTPATCHABLE2 %s
|
|
|
|
CHECKHOTPATCHABLE2: DebugEntry {
|
|
CHECKHOTPATCHABLE2: Characteristics: 0x0
|
|
CHECKHOTPATCHABLE2: Type: ExtendedDLLCharacteristics (0x14)
|
|
CHECKHOTPATCHABLE2: ExtendedCharacteristics [ (0x80)
|
|
CHECKHOTPATCHABLE2: IMAGE_DLL_CHARACTERISTICS_EX_HOTPATCH_COMPATIBLE (0x80)
|
|
CHECKHOTPATCHABLE2: ]
|
|
CHECKHOTPATCHABLE2: RawData (
|
|
CHECKHOTPATCHABLE2: 0000: 80000000 |....|
|
|
CHECKHOTPATCHABLE2: )
|
|
CHECKHOTPATCHABLE2: }
|
|
|
|
// ---- /hotpatchcompatible requires at least 6 bytes function padding
|
|
RUN: env LLD_IN_TEST=1 not lld-link /out:%t.exe /entry:main /hotpatchcompatible /functionpadmin:5 %t.obj 2>&1 | FileCheck -check-prefix=CHECKHOTPATCHNOT %s
|
|
CHECKHOTPATCHNOT: lld-link: error: /hotpatchcompatible: requires at least 6 bytes of /functionpadmin
|
|
|
|
// ---- /hotpatchcompatible requires at least 6 bytes function padding -- without /functionpadmin should raise an error
|
|
RUN: env LLD_IN_TEST=1 not lld-link /out:%t.exe /entry:main /hotpatchcompatible %t.obj 2>&1 | FileCheck -check-prefix=CHECKHOTPATCHNOT2 %s
|
|
CHECKHOTPATCHNOT2: lld-link: error: /hotpatchcompatible: requires at least 6 bytes of /functionpadmin
|