<div dir="ltr"><div>In case it's relevant, it's also failing on clang-x86-windows-msvc2015 and on my local 64-bit Windows machine with the same symptoms.<br></div><div><br></div><div>James<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 29 May 2018 at 19:59, via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Mike and Alexander,<br>
<br>
The test you changed in this commit, note-gnu-property.s seems to now be failing on the PS4 Windows bot.<br>
<br>
<a href="http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/17420" rel="noreferrer" target="_blank">http://lab.llvm.org:8011/<wbr>builders/llvm-clang-lld-x86_<wbr>64-scei-ps4-windows10pro-fast/<wbr>builds/17420</a>:<br>
<br>
FAIL: LLVM :: tools/llvm-readobj/note-gnu-<wbr>property.s (38778 of 40635)<br>
******************** TEST 'LLVM :: tools/llvm-readobj/note-gnu-<wbr>property.s' FAILED ********************<br>
Script:<br>
--<br>
C:\ps4-buildslave2\llvm-clang-<wbr>lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.obj\<wbr>bin\llvm-mc.EXE -filetype=obj -triple x86_64-pc-linux-gnu C:\ps4-buildslave2\llvm-clang-<wbr>lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.src\<wbr>test\tools\llvm-readobj\note-<wbr>gnu-property.s -o C:\ps4-buildslave2\llvm-clang-<wbr>lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.obj\<wbr>test\tools\llvm-readobj\<wbr>Output\note-gnu-property.s.tmp<br>
C:\ps4-buildslave2\llvm-clang-<wbr>lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.obj\<wbr>bin\llvm-readobj.EXE -elf-output-style GNU --notes C:\ps4-buildslave2\llvm-clang-<wbr>lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.obj\<wbr>test\tools\llvm-readobj\<wbr>Output\note-gnu-property.s.tmp | C:\ps4-buildslave2\llvm-clang-<wbr>lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.obj\<wbr>bin\FileCheck.EXE C:\ps4-buildslave2\llvm-clang-<wbr>lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.src\<wbr>test\tools\llvm-readobj\note-<wbr>gnu-property.s<br>
--<br>
Exit Code: 1<br>
<br>
Command Output (stdout):<br>
--<br>
$ "C:\ps4-buildslave2\llvm-<wbr>clang-lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.obj\<wbr>bin\llvm-mc.EXE" "-filetype=obj" "-triple" "x86_64-pc-linux-gnu" "C:\ps4-buildslave2\llvm-<wbr>clang-lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.src\<wbr>test\tools\llvm-readobj\note-<wbr>gnu-property.s" "-o" "C:\ps4-buildslave2\llvm-<wbr>clang-lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.obj\<wbr>test\tools\llvm-readobj\<wbr>Output\note-gnu-property.s.<wbr>tmp"<br>
$ "C:\ps4-buildslave2\llvm-<wbr>clang-lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.obj\<wbr>bin\llvm-readobj.EXE" "-elf-output-style" "GNU" "--notes" "C:\ps4-buildslave2\llvm-<wbr>clang-lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.obj\<wbr>test\tools\llvm-readobj\<wbr>Output\note-gnu-property.s.<wbr>tmp"<br>
$ "C:\ps4-buildslave2\llvm-<wbr>clang-lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.obj\<wbr>bin\FileCheck.EXE" "C:\ps4-buildslave2\llvm-<wbr>clang-lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.src\<wbr>test\tools\llvm-readobj\note-<wbr>gnu-property.s"<br>
# command stderr:<br>
C:\ps4-buildslave2\llvm-clang-<wbr>lld-x86_64-scei-ps4-<wbr>windows10pro-fast\llvm.src\<wbr>test\tools\llvm-readobj\note-<wbr>gnu-property.s:19:16: error: expected string not found in input<br>
<span class=""><br>
// CHECK-NEXT: X86 features: IBT, <unknown flags: 0xf000f000f000f000><br>
<br>
</span>               ^<br>
<br>
<stdin>:15:2: note: scanning from here<br>
<span class=""><br>
 X86 features: IBT, <unknown flags: 0xf000f000><br>
<br>
</span> ^<br>
<br>
Can you take a look?<br>
<br>
Douglas Yung<br>
<div class="HOEnZb"><div class="h5"><br>
> -----Original Message-----<br>
> From: llvm-commits [mailto:<a href="mailto:llvm-commits-bounces@lists.llvm.org">llvm-commits-bounces@<wbr>lists.llvm.org</a>] On<br>
> Behalf Of Alexander Ivchenko via llvm-commits<br>
> Sent: Tuesday, May 29, 2018 7:50<br>
> To: <a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
> Subject: [llvm] r333424 - [llvm-readobj] Support<br>
> GNU_PROPERTY_X86_FEATURE_1_AND notes in .note.gnu.property<br>
> <br>
> Author: aivchenk<br>
> Date: Tue May 29 07:49:51 2018<br>
> New Revision: 333424<br>
> <br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=333424&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=333424&view=rev</a><br>
> Log:<br>
> [llvm-readobj] Support GNU_PROPERTY_X86_FEATURE_1_AND notes in<br>
> .note.gnu.property<br>
> <br>
> This patch allows parsing GNU_PROPERTY_X86_FEATURE_1_AND<br>
> notes in .note.gnu.property sections. These notes<br>
> indicate that the object file is built to support Intel CET.<br>
> <br>
> patch by mike.dvoretsky<br>
> <br>
> Differential Revision: <a href="https://reviews.llvm.org/D47473" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D47473</a><br>
> <br>
> <br>
> Modified:<br>
>     llvm/trunk/include/llvm/<wbr>BinaryFormat/ELF.h<br>
>     llvm/trunk/test/tools/llvm-<wbr>readobj/note-gnu-property.s<br>
>     llvm/trunk/tools/llvm-readobj/<wbr>ELFDumper.cpp<br>
> <br>
> Modified: llvm/trunk/include/llvm/<wbr>BinaryFormat/ELF.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-</a><br>
> project/llvm/trunk/include/<wbr>llvm/BinaryFormat/ELF.h?rev=<wbr>333424&r1=333423<br>
> &r2=333424&view=diff<br>
> ==============================<wbr>==============================<wbr>===========<br>
> =======<br>
> --- llvm/trunk/include/llvm/<wbr>BinaryFormat/ELF.h (original)<br>
> +++ llvm/trunk/include/llvm/<wbr>BinaryFormat/ELF.h Tue May 29 07:49:51 2018<br>
> @@ -1308,6 +1308,13 @@ enum {<br>
>  enum {<br>
>    GNU_PROPERTY_STACK_SIZE = 1,<br>
>    GNU_PROPERTY_NO_COPY_ON_<wbr>PROTECTED = 2,<br>
> +  GNU_PROPERTY_X86_FEATURE_1_AND = 0xc0000002<br>
> +};<br>
> +<br>
> +// CET properties<br>
> +enum {<br>
> +  GNU_PROPERTY_X86_FEATURE_1_IBT = 1 << 0,<br>
> +  GNU_PROPERTY_X86_FEATURE_1_<wbr>SHSTK = 1 << 1<br>
>  };<br>
> <br>
>  // AMDGPU specific notes.<br>
> <br>
> Modified: llvm/trunk/test/tools/llvm-<wbr>readobj/note-gnu-property.s<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/tools/<wbr>llvm-</a><br>
> readobj/note-gnu-property.s?<wbr>rev=333424&r1=333423&r2=<wbr>333424&view=diff<br>
> ==============================<wbr>==============================<wbr>===========<br>
> =======<br>
> --- llvm/trunk/test/tools/llvm-<wbr>readobj/note-gnu-property.s (original)<br>
> +++ llvm/trunk/test/tools/llvm-<wbr>readobj/note-gnu-property.s Tue May 29<br>
> 07:49:51 2018<br>
> @@ -2,16 +2,21 @@<br>
>  // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t<br>
>  // RUN: llvm-readobj -elf-output-style GNU --notes %t | FileCheck %s<br>
> <br>
> -// CHECK:      Displaying notes found at file offset 0x00000040 with<br>
> length 0x00000070:<br>
> +// CHECK:      Displaying notes found at file offset 0x00000040 with<br>
> length 0x000000b8:<br>
>  // CHECK-NEXT:   Owner                 Data size       Description<br>
> -// CHECK-NEXT:   GNU                   0x00000060<br>
> NT_GNU_PROPERTY_TYPE_0 (property note)<br>
> +// CHECK-NEXT:   GNU                   0x000000a8<br>
> NT_GNU_PROPERTY_TYPE_0 (property note)<br>
>  // CHECK-NEXT:     Properties:  stack size: 0x100<br>
>  // CHECK-NEXT:     stack size: 0x100<br>
>  // CHECK-NEXT:     no copy on protected<br>
> +// CHECK-NEXT:     X86 features: SHSTK<br>
> +// CHECK-NEXT:     X86 features: IBT, SHSTK<br>
> +// CHECK-NEXT:     X86 features: none<br>
>  // CHECK-NEXT:     <application-specific type 0xfefefefe><br>
>  // CHECK-NEXT:     stack size: <corrupt length: 0x0><br>
>  // CHECK-NEXT:     stack size: <corrupt length: 0x4><br>
>  // CHECK-NEXT:     no copy on protected <corrupt length: 0x1><br>
> +// CHECK-NEXT:     X86 features: <corrupt length: 0x0><br>
> +// CHECK-NEXT:     X86 features: IBT, <unknown flags:<br>
> 0xf000f000f000f000><br>
>  // CHECK-NEXT:     <corrupt type (0x2) datasz: 0x1><br>
> <br>
>  .section ".note.gnu.property", "a"<br>
> @@ -26,7 +31,7 @@ begin:<br>
>    .long 8           /* Data size */<br>
>    .quad 0x100       /* Data (stack size) */<br>
>    .p2align 3        /* Align to 8 byte for 64 bit */<br>
> -<br>
> +<br>
>    /* Test we handle alignment properly */<br>
>    .long 1           /* Type: GNU_PROPERTY_STACK_SIZE */<br>
>    .long 8           /* Data size */<br>
> @@ -36,6 +41,23 @@ begin:<br>
>    .long 2           /* Type: GNU_PROPERTY_NO_COPY_ON_<wbr>PROTECTED */<br>
>    .long 0           /* Data size */<br>
>    .p2align 3        /* Align to 8 byte for 64 bit */<br>
> +<br>
> +  /* CET property note */<br>
> +  .long 0xc0000002  /* Type: GNU_PROPERTY_X86_FEATURE_1_AND */<br>
> +  .long 8           /* Data size */<br>
> +  .quad 2           /* GNU_PROPERTY_X86_FEATURE_1_<wbr>SHSTK */<br>
> +  .p2align 3        /* Align to 8 byte for 64 bit */<br>
> +<br>
> +  /* CET property note with padding */<br>
> +  .long 0xc0000002  /* Type: GNU_PROPERTY_X86_FEATURE_1_AND */<br>
> +  .long 4           /* Data size */<br>
> +  .long 3           /* Full CET support */<br>
> +  .p2align 3        /* Align to 8 byte for 64 bit */<br>
> +<br>
> +  .long 0xc0000002  /* Type: GNU_PROPERTY_X86_FEATURE_1_AND */<br>
> +  .long 8           /* Data size */<br>
> +  .quad 0           /* Empty flags, not an error */<br>
> +  .p2align 3        /* Align to 8 byte for 64 bit */<br>
> <br>
>    /* All notes below are broken. Test we are able to report them. */<br>
> <br>
> @@ -60,6 +82,17 @@ begin:<br>
>    .long 1           /* Data size (corrupted) */<br>
>    .byte 1           /* Data */<br>
>    .p2align 3        /* Align to 8 byte for 64 bit */<br>
> +<br>
> +  /* CET note with size zero */<br>
> +  .long 0xc0000002  /* Type: GNU_PROPERTY_X86_FEATURE_1_AND */<br>
> +  .long 0           /* Data size */<br>
> +  .p2align 3        /* Align to 8 byte for 64 bit */<br>
> +<br>
> +  /* CET note with bad flags */<br>
> +  .long 0xc0000002         /* Type: GNU_PROPERTY_X86_FEATURE_1_AND */<br>
> +  .long 8                  /* Data size */<br>
> +  .quad 0xf000f000f000f001 /* GNU_PROPERTY_X86_FEATURE_1_IBT and bad<br>
> bits */<br>
> +  .p2align 3               /* Align to 8 byte for 64 bit */<br>
> <br>
>    /* GNU_PROPERTY_NO_COPY_ON_<wbr>PROTECTED with pr_datasz and without data<br>
> */<br>
>    .long 2           /* Type: GNU_PROPERTY_NO_COPY_ON_<wbr>PROTECTED */<br>
> <br>
> Modified: llvm/trunk/tools/llvm-readobj/<wbr>ELFDumper.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/tools/llvm-</a><br>
> readobj/ELFDumper.cpp?rev=<wbr>333424&r1=333423&r2=333424&<wbr>view=diff<br>
> ==============================<wbr>==============================<wbr>===========<br>
> =======<br>
> --- llvm/trunk/tools/llvm-readobj/<wbr>ELFDumper.cpp (original)<br>
> +++ llvm/trunk/tools/llvm-readobj/<wbr>ELFDumper.cpp Tue May 29 07:49:51<br>
> 2018<br>
> @@ -3457,7 +3457,7 @@ static void printGNUProperty(raw_ostream<br>
>    case GNU_PROPERTY_STACK_SIZE: {<br>
>      OS << "    stack size: ";<br>
>      if (DataSize == sizeof(typename ELFT::uint))<br>
> -      OS << format("0x%x\n",<br>
> +      OS << format("0x%lx\n",<br>
>                     (uint64_t)(*(const typename ELFT::Addr<br>
> *)Data.data()));<br>
>      else<br>
>        OS << format("<corrupt length: 0x%x>\n", DataSize);<br>
> @@ -3469,6 +3469,36 @@ static void printGNUProperty(raw_ostream<br>
>        OS << format(" <corrupt length: 0x%x>", DataSize);<br>
>      OS << "\n";<br>
>      break;<br>
> +  case GNU_PROPERTY_X86_FEATURE_1_<wbr>AND:<br>
> +    OS << "    X86 features: ";<br>
> +    if (DataSize != 4 && DataSize != 8) {<br>
> +      OS << format("<corrupt length: 0x%x>\n", DataSize);<br>
> +      break;<br>
> +    }<br>
> +    uint64_t CFProtection =<br>
> +        (DataSize == 4)<br>
> +            ?<br>
> support::endian::read32<ELFT::<wbr>TargetEndianness>(Data.data())<br>
> +            :<br>
> support::endian::read64<ELFT::<wbr>TargetEndianness>(Data.data())<wbr>;<br>
> +    if (CFProtection == 0) {<br>
> +      OS << "none\n";<br>
> +      break;<br>
> +    }<br>
> +    if (CFProtection & GNU_PROPERTY_X86_FEATURE_1_<wbr>IBT) {<br>
> +      OS << "IBT";<br>
> +      CFProtection &= ~GNU_PROPERTY_X86_FEATURE_1_<wbr>IBT;<br>
> +      if (CFProtection)<br>
> +        OS << ", ";<br>
> +    }<br>
> +    if (CFProtection & GNU_PROPERTY_X86_FEATURE_1_<wbr>SHSTK) {<br>
> +      OS << "SHSTK";<br>
> +      CFProtection &= ~GNU_PROPERTY_X86_FEATURE_1_<wbr>SHSTK;<br>
> +      if (CFProtection)<br>
> +        OS << ", ";<br>
> +    }<br>
> +    if (CFProtection)<br>
> +      OS << format("<unknown flags: 0x%lx>", CFProtection);<br>
> +    OS << "\n";<br>
> +    break;<br>
>    }<br>
>  }<br>
> <br>
> <br>
> <br>
> ______________________________<wbr>_________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>