From 1e04d56aa5cfbaf25e2b58d1c5803e535e55ed16 Mon Sep 17 00:00:00 2001 From: kkent030315 Date: Mon, 4 Aug 2025 23:35:28 +0900 Subject: [PATCH 1/4] [llvm-readobj][COFF] Improve extended DLL characteristics test --- .../COFF/Inputs/has-exdllcharacteristics.exe | Bin 5120 -> 0 bytes .../COFF/Inputs/has-exdllcharacteristics.yaml | 75 ++++++++++++++++++ .../COFF/exdllcharacteristics.test | 8 +- 3 files changed, 77 insertions(+), 6 deletions(-) delete mode 100644 llvm/test/tools/llvm-readobj/COFF/Inputs/has-exdllcharacteristics.exe create mode 100644 llvm/test/tools/llvm-readobj/COFF/Inputs/has-exdllcharacteristics.yaml diff --git a/llvm/test/tools/llvm-readobj/COFF/Inputs/has-exdllcharacteristics.exe b/llvm/test/tools/llvm-readobj/COFF/Inputs/has-exdllcharacteristics.exe deleted file mode 100644 index 9c36817b6a4744f837f4b3c405b9b45ddbec7965..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5120 zcmeHLUuauZ82|F;)^uC8Y%I(tcUQAfQA22omMM6#O+8|qv1#Y#q9!J{rZl^WH#b^Q zv|1f4mtqAU6nsdA4@E>An{0DFq)yGMPDDhJf$p)24|@0DANaB%Vd}8uMs)#(2#Dw1 z2wFBIqI$SwIhwTrF#W7PFM0x&!m3;-X6@df2d3YaMHf?m-~B6*mUg3e;M=AVt)Ff} zxH>$%Y5VJDE7(2$`RzoN0Gpc&3}2ixjEd_to0|{(&L15sR7$dmKSieh5}h}Kr#4~Z z=-(K@4g&6&=vUbpKxth`>(Nym0X!!FMr+(C9hk*^$;W3l|HpbtAh>#U59ZM9A9*tWve%L&hbcfA#NwLWh~V$Zl|{2kP|0rLCc{0u&YcbL03 z$!C;YLC(d-vT}*L_m31bStU9yBxUVC&64{8 zS?jH+D!Q6bi&?o`rk{mDSv@$SWHi}<=(y*>vaJ-=emTQyO{j7iVf0XJU{5R_?F#1# zh1EONLa#*!x(@$#=exJBede=Ih(8SfXc%kH(2Bg49f;s;-2?LBOylS5BuIoj1D?g% zy8&_m{5)tYKlkvP(GBW^jJut7fg&7ljq9@mqV=But0t=Zs_AOJI$oWuE>x-JtIgDA UYaiE6)ateCb7`%r|GxwO0^lp8hX4Qo diff --git a/llvm/test/tools/llvm-readobj/COFF/Inputs/has-exdllcharacteristics.yaml b/llvm/test/tools/llvm-readobj/COFF/Inputs/has-exdllcharacteristics.yaml new file mode 100644 index 0000000000000..3ee7fbe657555 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/COFF/Inputs/has-exdllcharacteristics.yaml @@ -0,0 +1,75 @@ +--- !COFF +OptionalHeader: + AddressOfEntryPoint: 0 + ImageBase: 0x180000000 + SectionAlignment: 4096 + FileAlignment: 512 + MajorOperatingSystemVersion: 6 + MinorOperatingSystemVersion: 0 + MajorImageVersion: 0 + MinorImageVersion: 0 + MajorSubsystemVersion: 6 + MinorSubsystemVersion: 0 + Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI + DLLCharacteristics: [ IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA, IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE, IMAGE_DLL_CHARACTERISTICS_NX_COMPAT, IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE ] + SizeOfStackReserve: 1048576 + SizeOfStackCommit: 4096 + SizeOfHeapReserve: 1048576 + SizeOfHeapCommit: 4096 + ExportTable: + RelativeVirtualAddress: 0 + Size: 0 + ImportTable: + RelativeVirtualAddress: 0 + Size: 0 + ResourceTable: + RelativeVirtualAddress: 0 + Size: 0 + ExceptionTable: + RelativeVirtualAddress: 0 + Size: 0 + CertificateTable: + RelativeVirtualAddress: 0 + Size: 0 + BaseRelocationTable: + RelativeVirtualAddress: 0 + Size: 0 + Debug: + RelativeVirtualAddress: 8192 + Size: 56 + Architecture: + RelativeVirtualAddress: 0 + Size: 0 + GlobalPtr: + RelativeVirtualAddress: 0 + Size: 0 + TlsTable: + RelativeVirtualAddress: 0 + Size: 0 + LoadConfigTable: + RelativeVirtualAddress: 0 + Size: 0 + BoundImport: + RelativeVirtualAddress: 0 + Size: 0 + IAT: + RelativeVirtualAddress: 0 + Size: 0 + DelayImportDescriptor: + RelativeVirtualAddress: 0 + Size: 0 + ClrRuntimeHeader: + RelativeVirtualAddress: 0 + Size: 0 +header: + Machine: IMAGE_FILE_MACHINE_AMD64 + Characteristics: [ IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_DLL, IMAGE_FILE_LARGE_ADDRESS_AWARE ] +sections: + - Name: .rdata + Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ] + VirtualAddress: 8192 + VirtualSize: 180 + SectionData: 0000000091BE906800000000020000005500000058200000580400000000000091BE9068000000001400000004000000B0200000B0040000180000000380038000000000000000005020000008000000101000000300000052534453867E6BCADB53244591DEC582FAB540DB10000000433A5C55736572735C73756E675C446F63756D656E74735C636F64655C636574657865635C7836345C52656C656173655C636574657865632E706462000000008F000000 + SizeOfRawData: 512 +symbols: [] +... diff --git a/llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test b/llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test index ef35aea50171a..13bd6159bfd88 100644 --- a/llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test +++ b/llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test @@ -1,9 +1,5 @@ -# To regenerate has-exdllcharacteristics.exe -# $ echo int main() { return 0; } > has-exdllcharacteristics.c -# To make minimum possible stub file (to decrease the binary size) -# $ echo -n '4D5A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' | xxd -r -p > stub -# $ cl has-exdllcharacteristics.c /link /entry:main /STUB:stub /NOCOFFGRPINFO /EMITTOOLVERSIONINFO:NO /EMITPOGOPHASEINFO /NOVCFEATURE /MANIFEST:NO /cetcompat /cetcompatstrict /cetdynamicapisinproc /cetipvalidationrelaxed /hotpatchcompatible /functionpadmin:6 -RUN: llvm-readobj --coff-debug-directory %p/Inputs/has-exdllcharacteristics.exe | FileCheck %s +RUN: yaml2obj %p/Inputs/has-exdllcharacteristics.yaml > %t.obj +RUN: llvm-readobj --coff-debug-directory %t.obj | FileCheck %s CHECK: DebugEntry { CHECK: Characteristics: 0x0 From dcd13690ddd4790ccecf6bbefe08dd2862b7787e Mon Sep 17 00:00:00 2001 From: kkent030315 Date: Mon, 4 Aug 2025 23:48:26 +0900 Subject: [PATCH 2/4] remove redundant data directories --- .../COFF/Inputs/has-exdllcharacteristics.yaml | 42 ------------------- 1 file changed, 42 deletions(-) diff --git a/llvm/test/tools/llvm-readobj/COFF/Inputs/has-exdllcharacteristics.yaml b/llvm/test/tools/llvm-readobj/COFF/Inputs/has-exdllcharacteristics.yaml index 3ee7fbe657555..5799c3e538d73 100644 --- a/llvm/test/tools/llvm-readobj/COFF/Inputs/has-exdllcharacteristics.yaml +++ b/llvm/test/tools/llvm-readobj/COFF/Inputs/has-exdllcharacteristics.yaml @@ -16,51 +16,9 @@ OptionalHeader: SizeOfStackCommit: 4096 SizeOfHeapReserve: 1048576 SizeOfHeapCommit: 4096 - ExportTable: - RelativeVirtualAddress: 0 - Size: 0 - ImportTable: - RelativeVirtualAddress: 0 - Size: 0 - ResourceTable: - RelativeVirtualAddress: 0 - Size: 0 - ExceptionTable: - RelativeVirtualAddress: 0 - Size: 0 - CertificateTable: - RelativeVirtualAddress: 0 - Size: 0 - BaseRelocationTable: - RelativeVirtualAddress: 0 - Size: 0 Debug: RelativeVirtualAddress: 8192 Size: 56 - Architecture: - RelativeVirtualAddress: 0 - Size: 0 - GlobalPtr: - RelativeVirtualAddress: 0 - Size: 0 - TlsTable: - RelativeVirtualAddress: 0 - Size: 0 - LoadConfigTable: - RelativeVirtualAddress: 0 - Size: 0 - BoundImport: - RelativeVirtualAddress: 0 - Size: 0 - IAT: - RelativeVirtualAddress: 0 - Size: 0 - DelayImportDescriptor: - RelativeVirtualAddress: 0 - Size: 0 - ClrRuntimeHeader: - RelativeVirtualAddress: 0 - Size: 0 header: Machine: IMAGE_FILE_MACHINE_AMD64 Characteristics: [ IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_DLL, IMAGE_FILE_LARGE_ADDRESS_AWARE ] From 1998d4dfa4305f6edd99ad00da7f5ab1dd6432ae Mon Sep 17 00:00:00 2001 From: kkent030315 Date: Tue, 5 Aug 2025 06:35:33 +0900 Subject: [PATCH 3/4] keep the simple instruction in place --- llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test | 3 +++ 1 file changed, 3 insertions(+) diff --git a/llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test b/llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test index 13bd6159bfd88..9e2362819f704 100644 --- a/llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test +++ b/llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test @@ -1,3 +1,6 @@ +# To regenerate has-exdllcharacteristics.exe +# $ echo int main() { return 0; } > has-exdllcharacteristics.c +# $ cl has-exdllcharacteristics.c /link /entry:main /cetcompat /cetcompatstrict /cetdynamicapisinproc /cetipvalidationrelaxed /hotpatchcompatible /functionpadmin:6 RUN: yaml2obj %p/Inputs/has-exdllcharacteristics.yaml > %t.obj RUN: llvm-readobj --coff-debug-directory %t.obj | FileCheck %s From c27049d9336433ebf7f9c152f681b61c3549c6cf Mon Sep 17 00:00:00 2001 From: kkent030315 Date: Tue, 5 Aug 2025 06:36:22 +0900 Subject: [PATCH 4/4] fix `%t.obj` to `%t.exe` --- llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test b/llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test index 9e2362819f704..3d395833062ae 100644 --- a/llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test +++ b/llvm/test/tools/llvm-readobj/COFF/exdllcharacteristics.test @@ -1,8 +1,8 @@ # To regenerate has-exdllcharacteristics.exe # $ echo int main() { return 0; } > has-exdllcharacteristics.c # $ cl has-exdllcharacteristics.c /link /entry:main /cetcompat /cetcompatstrict /cetdynamicapisinproc /cetipvalidationrelaxed /hotpatchcompatible /functionpadmin:6 -RUN: yaml2obj %p/Inputs/has-exdllcharacteristics.yaml > %t.obj -RUN: llvm-readobj --coff-debug-directory %t.obj | FileCheck %s +RUN: yaml2obj %p/Inputs/has-exdllcharacteristics.yaml > %t.exe +RUN: llvm-readobj --coff-debug-directory %t.exe | FileCheck %s CHECK: DebugEntry { CHECK: Characteristics: 0x0