From: Marcin Krol Date: Sat, 13 Apr 2013 13:01:18 +0000 (+0000) Subject: - merged and TLDized GCC 4.7.3 from PLD X-Git-Url: https://git.tld-linux.org/?a=commitdiff_plain;h=a7d40bafa96ba422586e5fe56b7ecf84368cd1d3;p=packages%2Fgcc.git - merged and TLDized GCC 4.7.3 from PLD --- diff --git a/gcc-ada-link.patch b/gcc-ada-link.patch index e3df27e..82cf03f 100644 --- a/gcc-ada-link.patch +++ b/gcc-ada-link.patch @@ -1,9 +1,9 @@ --- a/gcc/ada/link.c 2004-09-13 12:18:40.000000000 +0200 +++ b/gcc/ada/link.c 2004-09-26 12:24:29.079704096 +0200 -@@ -213,10 +213,10 @@ +@@ -157,10 +157,10 @@ #elif defined (linux) || defined(__GLIBC__) - const char *__gnat_object_file_option = ""; + const char *__gnat_object_file_option = "-Wl,@"; -const char *__gnat_run_path_option = "-Wl,-rpath,"; +const char *__gnat_run_path_option = ""; char __gnat_shared_libgnat_default = STATIC; @@ -12,8 +12,8 @@ +char __gnat_shared_libgcc_default = SHARED; +int __gnat_link_max = 131072; unsigned char __gnat_objlist_file_supported = 1; - unsigned char __gnat_using_gnu_linker = 1; const char *__gnat_object_library_extension = ".a"; + unsigned char __gnat_separate_run_path_options = 0; --- a/gcc/ada/gcc-interface/Make-lang.in 2004-09-01 12:46:47.000000000 +0200 +++ b/gcc/ada/gcc-interface/Make-lang.in 2004-09-26 12:21:15.135188144 +0200 @@ -378,7 +378,7 @@ @@ -57,13 +57,21 @@ cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ --- a/gcc/ada/gcc-interface/Makefile.in~ 2011-03-27 13:01:06.697666231 +0200 +++ b/gcc/ada/gcc-interface/Makefile.in 2011-03-27 13:08:55.725801177 +0200 -@@ -2500,7 +2500,7 @@ - THREAD_KIND="$(THREAD_KIND)" \ +@@ -2612,14 +2612,14 @@ gnatlib $(RM) $(RTSDIR)/libgna*$(soext) -- cd $(RTSDIR); ../../xgcc -B../../ -shared $(GNATLIBCFLAGS) \ -+ cd $(RTSDIR); ../../xgcc -B../../ -shared -shared-libgcc $(GNATLIBCFLAGS) \ - $(TARGET_LIBGCC2_CFLAGS) \ + cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ +- | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \ ++ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc $(GNATLIBCFLAGS) \ + $(PICFLAG_FOR_TARGET) \ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ + $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ + $(MISCLIB) -lm + cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ +- | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \ ++ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc $(GNATLIBCFLAGS) \ + $(PICFLAG_FOR_TARGET) \ + -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ + $(GNATRTL_TASKING_OBJS) \ diff --git a/gcc-branch.diff b/gcc-branch.diff index bc5227d..ae7334d 100644 --- a/gcc-branch.diff +++ b/gcc-branch.diff @@ -1,1272 +1,26 @@ -Index: gcc/targhooks.c -=================================================================== ---- gcc/targhooks.c (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/targhooks.c (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -529,6 +529,7 @@ - case scalar_to_vec: - case cond_branch_not_taken: - case vec_perm: -+ case vec_promote_demote: - return 1; - - case unaligned_load: -Index: gcc/DATESTAMP -=================================================================== ---- gcc/DATESTAMP (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/DATESTAMP (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -1 +1 @@ --20120301 -+20120315 -Index: gcc/target.h -=================================================================== ---- gcc/target.h (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/target.h (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -128,7 +128,8 @@ - scalar_to_vec, - cond_branch_not_taken, - cond_branch_taken, -- vec_perm -+ vec_perm, -+ vec_promote_demote - }; - - /* Sets of optimization levels at which an option may be enabled by Index: gcc/DEV-PHASE =================================================================== ---- gcc/DEV-PHASE (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/DEV-PHASE (.../branches/gcc-4_6-branch) (wersja 185440) +--- gcc/DEV-PHASE (.../tags/gcc_4_7_3_release) (wersja 197768) ++++ gcc/DEV-PHASE (.../branches/gcc-4_7-branch) (wersja 197768) @@ -0,0 +1 @@ +prerelease Index: gcc/ChangeLog =================================================================== ---- gcc/ChangeLog (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/ChangeLog (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -1,3 +1,101 @@ -+2012-03-15 Chung-Lin Tang -+ -+ Backport from mainline -+ 2012-03-10 Chung-Lin Tang -+ -+ PR rtl-optimization/52528 -+ * combine.c (can_combine_p): Add setting of subst_low_luid -+ before call to expand_field_assignment(). -+ -+2012-03-12 John David Anglin -+ -+ Backport from mainline -+ 2011-09-03 John David Anglin -+ -+ PR Bug middle-end/50232 -+ * config/pa/pa.md (return): Define "return" insn pattern. -+ (epilogue): Use it when no epilogue is needed. -+ * config/pa/pa.c (pa_can_use_return_insn): New function. -+ * config/pa/pa-protos.h (pa_can_use_return_insn): Declare. -+ -+ Backport for mainline -+ 2012-01-28 John David Anglin -+ -+ PR target/51871 -+ * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export -+ stubs. -+ -+2012-03-06 Michael Meissner -+ -+ Backport from mainline -+ PR target/50310 -+ * config/rs6000/vector.md (vector_uneq): Add support for -+ UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons. -+ (vector_ltgt): Likewise. -+ (vector_ordered): Likewise. -+ (vector_unordered): Likewise. -+ * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): -+ Likewise. -+ -+2012-03-04 John David Anglin -+ -+ Backport from mainline -+ 2012-03-01 John David Anglin -+ -+ PR target/52408 -+ * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to -+ unsigned HOST_WIDE_INT. -+ (zvdep_imm64): Likewise. -+ (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT. -+ (vdepi_and): Likewise. -+ Likewise for unamed 64-bit patterns. -+ * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment. -+ -+2012-03-03 Eric Botcazou -+ -+ PR target/52425 -+ Backport from mainline -+ 2011-05-22 Eric Botcazou -+ -+ * config/sparc/sparc.c (sparc_delegitimize_address): Handle -+ UNSPEC_MOVE_PIC pattern. -+ -+2012-03-02 Peter Bergner -+ -+ Backport from mainline -+ 2012-03-02 Peter Bergner -+ -+ * config/rs6000/vsx.md (vsx_set_): Reorder operands. -+ -+2012-03-02 Bill Schmidt -+ Ira Rosen -+ -+ PR tree-optimization/50031 -+ PR tree-optimization/50969 -+ * targhooks.c (default_builtin_vectorization_cost): Handle -+ vec_promote_demote. -+ * target.h (enum vect_cost_for_stmt): Add vec_promote_demote. -+ * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle -+ all types of reduction and pattern statements. -+ (vect_estimate_min_profitable_iters): Likewise. -+ * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function. -+ (vect_model_store_cost): Use vec_perm rather than vector_stmt for -+ statement cost. -+ (vect_model_load_cost): Likewise. -+ (vect_get_load_cost): Likewise; add dump logic for explicit realigns. -+ (vectorizable_type_demotion): Call vect_model_promotion_demotion_cost. -+ (vectorizable_type_promotion): Likewise. -+ * config/spu/spu.c (spu_builtin_vectorization_cost): Handle -+ vec_promote_demote. -+ * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise. -+ * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update -+ vec_perm for VSX and handle vec_promote_demote. +--- gcc/ChangeLog (.../tags/gcc_4_7_3_release) (wersja 197768) ++++ gcc/ChangeLog (.../branches/gcc-4_7-branch) (wersja 197768) +@@ -1,3 +1,8 @@ ++2013-04-11 Richard Biener + -+2012-03-01 Jakub Jelinek -+ -+ * BASE-VER: Set to 4.6.4. ++ * BASE-VER: Set to 4.7.4. + * DEV-PHASE: Set to prerelease. + - 2012-03-01 Release Manager + 2013-04-11 Release Manager - * GCC 4.6.3 released. -Index: gcc/testsuite/gcc.target/powerpc/pr52457.c -=================================================================== ---- gcc/testsuite/gcc.target/powerpc/pr52457.c (.../tags/gcc_4_6_3_release) (wersja 0) -+++ gcc/testsuite/gcc.target/powerpc/pr52457.c (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -0,0 +1,34 @@ -+/* { dg-do run { target { powerpc*-*-linux* } } } */ -+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ -+/* { dg-skip-if "" { powerpc*-*-*spe* } { "*" } { "" } } */ -+/* { dg-require-effective-target vsx_hw } */ -+/* { dg-options "-O1 -mcpu=power7" } */ -+ -+extern void abort (void); -+ -+typedef long long T; -+typedef T vl_t __attribute__((vector_size(2 * sizeof (T)))); -+ -+vl_t -+buggy_func (T x) -+{ -+ vl_t w; -+ T *p = (T *)&w; -+ p[0] = p[1] = x; -+ return w; -+} -+ -+int -+main(void) -+{ -+ vl_t rval; -+ T *pl; -+ -+ pl = (T *) &rval; -+ rval = buggy_func (2); -+ -+ if (pl[0] != 2 || pl[1] != 2) -+ abort (); -+ -+ return 0; -+} -Index: gcc/testsuite/gfortran.dg/intrinsic_8.f90 -=================================================================== ---- gcc/testsuite/gfortran.dg/intrinsic_8.f90 (.../tags/gcc_4_6_3_release) (wersja 0) -+++ gcc/testsuite/gfortran.dg/intrinsic_8.f90 (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -0,0 +1,23 @@ -+! { dg-do compile } -+! -+! PR fortran/52452 -+! -+! Contributed by Roger Ferrer Ibanez -+! -+PROGRAM test_etime -+ IMPLICIT NONE -+ INTRINSIC :: etime -+ REAL(4) :: tarray(1:2) -+ REAL(4) :: result -+ -+ CALL etime(tarray, result) -+END PROGRAM test_etime -+ -+subroutine test_etime2 -+ IMPLICIT NONE -+ INTRINSIC :: etime -+ REAL(4) :: tarray(1:2) -+ REAL(4) :: result -+ -+ result = etime(tarray) -+END subroutine test_etime2 -Index: gcc/testsuite/gfortran.dg/proc_ptr_34.f90 -=================================================================== ---- gcc/testsuite/gfortran.dg/proc_ptr_34.f90 (.../tags/gcc_4_6_3_release) (wersja 0) -+++ gcc/testsuite/gfortran.dg/proc_ptr_34.f90 (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -0,0 +1,79 @@ -+! { dg-do compile } -+! -+! PR fortran/52469 -+! -+! This was failing as the DECL of the proc pointer "func" -+! was used for the interface of the proc-pointer component "my_f_ptr" -+! rather than the decl of the proc-pointer target -+! -+! Contributed by palott@gmail.com -+! -+ -+module ExampleFuncs -+ implicit none -+ -+ ! NOTE: "func" is a procedure pointer! -+ pointer :: func -+ interface -+ function func (z) -+ real :: func -+ real, intent (in) :: z -+ end function func -+ end interface -+ -+ type Contains_f_ptr -+ procedure (func), pointer, nopass :: my_f_ptr -+ end type Contains_f_ptr -+contains -+ -+function f1 (x) -+ real :: f1 -+ real, intent (in) :: x -+ -+ f1 = 2.0 * x -+ -+ return -+end function f1 -+ -+function f2 (x) -+ real :: f2 -+ real, intent (in) :: x -+ -+ f2 = 3.0 * x**2 -+ -+ return -+end function f2 -+ -+function fancy (func, x) -+ real :: fancy -+ real, intent (in) :: x -+ -+ interface AFunc -+ function func (y) -+ real :: func -+ real, intent (in) ::y -+ end function func -+ end interface AFunc -+ -+ fancy = func (x) + 3.3 * x -+end function fancy -+ -+end module ExampleFuncs -+ -+ -+program test_proc_ptr -+ use ExampleFuncs -+ implicit none -+ -+ type (Contains_f_ptr), dimension (2) :: NewType -+ -+ !NewType(1) % my_f_ptr => f1 -+ NewType(2) % my_f_ptr => f2 -+ -+ !write (*, *) NewType(1) % my_f_ptr (3.0), NewType(2) % my_f_ptr (3.0) -+ write (6, *) NewType(2) % my_f_ptr (3.0) ! < Shall print '27.0' -+ -+ stop -+end program test_proc_ptr -+ -+! { dg-final { cleanup-modules "examplefuncs" } } -Index: gcc/testsuite/ChangeLog -=================================================================== ---- gcc/testsuite/ChangeLog (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/testsuite/ChangeLog (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -1,3 +1,23 @@ -+2012-03-10 Tobias Burnus -+ -+ PR fortran/52469 -+ * gfortran.dg/proc_ptr_34.f90: New. -+ -+2012-03-06 Tobias Burnus -+ -+ Backport from mainline -+ 2012-03-02 Tobias Burnus -+ -+ PR fortran/52452 -+ * gfortran.dg/intrinsic_8.f90: New. -+ -+2012-03-02 Peter Bergner -+ -+ Backport from mainline -+ 2012-03-02 Peter Bergner -+ -+ * gcc.target/powerpc/pr52457.c: New test. -+ - 2012-03-01 Release Manager - - * GCC 4.6.3 released. -Index: gcc/fortran/ChangeLog -=================================================================== ---- gcc/fortran/ChangeLog (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/fortran/ChangeLog (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -1,3 +1,18 @@ -+2012-03-10 Tobias Burnus -+ -+ PR fortran/52469 -+ * trans-types.c (gfc_get_function_type): Handle backend_decl -+ of a procedure pointer. -+ -+2012-03-06 Tobias Burnus -+ -+ Backport from mainline -+ 2012-03-02 Tobias Burnus -+ -+ PR fortran/52452 -+ * resolve.c (resolve_intrinsic): Don't search for a -+ function if we know that it is a subroutine. -+ - 2012-03-01 Release Manager - - * GCC 4.6.3 released. -Index: gcc/fortran/trans-types.c -=================================================================== ---- gcc/fortran/trans-types.c (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/fortran/trans-types.c (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -2519,7 +2519,11 @@ - || sym->attr.flavor == FL_PROGRAM); - - if (sym->backend_decl) -- return TREE_TYPE (sym->backend_decl); -+ { -+ if (sym->attr.proc_pointer) -+ return TREE_TYPE (TREE_TYPE (sym->backend_decl)); -+ return TREE_TYPE (sym->backend_decl); -+ } - - alternate_return = 0; - typelist = NULL_TREE; -Index: gcc/fortran/resolve.c -=================================================================== ---- gcc/fortran/resolve.c (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/fortran/resolve.c (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -1452,7 +1452,7 @@ - - if (sym->intmod_sym_id) - isym = gfc_intrinsic_function_by_id ((gfc_isym_id) sym->intmod_sym_id); -- else -+ else if (!sym->attr.subroutine) - isym = gfc_find_function (sym->name); - - if (isym) + * GCC 4.7.3 released. Index: gcc/BASE-VER =================================================================== ---- gcc/BASE-VER (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/BASE-VER (.../branches/gcc-4_6-branch) (wersja 185440) +--- gcc/BASE-VER (.../tags/gcc_4_7_3_release) (wersja 197768) ++++ gcc/BASE-VER (.../branches/gcc-4_7-branch) (wersja 197768) @@ -1 +1 @@ --4.6.3 -+4.6.4 -Index: gcc/tree-vect-loop.c -=================================================================== ---- gcc/tree-vect-loop.c (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/tree-vect-loop.c (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -2104,7 +2104,8 @@ - if (stmt_info - && !STMT_VINFO_RELEVANT_P (stmt_info) - && (!STMT_VINFO_LIVE_P (stmt_info) -- || STMT_VINFO_DEF_TYPE (stmt_info) != vect_reduction_def)) -+ || !VECTORIZABLE_CYCLE_DEF (STMT_VINFO_DEF_TYPE (stmt_info))) -+ && !STMT_VINFO_IN_PATTERN_P (stmt_info)) - continue; - - if (STMT_VINFO_DATA_REF (vinfo_for_stmt (stmt))) -@@ -2251,11 +2252,19 @@ - { - gimple stmt = gsi_stmt (si); - stmt_vec_info stmt_info = vinfo_for_stmt (stmt); -+ -+ if (STMT_VINFO_IN_PATTERN_P (stmt_info)) -+ { -+ stmt = STMT_VINFO_RELATED_STMT (stmt_info); -+ stmt_info = vinfo_for_stmt (stmt); -+ } -+ - /* Skip stmts that are not vectorized inside the loop. */ - if (!STMT_VINFO_RELEVANT_P (stmt_info) - && (!STMT_VINFO_LIVE_P (stmt_info) -- || STMT_VINFO_DEF_TYPE (stmt_info) != vect_reduction_def)) -+ || !VECTORIZABLE_CYCLE_DEF (STMT_VINFO_DEF_TYPE (stmt_info)))) - continue; -+ - vec_inside_cost += STMT_VINFO_INSIDE_OF_LOOP_COST (stmt_info) * factor; - /* FIXME: for stmts in the inner-loop in outer-loop vectorization, - some of the "outside" costs are generated inside the outer-loop. */ -Index: gcc/tree-vect-stmts.c -=================================================================== ---- gcc/tree-vect-stmts.c (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/tree-vect-stmts.c (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -623,6 +623,46 @@ - } - - -+/* Model cost for type demotion and promotion operations. PWR is normally -+ zero for single-step promotions and demotions. It will be one if -+ two-step promotion/demotion is required, and so on. Each additional -+ step doubles the number of instructions required. */ -+ -+static void -+vect_model_promotion_demotion_cost (stmt_vec_info stmt_info, -+ enum vect_def_type *dt, int pwr) -+{ -+ int i, tmp; -+ int inside_cost = 0, outside_cost = 0, single_stmt_cost; -+ -+ /* The SLP costs were already calculated during SLP tree build. */ -+ if (PURE_SLP_STMT (stmt_info)) -+ return; -+ -+ single_stmt_cost = vect_get_stmt_cost (vec_promote_demote); -+ for (i = 0; i < pwr + 1; i++) -+ { -+ tmp = (STMT_VINFO_TYPE (stmt_info) == type_promotion_vec_info_type) ? -+ (i + 1) : i; -+ inside_cost += vect_pow2 (tmp) * single_stmt_cost; -+ } -+ -+ /* FORNOW: Assuming maximum 2 args per stmts. */ -+ for (i = 0; i < 2; i++) -+ { -+ if (dt[i] == vect_constant_def || dt[i] == vect_external_def) -+ outside_cost += vect_get_stmt_cost (vector_stmt); -+ } -+ -+ if (vect_print_dump_info (REPORT_COST)) -+ fprintf (vect_dump, "vect_model_promotion_demotion_cost: inside_cost = %d, " -+ "outside_cost = %d .", inside_cost, outside_cost); -+ -+ /* Set the costs in STMT_INFO. */ -+ stmt_vinfo_set_inside_of_loop_cost (stmt_info, NULL, inside_cost); -+ stmt_vinfo_set_outside_of_loop_cost (stmt_info, NULL, outside_cost); -+} -+ - /* Function vect_cost_strided_group_size - - For strided load or store, return the group_size only if it is the first -@@ -691,7 +731,7 @@ - { - /* Uses a high and low interleave operation for each needed permute. */ - inside_cost = ncopies * exact_log2(group_size) * group_size -- * vect_get_stmt_cost (vector_stmt); -+ * vect_get_stmt_cost (vec_perm); - - if (vect_print_dump_info (REPORT_COST)) - fprintf (vect_dump, "vect_model_store_cost: strided group_size = %d .", -@@ -795,7 +835,7 @@ - { - /* Uses an even and odd extract operations for each needed permute. */ - inside_cost = ncopies * exact_log2(group_size) * group_size -- * vect_get_stmt_cost (vector_stmt); -+ * vect_get_stmt_cost (vec_perm); - - if (vect_print_dump_info (REPORT_COST)) - fprintf (vect_dump, "vect_model_load_cost: strided group_size = %d .", -@@ -855,7 +895,7 @@ - case dr_explicit_realign: - { - *inside_cost += ncopies * (2 * vect_get_stmt_cost (vector_load) -- + vect_get_stmt_cost (vector_stmt)); -+ + vect_get_stmt_cost (vec_perm)); - - /* FIXME: If the misalignment remains fixed across the iterations of - the containing loop, the following cost should be added to the -@@ -863,6 +903,9 @@ - if (targetm.vectorize.builtin_mask_for_load) - *inside_cost += vect_get_stmt_cost (vector_stmt); - -+ if (vect_print_dump_info (REPORT_COST)) -+ fprintf (vect_dump, "vect_model_load_cost: explicit realign"); -+ - break; - } - case dr_explicit_realign_optimized: -@@ -886,7 +929,12 @@ - } - - *inside_cost += ncopies * (vect_get_stmt_cost (vector_load) -- + vect_get_stmt_cost (vector_stmt)); -+ + vect_get_stmt_cost (vec_perm)); -+ -+ if (vect_print_dump_info (REPORT_COST)) -+ fprintf (vect_dump, -+ "vect_model_load_cost: explicit realign optimized"); -+ - break; - } - -@@ -2919,7 +2967,7 @@ - STMT_VINFO_TYPE (stmt_info) = type_demotion_vec_info_type; - if (vect_print_dump_info (REPORT_DETAILS)) - fprintf (vect_dump, "=== vectorizable_demotion ==="); -- vect_model_simple_cost (stmt_info, ncopies, dt, NULL); -+ vect_model_promotion_demotion_cost (stmt_info, dt, multi_step_cvt); - return true; - } - -@@ -3217,7 +3265,7 @@ - STMT_VINFO_TYPE (stmt_info) = type_promotion_vec_info_type; - if (vect_print_dump_info (REPORT_DETAILS)) - fprintf (vect_dump, "=== vectorizable_promotion ==="); -- vect_model_simple_cost (stmt_info, 2*ncopies, dt, NULL); -+ vect_model_promotion_demotion_cost (stmt_info, dt, multi_step_cvt); - return true; - } - -Index: gcc/combine.c -=================================================================== ---- gcc/combine.c (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/combine.c (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -1788,6 +1788,10 @@ - if (set == 0) - return 0; - -+ /* The simplification in expand_field_assignment may call back to -+ get_last_value, so set safe guard here. */ -+ subst_low_luid = DF_INSN_LUID (insn); -+ - set = expand_field_assignment (set); - src = SET_SRC (set), dest = SET_DEST (set); - -Index: gcc/config/spu/spu.c -=================================================================== ---- gcc/config/spu/spu.c (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/config/spu/spu.c (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -6794,6 +6794,7 @@ - case scalar_to_vec: - case cond_branch_not_taken: - case vec_perm: -+ case vec_promote_demote: - return 1; - - case scalar_store: -Index: gcc/config/sparc/sparc.c -=================================================================== ---- gcc/config/sparc/sparc.c (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/config/sparc/sparc.c (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -3658,13 +3658,17 @@ - { - x = delegitimize_mem_from_attrs (x); - -- if (GET_CODE (x) == LO_SUM -- && GET_CODE (XEXP (x, 1)) == UNSPEC -- && XINT (XEXP (x, 1), 1) == UNSPEC_TLSLE) -- { -- x = XVECEXP (XEXP (x, 1), 0, 0); -- gcc_assert (GET_CODE (x) == SYMBOL_REF); -- } -+ if (GET_CODE (x) == LO_SUM && GET_CODE (XEXP (x, 1)) == UNSPEC) -+ switch (XINT (XEXP (x, 1), 1)) -+ { -+ case UNSPEC_MOVE_PIC: -+ case UNSPEC_TLSLE: -+ x = XVECEXP (XEXP (x, 1), 0, 0); -+ gcc_assert (GET_CODE (x) == SYMBOL_REF); -+ break; -+ default: -+ break; -+ } - - return x; - } -Index: gcc/config/i386/i386.c -=================================================================== ---- gcc/config/i386/i386.c (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/config/i386/i386.c (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -32823,7 +32823,8 @@ - return ix86_cost->cond_not_taken_branch_cost; - - case vec_perm: -- return 1; -+ case vec_promote_demote: -+ return ix86_cost->vec_stmt_cost; - - default: - gcc_unreachable (); -Index: gcc/config/rs6000/vector.md -=================================================================== ---- gcc/config/rs6000/vector.md (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/config/rs6000/vector.md (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -448,6 +448,94 @@ - "VECTOR_UNIT_ALTIVEC_P (mode)" - "") - -+(define_insn_and_split "*vector_uneq" -+ [(set (match_operand:VEC_F 0 "vfloat_operand" "") -+ (uneq:VEC_F (match_operand:VEC_F 1 "vfloat_operand" "") -+ (match_operand:VEC_F 2 "vfloat_operand" "")))] -+ "VECTOR_UNIT_ALTIVEC_OR_VSX_P (mode)" -+ "#" -+ "" -+ [(set (match_dup 3) -+ (gt:VEC_F (match_dup 1) -+ (match_dup 2))) -+ (set (match_dup 4) -+ (gt:VEC_F (match_dup 2) -+ (match_dup 1))) -+ (set (match_dup 0) -+ (not:VEC_F (ior:VEC_F (match_dup 3) -+ (match_dup 4))))] -+ " -+{ -+ operands[3] = gen_reg_rtx (mode); -+ operands[4] = gen_reg_rtx (mode); -+}") -+ -+(define_insn_and_split "*vector_ltgt" -+ [(set (match_operand:VEC_F 0 "vfloat_operand" "") -+ (ltgt:VEC_F (match_operand:VEC_F 1 "vfloat_operand" "") -+ (match_operand:VEC_F 2 "vfloat_operand" "")))] -+ "VECTOR_UNIT_ALTIVEC_OR_VSX_P (mode)" -+ "#" -+ "" -+ [(set (match_dup 3) -+ (gt:VEC_F (match_dup 1) -+ (match_dup 2))) -+ (set (match_dup 4) -+ (gt:VEC_F (match_dup 2) -+ (match_dup 1))) -+ (set (match_dup 0) -+ (ior:VEC_F (match_dup 3) -+ (match_dup 4)))] -+ " -+{ -+ operands[3] = gen_reg_rtx (mode); -+ operands[4] = gen_reg_rtx (mode); -+}") -+ -+(define_insn_and_split "*vector_ordered" -+ [(set (match_operand:VEC_F 0 "vfloat_operand" "") -+ (ordered:VEC_F (match_operand:VEC_F 1 "vfloat_operand" "") -+ (match_operand:VEC_F 2 "vfloat_operand" "")))] -+ "VECTOR_UNIT_ALTIVEC_OR_VSX_P (mode)" -+ "#" -+ "" -+ [(set (match_dup 3) -+ (ge:VEC_F (match_dup 1) -+ (match_dup 2))) -+ (set (match_dup 4) -+ (ge:VEC_F (match_dup 2) -+ (match_dup 1))) -+ (set (match_dup 0) -+ (ior:VEC_F (match_dup 3) -+ (match_dup 4)))] -+ " -+{ -+ operands[3] = gen_reg_rtx (mode); -+ operands[4] = gen_reg_rtx (mode); -+}") -+ -+(define_insn_and_split "*vector_unordered" -+ [(set (match_operand:VEC_F 0 "vfloat_operand" "") -+ (unordered:VEC_F (match_operand:VEC_F 1 "vfloat_operand" "") -+ (match_operand:VEC_F 2 "vfloat_operand" "")))] -+ "VECTOR_UNIT_ALTIVEC_OR_VSX_P (mode)" -+ "#" -+ "" -+ [(set (match_dup 3) -+ (ge:VEC_F (match_dup 1) -+ (match_dup 2))) -+ (set (match_dup 4) -+ (ge:VEC_F (match_dup 2) -+ (match_dup 1))) -+ (set (match_dup 0) -+ (not:VEC_F (ior:VEC_F (match_dup 3) -+ (match_dup 4))))] -+ " -+{ -+ operands[3] = gen_reg_rtx (mode); -+ operands[4] = gen_reg_rtx (mode); -+}") -+ - ;; Note the arguments for __builtin_altivec_vsel are op2, op1, mask - ;; which is in the reverse order that we want - (define_expand "vector_select_" -Index: gcc/config/rs6000/rs6000.c -=================================================================== ---- gcc/config/rs6000/rs6000.c (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/config/rs6000/rs6000.c (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -3695,12 +3695,23 @@ - case vec_to_scalar: - case scalar_to_vec: - case cond_branch_not_taken: -- case vec_perm: - return 1; - - case cond_branch_taken: - return 3; - -+ case vec_perm: -+ if (TARGET_VSX) -+ return 4; -+ else -+ return 1; -+ -+ case vec_promote_demote: -+ if (TARGET_VSX) -+ return 5; -+ else -+ return 1; -+ - case unaligned_load: - if (TARGET_VSX && TARGET_ALLOW_MOVMISALIGN) - { -@@ -17229,6 +17240,10 @@ - case EQ: - case GT: - case GTU: -+ case ORDERED: -+ case UNORDERED: -+ case UNEQ: -+ case LTGT: - mask = gen_reg_rtx (mode); - emit_insn (gen_rtx_SET (VOIDmode, - mask, -Index: gcc/config/rs6000/vsx.md -=================================================================== ---- gcc/config/rs6000/vsx.md (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/config/rs6000/vsx.md (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -1006,9 +1006,9 @@ - "VECTOR_MEM_VSX_P (mode)" - { - if (INTVAL (operands[3]) == 0) -- return \"xxpermdi %x0,%x1,%x2,1\"; -+ return \"xxpermdi %x0,%x2,%x1,1\"; - else if (INTVAL (operands[3]) == 1) -- return \"xxpermdi %x0,%x2,%x1,0\"; -+ return \"xxpermdi %x0,%x1,%x2,0\"; - else - gcc_unreachable (); - } -Index: gcc/config/pa/predicates.md -=================================================================== ---- gcc/config/pa/predicates.md (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/config/pa/predicates.md (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -421,9 +421,9 @@ - (ior (match_operand 0 "register_operand") - (match_operand 0 "cint_ior_operand"))) - --;; True iff OP is a CONST_INT of the forms 0...0xxxx or --;; 0...01...1xxxx. Such values can be the left hand side x in (x << --;; r), using the zvdepi instruction. -+;; True iff OP is a CONST_INT of the forms 0...0xxxx, 0...01...1xxxx, -+;; or 1...1xxxx. Such values can be the left hand side x in (x << r), -+;; using the zvdepi instruction. - - (define_predicate "lhs_lshift_cint_operand" - (match_code "const_int") -Index: gcc/config/pa/pa.md -=================================================================== ---- gcc/config/pa/pa.md (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/config/pa/pa.md (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -6348,7 +6348,7 @@ - "" - "* - { -- int x = INTVAL (operands[1]); -+ unsigned HOST_WIDE_INT x = UINTVAL (operands[1]); - operands[2] = GEN_INT (4 + exact_log2 ((x >> 4) + 1)); - operands[1] = GEN_INT ((x & 0xf) - 0x10); - return \"{zvdepi %1,%2,%0|depwi,z %1,%%sar,%2,%0}\"; -@@ -6366,7 +6366,7 @@ - "exact_log2 (INTVAL (operands[1]) + 1) > 0" - "* - { -- int x = INTVAL (operands[1]); -+ HOST_WIDE_INT x = INTVAL (operands[1]); - operands[2] = GEN_INT (exact_log2 (x + 1)); - return \"{vdepi -1,%2,%0|depwi -1,%%sar,%2,%0}\"; - }" -@@ -6383,7 +6383,7 @@ - "INTVAL (operands[1]) == -2" - "* - { -- int x = INTVAL (operands[1]); -+ HOST_WIDE_INT x = INTVAL (operands[1]); - operands[2] = GEN_INT (exact_log2 ((~x) + 1)); - return \"{vdepi 0,%2,%0|depwi 0,%%sar,%2,%0}\"; - }" -@@ -6447,7 +6447,7 @@ - "TARGET_64BIT" - "* - { -- int x = INTVAL (operands[1]); -+ unsigned HOST_WIDE_INT x = UINTVAL (operands[1]); - operands[2] = GEN_INT (4 + exact_log2 ((x >> 4) + 1)); - operands[1] = GEN_INT ((x & 0x1f) - 0x20); - return \"depdi,z %1,%%sar,%2,%0\"; -@@ -6465,7 +6465,7 @@ - "TARGET_64BIT && exact_log2 (INTVAL (operands[1]) + 1) > 0" - "* - { -- int x = INTVAL (operands[1]); -+ HOST_WIDE_INT x = INTVAL (operands[1]); - operands[2] = GEN_INT (exact_log2 (x + 1)); - return \"depdi -1,%%sar,%2,%0\"; - }" -@@ -6482,7 +6482,7 @@ - "TARGET_64BIT && INTVAL (operands[1]) == -2" - "* - { -- int x = INTVAL (operands[1]); -+ HOST_WIDE_INT x = INTVAL (operands[1]); - operands[2] = GEN_INT (exact_log2 ((~x) + 1)); - return \"depdi 0,%%sar,%2,%0\"; - }" -@@ -6671,6 +6671,20 @@ - - ;; Unconditional and other jump instructions. - -+;; Trivial return used when no epilogue is needed. -+(define_insn "return" -+ [(return) -+ (use (reg:SI 2))] -+ "pa_can_use_return_insn ()" -+ "* -+{ -+ if (TARGET_PA_20) -+ return \"bve%* (%%r2)\"; -+ return \"bv%* %%r0(%%r2)\"; -+}" -+ [(set_attr "type" "branch") -+ (set_attr "length" "4")]) -+ - ;; This is used for most returns. - (define_insn "return_internal" - [(return) -@@ -6719,11 +6733,8 @@ - rtx x; - - /* Try to use the trivial return first. Else use the full epilogue. */ -- if (reload_completed -- && !frame_pointer_needed -- && !df_regs_ever_live_p (2) -- && (compute_frame_size (get_frame_size (), 0) ? 0 : 1)) -- x = gen_return_internal (); -+ if (pa_can_use_return_insn ()) -+ x = gen_return (); - else - { - hppa_expand_epilogue (); -Index: gcc/config/pa/pa-protos.h -=================================================================== ---- gcc/config/pa/pa-protos.h (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/config/pa/pa-protos.h (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -136,6 +136,7 @@ - extern int cint_ok_for_move (HOST_WIDE_INT); - extern void hppa_expand_prologue (void); - extern void hppa_expand_epilogue (void); -+extern bool pa_can_use_return_insn (void); - extern int ior_mask_p (unsigned HOST_WIDE_INT); - extern void compute_zdepdi_operands (unsigned HOST_WIDE_INT, - unsigned *); -Index: gcc/config/pa/pa.c -=================================================================== ---- gcc/config/pa/pa.c (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ gcc/config/pa/pa.c (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -4442,6 +4442,24 @@ - } - } - -+bool -+pa_can_use_return_insn (void) -+{ -+ if (!reload_completed) -+ return false; -+ -+ if (frame_pointer_needed) -+ return false; -+ -+ if (df_regs_ever_live_p (2)) -+ return false; -+ -+ if (crtl->profile) -+ return false; -+ -+ return compute_frame_size (get_frame_size (), 0) == 0; -+} -+ - rtx - hppa_pic_save_rtx (void) - { -@@ -4586,7 +4604,7 @@ - rtx saved_rp; - rtx ins; - -- /* Instruction stream at the normal return address for the export stub: -+ /* The instruction stream at the return address of a PA1.X export stub is: - - 0x4bc23fd1 | stub+8: ldw -18(sr0,sp),rp - 0x004010a1 | stub+12: ldsid (sr0,rp),r1 -@@ -4594,11 +4612,17 @@ - 0xe0400002 | stub+20: be,n 0(sr0,rp) - - 0xe0400002 must be specified as -532676606 so that it won't be -- rejected as an invalid immediate operand on 64-bit hosts. */ -+ rejected as an invalid immediate operand on 64-bit hosts. - -- HOST_WIDE_INT insns[4] = {0x4bc23fd1, 0x004010a1, 0x00011820, -532676606}; -- int i; -+ The instruction stream at the return address of a PA2.0 export stub is: - -+ 0x4bc23fd1 | stub+8: ldw -18(sr0,sp),rp -+ 0xe840d002 | stub+12: bve,n (rp) -+ */ -+ -+ HOST_WIDE_INT insns[4]; -+ int i, len; -+ - if (count != 0) - return NULL_RTX; - -@@ -4620,11 +4644,26 @@ - ins = copy_to_reg (gen_rtx_AND (Pmode, rp, MASK_RETURN_ADDR)); - label = gen_label_rtx (); - -+ if (TARGET_PA_20) -+ { -+ insns[0] = 0x4bc23fd1; -+ insns[1] = -398405630; -+ len = 2; -+ } -+ else -+ { -+ insns[0] = 0x4bc23fd1; -+ insns[1] = 0x004010a1; -+ insns[2] = 0x00011820; -+ insns[3] = -532676606; -+ len = 4; -+ } -+ - /* Check the instruction stream at the normal return address for the - export stub. If it is an export stub, than our return address is - really in -24[frameaddr]. */ - -- for (i = 0; i < 3; i++) -+ for (i = 0; i < len; i++) - { - rtx op0 = gen_rtx_MEM (SImode, plus_constant (ins, i * 4)); - rtx op1 = GEN_INT (insns[i]); -Index: libstdc++-v3/include/debug/safe_iterator.h -=================================================================== ---- libstdc++-v3/include/debug/safe_iterator.h (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ libstdc++-v3/include/debug/safe_iterator.h (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -1,6 +1,6 @@ - // Safe iterator implementation -*- C++ -*- - --// Copyright (C) 2003, 2004, 2005, 2006, 2009, 2010, 2011 -+// Copyright (C) 2003, 2004, 2005, 2006, 2009, 2010, 2011, 2012 - // Free Software Foundation, Inc. - // - // This file is part of the GNU ISO C++ Library. This library is free -@@ -142,7 +142,25 @@ - ._M_iterator(__x, "other")); - } - -+#ifdef __GXX_EXPERIMENTAL_CXX0X__ - /** -+ * @brief Move construction. -+ * @post __x is singular and unattached -+ */ -+ _Safe_iterator(_Safe_iterator&& __x) : _M_current() -+ { -+ _GLIBCXX_DEBUG_VERIFY(!__x._M_singular() -+ || __x._M_current == _Iterator(), -+ _M_message(__msg_init_copy_singular) -+ ._M_iterator(*this, "this") -+ ._M_iterator(__x, "other")); -+ std::swap(_M_current, __x._M_current); -+ this->_M_attach(__x._M_sequence); -+ __x._M_detach(); -+ } -+#endif -+ -+ /** - * @brief Converting constructor from a mutable iterator to a - * constant iterator. - */ -@@ -181,7 +199,28 @@ - return *this; - } - -+#ifdef __GXX_EXPERIMENTAL_CXX0X__ - /** -+ * @brief Move assignment. -+ * @post __x is singular and unattached -+ */ -+ _Safe_iterator& -+ operator=(_Safe_iterator&& __x) -+ { -+ _GLIBCXX_DEBUG_VERIFY(!__x._M_singular() -+ || __x._M_current == _Iterator(), -+ _M_message(__msg_copy_singular) -+ ._M_iterator(*this, "this") -+ ._M_iterator(__x, "other")); -+ _M_current = __x._M_current; -+ _M_attach(__x._M_sequence); -+ __x._M_detach(); -+ __x._M_current = _Iterator(); -+ return *this; -+ } -+#endif -+ -+ /** - * @brief Iterator dereference. - * @pre iterator is dereferenceable - */ -@@ -415,7 +454,9 @@ - /// Is this iterator equal to the sequence's before_begin() iterator if - /// any? - bool _M_is_before_begin() const -- { return _BeforeBeginHelper<_Sequence>::_M_Is(base(), _M_get_sequence()); } -+ { -+ return _BeforeBeginHelper<_Sequence>::_M_Is(base(), _M_get_sequence()); -+ } - }; - - template -Index: libstdc++-v3/ChangeLog -=================================================================== ---- libstdc++-v3/ChangeLog (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ libstdc++-v3/ChangeLog (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -1,3 +1,10 @@ -+2012-03-08 Jonathan Wakely -+ -+ PR libstdc++/52433 -+ * include/debug/safe_iterator.h (_Safe_iterator): Add move -+ constructor and move assignment operator. -+ * testsuite/23_containers/vector/debug/52433.cc: New. -+ - 2012-03-01 Release Manager - - * GCC 4.6.3 released. -Index: libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc -=================================================================== ---- libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc (.../tags/gcc_4_6_3_release) (wersja 0) -+++ libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -0,0 +1,43 @@ -+// Copyright (C) 2012 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 3, or (at your option) -+// any later version. -+// -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+// -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING3. If not see -+// . -+// -+// { dg-require-debug-mode "" } -+// { dg-options "-std=gnu++0x" } -+// { dg-do compile } -+ -+// PR libstdc++/52433 -+ -+#include -+ -+struct X -+{ -+ std::vector::iterator i; -+ -+ X() = default; -+ X(const X&) = default; -+ X(X&&) = default; -+ X& operator=(const X&) = default; -+ X& operator=(X&&) = default; -+}; -+ -+X test01() -+{ -+ X x; -+ x = X(); -+ return x; -+} -+ -Index: boehm-gc/configure.ac -=================================================================== ---- boehm-gc/configure.ac (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ boehm-gc/configure.ac (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -392,6 +392,7 @@ - oldLIBS="$LIBS" - LIBS="$LIBS $THREADLIBS" - AC_CHECK_FUNCS([pthread_getattr_np]) -+AC_CHECK_FUNCS([pthread_get_stackaddr_np]) - LIBS="$oldLIBS" - - # Configuration of machine-dependent code -Index: boehm-gc/include/gc_config.h.in -=================================================================== ---- boehm-gc/include/gc_config.h.in (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ boehm-gc/include/gc_config.h.in (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -87,6 +87,9 @@ - /* Define to 1 if you have the `pthread_getattr_np' function. */ - #undef HAVE_PTHREAD_GETATTR_NP - -+/* Define to 1 if you have the `pthread_get_stackaddr_np_np' function. */ -+#undef HAVE_PTHREAD_GET_STACKADDR_NP -+ - /* Define to 1 if you have the header file. */ - #undef HAVE_STDINT_H - -Index: boehm-gc/include/private/gcconfig.h -=================================================================== ---- boehm-gc/include/private/gcconfig.h (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ boehm-gc/include/private/gcconfig.h (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -1331,7 +1331,11 @@ - These aren't used when dyld support is enabled (it is by default) */ - # define DATASTART ((ptr_t) get_etext()) - # define DATAEND ((ptr_t) get_end()) --# define STACKBOTTOM ((ptr_t) 0xc0000000) -+# ifdef HAVE_PTHREAD_GET_STACKADDR_NP -+# define STACKBOTTOM (ptr_t)pthread_get_stackaddr_np(pthread_self()) -+# else -+# define STACKBOTTOM ((ptr_t) 0xc0000000) -+# endif - # define USE_MMAP - # define USE_MMAP_ANON - # define USE_ASM_PUSH_REGS -@@ -2011,7 +2015,11 @@ - These aren't used when dyld support is enabled (it is by default) */ - # define DATASTART ((ptr_t) get_etext()) - # define DATAEND ((ptr_t) get_end()) --# define STACKBOTTOM ((ptr_t) 0x7fff5fc00000) -+# ifdef HAVE_PTHREAD_GET_STACKADDR_NP -+# define STACKBOTTOM (ptr_t)pthread_get_stackaddr_np(pthread_self()) -+# else -+# define STACKBOTTOM ((ptr_t) 0x7fff5fc00000) -+# endif - # define USE_MMAP - # define USE_MMAP_ANON - # ifdef GC_DARWIN_THREADS -Index: boehm-gc/ChangeLog -=================================================================== ---- boehm-gc/ChangeLog (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ boehm-gc/ChangeLog (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -1,3 +1,17 @@ -+2012-03-02 Jack Howarth -+ -+ Backport from mainline -+ 2012-02-23 Patrick Marlier -+ Jack Howarth -+ -+ PR boehm-gc/52179 -+ * include/gc_config.h.in: Undefine HAVE_PTHREAD_GET_STACKADDR_NP. -+ * include/private/gcconfig.h (DARWIN): Define STACKBOTTOM with -+ pthread_get_stackaddr_np when available. -+ * configure.ac (THREADS): Check availability of -+ pthread_get_stackaddr_np. -+ * configure: Regenerate. -+ - 2012-03-01 Release Manager - - * GCC 4.6.3 released. -Index: boehm-gc/configure -=================================================================== ---- boehm-gc/configure (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ boehm-gc/configure (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -15246,6 +15246,17 @@ - fi - done - -+for ac_func in pthread_get_stackaddr_np -+do : -+ ac_fn_c_check_func "$LINENO" "pthread_get_stackaddr_np" "ac_cv_func_pthread_get_stackaddr_np" -+if test "x$ac_cv_func_pthread_get_stackaddr_np" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_PTHREAD_GET_STACKADDR_NP 1 -+_ACEOF -+ -+fi -+done -+ - LIBS="$oldLIBS" - - # Configuration of machine-dependent code -Index: libjava/configure.ac -=================================================================== ---- libjava/configure.ac (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ libjava/configure.ac (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -886,14 +886,9 @@ - SYSTEMSPEC="-lunicows $SYSTEMSPEC" - fi - ;; -- *-*-darwin9*) -+ *-*-darwin[[912]]*) - SYSTEMSPEC="%{!Zdynamiclib:%{!Zbundle:-allow_stack_execute}}" - ;; -- *-*-darwin[[12]]*) -- # Something is incompatible with pie, would be nice to fix it and -- # remove -no_pie. PR49461 -- SYSTEMSPEC="-no_pie %{!Zdynamiclib:%{!Zbundle:-allow_stack_execute}}" -- ;; - *) - SYSTEMSPEC= - ;; -Index: libjava/ChangeLog -=================================================================== ---- libjava/ChangeLog (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ libjava/ChangeLog (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -1,3 +1,13 @@ -+2012-03-02 Jack Howarth -+ -+ Backport from mainline -+ 2012-02-23 Patrick Marlier -+ Jack Howarth -+ -+ PR target/49461 -+ * configure.ac (SYSTEMSPEC): No longer pass -no_pie for darwin11. -+ * configure: Regenerate. -+ - 2012-03-01 Release Manager - - * GCC 4.6.3 released. -Index: libjava/configure -=================================================================== ---- libjava/configure (.../tags/gcc_4_6_3_release) (wersja 185440) -+++ libjava/configure (.../branches/gcc-4_6-branch) (wersja 185440) -@@ -19775,14 +19775,9 @@ - SYSTEMSPEC="-lunicows $SYSTEMSPEC" - fi - ;; -- *-*-darwin9*) -+ *-*-darwin[912]*) - SYSTEMSPEC="%{!Zdynamiclib:%{!Zbundle:-allow_stack_execute}}" - ;; -- *-*-darwin[12]*) -- # Something is incompatible with pie, would be nice to fix it and -- # remove -no_pie. PR49461 -- SYSTEMSPEC="-no_pie %{!Zdynamiclib:%{!Zbundle:-allow_stack_execute}}" -- ;; - *) - SYSTEMSPEC= - ;; +-4.7.3 ++4.7.4 diff --git a/gcc-build-id.patch b/gcc-build-id.patch new file mode 100644 index 0000000..f76f939 --- /dev/null +++ b/gcc-build-id.patch @@ -0,0 +1,52 @@ +2007-07-22 Roland McGrath + + * config/rs6000/sysv4.h (LINK_EH_SPEC): Add --build-id for + non-relocatable link. + * config/linux.h (LINK_EH_SPEC): Likewise. + * config/alpha/elf.h (LINK_EH_SPEC): Likewise. + * config/ia64/linux.h (LINK_EH_SPEC): Likewise. + +--- gcc/config/rs6000/sysv4.h.~1~ ++++ gcc/config/rs6000/sysv4.h +@@ -906,7 +906,7 @@ extern int fixuplabelno; + %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}" + + #if defined(HAVE_LD_EH_FRAME_HDR) +-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " ++# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \ +--- gcc/config/linux.h.~1~ ++++ gcc/config/linux.h +@@ -85,7 +85,7 @@ Boston, MA 02110-1301, USA. */ + } while (0) + + #if defined(HAVE_LD_EH_FRAME_HDR) +-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " ++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + /* Define this so we can compile MS code for use with WINE. */ +--- gcc/config/alpha/elf.h.~1~ ++++ gcc/config/alpha/elf.h +@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu + I imagine that other systems will catch up. In the meantime, it + doesn't harm to make sure that the data exists to be used later. */ + #if defined(HAVE_LD_EH_FRAME_HDR) +-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " ++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + /* A C statement (sans semicolon) to output to the stdio stream STREAM +--- gcc/config/ia64/linux.h.~1~ ++++ gcc/config/ia64/linux.h +@@ -56,7 +56,7 @@ do { \ + Signalize that because we have fde-glibc, we don't need all C shared libs + linked against -lgcc_s. */ + #undef LINK_EH_SPEC +-#define LINK_EH_SPEC "" ++#define LINK_EH_SPEC "%{!r:--build-id} " + + #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h" + diff --git a/gcc-cloog.patch b/gcc-cloog.patch new file mode 100644 index 0000000..0f3f39c --- /dev/null +++ b/gcc-cloog.patch @@ -0,0 +1,26 @@ +--- gcc-4.7.1/config/cloog.m4.orig 2011-03-02 04:48:36.000000000 +0100 ++++ gcc-4.7.1/config/cloog.m4 2012-07-06 18:44:25.045888239 +0200 +@@ -207,8 +207,8 @@ + m4_define([_CLOOG_CHECK_CT_PROG],[AC_LANG_PROGRAM( + [#include "cloog/cloog.h"], + [#if CLOOG_VERSION_MAJOR != $1 \ +- || CLOOG_VERSION_MINOR != $2 \ +- || CLOOG_VERSION_REVISION < $3 ++ || CLOOG_VERSION_MINOR < $2 \ ++ || (CLOOG_VERSION_MINOR == $2 && CLOOG_VERSION_REVISION < $3) + choke me + #endif])]) + +--- gcc-4.7.1/configure.orig 2012-02-02 11:20:32.000000000 +0100 ++++ gcc-4.7.1/configure 2012-07-06 19:07:17.112497327 +0200 +@@ -5973,8 +5973,8 @@ + main () + { + #if CLOOG_VERSION_MAJOR != 0 \ +- || CLOOG_VERSION_MINOR != 16 \ +- || CLOOG_VERSION_REVISION < 1 ++ || CLOOG_VERSION_MINOR < 16 \ ++ || (CLOOG_VERSION_MINOR == 16 && CLOOG_VERSION_REVISION < 1) + choke me + #endif + ; diff --git a/gcc-extern-template-sed.patch b/gcc-extern-template-sed.patch deleted file mode 100644 index a3dee4b..0000000 --- a/gcc-extern-template-sed.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am -index 1e9b144..b099580 100644 ---- a/libstdc++-v3/include/Makefile.am -+++ b/libstdc++-v3/include/Makefile.am -@@ -1105,7 +1105,7 @@ ${host_builddir}/c++config.h: ${CONFIG_HEADER} \ - sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \ - -e "s,define _GLIBCXX_INLINE_VERSION, define _GLIBCXX_INLINE_VERSION $$ns_version," \ - -e "s,define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY, define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY $$visibility," \ -- -e "s,define _GLIBCXX_EXTERN_TEMPLATE, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \ -+ -e "s,define _GLIBCXX_EXTERN_TEMPLATE$$, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \ - -e "$$ldbl_compat" \ - < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\ - sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \ -diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in -index 19a7c0e..9344d46 100644 ---- a/libstdc++-v3/include/Makefile.in -+++ b/libstdc++-v3/include/Makefile.in -@@ -1497,7 +1497,7 @@ ${host_builddir}/c++config.h: ${CONFIG_HEADER} \ - sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \ - -e "s,define _GLIBCXX_INLINE_VERSION, define _GLIBCXX_INLINE_VERSION $$ns_version," \ - -e "s,define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY, define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY $$visibility," \ -- -e "s,define _GLIBCXX_EXTERN_TEMPLATE, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \ -+ -e "s,define _GLIBCXX_EXTERN_TEMPLATE$$, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \ - -e "$$ldbl_compat" \ - < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\ - sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \ diff --git a/gcc-nodebug.patch b/gcc-nodebug.patch index 6115833..09ca5a9 100644 --- a/gcc-nodebug.patch +++ b/gcc-nodebug.patch @@ -1,27 +1,5 @@ ---- a/Makefile.in 2006-07-02 15:31:20.000000000 +0200 -+++ b/Makefile.in 2006-07-02 20:55:33.573762250 +0200 -@@ -274,7 +274,7 @@ - - # Flags to pass to stage2 and later makes. They are defined - # here so that they can be overridden by Makefile fragments. --BOOT_CFLAGS= -g -O2 -+BOOT_CFLAGS= -O2 - BOOT_LDFLAGS= - - BISON = @BISON@ ---- a/gcc/Makefile.in 2008-02-25 15:53:34.000000000 +0100 -+++ b/gcc/Makefile.in 2008-03-03 16:42:29.000000000 +0100 -@@ -560,7 +560,7 @@ - - # Options to use when compiling libgcc2.a. - # --LIBGCC2_DEBUG_CFLAGS = -g -+LIBGCC2_DEBUG_CFLAGS = - LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) \ - $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) \ - -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED \ ---- a/gcc/ada/gcc-interface/Makefile.in 2004-09-13 12:18:40.000000000 +0200 -+++ b/gcc/ada/gcc-interface/Makefile.in 2004-09-26 11:40:30.070894416 +0200 +--- gcc-4.7.1/gcc/ada/gcc-interface/Makefile.in.orig 2012-07-10 17:33:42.146462985 +0200 ++++ gcc-4.7.1/gcc/ada/gcc-interface/Makefile.in 2012-07-12 18:27:21.682409479 +0200 @@ -66,7 +66,7 @@ # CFLAGS is for the user to override to, e.g., do a bootstrap with -O2. # BOOT_CFLAGS is the value of CFLAGS to pass @@ -31,61 +9,111 @@ BOOT_CFLAGS = -O $(CFLAGS) # These exists to be overridden by the t-* files, respectively. T_CFLAGS = -@@ -102,9 +102,9 @@ +@@ -105,11 +105,11 @@ + GNATBIND_FLAGS = -static -x ADA_CFLAGS = ADAFLAGS = -W -Wall -gnatpg -gnata - SOME_ADAFLAGS =-gnata -FORCE_DEBUG_ADAFLAGS = -g +FORCE_DEBUG_ADAFLAGS = - GNATLIBFLAGS = -gnatpg -nostdinc + NO_SIBLING_ADAFLAGS = -fno-optimize-sibling-calls + NO_REORDER_ADAFLAGS = -fno-toplevel-reorder + GNATLIBFLAGS = -W -Wall -gnatpg -nostdinc -GNATLIBCFLAGS = -g -O2 +GNATLIBCFLAGS = -O2 + PICFLAG_FOR_TARGET = @PICFLAG_FOR_TARGET@ + # Pretend that _Unwind_GetIPInfo is available for the target by default. This - # should be autodetected during the configuration of libada and passed down to - # here, but we need something for --disable-libada and hope for the best. ---- a/libada/Makefile.in 2005-11-04 13:49:08.000000000 +0000 -+++ b/libada/Makefile.in 2005-11-24 23:52:14.739531296 +0000 -@@ -49,13 +49,13 @@ - LDFLAGS= - - # The tedious process of getting CFLAGS right. --CFLAGS=-g -+CFLAGS= - LOOSE_WARN = -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes - GCC_WARN_CFLAGS = $(LOOSE_WARN) - WARN_CFLAGS = @warn_cflags@ - - TARGET_LIBGCC2_CFLAGS= +@@ -2755,7 +2755,7 @@ + cd $(RTSDIR) && \ + ../../gnatsym -s SYMVEC_$$$$.opt \ + $(LIBGNAT_OBJS) $(GNATRTL_NONTASKING_OBJS) && \ +- ../../xgcc -g -B../../ -shared -shared-libgcc \ ++ ../../xgcc -B../../ -shared -shared-libgcc \ + -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) libgnat.a \ + sys\$$library:trace.exe \ + --for-linker=/noinform \ +@@ -2764,7 +2764,7 @@ + cd $(RTSDIR) && \ + ../../gnatsym -s SYMVEC_$$$$.opt \ + $(GNATRTL_TASKING_OBJS) && \ +- ../../xgcc -g -B../../ -shared -shared-libgcc \ ++ ../../xgcc -B../../ -shared -shared-libgcc \ + -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ + libgnarl.a libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ + sys\$$library:trace.exe \ +--- gcc-4.7.1/libada/Makefile.in.orig 2012-06-12 17:12:37.000000000 +0200 ++++ gcc-4.7.1/libada/Makefile.in 2012-07-12 18:27:53.482408144 +0200 +@@ -53,7 +53,7 @@ + CFLAGS=-g + PICFLAG = @PICFLAG@ + GNATLIBFLAGS= -W -Wall -gnatpg -nostdinc -GNATLIBCFLAGS= -g -O2 +GNATLIBCFLAGS= -O2 - GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \ - -DIN_RTS @have_getipinfo@ + GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) \ + -fexceptions -DIN_RTS @have_getipinfo@ ---- a/libffi/Makefile.in 2004-08-30 17:42:59.000000000 +0200 -+++ b/libffi/Makefile.in 2004-09-26 11:44:10.789340112 +0200 -@@ -453,7 +453,7 @@ - $(am__append_21) $(am__append_22) +--- gcc-4.7.1/libffi/Makefile.am.orig 2012-02-27 11:00:12.000000000 +0100 ++++ gcc-4.7.1/libffi/Makefile.am 2012-07-12 18:28:20.115740360 +0200 +@@ -168,7 +168,7 @@ libffi_convenience_la_SOURCES = $(libffi_la_SOURCES) nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES) + -AM_CFLAGS = -Wall -g -fexceptions +AM_CFLAGS = -Wall -fexceptions + LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) - libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) - AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src ---- a/libffi/Makefile.am 2008-05-09 12:10:53.000000000 +0200 -+++ b/libffi/Makefile.am 2008-11-28 02:02:01.690063811 +0100 -@@ -154,7 +154,7 @@ + +--- gcc-4.7.1/libffi/Makefile.in.orig 2012-06-14 10:48:08.000000000 +0200 ++++ gcc-4.7.1/libffi/Makefile.in 2012-07-12 18:28:35.029073067 +0200 +@@ -475,7 +475,7 @@ + $(am__append_24) $(am__append_25) libffi_convenience_la_SOURCES = $(libffi_la_SOURCES) nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES) - -AM_CFLAGS = -Wall -g -fexceptions +AM_CFLAGS = -Wall -fexceptions - LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) + libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS) + AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src +--- gcc-4.7.1/libgcc/Makefile.in.orig 2012-05-24 16:59:38.000000000 +0200 ++++ gcc-4.7.1/libgcc/Makefile.in 2012-07-12 18:28:59.042405393 +0200 +@@ -221,7 +221,7 @@ ---- a/libjava/Makefile.am 2004-09-10 10:22:58.000000000 +0200 -+++ b/libjava/Makefile.am 2004-09-26 11:46:24.041082768 +0200 -@@ -179,7 +179,7 @@ + # Options to use when compiling libgcc2.a. + # +-LIBGCC2_DEBUG_CFLAGS = -g ++LIBGCC2_DEBUG_CFLAGS = + LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \ + $(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \ + -fbuilding-libgcc -fno-stack-protector \ +--- gcc-4.7.1/libjava/classpath/tools/Makefile.am.orig 2011-09-29 13:37:47.000000000 +0200 ++++ gcc-4.7.1/libjava/classpath/tools/Makefile.am 2012-07-12 18:29:33.452403949 +0200 +@@ -355,8 +355,8 @@ + if JAVA_MAINTAINER_MODE + ## Compile ASM separately as it is latin-1 encoded. + AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \ +- $$AC -g -w -d $(srcdir)/asm @asm.lst +- $(JCOMPILER) $(USE_JAVAC_FLAGS) -g -d $(srcdir)/classes @classes.lst @vm-tools.lst ++ $$AC -w -d $(srcdir)/asm @asm.lst ++ $(JCOMPILER) $(USE_JAVAC_FLAGS) -d $(srcdir)/classes @classes.lst @vm-tools.lst + endif + ## END GCJ LOCAL + ## Copy over tools resource files. +--- gcc-4.7.1/libjava/classpath/tools/Makefile.in.orig 2011-09-29 13:37:47.000000000 +0200 ++++ gcc-4.7.1/libjava/classpath/tools/Makefile.in 2012-07-12 18:29:52.035736502 +0200 +@@ -1413,8 +1413,8 @@ + fi + cat classes.lst asm.lst vm-tools.lst > all-classes.lst + @JAVA_MAINTAINER_MODE_TRUE@ AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \ +-@JAVA_MAINTAINER_MODE_TRUE@ $$AC -g -w -d $(srcdir)/asm @asm.lst +-@JAVA_MAINTAINER_MODE_TRUE@ $(JCOMPILER) $(USE_JAVAC_FLAGS) -g -d $(srcdir)/classes @classes.lst @vm-tools.lst ++@JAVA_MAINTAINER_MODE_TRUE@ $$AC -w -d $(srcdir)/asm @asm.lst ++@JAVA_MAINTAINER_MODE_TRUE@ $(JCOMPILER) $(USE_JAVAC_FLAGS) -d $(srcdir)/classes @classes.lst @vm-tools.lst + @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \ + sun/rmi/rmic $(GJDOC_EX) -name \*.properties -print -o -name \*.jav -print`; \ + for p in $$list; do \ +--- gcc-4.7.1/libjava/Makefile.am.orig 2011-08-05 16:37:48.000000000 +0200 ++++ gcc-4.7.1/libjava/Makefile.am 2012-07-12 18:30:07.649069180 +0200 +@@ -399,7 +399,7 @@ ## Extra CFLAGS used for JNI C sources shared with GNU Classpath. PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long @@ -94,14 +122,124 @@ JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS) LIBFFIINCS = @LIBFFIINCS@ ---- a/libjava/Makefile.in 2004-09-19 19:47:04.000000000 +0200 -+++ b/libjava/Makefile.in 2004-09-26 11:47:02.431246576 +0200 -@@ -4167,7 +4167,7 @@ - @USING_GCC_FALSE@AM_CFLAGS = @LIBGCJ_CFLAGS@ - @USING_GCC_TRUE@AM_CFLAGS = @LIBGCJ_CFLAGS@ $(WARNINGS) +--- gcc-4.7.1/libjava/Makefile.in.orig 2012-06-14 10:48:08.000000000 +0200 ++++ gcc-4.7.1/libjava/Makefile.in 2012-07-12 18:30:20.642401968 +0200 +@@ -1032,7 +1032,7 @@ + @BUILD_LIBGCJ_REDUCED_REFLECTION_FALSE@LIBGCJ_REDUCED_REFLECTION_FLAGS = + @BUILD_LIBGCJ_REDUCED_REFLECTION_TRUE@LIBGCJ_REDUCED_REFLECTION_FLAGS = -freduced-reflection PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long -JCFLAGS = -g +JCFLAGS = JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS) - AM_CPPFLAGS = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include \ - $(GCINCS) $(THREADINCS) $(INCLTDL) \ + AM_CPPFLAGS = -I$(top_srcdir) \ + -Iinclude -I$(top_srcdir)/include \ +--- gcc-4.7.1/libjava/testsuite/Makefile.am.orig 2010-05-04 00:37:50.000000000 +0200 ++++ gcc-4.7.1/libjava/testsuite/Makefile.am 2012-07-12 18:30:54.965733863 +0200 +@@ -83,11 +83,11 @@ + testtmpdir=`echo $$test | sed -e 's,/,_,g'`T; \ + rm -rf $$testtmpdir; $(mkdir_p) $$testtmpdir; \ + if test -n "$$testdep"; then \ +- $(GCJ) -C -g -w --encoding=UTF-8 -bootclasspath \ ++ $(GCJ) -C -w --encoding=UTF-8 -bootclasspath \ + $(top_builddir)/libgcj-$(gcc_version).jar::$$testtmpdir \ + -d $$testtmpdir $(srcdir)/$$testdep || exit; \ + fi; \ +- $(GCJ) -C -g -w --encoding=UTF-8 -bootclasspath \ ++ $(GCJ) -C -w --encoding=UTF-8 -bootclasspath \ + $(top_builddir)/libgcj-$(gcc_version).jar:$$testtmpdir \ + -d $$testtmpdir $(srcdir)/$$test || exit; \ + case "$$test" in \ +--- gcc-4.7.1/libjava/testsuite/Makefile.in.orig 2012-05-21 20:14:01.000000000 +0200 ++++ gcc-4.7.1/libjava/testsuite/Makefile.in 2012-07-12 18:31:09.359066590 +0200 +@@ -569,11 +569,11 @@ + @JAVA_MAINTAINER_MODE_TRUE@ testtmpdir=`echo $$test | sed -e 's,/,_,g'`T; \ + @JAVA_MAINTAINER_MODE_TRUE@ rm -rf $$testtmpdir; $(mkdir_p) $$testtmpdir; \ + @JAVA_MAINTAINER_MODE_TRUE@ if test -n "$$testdep"; then \ +-@JAVA_MAINTAINER_MODE_TRUE@ $(GCJ) -C -g -w --encoding=UTF-8 -bootclasspath \ ++@JAVA_MAINTAINER_MODE_TRUE@ $(GCJ) -C -w --encoding=UTF-8 -bootclasspath \ + @JAVA_MAINTAINER_MODE_TRUE@ $(top_builddir)/libgcj-$(gcc_version).jar::$$testtmpdir \ + @JAVA_MAINTAINER_MODE_TRUE@ -d $$testtmpdir $(srcdir)/$$testdep || exit; \ + @JAVA_MAINTAINER_MODE_TRUE@ fi; \ +-@JAVA_MAINTAINER_MODE_TRUE@ $(GCJ) -C -g -w --encoding=UTF-8 -bootclasspath \ ++@JAVA_MAINTAINER_MODE_TRUE@ $(GCJ) -C -w --encoding=UTF-8 -bootclasspath \ + @JAVA_MAINTAINER_MODE_TRUE@ $(top_builddir)/libgcj-$(gcc_version).jar:$$testtmpdir \ + @JAVA_MAINTAINER_MODE_TRUE@ -d $$testtmpdir $(srcdir)/$$test || exit; \ + @JAVA_MAINTAINER_MODE_TRUE@ case "$$test" in \ +--- gcc-4.7.1/libstdc++-v3/include/Makefile.am.orig 2012-03-23 12:00:54.000000000 +0100 ++++ gcc-4.7.1/libstdc++-v3/include/Makefile.am 2012-07-12 18:31:29.102399096 +0200 +@@ -1154,22 +1154,22 @@ + # Build two precompiled C++ includes, stdc++.h.gch/*.gch + ${pch1a_output}: ${allstamped} ${host_builddir}/c++config.h ${pch1_source} + -mkdir -p ${pch1_output_builddir} +- $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g -std=gnu++0x ${pch1_source} \ ++ $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -std=gnu++0x ${pch1_source} \ + -o $@ + + ${pch1b_output}: ${allstamped} ${host_builddir}/c++config.h ${pch1_source} + -mkdir -p ${pch1_output_builddir} +- $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch1_source} -o $@ ++ $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 ${pch1_source} -o $@ + + # Build a precompiled TR1 include, stdtr1c++.h.gch/O2.gch + ${pch2_output}: ${pch2_source} ${pch1_output} + -mkdir -p ${pch2_output_builddir} +- $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch2_source} -o $@ ++ $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 ${pch2_source} -o $@ + + # Build a precompiled extension include, extc++.h.gch/O2.gch + ${pch3_output}: ${pch3_source} ${pch2_output} + -mkdir -p ${pch3_output_builddir} +- $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch3_source} -o $@ ++ $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 ${pch3_source} -o $@ + + # For robustness sake (in light of junk files or in-source + # configuration), copy from the build or source tree to the install +--- gcc-4.7.1/libstdc++-v3/include/Makefile.in.orig 2012-03-23 12:00:54.000000000 +0100 ++++ gcc-4.7.1/libstdc++-v3/include/Makefile.in 2012-07-12 18:31:43.922398474 +0200 +@@ -1543,22 +1543,22 @@ + # Build two precompiled C++ includes, stdc++.h.gch/*.gch + ${pch1a_output}: ${allstamped} ${host_builddir}/c++config.h ${pch1_source} + -mkdir -p ${pch1_output_builddir} +- $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g -std=gnu++0x ${pch1_source} \ ++ $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -std=gnu++0x ${pch1_source} \ + -o $@ + + ${pch1b_output}: ${allstamped} ${host_builddir}/c++config.h ${pch1_source} + -mkdir -p ${pch1_output_builddir} +- $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch1_source} -o $@ ++ $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 ${pch1_source} -o $@ + + # Build a precompiled TR1 include, stdtr1c++.h.gch/O2.gch + ${pch2_output}: ${pch2_source} ${pch1_output} + -mkdir -p ${pch2_output_builddir} +- $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch2_source} -o $@ ++ $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 ${pch2_source} -o $@ + + # Build a precompiled extension include, extc++.h.gch/O2.gch + ${pch3_output}: ${pch3_source} ${pch2_output} + -mkdir -p ${pch3_output_builddir} +- $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch3_source} -o $@ ++ $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 ${pch3_source} -o $@ + + # For robustness sake (in light of junk files or in-source + # configuration), copy from the build or source tree to the install +--- gcc-4.7.1/Makefile.in.orig 2012-05-16 17:54:24.000000000 +0200 ++++ gcc-4.7.1/Makefile.in 2012-07-12 18:32:07.075730835 +0200 +@@ -364,7 +364,7 @@ + + # Flags to pass to stage2 and later makes. They are defined + # here so that they can be overridden by Makefile fragments. +-BOOT_CFLAGS= -g -O2 ++BOOT_CFLAGS= -O2 + BOOT_LDFLAGS= + BOOT_ADAFLAGS=-gnatpg -gnata + +@@ -574,7 +574,7 @@ + LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) + LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates + LDFLAGS_FOR_TARGET = @LDFLAGS_FOR_TARGET@ +-GOCFLAGS_FOR_TARGET = -O2 -g ++GOCFLAGS_FOR_TARGET = -O2 + + FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@ + SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@ diff --git a/gcc-plugin-decl-hook.patch b/gcc-plugin-decl-hook.patch deleted file mode 100644 index 65b3e3f..0000000 --- a/gcc-plugin-decl-hook.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff --git a/gcc/c-decl.c b/gcc/c-decl.c -index b438b06..c3738b9 100644 ---- a/gcc/c-decl.c -+++ b/gcc/c-decl.c -@@ -4480,6 +4480,8 @@ finish_decl (tree decl, location_t init_loc, tree init, - && C_TYPE_FIELDS_READONLY (type)) - diagnose_uninitialized_cst_member (decl, type); - } -+ -+ invoke_plugin_callbacks(PLUGIN_FINISH_DECL, decl); - } - - /* Given a parsed parameter declaration, decode it into a PARM_DECL. */ -diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c -index 6a13cc4..9752cf4 100644 ---- a/gcc/cp/decl.c -+++ b/gcc/cp/decl.c -@@ -6147,6 +6147,8 @@ cp_finish_decl (tree decl, tree init, bool init_const_expr_p, - - if (was_readonly) - TREE_READONLY (decl) = 1; -+ -+ invoke_plugin_callbacks(PLUGIN_FINISH_DECL, decl); - } - - /* Returns a declaration for a VAR_DECL as if: -diff --git a/gcc/doc/plugins.texi b/gcc/doc/plugins.texi -index 767cee8..d989ddd 100644 ---- a/gcc/doc/plugins.texi -+++ b/gcc/doc/plugins.texi -@@ -153,6 +153,7 @@ enum plugin_event - PLUGIN_FINISH_TYPE, /* After finishing parsing a type. */ - PLUGIN_FINISH_UNIT, /* Useful for summary processing. */ - PLUGIN_PRE_GENERICIZE, /* Allows to see low level AST in C and C++ frontends. */ -+ PLUGIN_FINISH_DECL, /* Allows to see all declarations in C and C++ frontends. */ - PLUGIN_FINISH, /* Called before GCC exits. */ - PLUGIN_INFO, /* Information about the plugin. */ - PLUGIN_GGC_START, /* Called at start of GCC Garbage Collection. */ -diff --git a/gcc/plugin.c b/gcc/plugin.c -index c93daed..f65e54a 100644 ---- a/gcc/plugin.c -+++ b/gcc/plugin.c -@@ -423,6 +423,7 @@ register_callback (const char *plugin_name, - case PLUGIN_START_UNIT: - case PLUGIN_FINISH_UNIT: - case PLUGIN_PRE_GENERICIZE: -+ case PLUGIN_FINISH_DECL: - case PLUGIN_GGC_START: - case PLUGIN_GGC_MARKING: - case PLUGIN_GGC_END: -@@ -499,6 +500,7 @@ invoke_plugin_callbacks_full (int event, void *gcc_data) - case PLUGIN_START_UNIT: - case PLUGIN_FINISH_UNIT: - case PLUGIN_PRE_GENERICIZE: -+ case PLUGIN_FINISH_DECL: - case PLUGIN_ATTRIBUTES: - case PLUGIN_PRAGMAS: - case PLUGIN_FINISH: -diff --git a/gcc/plugin.def b/gcc/plugin.def -index 4a40c2c..4f8ad08 100644 ---- a/gcc/plugin.def -+++ b/gcc/plugin.def -@@ -30,6 +30,9 @@ DEFEVENT (PLUGIN_FINISH_UNIT) - /* Allows to see low level AST in C and C++ frontends. */ - DEFEVENT (PLUGIN_PRE_GENERICIZE) - -+/* Allows to see all declarations in C and C++ frontends. */ -+DEFEVENT (PLUGIN_FINISH_DECL) -+ - /* Called before GCC exits. */ - DEFEVENT (PLUGIN_FINISH) - diff --git a/gcc.spec b/gcc.spec index 10044ea..1ccceb1 100644 --- a/gcc.spec +++ b/gcc.spec @@ -16,10 +16,12 @@ %bcond_without objc # build without Objective-C support %bcond_without objcxx # build without Objective-C++ support # - features: +%bcond_with cloogpplleg # use cloog-ppl-legacy (0.15.x) backend (instead of cloog-isl) +%bcond_with cloogppl # use cloog-ppl 0.16.1 backend (instead of cloog-isl) %bcond_without gomp # build without OpenMP support %bcond_without mudflap # build without Mudflap pointer debugging support %bcond_without multilib # build without multilib support (it needs glibc[32&64]-devel) -%bcond_with profiling # build with profiling +%bcond_without profiling # build without profiling %bcond_without python # build without libstdc++ printers for gdb and aot-compile for java # - libgcj options: %bcond_without alsa # don't build libgcj ALSA MIDI interface @@ -32,6 +34,13 @@ # - other: %bcond_without bootstrap # omit 3-stage bootstrap %bcond_with tests # torture gcc +%bcond_with symvers # enable versioned symbols in libstdc++ (WARNING: changes soname from .so.6 to so.7) + +%if %{with symvers} +%define cxx_sover 7 +%else +%define cxx_sover 6 +%endif %if %{without cxx} %undefine with_go @@ -56,17 +65,22 @@ %undefine with_multilib %endif -%ifarch i386 i486 i586 -# __i686.get_pc_thunk.bx undefined in libgo (TODO: recheck on gcc updates) -%undefine with_go +%if %{with cloogppl} +%define cloog_backend ppl +%else +%if %{with cloogpplleg} +%define cloog_backend ppl-legacy +%else +%define cloog_backend isl +%endif %endif -%define major_ver 4.6 +%define major_ver 4.7 %define minor_ver 3 %define major_ecj_ver 4.5 # class data version seen with file(1) that this jvm is able to load %define _classdataversion 50.0 -%define gcj_soname_ver 12 +%define gcj_soname_ver 13 Summary: GNU Compiler Collection: the C compiler and shared files Summary(es.UTF-8): Colección de compiladores GNU: el compilador C y ficheros compartidos @@ -74,28 +88,27 @@ Summary(pl.UTF-8): Kolekcja kompilatorów GNU: kompilator C i pliki współdziel Summary(pt_BR.UTF-8): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados Name: gcc Version: %{major_ver}.%{minor_ver} -Release: 5 +Release: 1 Epoch: 6 License: GPL v3+ Group: Development/Languages Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2 -# Source0-md5: 773092fe5194353b02bb0110052a972e +# Source0-md5: 86f428a30379bdee0224e353ee2f999e Source1: %{name}-optimize-la.pl Source2: ftp://sourceware.org/pub/java/ecj-%{major_ecj_ver}.jar # Source2-md5: d7cd6a27c8801e66cbaa964a039ecfdb # check libffi version with libffi/configure.ac Source3: libffi.pc.in -# svn diff -x --ignore-eol-style svn://gcc.gnu.org/svn/gcc/tags/gcc_4_6_3_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch > gcc-branch.diff +# svn diff -x --ignore-eol-style --force svn://gcc.gnu.org/svn/gcc/tags/gcc_4_7_3_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch > gcc-branch.diff Patch100: %{name}-branch.diff +# Patch100-md5: ed71b602ecff35de8f4678e27dd9c2ef Patch0: %{name}-info.patch +Patch1: %{name}-cloog.patch Patch2: %{name}-nodebug.patch Patch3: %{name}-ada-link.patch Patch7: %{name}-libjava-multilib.patch Patch8: %{name}-enable-java-awt-qt.patch -# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41757 -Patch12: %{name}-plugin-decl-hook.patch Patch13: issue4664051.patch -Patch14: %{name}-extern-template-sed.patch URL: http://gcc.gnu.org/ BuildRequires: autoconf >= 2.64 %{?with_tests:BuildRequires: autogen} @@ -104,7 +117,16 @@ BuildRequires: automake >= 1:1.9.3 BuildRequires: binutils >= 3:2.17.50.0.9-1 BuildRequires: bison BuildRequires: chrpath >= 0.13-2 -BuildRequires: cloog-ppl-devel +%if %{with cloogppl} +BuildRequires: cloog-ppl-devel >= 0.16.1 +%else +%if %{with cloogpplleg} +BuildRequires: cloog-ppl-devel >= 0.15.9 +BuildRequires: cloog-ppl-devel < 0.16 +%else +BuildRequires: cloog-isl-devel >= 0.16.1 +%endif +%endif %{?with_tests:BuildRequires: dejagnu} BuildRequires: elfutils-devel >= 0.145-1 BuildRequires: fileutils >= 4.0.41 @@ -118,13 +140,14 @@ BuildRequires: glibc-devel >= 6:2.4-1 %if %{with multilib} BuildRequires: gcc(multilib) %ifarch %{x8664} -BuildRequires: glibc-devel(i686) +BuildRequires: glibc-devel(ix86) %endif %endif BuildRequires: gmp-devel >= 4.1 +BuildRequires: gmp-c++-devel >= 4.1 BuildRequires: libmpc-devel BuildRequires: mpfr-devel >= 2.3.0 -BuildRequires: ppl-devel +BuildRequires: ppl-devel >= 0.11 %if %{with python} BuildRequires: python-devel BuildRequires: rpm-pythonprov @@ -188,7 +211,11 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define filterout -fwrapv -fno-strict-aliasing -fsigned-char %define filterout_ld -Wl,--as-needed -%define skip_post_check_so '.*(libmudflap|libmudflapth|libxmlj|lib-gnu-awt-xlib)\.so.*' +# functions with printf format attribute but with special parser and also +# receiving non constant format strings +%define Werror_cflags %{nil} + +%define skip_post_check_so '.*(libgo|libmudflap|libmudflapth|libxmlj|lib-gnu-awt-xlib)\.so.*' %description A compiler aimed at integrating all the optimizations and features @@ -230,7 +257,7 @@ Requires: libgcc-multilib = %{epoch}:%{version}-%{release} %{?with_multilib:Provides: gcc(multilib)} Obsoletes: libgcc32 %ifarch %{x8664} -Requires: glibc-devel(i686) +Requires: glibc-devel(ix86) %endif %description multilib @@ -815,7 +842,7 @@ Suporte Fortran 95 para o GCC. %package fortran-multilib Summary: Fortran 95 32-bit support for gcc -Summary(pl.UTF-8): Obsługa binariów 32-bitowych Fortrana 95 dla gcc +Summary(pl.UTF-8): Obsługa binariów 32-bitowych Fortranu 95 dla gcc Group: Development/Languages/Fortran Requires: %{name}-fortran = %{epoch}:%{version}-%{release} Requires: libgfortran-multilib = %{epoch}:%{version}-%{release} @@ -832,7 +859,7 @@ kompilatora gcc. %package -n libgfortran Summary: Fortran 95 Library Summary(es.UTF-8): Biblioteca de Fortran 95 -Summary(pl.UTF-8): Biblioteka Fortrana 95 +Summary(pl.UTF-8): Biblioteka Fortranu 95 License: GPL v2+ with unlimited link permission Group: Libraries Requires: libquadmath = %{epoch}:%{version}-%{release} @@ -845,11 +872,11 @@ Fortran 95 Library. Biblioteca de Fortran 95. %description -n libgfortran -l pl.UTF-8 -Biblioteka Fortrana 95. +Biblioteka Fortranu 95. %package -n libgfortran-multilib Summary: Fortran 95 Library - 32-bit version -Summary(pl.UTF-8): Biblioteka Fortrana 95 - wersja 32-bitowa +Summary(pl.UTF-8): Biblioteka Fortranu 95 - wersja 32-bitowa License: GPL v2+ with unlimited link permission Group: Libraries Requires: libquadmath-multilib = %{epoch}:%{version}-%{release} @@ -858,12 +885,12 @@ Requires: libquadmath-multilib = %{epoch}:%{version}-%{release} Fortran 95 Library - 32-bit version. %description -n libgfortran-multilib -l pl.UTF-8 -Biblioteka Fortrana 95 - wersja 32-bitowa. +Biblioteka Fortranu 95 - wersja 32-bitowa. %package -n libgfortran-static Summary: Static Fortran 95 Library Summary(es.UTF-8): Bibliotecas estáticas de Fortran 95 -Summary(pl.UTF-8): Statyczna Biblioteka Fortrana 95 +Summary(pl.UTF-8): Statyczna Biblioteka Fortranu 95 License: GPL v2+ with unlimited link permission Group: Development/Libraries Requires: libgfortran = %{epoch}:%{version}-%{release} @@ -876,11 +903,11 @@ Static Fortran 95 Library. Bibliotecas estáticas de Fortran 95. %description -n libgfortran-static -l pl.UTF-8 -Statyczna biblioteka Fortrana 95. +Statyczna biblioteka Fortranu 95. %package -n libgfortran-multilib-static Summary: Static Fortran 95 Library - 32-bit version -Summary(pl.UTF-8): Statyczna Biblioteka Fortrana 95 - wersja 32-bitowa +Summary(pl.UTF-8): Statyczna Biblioteka Fortranu 95 - wersja 32-bitowa License: GPL v2+ with unlimited link permission Group: Development/Libraries Requires: libgfortran-multilib = %{epoch}:%{version}-%{release} @@ -889,7 +916,7 @@ Requires: libgfortran-multilib = %{epoch}:%{version}-%{release} Static Fortran 95 Library - 32-bit version. %description -n libgfortran-multilib-static -l pl.UTF-8 -Statyczna biblioteka Fortrana 95 - wersja 32-bitowa. +Statyczna biblioteka Fortranu 95 - wersja 32-bitowa. %package -n libquadmath Summary: GCC __float128 shared support library @@ -1443,16 +1470,18 @@ Statyczna biblioteka języka Go - wersja 32-bitowa. %setup -q %patch100 -p0 %patch0 -p1 +%patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 %patch7 -p0 %if %{with qt} %patch8 -p1 %endif -%patch12 -p1 +%patch10 -p1 + %patch13 -p0 -%patch14 -p1 mv ChangeLog ChangeLog.general @@ -1493,65 +1522,75 @@ TEXCONFIG=false \ --infodir=%{_infodir} \ --mandir=%{_mandir} \ --x-libraries=%{_libdir} \ + --%{?with_bootstrap:en}%{!?with_bootstrap:dis}able-bootstrap \ + --disable-build-with-cxx \ + --disable-build-poststage1-with-cxx \ + --enable-c99 \ --enable-checking=release \ +%ifarch %{ix86} %{x8664} + --disable-cld \ +%endif + --enable-cloog-backend=%{cloog_backend} \ + %{?with_fortran:--enable-cmath} \ + --enable-decimal-float \ --enable-gnu-unique-object \ - --with-linker-hash-style=gnu \ - --enable-shared \ - --enable-threads=posix \ - --enable-linker-build-id \ - --enable-linux-futex \ + --enable-initfini-array \ --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,fortran}%{?with_objc:,objc}%{?with_objcxx:,obj-c++}%{?with_ada:,ada}%{?with_java:,java}%{?with_go:,go}" \ --%{?with_gomp:en}%{!?with_gomp:dis}able-libgomp \ + --enable-libitm \ --%{?with_mudflap:en}%{!?with_mudflap:dis}able-libmudflap \ - --enable-c99 \ + --enable-linker-build-id \ + --enable-linux-futex \ --enable-long-long \ - --enable-decimal-float=yes \ %{!?with_multilib:--disable-multilib} \ --enable-nls \ - --disable-werror \ --enable-lto \ --enable-plugin \ -%ifarch %{ix86} %{x8664} - --disable-cld \ -%endif + --enable-shared \ + --enable-threads=posix \ + --disable-werror \ + --with-cloog \ + --with-demangler-in-ld \ --with-gnu-as \ --with-gnu-ld \ - --with-demangler-in-ld \ - --with-system-zlib \ + --with-linker-hash-style=gnu \ + --with-long-double-128 \ + --with-ppl \ --with-slibdir=%{_slibdir} \ %ifnarch ia64 --without-system-libunwind \ %else --with-system-libunwind \ %endif + --with-system-zlib \ %{!?with_java:--without-x} \ - %{?with_fortran:--enable-cmath} \ - --with-long-double-128 \ - --with-ppl \ - --with-cloog-ppl \ %if %{with cxx} - --with-gxx-include-dir=%{_includedir}/c++/%{version} \ - --disable-libstdcxx-pch \ --enable-__cxa_atexit \ --enable-libstdcxx-allocator=new \ + --disable-libstdcxx-pch \ + --enable-libstdcxx-threads \ + --enable-libstdcxx-time=rt \ + --enable-libstdcxx-visibility \ + --enable-symvers=gnu%{?with_symvers:-versioned-namespace} \ + --with-gxx-include-dir=%{_includedir}/c++/%{version} \ %endif %if %{with java} - --enable-libjava-multilib=no \ %{!?with_alsa:--disable-alsa} \ %{!?with_dssi:--disable-dssi} \ --disable-gconf-peer \ + %{?with_gtk:--enable-gtk-cairo} \ %if %{with x} --enable-java-awt="xlib%{?with_gtk:,gtk}%{?with_qt:,qt}" \ %endif - %{?with_mozilla:--enable-plugin} \ + --enable-jni \ --enable-libgcj \ --enable-libgcj-multifile \ --enable-libgcj-database \ - %{?with_gtk:--enable-gtk-cairo} \ - --enable-jni \ + --disable-libjava-multilib \ + %{?with_mozilla:--enable-plugin} \ + --enable-static-libjava \ --enable-xmlj \ %endif - --%{?with_bootstrap:en}%{!?with_bootstrap:dis}able-bootstrap \ --with-pkgversion="TLD-Linux" \ --with-bugurl="http://www.tld-linux.org" \ %{_target_platform} @@ -1566,7 +1605,7 @@ all $(all): %{?with_bootstrap:%{?with_profiling:profiledbootstrap}} \ GCJFLAGS="%{rpmcflags}" \ BOOT_CFLAGS="%{rpmcflags}" \ - STAGE1_CFLAGS="%{rpmcflags} -O0" \ + STAGE1_CFLAGS="%{rpmcflags} -O1 -g0" \ GNATLIBCFLAGS="%{rpmcflags}" \ LDFLAGS_FOR_TARGET="%{rpmldflags}" \ mandir=%{_mandir} \ @@ -1598,20 +1637,37 @@ cp -p gcc/specs $RPM_BUILD_ROOT%{gcclibdir} ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc -echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1 +echo ".so man1/gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1 libssp=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libssp.so.*.*.*) mv $RPM_BUILD_ROOT%{_libdir}/libssp.so.* $RPM_BUILD_ROOT%{_slibdir} ln -sf %{_slibdir}/$libssp $RPM_BUILD_ROOT%{_libdir}/libssp.so + +libitm=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libitm.so.*.*.*) +mv $RPM_BUILD_ROOT%{_libdir}/libitm.so.* $RPM_BUILD_ROOT%{_slibdir} +ln -sf %{_slibdir}/$libitm $RPM_BUILD_ROOT%{_libdir}/libitm.so + +libgomp=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libgomp.so.*.*.*) +mv $RPM_BUILD_ROOT%{_libdir}/libgomp.so.* $RPM_BUILD_ROOT%{_slibdir} +ln -sf %{_slibdir}/$libgomp $RPM_BUILD_ROOT%{_libdir}/libgomp.so + %if %{with multilib} libssp=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libssp.so.*.*.*) mv $RPM_BUILD_ROOT%{_libdir32}/libssp.so.* $RPM_BUILD_ROOT%{_slibdir32} ln -sf %{_slibdir32}/$libssp $RPM_BUILD_ROOT%{_libdir32}/libssp.so + +libitm=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libitm.so.*.*.*) +mv $RPM_BUILD_ROOT%{_libdir32}/libitm.so.* $RPM_BUILD_ROOT%{_slibdir32} +ln -sf %{_slibdir32}/$libitm $RPM_BUILD_ROOT%{_libdir32}/libitm.so + +libgomp=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libgomp.so.*.*.*) +mv $RPM_BUILD_ROOT%{_libdir32}/libgomp.so.* $RPM_BUILD_ROOT%{_slibdir32} +ln -sf %{_slibdir32}/$libgomp $RPM_BUILD_ROOT%{_libdir32}/libgomp.so %endif %if %{with fortran} ln -sf gfortran $RPM_BUILD_ROOT%{_bindir}/g95 -echo ".so gfortran.1" > $RPM_BUILD_ROOT%{_mandir}/man1/g95.1 +echo ".so man1/gfortran.1" > $RPM_BUILD_ROOT%{_mandir}/man1/g95.1 %endif %if %{with ada} @@ -1642,9 +1698,11 @@ cd .. install -d java-doc cp -f libjava/READ* java-doc ln -sf libgcj-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/libgcj.jar +%endif # still not installed by gcc? [ ! -f $RPM_BUILD_ROOT%{_pkgconfigdir}/libffi.pc ] || exit 1 +install -d $RPM_BUILD_ROOT%{_pkgconfigdir} sed -e 's,@prefix@,%{_prefix}, s,@exec_prefix@,%{_exec_prefix}, s,@libdir@,%{_libdir}, @@ -1657,7 +1715,6 @@ sed -e 's,@prefix@,%{_prefix}, s,@libdir@,%{_libdir32}, s,@gcclibdir@,%{gcclibdir},' %{SOURCE3} >$RPM_BUILD_ROOT%{_pkgconfigdir32}/libffi.pc %endif -%endif %if %{with objc} cp -f libobjc/README gcc/objc/README.libobjc @@ -1665,7 +1722,7 @@ cp -f libobjc/README gcc/objc/README.libobjc # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/%{_target_platform}/%{version} # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool -for f in libssp.la libssp_nonshared.la \ +for f in libitm.la libssp.la libssp_nonshared.la \ %{?with_cxx:libstdc++.la libsupc++.la} \ %{?with_fortran:libgfortran.la libquadmath.la} \ %{?with_gomp:libgomp.la} \ @@ -1686,7 +1743,7 @@ do mv $RPM_BUILD_ROOT%{_libdir}/$f{.fixed,} done %if %{with multilib} -for f in libssp.la libssp_nonshared.la \ +for f in libitm.la libssp.la libssp_nonshared.la \ %{?with_cxx:libstdc++.la libsupc++.la} \ %{?with_fortran:libgfortran.la libquadmath.la} \ %{?with_gomp:libgomp.la} \ @@ -1704,6 +1761,11 @@ cp -p $RPM_BUILD_ROOT%{gcclibdir}/include-fixed/syslimits.h $RPM_BUILD_ROOT%{gcc %{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/install-tools %{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/include-fixed +# plugin, .la not needed +%{__rm} $RPM_BUILD_ROOT%{gcclibdir}/liblto_plugin.la +# already packaged in binutils-devel +%{__rm} $RPM_BUILD_ROOT%{_libdir}/libiberty.a + %if %{with python} for LIB in lib lib64; do LIBPATH="$RPM_BUILD_ROOT%{_datadir}/gdb/auto-load%{_prefix}/$LIB" @@ -1718,8 +1780,8 @@ install -d $RPM_BUILD_ROOT%{py_sitescriptdir} mv $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libstdcxx $RPM_BUILD_ROOT%{py_sitescriptdir} %if %{with java} mv $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libjava $RPM_BUILD_ROOT%{py_sitescriptdir} -%endif %{__sed} -i -e '1s,#!/usr/bin/env python,#!/usr/bin/python,' $RPM_BUILD_ROOT%{_bindir}/aot-compile +%endif %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir} %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir} %py_postclean @@ -1842,6 +1904,9 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/cc %attr(755,root,root) %{_bindir}/cpp %attr(755,root,root) %{_bindir}/gcc +%attr(755,root,root) %{_bindir}/gcc-ar +%attr(755,root,root) %{_bindir}/gcc-nm +%attr(755,root,root) %{_bindir}/gcc-ranlib #%attr(755,root,root) %{_bindir}/gccbug %attr(755,root,root) %{_bindir}/gcov %{_mandir}/man1/cc.1* @@ -1853,9 +1918,14 @@ rm -rf $RPM_BUILD_ROOT %{_infodir}/gcc.info* %{_infodir}/gccinstall.info* %{_infodir}/gccint.info* +%{_infodir}/libitm.info* %attr(755,root,root) /lib/cpp %attr(755,root,root) %{_slibdir}/libgcc_s.so +%attr(755,root,root) %{_libdir}/libitm.so %attr(755,root,root) %{_libdir}/libssp.so +%{_libdir}/libitm.la +%{_libdir}/libitm.a +%{_libdir}/libitm.spec %{_libdir}/libssp.la %{_libdir}/libssp.a %{_libdir}/libssp_nonshared.la @@ -1880,28 +1950,34 @@ rm -rf $RPM_BUILD_ROOT %{gcclibdir}/include/float.h %{gcclibdir}/include/iso646.h %{gcclibdir}/include/limits.h +%{gcclibdir}/include/stdalign.h %{gcclibdir}/include/stdarg.h %{gcclibdir}/include/stdbool.h %{gcclibdir}/include/stddef.h %{gcclibdir}/include/stdfix.h %{gcclibdir}/include/stdint.h %{gcclibdir}/include/stdint-gcc.h +%{gcclibdir}/include/stdnoreturn.h %{gcclibdir}/include/syslimits.h %{gcclibdir}/include/unwind.h %{gcclibdir}/include/varargs.h %ifarch %{ix86} %{x8664} -%{gcclibdir}/include/abmintrin.h %{gcclibdir}/include/ammintrin.h %{gcclibdir}/include/avxintrin.h +%{gcclibdir}/include/avx2intrin.h %{gcclibdir}/include/bmiintrin.h +%{gcclibdir}/include/bmi2intrin.h %{gcclibdir}/include/bmmintrin.h %{gcclibdir}/include/cpuid.h %{gcclibdir}/include/cross-stdarg.h %{gcclibdir}/include/emmintrin.h +%{gcclibdir}/include/f16cintrin.h +%{gcclibdir}/include/fmaintrin.h %{gcclibdir}/include/fma4intrin.h %{gcclibdir}/include/ia32intrin.h %{gcclibdir}/include/immintrin.h %{gcclibdir}/include/lwpintrin.h +%{gcclibdir}/include/lzcntintrin.h %{gcclibdir}/include/mm3dnow.h %{gcclibdir}/include/mm_malloc.h %{gcclibdir}/include/mmintrin.h @@ -1939,7 +2015,10 @@ rm -rf $RPM_BUILD_ROOT %{gcclibdir}/32/libgcc.a %{gcclibdir}/32/libgcc_eh.a %{gcclibdir}/32/libgcov.a +%attr(755,root,root) %{_libdir32}/libitm.so %attr(755,root,root) %{_libdir32}/libssp.so +%{_libdir32}/libitm.la +%{_libdir32}/libitm.a %{_libdir32}/libssp.la %{_libdir32}/libssp.a %{_libdir32}/libssp_nonshared.la @@ -1949,28 +2028,32 @@ rm -rf $RPM_BUILD_ROOT %files -n libgcc %defattr(644,root,root,755) %attr(755,root,root) %{_slibdir}/libgcc_s.so.1 +%attr(755,root,root) %{_slibdir}/libitm.so.*.*.* %attr(755,root,root) %{_slibdir}/libssp.so.*.*.* +%attr(755,root,root) %ghost %{_slibdir}/libitm.so.1 %attr(755,root,root) %ghost %{_slibdir}/libssp.so.0 %if %{with multilib} %files -n libgcc-multilib %defattr(644,root,root,755) %attr(755,root,root) %{_slibdir32}/libgcc_s.so.1 +%attr(755,root,root) %{_slibdir32}/libitm.so.*.*.* %attr(755,root,root) %{_slibdir32}/libssp.so.*.*.* %attr(755,root,root) %ghost %{_slibdir32}/libssp.so.0 +%attr(755,root,root) %ghost %{_slibdir32}/libitm.so.1 %endif %if %{with gomp} %files -n libgomp %defattr(644,root,root,755) -%attr(755,root,root) %{_libdir}/libgomp.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libgomp.so.1 +%attr(755,root,root) %{_slibdir}/libgomp.so.*.*.* +%attr(755,root,root) %ghost %{_slibdir}/libgomp.so.1 %if %{with multilib} %files -n libgomp-multilib %defattr(644,root,root,755) -%attr(755,root,root) %{_libdir32}/libgomp.so.*.*.* -%attr(755,root,root) %ghost %{_libdir32}/libgomp.so.1 +%attr(755,root,root) %{_slibdir32}/libgomp.so.*.*.* +%attr(755,root,root) %ghost %{_slibdir32}/libgomp.so.1 %endif %files -n libgomp-devel @@ -2064,7 +2147,6 @@ rm -rf $RPM_BUILD_ROOT %{gcclibdir}/adainclude %dir %{gcclibdir}/adalib %{gcclibdir}/adalib/*.ali -%{gcclibdir}/adalib/g-trasym.o %ifarch %{ix86} %{x8664} %{gcclibdir}/adalib/libgmem.a %endif @@ -2082,7 +2164,6 @@ rm -rf $RPM_BUILD_ROOT %{gcclibdir}/32/adainclude %dir %{gcclibdir}/32/adalib %{gcclibdir}/32/adalib/*.ali -%{gcclibdir}/32/adalib/g-trasym.o %ifarch %{ix86} %{x8664} %{gcclibdir}/32/adalib/libgmem.a %endif @@ -2106,14 +2187,12 @@ rm -rf $RPM_BUILD_ROOT %files -n libgnat-static %defattr(644,root,root,755) -%{gcclibdir}/adalib/libgnala.a %{gcclibdir}/adalib/libgnarl.a %{gcclibdir}/adalib/libgnat.a %if %{with multilib} %files -n libgnat-multilib-static %defattr(644,root,root,755) -%{gcclibdir}/32/adalib/libgnala.a %{gcclibdir}/32/adalib/libgnarl.a %{gcclibdir}/32/adalib/libgnat.a %endif @@ -2143,13 +2222,13 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %doc libstdc++-v3/{ChangeLog,README} %attr(755,root,root) %{_libdir}/libstdc++.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libstdc++.so.6 +%attr(755,root,root) %ghost %{_libdir}/libstdc++.so.%{cxx_sover} %if %{with multilib} %files -n libstdc++-multilib %defattr(644,root,root,755) %attr(755,root,root) %{_libdir32}/libstdc++.so.*.*.* -%attr(755,root,root) %ghost %{_libdir32}/libstdc++.so.6 +%attr(755,root,root) %ghost %{_libdir32}/libstdc++.so.%{cxx_sover} %endif %if %{with python} @@ -2159,7 +2238,10 @@ rm -rf $RPM_BUILD_ROOT %{py_sitescriptdir}/libstdcxx/*.py[co] %dir %{py_sitescriptdir}/libstdcxx/v6 %{py_sitescriptdir}/libstdcxx/v6/*.py[co] -%{_datadir}/gdb/auto-load/usr/lib*/libstdc++.so.6.0.16-gdb.py +%{_datadir}/gdb/auto-load/usr/%{_lib}/libstdc++.so.%{cxx_sover}.*.*-gdb.py +%if %{with multilib} +%{_datadir}/gdb/auto-load/usr/lib/libstdc++.so.%{cxx_sover}.*.*-gdb.py +%endif %endif %files -n libstdc++-devel @@ -2215,6 +2297,8 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/libgfortran.so %{_libdir}/libgfortran.spec %{_libdir}/libgfortran.la +%{gcclibdir}/libcaf_single.a +%{gcclibdir}/libcaf_single.la %{gcclibdir}/libgfortranbegin.la %{gcclibdir}/libgfortranbegin.a %{_infodir}/gfortran.info* @@ -2227,6 +2311,8 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir32}/libgfortran.so %{_libdir32}/libgfortran.spec %{_libdir32}/libgfortran.la +%{gcclibdir}/32/libcaf_single.a +%{gcclibdir}/32/libcaf_single.la %{gcclibdir}/32/libgfortranbegin.la %{gcclibdir}/32/libgfortranbegin.a %endif @@ -2427,6 +2513,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libgij.a %{?with_x:%{_libdir}/lib-gnu-awt-xlib.a} %{_libdir}/%{gcjdbexecdir}/libjvm.a +%endif %files -n libffi %defattr(644,root,root,755) @@ -2467,7 +2554,6 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %{_libdir32}/libffi.a %endif -%endif %if %{with objc} %files objc @@ -2496,13 +2582,13 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %doc libobjc/{ChangeLog,README*} %attr(755,root,root) %{_libdir}/libobjc.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libobjc.so.3 +%attr(755,root,root) %ghost %{_libdir}/libobjc.so.4 %if %{with multilib} %files -n libobjc-multilib %defattr(644,root,root,755) %attr(755,root,root) %{_libdir32}/libobjc.so.*.*.* -%attr(755,root,root) %ghost %{_libdir32}/libobjc.so.3 +%attr(755,root,root) %ghost %{_libdir32}/libobjc.so.4 %endif %files -n libobjc-static diff --git a/libffi.pc.in b/libffi.pc.in index fec9786..fd3902c 100644 --- a/libffi.pc.in +++ b/libffi.pc.in @@ -5,6 +5,6 @@ includedir=@gcclibdir@/include Name: libffi Description: Library supporting Foreign Function Interfaces -Version: 3.0.9 +Version: 4.0.1 Libs: -L${libdir} -lffi Cflags: -I${includedir}