4.8.0-0.4
This commit is contained in:
parent
e835ae255a
commit
95108be4ed
3
.gitignore
vendored
3
.gitignore
vendored
@ -50,3 +50,6 @@
|
||||
/cloog-0.17.0.tar.gz
|
||||
/isl-0.10.tar.bz2
|
||||
/gcc-4.8.0-20130106.tar.bz2
|
||||
/gcc-4.8.0-20130121.tar.bz2
|
||||
/cloog-0.18.0.tar.gz
|
||||
/isl-0.11.1.tar.bz2
|
||||
|
63
gcc.spec
63
gcc.spec
@ -1,9 +1,9 @@
|
||||
%global DATE 20130106
|
||||
%global SVNREV 194938
|
||||
%global DATE 20130121
|
||||
%global SVNREV 195337
|
||||
%global gcc_version 4.8.0
|
||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||
# %{release}, append them after %{gcc_release} on Release: line.
|
||||
%global gcc_release 0.3
|
||||
%global gcc_release 0.4
|
||||
%global _unpackaged_files_terminate_build 0
|
||||
%global multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||
%ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
|
||||
@ -83,9 +83,9 @@ Group: Development/Languages
|
||||
# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_7-branch@%{SVNREV} gcc-%{version}-%{DATE}
|
||||
# tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2
|
||||
Source0: gcc-%{version}-%{DATE}.tar.bz2
|
||||
%global isl_version 0.10
|
||||
%global isl_version 0.11.1
|
||||
Source1: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.bz2
|
||||
%global cloog_version 0.17.0
|
||||
%global cloog_version 0.18.0
|
||||
Source2: ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-%{cloog_version}.tar.gz
|
||||
%global fastjar_ver 0.97
|
||||
Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz
|
||||
@ -196,10 +196,9 @@ Patch9: gcc48-cloog-dl2.patch
|
||||
Patch10: gcc48-pr38757.patch
|
||||
Patch11: gcc48-libstdc++-docs.patch
|
||||
Patch12: gcc48-no-add-needed.patch
|
||||
Patch13: gcc48-asan-ppc.patch
|
||||
Patch14: gcc48-pr55341.patch
|
||||
Patch15: gcc48-pr55608.patch
|
||||
Patch16: gcc48-pr55844.patch
|
||||
Patch13: gcc48-pr55608.patch
|
||||
Patch14: gcc48-pr55742.patch
|
||||
Patch15: gcc48-pr56022.patch
|
||||
|
||||
Patch1000: fastjar-0.97-segfault.patch
|
||||
Patch1001: fastjar-0.97-len1.patch
|
||||
@ -751,10 +750,9 @@ package or when debugging this package.
|
||||
%patch11 -p0 -b .libstdc++-docs~
|
||||
%endif
|
||||
%patch12 -p0 -b .no-add-needed~
|
||||
%patch13 -p0 -b .asan-ppc~
|
||||
%patch14 -p0 -b .pr55341~
|
||||
%patch15 -p0 -b .pr55608~
|
||||
%patch16 -p0 -b .pr55844~
|
||||
%patch13 -p0 -b .pr55608~
|
||||
%patch14 -p0 -E -b .pr55742~
|
||||
%patch15 -p0 -b .pr56022~
|
||||
|
||||
%if 0%{?_enable_debug_packages}
|
||||
cat > split-debuginfo.sh <<\EOF
|
||||
@ -2975,5 +2973,44 @@ fi
|
||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
|
||||
|
||||
%changelog
|
||||
* Mon Jan 21 2013 Jakub Jelinek <jakub@redhat.com> 4.8.0-0.4
|
||||
- updated from trunk
|
||||
- PRs ada/864, bootstrap/55792, bootstrap/55961, c++/52343, c++/55663,
|
||||
c++/55753, c++/55801, c++/55878, c++/55893, c/48418, debug/49888,
|
||||
debug/53235, debug/53671, debug/54114, debug/54402, debug/55579,
|
||||
debug/56006, driver/55470, driver/55884, fortran/42769, fortran/45836,
|
||||
fortran/45900, fortran/47203, fortran/52865, fortran/53876,
|
||||
fortran/54286, fortran/54678, fortran/54990, fortran/54992,
|
||||
fortran/55072, fortran/55341, fortran/55618, fortran/55758,
|
||||
fortran/55763, fortran/55806, fortran/55852, fortran/55868,
|
||||
fortran/55935, fortran/55983, libmudflap/53359, libstdc++/51007,
|
||||
libstdc++/55043, libstdc++/55233, libstdc++/55594, libstdc++/55728,
|
||||
libstdc++/55847, libstdc++/55861, libstdc++/55908, lto/45375,
|
||||
middle-end/55114, middle-end/55851, middle-end/55882,
|
||||
middle-end/55890, middle-end/56015, other/55973, other/55982,
|
||||
rtl-optimization/52573, rtl-optimization/53827,
|
||||
rtl-optimization/55153, rtl-optimization/55547,
|
||||
rtl-optimization/55672, rtl-optimization/55829,
|
||||
rtl-optimization/55833, rtl-optimization/55845,
|
||||
rtl-optimization/56005, sanitizer/55488, sanitizer/55679,
|
||||
sanitizer/55844, target/42661, target/43961, target/54461,
|
||||
target/54908, target/55301, target/55433, target/55565,
|
||||
target/55718, target/55719, target/55876, target/55897,
|
||||
target/55940, target/55948, target/55974, target/55981,
|
||||
target/56058, testsuite/54622, testsuite/55994,
|
||||
tree-optimization/44061, tree-optimization/48189,
|
||||
tree-optimization/48766, tree-optimization/52631,
|
||||
tree-optimization/53465, tree-optimization/54120,
|
||||
tree-optimization/54767, tree-optimization/55273,
|
||||
tree-optimization/55569, tree-optimization/55823,
|
||||
tree-optimization/55862, tree-optimization/55875,
|
||||
tree-optimization/55888, tree-optimization/55920,
|
||||
tree-optimization/55921, tree-optimization/55955,
|
||||
tree-optimization/55964, tree-optimization/55995,
|
||||
tree-optimization/56029, tree-optimization/55264
|
||||
- fix up multiversioning (PR c++/55742)
|
||||
- fix up ICE with target attribute (PR middle-end/56022)
|
||||
- update isl to 0.11.1 and cloog to 0.18.0
|
||||
|
||||
* Sun Jan 6 2013 Jakub Jelinek <jakub@redhat.com> 4.8.0-0.3
|
||||
- new package
|
||||
|
@ -1,145 +0,0 @@
|
||||
2012-12-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* varasm.c (output_constant_def_contents): For asan_protect_global
|
||||
protected strings, adjust DECL_ALIGN if needed, before testing for
|
||||
anchored symbols.
|
||||
(place_block_symbol): Adjust size for asan protected STRING_CSTs if
|
||||
TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
|
||||
normal decls.
|
||||
(output_object_block): For asan protected decls, emit asan padding
|
||||
after their contents.
|
||||
* asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
|
||||
(asan_finish_file): Test it here instead.
|
||||
|
||||
--- gcc/varasm.c.jj 2012-12-20 19:10:19.856526720 +0100
|
||||
+++ gcc/varasm.c 2012-12-21 10:37:44.481999545 +0100
|
||||
@@ -3252,6 +3252,7 @@ output_constant_def_contents (rtx symbol
|
||||
tree decl = SYMBOL_REF_DECL (symbol);
|
||||
tree exp = DECL_INITIAL (decl);
|
||||
unsigned int align;
|
||||
+ bool asan_protected = false;
|
||||
|
||||
/* Make sure any other constants whose addresses appear in EXP
|
||||
are assigned label numbers. */
|
||||
@@ -3260,6 +3261,14 @@ output_constant_def_contents (rtx symbol
|
||||
/* We are no longer deferring this constant. */
|
||||
TREE_ASM_WRITTEN (decl) = TREE_ASM_WRITTEN (exp) = 1;
|
||||
|
||||
+ if (flag_asan && TREE_CODE (exp) == STRING_CST
|
||||
+ && asan_protect_global (exp))
|
||||
+ {
|
||||
+ asan_protected = true;
|
||||
+ DECL_ALIGN (decl) = MAX (DECL_ALIGN (decl),
|
||||
+ ASAN_RED_ZONE_SIZE * BITS_PER_UNIT);
|
||||
+ }
|
||||
+
|
||||
/* If the constant is part of an object block, make sure that the
|
||||
decl has been positioned within its block, but do not write out
|
||||
its definition yet. output_object_blocks will do that later. */
|
||||
@@ -3267,15 +3276,8 @@ output_constant_def_contents (rtx symbol
|
||||
place_block_symbol (symbol);
|
||||
else
|
||||
{
|
||||
- bool asan_protected = false;
|
||||
align = DECL_ALIGN (decl);
|
||||
switch_to_section (get_constant_section (exp, align));
|
||||
- if (flag_asan && TREE_CODE (exp) == STRING_CST
|
||||
- && asan_protect_global (exp))
|
||||
- {
|
||||
- asan_protected = true;
|
||||
- align = MAX (align, ASAN_RED_ZONE_SIZE * BITS_PER_UNIT);
|
||||
- }
|
||||
if (align > BITS_PER_UNIT)
|
||||
ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (align / BITS_PER_UNIT));
|
||||
assemble_constant_contents (exp, XSTR (symbol, 0), align);
|
||||
@@ -6968,6 +6970,10 @@ place_block_symbol (rtx symbol)
|
||||
decl = SYMBOL_REF_DECL (symbol);
|
||||
alignment = DECL_ALIGN (decl);
|
||||
size = get_constant_size (DECL_INITIAL (decl));
|
||||
+ if (flag_asan
|
||||
+ && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST
|
||||
+ && asan_protect_global (DECL_INITIAL (decl)))
|
||||
+ size += asan_red_zone_size (size);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -6975,7 +6981,11 @@ place_block_symbol (rtx symbol)
|
||||
alignment = DECL_ALIGN (decl);
|
||||
size = tree_low_cst (DECL_SIZE_UNIT (decl), 1);
|
||||
if (flag_asan && asan_protect_global (decl))
|
||||
- size += asan_red_zone_size (size);
|
||||
+ {
|
||||
+ size += asan_red_zone_size (size);
|
||||
+ alignment = MAX (alignment,
|
||||
+ ASAN_RED_ZONE_SIZE * BITS_PER_UNIT);
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Calculate the object's offset from the start of the block. */
|
||||
@@ -7114,16 +7124,34 @@ output_object_block (struct object_block
|
||||
}
|
||||
else if (TREE_CONSTANT_POOL_ADDRESS_P (symbol))
|
||||
{
|
||||
+ HOST_WIDE_INT size;
|
||||
decl = SYMBOL_REF_DECL (symbol);
|
||||
assemble_constant_contents (DECL_INITIAL (decl), XSTR (symbol, 0),
|
||||
DECL_ALIGN (decl));
|
||||
- offset += get_constant_size (DECL_INITIAL (decl));
|
||||
+ size = get_constant_size (DECL_INITIAL (decl));
|
||||
+ offset += size;
|
||||
+ if (flag_asan
|
||||
+ && TREE_CODE (DECL_INITIAL (decl)) == STRING_CST
|
||||
+ && asan_protect_global (DECL_INITIAL (decl)))
|
||||
+ {
|
||||
+ size = asan_red_zone_size (size);
|
||||
+ assemble_zeros (size);
|
||||
+ offset += size;
|
||||
+ }
|
||||
}
|
||||
else
|
||||
{
|
||||
+ HOST_WIDE_INT size;
|
||||
decl = SYMBOL_REF_DECL (symbol);
|
||||
assemble_variable_contents (decl, XSTR (symbol, 0), false);
|
||||
- offset += tree_low_cst (DECL_SIZE_UNIT (decl), 1);
|
||||
+ size = tree_low_cst (DECL_SIZE_UNIT (decl), 1);
|
||||
+ offset += size;
|
||||
+ if (flag_asan && asan_protect_global (decl))
|
||||
+ {
|
||||
+ size = asan_red_zone_size (size);
|
||||
+ assemble_zeros (size);
|
||||
+ offset += size;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
--- gcc/asan.c.jj 2012-12-20 11:38:14.000000000 +0100
|
||||
+++ gcc/asan.c 2012-12-21 10:49:45.364823759 +0100
|
||||
@@ -463,7 +463,6 @@ asan_protect_global (tree decl)
|
||||
|| DECL_THREAD_LOCAL_P (decl)
|
||||
/* Externs will be protected elsewhere. */
|
||||
|| DECL_EXTERNAL (decl)
|
||||
- || !TREE_ASM_WRITTEN (decl)
|
||||
|| !DECL_RTL_SET_P (decl)
|
||||
/* Comdat vars pose an ABI problem, we can't know if
|
||||
the var that is selected by the linker will have
|
||||
@@ -1699,7 +1698,8 @@ asan_finish_file (void)
|
||||
tree fn = builtin_decl_implicit (BUILT_IN_ASAN_INIT);
|
||||
append_to_statement_list (build_call_expr (fn, 0), &asan_ctor_statements);
|
||||
FOR_EACH_DEFINED_VARIABLE (vnode)
|
||||
- if (asan_protect_global (vnode->symbol.decl))
|
||||
+ if (TREE_ASM_WRITTEN (vnode->symbol.decl)
|
||||
+ && asan_protect_global (vnode->symbol.decl))
|
||||
++gcount;
|
||||
htab_t const_desc_htab = constant_pool_htab ();
|
||||
htab_traverse (const_desc_htab, count_string_csts, &gcount);
|
||||
@@ -1721,7 +1721,8 @@ asan_finish_file (void)
|
||||
DECL_IGNORED_P (var) = 1;
|
||||
vec_alloc (v, gcount);
|
||||
FOR_EACH_DEFINED_VARIABLE (vnode)
|
||||
- if (asan_protect_global (vnode->symbol.decl))
|
||||
+ if (TREE_ASM_WRITTEN (vnode->symbol.decl)
|
||||
+ && asan_protect_global (vnode->symbol.decl))
|
||||
asan_add_global (vnode->symbol.decl, TREE_TYPE (type), v);
|
||||
struct asan_add_string_csts_data aascd;
|
||||
aascd.type = TREE_TYPE (type);
|
@ -1,74 +0,0 @@
|
||||
2012-12-19 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR fortran/55341
|
||||
* asan.c (asan_clear_shadow): New function.
|
||||
(asan_emit_stack_protection): Use it.
|
||||
|
||||
--- gcc/asan.c.jj 2012-12-13 00:05:04.000000000 +0100
|
||||
+++ gcc/asan.c 2012-12-19 12:25:57.676365851 +0100
|
||||
@@ -270,6 +270,45 @@ asan_shadow_cst (unsigned char shadow_by
|
||||
return GEN_INT (trunc_int_for_mode (val, SImode));
|
||||
}
|
||||
|
||||
+/* Clear shadow memory at SHADOW_MEM, LEN bytes. Can't call a library call here
|
||||
+ though. */
|
||||
+
|
||||
+static void
|
||||
+asan_clear_shadow (rtx shadow_mem, HOST_WIDE_INT len)
|
||||
+{
|
||||
+ rtx insn, insns, top_label, end, addr, tmp, jump;
|
||||
+
|
||||
+ start_sequence ();
|
||||
+ clear_storage (shadow_mem, GEN_INT (len), BLOCK_OP_NORMAL);
|
||||
+ insns = get_insns ();
|
||||
+ end_sequence ();
|
||||
+ for (insn = insns; insn; insn = NEXT_INSN (insn))
|
||||
+ if (CALL_P (insn))
|
||||
+ break;
|
||||
+ if (insn == NULL_RTX)
|
||||
+ {
|
||||
+ emit_insn (insns);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ gcc_assert ((len & 3) == 0);
|
||||
+ top_label = gen_label_rtx ();
|
||||
+ addr = force_reg (Pmode, XEXP (shadow_mem, 0));
|
||||
+ shadow_mem = adjust_automodify_address (shadow_mem, SImode, addr, 0);
|
||||
+ end = force_reg (Pmode, plus_constant (Pmode, addr, len));
|
||||
+ emit_label (top_label);
|
||||
+
|
||||
+ emit_move_insn (shadow_mem, const0_rtx);
|
||||
+ tmp = expand_simple_binop (Pmode, PLUS, addr, GEN_INT (4), addr,
|
||||
+ true, OPTAB_LIB_WIDEN);
|
||||
+ if (tmp != addr)
|
||||
+ emit_move_insn (addr, tmp);
|
||||
+ emit_cmp_and_jump_insns (addr, end, LT, NULL_RTX, Pmode, true, top_label);
|
||||
+ jump = get_last_insn ();
|
||||
+ gcc_assert (JUMP_P (jump));
|
||||
+ add_reg_note (jump, REG_BR_PROB, GEN_INT (REG_BR_PROB_BASE * 80 / 100));
|
||||
+}
|
||||
+
|
||||
/* Insert code to protect stack vars. The prologue sequence should be emitted
|
||||
directly, epilogue sequence returned. BASE is the register holding the
|
||||
stack base, against which OFFSETS array offsets are relative to, OFFSETS
|
||||
@@ -404,8 +443,7 @@ asan_emit_stack_protection (rtx base, HO
|
||||
(last_offset - prev_offset)
|
||||
>> ASAN_SHADOW_SHIFT);
|
||||
prev_offset = last_offset;
|
||||
- clear_storage (shadow_mem, GEN_INT (last_size >> ASAN_SHADOW_SHIFT),
|
||||
- BLOCK_OP_NORMAL);
|
||||
+ asan_clear_shadow (shadow_mem, last_size >> ASAN_SHADOW_SHIFT);
|
||||
last_offset = offset;
|
||||
last_size = 0;
|
||||
}
|
||||
@@ -418,8 +456,7 @@ asan_emit_stack_protection (rtx base, HO
|
||||
shadow_mem = adjust_address (shadow_mem, VOIDmode,
|
||||
(last_offset - prev_offset)
|
||||
>> ASAN_SHADOW_SHIFT);
|
||||
- clear_storage (shadow_mem, GEN_INT (last_size >> ASAN_SHADOW_SHIFT),
|
||||
- BLOCK_OP_NORMAL);
|
||||
+ asan_clear_shadow (shadow_mem, last_size >> ASAN_SHADOW_SHIFT);
|
||||
}
|
||||
|
||||
do_pending_stack_adjust ();
|
1288
gcc48-pr55742.patch
Normal file
1288
gcc48-pr55742.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,15 +0,0 @@
|
||||
2012-12-19 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR sanitizer/55844
|
||||
* c-c++-common/asan/null-deref-1.c: Add -fno-shrink-wrap to
|
||||
dg-options.
|
||||
|
||||
--- gcc/testsuite/c-c++-common/asan/null-deref-1.c.jj 2012-12-13 00:02:50.000000000 +0100
|
||||
+++ gcc/testsuite/c-c++-common/asan/null-deref-1.c 2012-12-19 12:30:05.354962160 +0100
|
||||
@@ -1,5 +1,5 @@
|
||||
/* { dg-do run } */
|
||||
-/* { dg-options "-fno-omit-frame-pointer" } */
|
||||
+/* { dg-options "-fno-omit-frame-pointer -fno-shrink-wrap" } */
|
||||
/* { dg-additional-options "-mno-omit-leaf-frame-pointer" { target { i?86-*-* x86_64-*-* } } } */
|
||||
/* { dg-shouldfail "asan" } */
|
||||
|
6
sources
6
sources
@ -1,4 +1,4 @@
|
||||
be78a47bd82523250eb3e91646db5b3d cloog-0.18.0.tar.gz
|
||||
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
|
||||
0aa3302c81f65ca62c114e5264f8a802 cloog-0.17.0.tar.gz
|
||||
c1ece653891bb2a5f55ca25e3f4e8f35 isl-0.10.tar.bz2
|
||||
b9be0ed1988a3624a5f405666f72d220 gcc-4.8.0-20130106.tar.bz2
|
||||
bce1586384d8635a76d2f017fb067cd2 isl-0.11.1.tar.bz2
|
||||
f9dd93bbd1ad08bbbd71d2e3c36b0da0 gcc-4.8.0-20130121.tar.bz2
|
||||
|
Loading…
Reference in New Issue
Block a user