diff --git a/SOURCES/gcc48-rh1655148.patch b/SOURCES/gcc48-rh1655148.patch new file mode 100644 index 0000000..03bc2ac --- /dev/null +++ b/SOURCES/gcc48-rh1655148.patch @@ -0,0 +1,20 @@ +diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c +index 6dfbb4642..9f30b2749 100644 +--- a/gcc/cfgexpand.c ++++ b/gcc/cfgexpand.c +@@ -316,6 +316,15 @@ stack_var_conflict_p (size_t x, size_t y) + struct stack_var *b = &stack_vars[y]; + if (x == y) + return false; ++ /* GCC 4.8 does not calculate the control flow for setjmp correctly ++ (BZ 56982). This might lead to merging stack variable slots ++ which in fact are live at the same time. The following check ++ considers all variables being live across setjmp invocations ++ (these must be marked volatile) to conflict with all other stack ++ variables. */ ++ if (cfun->calls_setjmp ++ && (TREE_THIS_VOLATILE (a->decl) || TREE_THIS_VOLATILE (b->decl))) ++ return true; + /* Partitions containing an SSA name result from gimple registers + with things like unsupported modes. They are top-level and + hence conflict with everything else. */ diff --git a/SPECS/gcc.spec b/SPECS/gcc.spec index 21365f4..51b2163 100644 --- a/SPECS/gcc.spec +++ b/SPECS/gcc.spec @@ -79,7 +79,7 @@ Name: gcc %global gcc_version 4.8.5 %endif Version: 4.8.5 -Release: %{gcc_release}%{?dist} +Release: %{gcc_release}%{?dist}.1 %if "%{version}" != "%{gcc_version}" %define gcc_provides %{gcc_version}-16%{?dist} %endif @@ -268,6 +268,7 @@ Patch68: gcc48-pr81395.patch Patch69: gcc48-pr72717.patch Patch70: gcc48-pr66840.patch Patch71: gcc48-rh1546372.patch +Patch72: gcc48-rh1655148.patch Patch1000: fastjar-0.97-segfault.patch Patch1001: fastjar-0.97-len1.patch @@ -1059,6 +1060,7 @@ touch -r %{PATCH27} libstdc++-v3/python/libstdcxx/v6/printers.py %patch69 -p0 -b .pr72717~ %patch70 -p0 -b .pr66840~ %patch71 -p0 -b .rh1546372~ +%patch72 -p1 -b .rh1655148~ %if 0%{?_enable_debug_packages} cat > split-debuginfo.sh <<\EOF @@ -3548,6 +3550,10 @@ fi %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin %changelog +* Wed Jan 16 2019 Jeff Law 4.8.5-36.1 +- Avoid code generation bug due to incorrect CFG in the presence + of setjmp/longjmp (#1655148). + * Tue Jun 12 2018 Marek Polacek 4.8.5-36 - back out the last change