Blame SOURCES/gcc48-rh1537828-6.patch

5ed81e
commit 49033c9c57a415db02ac5d98badf5f53342bca83
5ed81e
Author: krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
5ed81e
Date:   Thu Apr 12 09:14:57 2018 +0000
5ed81e
5ed81e
    IBM Z: Spectre: Prevent thunk cfi to be emitted with -fno-dwarf2-cfi-asm
5ed81e
    
5ed81e
    The CFI magic we emit as part of the indirect branch thunks in order to
5ed81e
    have somewhat sane unwind information must not be emitted with
5ed81e
    -fno-dwarf2-cfi-asm.
5ed81e
    
5ed81e
    gcc/ChangeLog:
5ed81e
    
5ed81e
    2018-04-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5ed81e
    
5ed81e
            * config/s390/s390.c (s390_output_indirect_thunk_function): Check
5ed81e
            also for flag_dwarf2_cfi_asm.
5ed81e
    
5ed81e
    gcc/testsuite/ChangeLog:
5ed81e
    
5ed81e
    2018-04-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5ed81e
    
5ed81e
            * gcc.target/s390/nobp-no-dwarf2-cfi.c: New test.
5ed81e
    
5ed81e
    
5ed81e
    
5ed81e
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@259340 138bc75d-0d04-0410-961f-82ee72b054a4
5ed81e
5ed81e
diff -Nrup gcc/config/s390/s390.c gcc/config/s390/s390.c
5ed81e
--- gcc/config/s390/s390.c	2018-04-18 13:35:43.856279249 -0600
5ed81e
+++ gcc/config/s390/s390.c	2018-04-18 13:36:21.037007877 -0600
5ed81e
@@ -14091,7 +14091,7 @@ s390_output_indirect_thunk_function (uns
5ed81e
 
5ed81e
      calls: Instead of caller->thunk the backtrace will be
5ed81e
      caller->callee->thunk   */
5ed81e
-  if (flag_asynchronous_unwind_tables)
5ed81e
+  if (flag_asynchronous_unwind_tables && flag_dwarf2_cfi_asm)
5ed81e
     {
5ed81e
       fputs ("\t.cfi_signal_frame\n", asm_out_file);
5ed81e
       fprintf (asm_out_file, "\t.cfi_return_column %d\n", regno);
5ed81e
diff --git gcc/testsuite/gcc.target/s390/nobp-no-dwarf2-cfi.c gcc/testsuite/gcc.target/s390/nobp-no-dwarf2-cfi.c
5ed81e
new file mode 100644
5ed81e
index 0000000..75e32a1
5ed81e
--- /dev/null
5ed81e
+++ gcc/testsuite/gcc.target/s390/nobp-no-dwarf2-cfi.c
5ed81e
@@ -0,0 +1,19 @@
5ed81e
+/* { dg-do run } */
5ed81e
+/* { dg-options "-O3 -march=z900 --save-temps -mfunction-return-reg=thunk -mindirect-branch-table -fno-dwarf2-cfi-asm" } */
5ed81e
+
5ed81e
+/* Make sure that we do not emit .cfi directives when -fno-dwarf2-cfi-asm is being used.  */
5ed81e
+
5ed81e
+int
5ed81e
+main ()
5ed81e
+{
5ed81e
+  return 0;
5ed81e
+}
5ed81e
+
5ed81e
+/* 1 x main
5ed81e
+/* { dg-final { scan-assembler-times "jg\t__s390_indirect_jump" 1 } } */
5ed81e
+/* { dg-final { scan-assembler "ex\t" } } */
5ed81e
+
5ed81e
+/* { dg-final { scan-assembler-not "section\t.s390_indirect_jump" } } */
5ed81e
+/* { dg-final { scan-assembler-not "section\t.s390_indirect_call" } } */
5ed81e
+/* { dg-final { scan-assembler     "section\t.s390_return_reg" } } */
5ed81e
+/* { dg-final { scan-assembler-not "section\t.s390_return_mem" } } */