llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lld-coff Author: None (llvmbot) <details> <summary>Changes</summary> Backport 6ab8e8fa03 Requested by: @<!-- -->nga888 --- Full diff: https://github.com/llvm/llvm-project/pull/165605.diff 5 Files Affected: - (modified) lld/COFF/DriverUtils.cpp (+1-1) - (added) lld/test/COFF/Inputs/manifest-uac.test (+11) - (added) lld/test/COFF/manifest-uac.test (+33) - (modified) lld/test/COFF/manifest.test (+34-31) - (modified) lld/test/COFF/manifestinput.test (+17-18) ``````````diff diff --git a/lld/COFF/DriverUtils.cpp b/lld/COFF/DriverUtils.cpp index d8b41c7f45400..5ef41c4c0a086 100644 --- a/lld/COFF/DriverUtils.cpp +++ b/lld/COFF/DriverUtils.cpp @@ -387,7 +387,7 @@ std::string LinkerDriver::createDefaultXml() { << "<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\"\n" << " manifestVersion=\"1.0\">\n"; if (ctx.config.manifestUAC) { - os << " <trustInfo>\n" + os << " <trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v3\">\n" << " <security>\n" << " <requestedPrivileges>\n" << " <requestedExecutionLevel level=" << ctx.config.manifestLevel diff --git a/lld/test/COFF/Inputs/manifest-uac.test b/lld/test/COFF/Inputs/manifest-uac.test new file mode 100644 index 0000000000000..5269339489355 --- /dev/null +++ b/lld/test/COFF/Inputs/manifest-uac.test @@ -0,0 +1,11 @@ +<?xml version='1.0' encoding='UTF-8' standalone='yes'?> +<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> + <security> + <requestedPrivileges> + <requestedExecutionLevel level='asInvoker' + uiAccess='false'/> + </requestedPrivileges> + </security> + </trustInfo> +</assembly> diff --git a/lld/test/COFF/manifest-uac.test b/lld/test/COFF/manifest-uac.test new file mode 100644 index 0000000000000..d3a17c7282716 --- /dev/null +++ b/lld/test/COFF/manifest-uac.test @@ -0,0 +1,33 @@ +# REQUIRES: libxml2 + +# RUN: yaml2obj %p/Inputs/ret42.yaml -o %t.obj +# RUN: lld-link /out:%t.exe /entry:main \ +# RUN: /manifest:embed \ +# RUN: /manifestinput:%p/Inputs/manifest-uac.test %t.obj +# RUN: llvm-readobj --coff-resources %t.exe | FileCheck %s + +CHECK: Data ( +CHECK-NEXT: 0000: 3C3F786D 6C207665 7273696F 6E3D2231 |<?xml version="1| +CHECK-NEXT: 0010: 2E302220 656E636F 64696E67 3D225554 |.0" encoding="UT| +CHECK-NEXT: 0020: 462D3822 3F3E0A3C 61737365 6D626C79 |F-8"?>.<assembly| +CHECK-NEXT: 0030: 20786D6C 6E733D22 75726E3A 73636865 | xmlns="urn:sche| +CHECK-NEXT: 0040: 6D61732D 6D696372 6F736F66 742D636F |mas-microsoft-co| +CHECK-NEXT: 0050: 6D3A6173 6D2E7631 22206D61 6E696665 |m:asm.v1" manife| +CHECK-NEXT: 0060: 73745665 7273696F 6E3D2231 2E30223E |stVersion="1.0">| +CHECK-NEXT: 0070: 0A20203C 74727573 74496E66 6F20786D |. <trustInfo xm| +CHECK-NEXT: 0080: 6C6E733D 2275726E 3A736368 656D6173 |lns="urn:schemas| +CHECK-NEXT: 0090: 2D6D6963 726F736F 66742D63 6F6D3A61 |-microsoft-com:a| +CHECK-NEXT: 00A0: 736D2E76 33223E0A 20202020 3C736563 |sm.v3">. <sec| +CHECK-NEXT: 00B0: 75726974 793E0A20 20202020 203C7265 |urity>. <re| +CHECK-NEXT: 00C0: 71756573 74656450 72697669 6C656765 |questedPrivilege| +CHECK-NEXT: 00D0: 733E0A20 20202020 2020203C 72657175 |s>. <requ| +CHECK-NEXT: 00E0: 65737465 64457865 63757469 6F6E4C65 |estedExecutionLe| +CHECK-NEXT: 00F0: 76656C20 6C657665 6C3D2261 73496E76 |vel level="asInv| +CHECK-NEXT: 0100: 6F6B6572 22207569 41636365 73733D22 |oker" uiAccess="| +CHECK-NEXT: 0110: 66616C73 65222F3E 0A202020 2020203C |false"/>. <| +CHECK-NEXT: 0120: 2F726571 75657374 65645072 6976696C |/requestedPrivil| +CHECK-NEXT: 0130: 65676573 3E0A2020 20203C2F 73656375 |eges>. </secu| +CHECK-NEXT: 0140: 72697479 3E0A2020 3C2F7472 75737449 |rity>. </trustI| +CHECK-NEXT: 0150: 6E666F3E 0A3C2F61 7373656D 626C793E |nfo>.</assembly>| +CHECK-NEXT: 0160: 0A |.| +CHECK-NEXT: ) diff --git a/lld/test/COFF/manifest.test b/lld/test/COFF/manifest.test index 4910600bd3a17..09de96e9bccfa 100644 --- a/lld/test/COFF/manifest.test +++ b/lld/test/COFF/manifest.test @@ -10,7 +10,7 @@ MANIFEST: <?xml version="1.0" standalone="yes"?> MANIFEST: <assembly xmlns="urn:schemas-microsoft-com:asm.v1" MANIFEST: manifestVersion="1.0"> -MANIFEST: <trustInfo> +MANIFEST: <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> MANIFEST: <security> MANIFEST: <requestedPrivileges> MANIFEST: <requestedExecutionLevel level='asInvoker' uiAccess='false'/> @@ -26,7 +26,7 @@ MANIFEST: </assembly> UAC: <?xml version="1.0" standalone="yes"?> UAC: <assembly xmlns="urn:schemas-microsoft-com:asm.v1" UAC: manifestVersion="1.0"> -UAC: <trustInfo> +UAC: <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> UAC: <security> UAC: <requestedPrivileges> UAC: <requestedExecutionLevel level='requireAdministrator' uiAccess='true'/> @@ -43,7 +43,7 @@ UAC: </assembly> DEPENDENCY: <?xml version="1.0" standalone="yes"?> DEPENDENCY: <assembly xmlns="urn:schemas-microsoft-com:asm.v1" DEPENDENCY: manifestVersion="1.0"> -DEPENDENCY: <trustInfo> +DEPENDENCY: <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> DEPENDENCY: <security> DEPENDENCY: <requestedPrivileges> DEPENDENCY: <requestedExecutionLevel level='asInvoker' uiAccess='false'/> @@ -90,7 +90,7 @@ NOUACNODEP: </assembly> SEVERALDEPS: <?xml version="1.0" standalone="yes"?> SEVERALDEPS: <assembly xmlns="urn:schemas-microsoft-com:asm.v1" SEVERALDEPS: manifestVersion="1.0"> -SEVERALDEPS: <trustInfo> +SEVERALDEPS: <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> SEVERALDEPS: <security> SEVERALDEPS: <requestedPrivileges> SEVERALDEPS: <requestedExecutionLevel level='asInvoker' uiAccess='false'/> @@ -139,31 +139,34 @@ EMBED: 0040: 6D61732D 6D696372 6F736F66 742D636F |mas-microsoft-co| EMBED: 0050: 6D3A6173 6D2E7631 220A2020 20202020 |m:asm.v1". | EMBED: 0060: 20202020 6D616E69 66657374 56657273 | manifestVers| EMBED: 0070: 696F6E3D 22312E30 223E0A20 203C7472 |ion="1.0">. <tr| -EMBED: 0080: 75737449 6E666F3E 0A202020 203C7365 |ustInfo>. <se| -EMBED: 0090: 63757269 74793E0A 20202020 20203C72 |curity>. <r| -EMBED: 00A0: 65717565 73746564 50726976 696C6567 |equestedPrivileg| -EMBED: 00B0: 65733E0A 20202020 20202020 203C7265 |es>. <re| -EMBED: 00C0: 71756573 74656445 78656375 74696F6E |questedExecution| -EMBED: 00D0: 4C657665 6C206C65 76656C3D 27617349 |Level level='asI| -EMBED: 00E0: 6E766F6B 65722720 75694163 63657373 |nvoker' uiAccess| -EMBED: 00F0: 3D276661 6C736527 2F3E0A20 20202020 |='false'/>. | -EMBED: 0100: 203C2F72 65717565 73746564 50726976 | </requestedPriv| -EMBED: 0110: 696C6567 65733E0A 20202020 3C2F7365 |ileges>. </se| -EMBED: 0120: 63757269 74793E0A 20203C2F 74727573 |curity>. </trus| -EMBED: 0130: 74496E66 6F3E0A20 203C6465 70656E64 |tInfo>. <depend| -EMBED: 0140: 656E6379 3E0A2020 20203C64 6570656E |ency>. <depen| -EMBED: 0150: 64656E74 41737365 6D626C79 3E0A2020 |dentAssembly>. | -EMBED: 0160: 20202020 3C617373 656D626C 79496465 | <assemblyIde| -EMBED: 0170: 6E746974 7920666F 6F3D2762 61722720 |ntity foo='bar' | -EMBED: 0180: 2F3E0A20 2020203C 2F646570 656E6465 |/>. </depende| -EMBED: 0190: 6E744173 73656D62 6C793E0A 20203C2F |ntAssembly>. </| -EMBED: 01A0: 64657065 6E64656E 63793E0A 20203C64 |dependency>. <d| -EMBED: 01B0: 6570656E 64656E63 793E0A20 2020203C |ependency>. <| -EMBED: 01C0: 64657065 6E64656E 74417373 656D626C |dependentAssembl| -EMBED: 01D0: 793E0A20 20202020 203C6173 73656D62 |y>. <assemb| -EMBED: 01E0: 6C794964 656E7469 74792062 617A3D27 |lyIdentity baz='| -EMBED: 01F0: 71757578 27202F3E 0A202020 203C2F64 |quux' />. </d| -EMBED: 0200: 6570656E 64656E74 41737365 6D626C79 |ependentAssembly| -EMBED: 0210: 3E0A2020 3C2F6465 70656E64 656E6379 |>. </dependency| -EMBED: 0220: 3E0A3C2F 61737365 6D626C79 3E0A |>.</assembly>.| +EMBED: 0080: 75737449 6E666F20 786D6C6E 733D2275 |ustInfo xmlns="u| +EMBED: 0090: 726E3A73 6368656D 61732D6D 6963726F |rn:schemas-micro| +EMBED: 00A0: 736F6674 2D636F6D 3A61736D 2E763322 |soft-com:asm.v3"| +EMBED: 00B0: 3E0A2020 20203C73 65637572 6974793E |>. <security>| +EMBED: 00C0: 0A202020 2020203C 72657175 65737465 |. <requeste| +EMBED: 00D0: 64507269 76696C65 6765733E 0A202020 |dPrivileges>. | +EMBED: 00E0: 20202020 20203C72 65717565 73746564 | <requested| +EMBED: 00F0: 45786563 7574696F 6E4C6576 656C206C |ExecutionLevel l| +EMBED: 0100: 6576656C 3D276173 496E766F 6B657227 |evel='asInvoker'| +EMBED: 0110: 20756941 63636573 733D2766 616C7365 | uiAccess='false| +EMBED: 0120: 272F3E0A 20202020 20203C2F 72657175 |'/>. </requ| +EMBED: 0130: 65737465 64507269 76696C65 6765733E |estedPrivileges>| +EMBED: 0140: 0A202020 203C2F73 65637572 6974793E |. </security>| +EMBED: 0150: 0A20203C 2F747275 7374496E 666F3E0A |. </trustInfo>.| +EMBED: 0160: 20203C64 6570656E 64656E63 793E0A20 | <dependency>. | +EMBED: 0170: 2020203C 64657065 6E64656E 74417373 | <dependentAss| +EMBED: 0180: 656D626C 793E0A20 20202020 203C6173 |embly>. <as| +EMBED: 0190: 73656D62 6C794964 656E7469 74792066 |semblyIdentity f| +EMBED: 01A0: 6F6F3D27 62617227 202F3E0A 20202020 |oo='bar' />. | +EMBED: 01B0: 3C2F6465 70656E64 656E7441 7373656D |</dependentAssem| +EMBED: 01C0: 626C793E 0A20203C 2F646570 656E6465 |bly>. </depende| +EMBED: 01D0: 6E63793E 0A20203C 64657065 6E64656E |ncy>. <dependen| +EMBED: 01E0: 63793E0A 20202020 3C646570 656E6465 |cy>. <depende| +EMBED: 01F0: 6E744173 73656D62 6C793E0A 20202020 |ntAssembly>. | +EMBED: 0200: 20203C61 7373656D 626C7949 64656E74 | <assemblyIdent| +EMBED: 0210: 69747920 62617A3D 27717575 7827202F |ity baz='quux' /| +EMBED: 0220: 3E0A2020 20203C2F 64657065 6E64656E |>. </dependen| +EMBED: 0230: 74417373 656D626C 793E0A20 203C2F64 |tAssembly>. </d| +EMBED: 0240: 6570656E 64656E63 793E0A3C 2F617373 |ependency>.</ass| +EMBED: 0250: 656D626C 793E0A |embly>.| EMBED: ) diff --git a/lld/test/COFF/manifestinput.test b/lld/test/COFF/manifestinput.test index 04af80a13312d..cbf27b1ea96b5 100644 --- a/lld/test/COFF/manifestinput.test +++ b/lld/test/COFF/manifestinput.test @@ -5,22 +5,21 @@ # RUN: /manifest:embed \ # RUN: /manifestuac:"level='requireAdministrator'" \ # RUN: /manifestinput:%p/Inputs/manifestinput.test %t.obj -# RUN: llvm-readobj --coff-resources --file-headers %t.exe | FileCheck %s \ -# RUN: -check-prefix TEST_EMBED +# RUN: llvm-readobj --coff-resources --file-headers %t.exe | FileCheck %s -TEST_EMBED: ResourceTableRVA: 0x2000 -TEST_EMBED-NEXT: ResourceTableSize: 0x2A0 -TEST_EMBED-DAG: Resources [ -TEST_EMBED-NEXT: Total Number of Resources: 1 -TEST_EMBED-DAG: Number of String Entries: 0 -TEST_EMBED-NEXT: Number of ID Entries: 1 -TEST_EMBED-NEXT: Type: MANIFEST (ID 24) [ -TEST_EMBED-NEXT: Table Offset: 0x18 -TEST_EMBED-NEXT: Number of String Entries: 0 -TEST_EMBED-NEXT: Number of ID Entries: 1 -TEST_EMBED-NEXT: Name: (ID 1) [ -TEST_EMBED-NEXT: Table Offset: 0x30 -TEST_EMBED-NEXT: Number of String Entries: 0 -TEST_EMBED-NEXT: Number of ID Entries: 1 -TEST_EMBED-NEXT: Language: (ID 1033) [ -TEST_EMBED-NEXT: Entry Offset: 0x48 +CHECK: ResourceTableRVA: 0x2000 +CHECK-NEXT: ResourceTableSize: 0x2C8 +CHECK-DAG: Resources [ +CHECK-NEXT: Total Number of Resources: 1 +CHECK-DAG: Number of String Entries: 0 +CHECK-NEXT: Number of ID Entries: 1 +CHECK-NEXT: Type: MANIFEST (ID 24) [ +CHECK-NEXT: Table Offset: 0x18 +CHECK-NEXT: Number of String Entries: 0 +CHECK-NEXT: Number of ID Entries: 1 +CHECK-NEXT: Name: (ID 1) [ +CHECK-NEXT: Table Offset: 0x30 +CHECK-NEXT: Number of String Entries: 0 +CHECK-NEXT: Number of ID Entries: 1 +CHECK-NEXT: Language: (ID 1033) [ +CHECK-NEXT: Entry Offset: 0x48 `````````` </details> https://github.com/llvm/llvm-project/pull/165605 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
