From: Bartosz Swiatek Date: Sun, 2 Oct 2011 15:28:15 +0000 (+0200) Subject: - from pld cvs @GCC_4_5, with dropped architecture: sparc, sparc64, ppc, X-Git-Url: https://git.tld-linux.org/?a=commitdiff_plain;h=7be242a0caba90b393d2cc7bfcc49c2cc217e273;p=packages%2Fgcc.git - from pld cvs @GCC_4_5, with dropped architecture: sparc, sparc64, ppc, pcc64 --- 7be242a0caba90b393d2cc7bfcc49c2cc217e273 diff --git a/gcc-ada-link.patch b/gcc-ada-link.patch new file mode 100644 index 0000000..b664972 --- /dev/null +++ b/gcc-ada-link.patch @@ -0,0 +1,66 @@ +--- 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 @@ + + #elif defined (linux) || defined(__GLIBC__) + const char *__gnat_object_file_option = ""; +-const char *__gnat_run_path_option = "-Wl,-rpath,"; ++const char *__gnat_run_path_option = ""; + char __gnat_shared_libgnat_default = STATIC; +-char __gnat_shared_libgcc_default = STATIC; +-int __gnat_link_max = 8192; ++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"; +--- 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 @@ + ada/doctools/xgnatugn$(build_exeext): ada/xgnatugn.adb + -$(MKDIR) ada/doctools + $(CP) $^ ada/doctools +- cd ada/doctools && $(GNATMAKE) -q xgnatugn ++ cd ada/doctools && $(GNATMAKE) -q xgnatugn -a0../rts + + # Note that gnat_ugn_unw.texi does not depend on xgnatugn + # being built so we can distribute a pregenerated gnat_ugn_unw.info +--- a/gcc/ada/gcc-interface/Makefile.in 2005-05-26 10:48:40.000000000 +0000 ++++ b/gcc/ada/gcc-interface/Makefile.in 2005-05-26 10:59:25.000000000 +0000 +@@ -126,7 +126,7 @@ + objext = .o + exeext = + arext = .a +-soext = .so ++soext = .so.1 + shext = + hyphen = - + +@@ -193,7 +193,7 @@ + # Link flags used to build gnat tools. By default we prefer to statically + # link with libgcc to avoid a dependency on shared libgcc (which is tricky + # to deal with as it may conflict with the libgcc provided by the system). +-GCC_LINK_FLAGS=-static-libgcc ++GCC_LINK_FLAGS= + + # End of variables for you to override. + +@@ -2489,7 +2489,8 @@ + -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ + $(GNATRTL_TASKING_OBJS) \ + $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ +- $(THREADSLIB) ++ $(THREADSLIB) \ ++ ./libgnat-$(LIBRARY_VERSION)$(soext) + cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ + libgnat$(soext) + cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ +@@ -2546,7 +2547,7 @@ + THREAD_KIND="$(THREAD_KIND)" \ + gnatlib + $(RM) $(RTSDIR)/libgna*$(soext) +- cd $(RTSDIR); ../../xgcc -B../../ -shared $(TARGET_LIBGCC2_CFLAGS) \ ++ cd $(RTSDIR); ../../xgcc -B../../ -shared -shared-libgcc $(TARGET_LIBGCC2_CFLAGS) \ + -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ + $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ + $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB) diff --git a/gcc-branch.diff b/gcc-branch.diff new file mode 100644 index 0000000..622f26d --- /dev/null +++ b/gcc-branch.diff @@ -0,0 +1,2117 @@ +Index: libgomp/fortran.c +=================================================================== +--- libgomp/fortran.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ libgomp/fortran.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc. ++/* Copyright (C) 2005, 2007, 2008, 2009, 2011 Free Software Foundation, Inc. + Contributed by Jakub Jelinek . + + This file is part of the GNU OpenMP Library (libgomp). +@@ -27,6 +27,7 @@ + #include "libgomp.h" + #include "libgomp_f.h" + #include ++#include + + #ifdef HAVE_ATTRIBUTE_ALIAS + /* Use internal aliases if possible. */ +@@ -244,6 +245,8 @@ + omp_lock_symver (omp_test_nest_lock_) + #endif + ++#define TO_INT(x) ((x) > INT_MIN ? (x) < INT_MAX ? (x) : INT_MAX : INT_MIN) ++ + void + omp_set_dynamic_ (const int32_t *set) + { +@@ -253,7 +256,7 @@ + void + omp_set_dynamic_8_ (const int64_t *set) + { +- omp_set_dynamic (*set); ++ omp_set_dynamic (!!*set); + } + + void +@@ -265,7 +268,7 @@ + void + omp_set_nested_8_ (const int64_t *set) + { +- omp_set_nested (*set); ++ omp_set_nested (!!*set); + } + + void +@@ -277,7 +280,7 @@ + void + omp_set_num_threads_8_ (const int64_t *set) + { +- omp_set_num_threads (*set); ++ omp_set_num_threads (TO_INT (*set)); + } + + int32_t +@@ -343,7 +346,7 @@ + void + omp_set_schedule_8_ (const int32_t *kind, const int64_t *modifier) + { +- omp_set_schedule (*kind, *modifier); ++ omp_set_schedule (*kind, TO_INT (*modifier)); + } + + void +@@ -381,7 +384,7 @@ + void + omp_set_max_active_levels_8_ (const int64_t *levels) + { +- omp_set_max_active_levels (*levels); ++ omp_set_max_active_levels (TO_INT (*levels)); + } + + int32_t +@@ -405,7 +408,7 @@ + int32_t + omp_get_ancestor_thread_num_8_ (const int64_t *level) + { +- return omp_get_ancestor_thread_num (*level); ++ return omp_get_ancestor_thread_num (TO_INT (*level)); + } + + int32_t +@@ -417,7 +420,7 @@ + int32_t + omp_get_team_size_8_ (const int64_t *level) + { +- return omp_get_team_size (*level); ++ return omp_get_team_size (TO_INT (*level)); + } + + int32_t +Index: libgomp/ChangeLog +=================================================================== +--- libgomp/ChangeLog (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ libgomp/ChangeLog (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -1,3 +1,15 @@ ++2011-05-06 Jakub Jelinek ++ ++ PR fortran/48894 ++ * fortran.c: Include limits.h. ++ (TO_INT): Define. ++ (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of ++ *set. ++ (omp_set_num_threads_8_, omp_set_schedule_8_, ++ omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_, ++ omp_get_team_size_8_): Use TO_INT macro. ++ * testsuite/libgomp.fortran/pr48894.f90: New test. ++ + 2011-04-28 Release Manager + + * GCC 4.5.3 released. +Index: libgomp/testsuite/libgomp.fortran/pr48894.f90 +=================================================================== +--- libgomp/testsuite/libgomp.fortran/pr48894.f90 (.../tags/gcc_4_5_3_release) (wersja 0) ++++ libgomp/testsuite/libgomp.fortran/pr48894.f90 (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1,23 @@ ++! PR fortran/48894 ++! { dg-do run } ++! { dg-options "-fdefault-integer-8" } ++ ++ use omp_lib ++ integer, parameter :: zero = 0 ++ integer :: err ++ logical :: l ++ err = 0 ++ !$omp parallel ++ !$omp parallel private (l) ++ l = omp_get_ancestor_thread_num (-HUGE (zero)) .ne. -1 ++ l = l .or. (omp_get_ancestor_thread_num (HUGE (zero)) .ne. -1) ++ l = l .or. (omp_get_team_size (-HUGE (zero)) .ne. -1) ++ l = l .or. (omp_get_team_size (HUGE (zero)) .ne. -1) ++ if (l) then ++ !$omp atomic ++ err = err + 1 ++ endif ++ !$omp end parallel ++ !$omp end parallel ++ if (err .ne. 0) call abort ++end +Index: gcc/fwprop.c +=================================================================== +--- gcc/fwprop.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/fwprop.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -228,8 +228,11 @@ + + process_uses (df_get_artificial_uses (bb_index), DF_REF_AT_TOP); + process_defs (df_get_artificial_defs (bb_index), DF_REF_AT_TOP); +- df_simulate_initialize_forwards (bb, local_lr); + ++ /* We don't call df_simulate_initialize_forwards, as it may overestimate ++ the live registers if there are unused artificial defs. We prefer ++ liveness to be underestimated. */ ++ + FOR_BB_INSNS (bb, insn) + if (INSN_P (insn)) + { +Index: gcc/DATESTAMP +=================================================================== +--- gcc/DATESTAMP (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/DATESTAMP (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -1 +1 @@ +-20110428 ++20110515 +Index: gcc/tree-tailcall.c +=================================================================== +--- gcc/tree-tailcall.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/tree-tailcall.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -1007,6 +1007,14 @@ + integer_one_node); + } + ++ if (a_acc || m_acc) ++ { ++ /* When the tail call elimination using accumulators is performed, ++ statements adding the accumulated value are inserted at all exits. ++ This turns all other tail calls to non-tail ones. */ ++ opt_tailcalls = false; ++ } ++ + for (; tailcalls; tailcalls = next) + { + next = tailcalls->next; +Index: gcc/final.c +=================================================================== +--- gcc/final.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/final.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -2241,6 +2241,11 @@ + location_t loc; + expanded_location expanded; + ++ /* Make sure we flush any queued register saves in case this ++ clobbers affected registers. */ ++ if (dwarf2out_do_frame ()) ++ dwarf2out_frame_debug (insn, false); ++ + /* There's no telling what that did to the condition codes. */ + CC_STATUS_INIT; + +Index: gcc/fold-const.c +=================================================================== +--- gcc/fold-const.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/fold-const.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -2784,8 +2784,6 @@ + + case VOID_TYPE: + tem = fold_ignored_result (arg); +- if (TREE_CODE (tem) == MODIFY_EXPR) +- goto fold_convert_exit; + return fold_build1_loc (loc, NOP_EXPR, type, tem); + + default: +Index: gcc/DEV-PHASE +=================================================================== +--- gcc/DEV-PHASE (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/DEV-PHASE (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1 @@ ++prerelease +Index: gcc/ChangeLog +=================================================================== +--- gcc/ChangeLog (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/ChangeLog (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -1,3 +1,177 @@ ++2011-05-11 Michael Meissner ++ ++ Backport from mainline ++ 2011-05-10 Michael Meissner ++ ++ PR target/48857, 48495 ++ * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete. ++ (VSX_MODE): Ditto. ++ (VSX_MOVE_MODE): Ditto. ++ (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and ++ VSX vector types. Add V2DImode. ++ (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of ++ ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls. ++ (MODES_TIEABLE_P): Ditto. ++ ++ * config/rs6000/rs6000.c (rs6000_emit_move): Use ++ ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and ++ VSX_VECTOR_MODE. ++ (init_cumulative_args): Ditto. ++ (rs6000_function_arg_boundary): Ditto. ++ (rs6000_function_arg_advance_1): Ditto. ++ (rs6000_function_arg): Ditto. ++ (rs6000_function_ok_for_sibcall): Ditto. ++ (emit_frame_save): Ditto. ++ (rs6000_function_value): Ditto. ++ (rs6000_libcall_value): Ditto. ++ ++2011-05-10 Jakub Jelinek ++ ++ Backported from mainline ++ 2011-05-07 Zdenek Dvorak ++ ++ PR tree-optimization/48837 ++ * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls ++ when accumulator transformation is performed. ++ ++2011-05-09 Eric Botcazou ++ ++ * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko. ++ (dataflow_set_preserve_mem_locs): Likewise. ++ ++2011-05-07 Alan Modra ++ ++ PR target/48900 ++ * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use ++ const0_rtx as the arg to the dummy __tls_get_addr libcall. ++ ++2011-05-05 Jason Merrill ++ ++ PR c++/40975 ++ * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST. ++ ++2011-05-05 Julian Brown ++ ++ * config/arm/neon.md (vec_set_internal): Fix misplaced ++ parenthesis in D-register case. ++ ++2011-05-05 Ira Rosen ++ ++ Backport from mainline: ++ 2011-04-18 Ulrich Weigand ++ Ira Rosen ++ ++ PR target/48252 ++ * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments ++ to match neon_vzip/vuzp/vtrn_internal. ++ * config/arm/neon.md (neon_vtrn_internal): Make both ++ outputs explicitly dependent on both inputs. ++ (neon_vzip_internal, neon_vuzp_internal): Likewise. ++ ++2011-05-04 Uros Bizjak ++ ++ Backport from mainline ++ 2011-04-21 Uros Bizjak ++ ++ PR target/48708 ++ * config/i386/i386.c (ix86_expand_vector_set) : Generate ++ vec_extract and vec_concat for non-SSE4_1 targets. ++ ++2011-05-04 Uros Bizjak ++ ++ * config/i386/i386.md (*movdi_internal_rex64) : ++ Use %v prefix in insn mnemonic to handle TARGET_AVX. ++ (*movdi_internal): Use "maybe_vex" instead of "vex" in "prefix" ++ attribute calculation. ++ (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute. ++ * config/i386/sse.md (*sse2_storeq_rex64): Do not emit %v prefix ++ for mov{q} mnemonic. ++ (*vec_extractv2di_1_rex64_avx): Ditto. ++ (*vec_concatv2di_rex64_sse4_1): Use %vmovd for reg<->xmm moves. ++ (*vec_concatv2di_rex64_sse): Use movd for reg<->xmm moves. ++ * config/i386/mmx.md (*mov_internal_rex64): Ditto. ++ ++2011-05-03 Uros Bizjak ++ Jakub Jelinek ++ ++ PR target/48774 ++ * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode ++ only succeed if req_mode is the same as set_mode. ++ ++2011-05-03 Jakub Jelinek ++ ++ Backport from mainline ++ 2011-04-30 Jakub Jelinek ++ ++ PR tree-optimization/48809 ++ * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned ++ type. ++ (gen_inbound_check): Don't compute index_expr - range_min in utype ++ again, instead reuse SSA_NAME initialized in build_arrays. ++ Remove two useless gsi_for_stmt calls. ++ ++ 2011-04-28 Jakub Jelinek ++ ++ PR middle-end/48597 ++ * final.c (final_scan_insn): Call dwarf2out_frame_debug even for ++ inline asm. ++ ++ 2011-04-27 Jakub Jelinek ++ ++ PR c/48742 ++ * c-typeck.c (build_binary_op): Don't wrap arguments if ++ int_operands is true. ++ ++ 2011-04-23 Jakub Jelinek ++ ++ PR c/48685 ++ * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting ++ to VOID_TYPE even around MODIFY_EXPR. ++ ++2011-05-02 Ulrich Weigand ++ ++ PR middle-end/43085 ++ Backport from mainline: ++ ++ 2010-04-29 Bernd Schmidt ++ ++ From Dominique d'Humieres ++ PR bootstrap/43858 ++ * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute ++ test_set. ++ ++ 2010-04-26 Bernd Schmidt ++ ++ * df-problems.c (df_simulate_initialize_forwards): Set, don't clear, ++ bits for artificial defs at the top of the block. ++ * fwprop.c (single_def_use_enter_block): Don't call it. ++ ++ 2010-04-22 Bernd Schmidt ++ ++ * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and ++ df_simulate_find_noclobber_defs as appropriate. Keep track of an ++ extra set merge_set_noclobber, and use it to relax the final test ++ slightly. ++ * df.h (df_simulate_find_noclobber_defs): Declare. ++ * df-problems.c (df_simulate_find_defs): Don't ignore partial or ++ conditional defs. ++ (df_simulate_find_noclobber_defs): New function. ++ ++2011-04-29 John David Anglin ++ ++ PR target/48288 ++ * config/pa/predicates.md (ior_operand): Delete predicate. ++ (cint_ior_operand, reg_or_cint_ior_operand): New predicates. ++ * config/pa/pa.md (iordi3): Use reg_or_cint_ior_operand predicate in ++ expander. Use cint_ior_operand in unnamed insn. ++ (iorsi3): Likewise. ++ * config/pa/pa-protos.h (ior_operand): Delete declarations. ++ ++2011-04-28 Richard Guenther ++ ++ * DEV-PHASE: Set back to prerelease. ++ * BASE-VER: Bump to 4.5.4. ++ + 2011-04-28 Release Manager + + * GCC 4.5.3 released. +Index: gcc/testsuite/gcc.c-torture/execute/pr48809.c +=================================================================== +--- gcc/testsuite/gcc.c-torture/execute/pr48809.c (.../tags/gcc_4_5_3_release) (wersja 0) ++++ gcc/testsuite/gcc.c-torture/execute/pr48809.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1,60 @@ ++/* PR tree-optimization/48809 */ ++ ++extern void abort (void); ++ ++int ++foo (signed char x) ++{ ++ int y = 0; ++ switch (x) ++ { ++ case 0: y = 1; break; ++ case 1: y = 7; break; ++ case 2: y = 2; break; ++ case 3: y = 19; break; ++ case 4: y = 5; break; ++ case 5: y = 17; break; ++ case 6: y = 31; break; ++ case 7: y = 8; break; ++ case 8: y = 28; break; ++ case 9: y = 16; break; ++ case 10: y = 31; break; ++ case 11: y = 12; break; ++ case 12: y = 15; break; ++ case 13: y = 111; break; ++ case 14: y = 17; break; ++ case 15: y = 10; break; ++ case 16: y = 31; break; ++ case 17: y = 7; break; ++ case 18: y = 2; break; ++ case 19: y = 19; break; ++ case 20: y = 5; break; ++ case 21: y = 107; break; ++ case 22: y = 31; break; ++ case 23: y = 8; break; ++ case 24: y = 28; break; ++ case 25: y = 106; break; ++ case 26: y = 31; break; ++ case 27: y = 102; break; ++ case 28: y = 105; break; ++ case 29: y = 111; break; ++ case 30: y = 17; break; ++ case 31: y = 10; break; ++ case 32: y = 31; break; ++ case 98: y = 18; break; ++ case -62: y = 19; break; ++ } ++ return y; ++} ++ ++int ++main () ++{ ++ if (foo (98) != 18 || foo (97) != 0 || foo (99) != 0) ++ abort (); ++ if (foo (-62) != 19 || foo (-63) != 0 || foo (-61) != 0) ++ abort (); ++ if (foo (28) != 105 || foo (27) != 102 || foo (29) != 111) ++ abort (); ++ return 0; ++} +Index: gcc/testsuite/gcc.c-torture/compile/pr48742.c +=================================================================== +--- gcc/testsuite/gcc.c-torture/compile/pr48742.c (.../tags/gcc_4_5_3_release) (wersja 0) ++++ gcc/testsuite/gcc.c-torture/compile/pr48742.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1,15 @@ ++/* PR c/48742 */ ++ ++void baz (int); ++ ++int ++foo (void) ++{ ++ return 1 / 0 > 0; ++} ++ ++void ++bar (void) ++{ ++ baz (1 <= 2 % (3 >> 1 > 5 / 6 == 3)); ++} +Index: gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c +=================================================================== +--- gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c (.../tags/gcc_4_5_3_release) (wersja 0) ++++ gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1,21 @@ ++/* Test the `vset_lane_s8' ARM Neon intrinsic. */ ++ ++/* { dg-do run } */ ++/* { dg-require-effective-target arm_neon_hw } */ ++/* { dg-options "-O0" } */ ++/* { dg-add-options arm_neon } */ ++ ++#include "arm_neon.h" ++#include ++#include ++ ++int8x8_t x = { 1, 2, 3, 4, 5, 6, 7, 8 }; ++int8x8_t y = { 1, 2, 3, 16, 5, 6, 7, 8 }; ++ ++int main (void) ++{ ++ x = vset_lane_s8 (16, x, 3); ++ if (memcmp (&x, &y, sizeof (x)) != 0) ++ abort(); ++ return 0; ++} +Index: gcc/testsuite/gcc.target/arm/pr48252.c +=================================================================== +--- gcc/testsuite/gcc.target/arm/pr48252.c (.../tags/gcc_4_5_3_release) (wersja 0) ++++ gcc/testsuite/gcc.target/arm/pr48252.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1,31 @@ ++/* { dg-do run } */ ++/* { dg-require-effective-target arm_neon_hw } */ ++/* { dg-options "-O2" } */ ++/* { dg-add-options arm_neon } */ ++ ++#include "arm_neon.h" ++#include ++ ++int main(void) ++{ ++ uint8x8_t v1 = {1, 1, 1, 1, 1, 1, 1, 1}; ++ uint8x8_t v2 = {2, 2, 2, 2, 2, 2, 2, 2}; ++ uint8x8x2_t vd1, vd2; ++ union {uint8x8_t v; uint8_t buf[8];} d1, d2, d3, d4; ++ int i; ++ ++ vd1 = vzip_u8(v1, vdup_n_u8(0)); ++ vd2 = vzip_u8(v2, vdup_n_u8(0)); ++ ++ vst1_u8(d1.buf, vd1.val[0]); ++ vst1_u8(d2.buf, vd1.val[1]); ++ vst1_u8(d3.buf, vd2.val[0]); ++ vst1_u8(d4.buf, vd2.val[1]); ++ ++ for (i = 0; i < 8; i++) ++ if ((i % 2 == 0 && d4.buf[i] != 2) ++ || (i % 2 == 1 && d4.buf[i] != 0)) ++ abort (); ++ ++ return 0; ++} +Index: gcc/testsuite/gcc.target/powerpc/pr48857.c +=================================================================== +--- gcc/testsuite/gcc.target/powerpc/pr48857.c (.../tags/gcc_4_5_3_release) (wersja 0) ++++ gcc/testsuite/gcc.target/powerpc/pr48857.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1,25 @@ ++/* { dg-do compile { target { powerpc*-*-* } } } */ ++/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ ++/* { dg-require-effective-target powerpc_vsx_ok } */ ++/* { dg-options "-O2 -mcpu=power7 -mabi=altivec" } */ ++/* { dg-final { scan-assembler-times "lxvd2x" 1 } } */ ++/* { dg-final { scan-assembler-times "stxvd2x" 1 } } */ ++/* { dg-final { scan-assembler-not "ld" } } */ ++/* { dg-final { scan-assembler-not "lwz" } } */ ++/* { dg-final { scan-assembler-not "stw" } } */ ++/* { dg-final { scan-assembler-not "addi" } } */ ++ ++typedef vector long long v2di_type; ++ ++v2di_type ++return_v2di (v2di_type *ptr) ++{ ++ return *ptr; /* should generate lxvd2x 34,0,3. */ ++} ++ ++void ++pass_v2di (v2di_type arg, v2di_type *ptr) ++{ ++ *ptr = arg; /* should generate stxvd2x 34,0,{3,5}. */ ++} ++ +Index: gcc/testsuite/gcc.target/i386/pr48708.c +=================================================================== +--- gcc/testsuite/gcc.target/i386/pr48708.c (.../tags/gcc_4_5_3_release) (wersja 0) ++++ gcc/testsuite/gcc.target/i386/pr48708.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1,15 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -msse2" } */ ++ ++#include ++ ++typedef long long T __attribute__((may_alias)); ++struct S { __m128i d; }; ++ ++__m128i ++foo (long long *x, struct S *y, __m128i *z) ++{ ++ struct S s = *y; ++ ((T *) &s.d)[0] = *x; ++ return _mm_cmpeq_epi16 (s.d, *z); ++} +Index: gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c +=================================================================== +--- gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/testsuite/gcc.target/i386/sse2-init-v2di-2.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -1,6 +1,6 @@ + /* { dg-do compile } */ + /* { dg-require-effective-target lp64 } */ +-/* { dg-options "-O2 -msse4 -march=core2" } */ ++/* { dg-options "-O2 -msse4 -march=core2 -dp" } */ + + #include + +@@ -10,4 +10,4 @@ + return _mm_cvtsi64_si128 (b); + } + +-/* { dg-final { scan-assembler "movq" } } */ ++/* { dg-final { scan-assembler-times "\\*vec_concatv2di_rex64_sse4_1/3" 1 } } */ +Index: gcc/testsuite/gcc.dg/pr48774.c +=================================================================== +--- gcc/testsuite/gcc.dg/pr48774.c (.../tags/gcc_4_5_3_release) (wersja 0) ++++ gcc/testsuite/gcc.dg/pr48774.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1,38 @@ ++/* PR target/48774 */ ++/* { dg-do run } */ ++/* { dg-options "-O2 -funroll-loops" } */ ++ ++extern void abort (void); ++unsigned long int s[24] ++ = { 12, ~1, 12, ~2, 12, ~4, 12, ~8, 12, ~16, 12, ~32, ++ 12, ~64, 12, ~128, 12, ~256, 12, ~512, 12, ~1024, 12, ~2048 }; ++struct { int n; unsigned long *e[12]; } g ++ = { 12, { &s[0], &s[2], &s[4], &s[6], &s[8], &s[10], &s[12], &s[14], ++ &s[16], &s[18], &s[20], &s[22] } }; ++int c[12]; ++ ++__attribute__((noinline, noclone)) void ++foo (void) ++{ ++ int i, j; ++ for (i = 0; i < g.n; i++) ++ for (j = 0; j < g.n; j++) ++ { ++ if (i == j && j < g.e[0][0] && (g.e[i][1] & (1UL << j))) ++ abort (); ++ if (j < g.e[0][0] && (g.e[i][1] & (1UL << j))) ++ c[i]++; ++ } ++} ++ ++int ++main () ++{ ++ int i; ++ asm volatile ("" : "+m" (s), "+m" (g), "+m" (c)); ++ foo (); ++ for (i = 0; i < 12; i++) ++ if (c[i] != 11) ++ abort (); ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/pr48837.c +=================================================================== +--- gcc/testsuite/gcc.dg/pr48837.c (.../tags/gcc_4_5_3_release) (wersja 0) ++++ gcc/testsuite/gcc.dg/pr48837.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1,30 @@ ++/* PR tree-optimization/48837 */ ++/* { dg-do run } */ ++/* { dg-options "-O2" } */ ++ ++void abort (void); ++ ++__attribute__((noinline)) ++int baz(void) ++{ ++ return 1; ++} ++ ++inline const int *bar(const int *a, const int *b) ++{ ++ return *a ? a : b; ++} ++ ++int foo(int a, int b) ++{ ++ return a || b ? baz() : foo(*bar(&a, &b), 1) + foo(1, 0); ++} ++ ++int main(void) ++{ ++ if (foo(0, 0) != 2) ++ abort(); ++ ++ return 0; ++} ++ +Index: gcc/testsuite/gcc.dg/pr48685.c +=================================================================== +--- gcc/testsuite/gcc.dg/pr48685.c (.../tags/gcc_4_5_3_release) (wersja 0) ++++ gcc/testsuite/gcc.dg/pr48685.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1,11 @@ ++/* PR c/48685 */ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++int ++main () ++{ ++ int v = 1; ++ (void) (1 == 2 ? (void) 0 : (v = 0)); ++ return v; ++} +Index: gcc/testsuite/ChangeLog +=================================================================== +--- gcc/testsuite/ChangeLog (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/testsuite/ChangeLog (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -1,3 +1,82 @@ ++2011-05-11 Michael Meissner ++ ++ Backport from mainline ++ 2011-05-10 Michael Meissner ++ ++ PR target/48857 ++ * gcc.target/powerpc/pr48857.c: New file, make sure V2DI arguments ++ are passed and returned in vector registers. ++ ++2011-05-10 Jakub Jelinek ++ ++ Backported from mainline ++ 2011-05-07 Zdenek Dvorak ++ ++ PR tree-optimization/48837 ++ * gcc.dg/pr48837.c: New testcase. ++ ++2011-05-09 Jason Merrill ++ ++ * g++.dg/template/nontype23.C: New. ++ ++2011-05-05 Jason Merrill ++ ++ * g++.dg/init/new30.C: New. ++ ++2011-05-05 Julian Brown ++ ++ * gcc.target/arm/neon-vset_lanes8.c: New test. ++ ++2011-05-05 Ira Rosen ++ ++ Backport from mainline: ++ 2011-04-18 Ulrich Weigand ++ Ira Rosen ++ ++ PR target/48252 ++ * gcc.target/arm/pr48252.c: New test. ++ ++2011-05-04 Uros Bizjak ++ ++ Backport from mainline ++ 2011-04-21 Uros Bizjak ++ ++ PR target/48708 ++ * gcc.target/i386/pr48708.c: New test. ++ ++2011-05-04 Uros Bizjak ++ ++ Backport from mainline ++ 2010-12-08 H.J. Lu ++ ++ * gcc.target/i386/sse2-init-v2di-2.c: Add "-dp" and update ++ expected scan. ++ ++2011-05-03 Jakub Jelinek ++ ++ PR target/48774 ++ * gcc.dg/pr48774.c: New test. ++ ++ Backport from mainline ++ 2011-04-30 Jakub Jelinek ++ ++ PR tree-optimization/48809 ++ * gcc.c-torture/execute/pr48809.c: New test. ++ ++ 2011-04-27 Jakub Jelinek ++ ++ PR c/48742 ++ * gcc.c-torture/compile/pr48742.c: New test. ++ ++ 2011-04-23 Jakub Jelinek ++ ++ PR c/48685 ++ * gcc.dg/pr48685.c: New test. ++ ++2011-04-27 Jason Merrill ++ ++ * g++.dg/parse/ambig6.C: New. ++ + 2011-04-28 Release Manager + + * GCC 4.5.3 released. +Index: gcc/testsuite/g++.dg/parse/ambig6.C +=================================================================== +--- gcc/testsuite/g++.dg/parse/ambig6.C (.../tags/gcc_4_5_3_release) (wersja 0) ++++ gcc/testsuite/g++.dg/parse/ambig6.C (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1,12 @@ ++// PR c++/48046 ++ ++namespace N1 { typedef int T; } // { dg-error "" } ++namespace N2 { typedef float T; } // { dg-error "" } ++ ++int main() ++{ ++ using namespace N1; ++ using namespace N2; ++ ++ static T t; // { dg-error "" } ++} +Index: gcc/testsuite/g++.dg/init/new30.C +=================================================================== +--- gcc/testsuite/g++.dg/init/new30.C (.../tags/gcc_4_5_3_release) (wersja 0) ++++ gcc/testsuite/g++.dg/init/new30.C (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1,15 @@ ++// PR c++/40975 ++ ++struct data_type ++{ ++ // constructor required to reproduce compiler bug ++ data_type() {} ++}; ++ ++struct ptr_type ++{ ++ // array new as default argument required to reproduce compiler bug ++ ptr_type (data_type* ptr = new data_type[1]) { delete[] ptr; } ++}; ++ ++ptr_type obj; +Index: gcc/testsuite/g++.dg/template/nontype23.C +=================================================================== +--- gcc/testsuite/g++.dg/template/nontype23.C (.../tags/gcc_4_5_3_release) (wersja 0) ++++ gcc/testsuite/g++.dg/template/nontype23.C (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -0,0 +1,9 @@ ++// PR c++/48936 ++ ++template int foo (void); ++template struct S ++{ ++ static const unsigned int a = sizeof (T); ++ enum { c = sizeof (foo <(a == 0)> ()) }; ++}; ++S x; +Index: gcc/cp/ChangeLog +=================================================================== +--- gcc/cp/ChangeLog (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/cp/ChangeLog (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -1,3 +1,15 @@ ++2011-05-09 Jason Merrill ++ ++ PR c++/48936 ++ * decl2.c (mark_used): Instantiate constant variables even ++ in unevaluated context. ++ ++2011-04-27 Jason Merrill ++ ++ PR c++/48046 ++ * parser.c (cp_parser_diagnose_invalid_type_name): Commit ++ to tentative parse sooner. ++ + 2011-04-28 Release Manager + + * GCC 4.5.3 released. +Index: gcc/cp/decl2.c +=================================================================== +--- gcc/cp/decl2.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/cp/decl2.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -3991,8 +3991,6 @@ + void + mark_used (tree decl) + { +- HOST_WIDE_INT saved_processing_template_decl = 0; +- + /* If DECL is a BASELINK for a single function, then treat it just + like the DECL for the function. Otherwise, if the BASELINK is + for an overloaded function, we don't know which function was +@@ -4029,9 +4027,6 @@ + error ("used here"); + return; + } +- /* If we don't need a value, then we don't need to synthesize DECL. */ +- if (cp_unevaluated_operand != 0) +- return; + + /* We can only check DECL_ODR_USED on variables or functions with + DECL_LANG_SPECIFIC set, and these are also the only decls that we +@@ -4059,9 +4054,10 @@ + DECL. However, if DECL is a static data member initialized with + a constant, we need the value right now because a reference to + such a data member is not value-dependent. */ +- if (TREE_CODE (decl) == VAR_DECL +- && DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl) +- && DECL_CLASS_SCOPE_P (decl)) ++ if (DECL_INTEGRAL_CONSTANT_VAR_P (decl) ++ && !DECL_INITIAL (decl) ++ && DECL_LANG_SPECIFIC (decl) ++ && DECL_TEMPLATE_INSTANTIATION (decl)) + { + /* Don't try to instantiate members of dependent types. We + cannot just use dependent_type_p here because this function +@@ -4071,12 +4067,14 @@ + if (CLASSTYPE_TEMPLATE_INFO ((DECL_CONTEXT (decl))) + && uses_template_parms (CLASSTYPE_TI_ARGS (DECL_CONTEXT (decl)))) + return; +- /* Pretend that we are not in a template, even if we are, so +- that the static data member initializer will be processed. */ +- saved_processing_template_decl = processing_template_decl; +- processing_template_decl = 0; ++ instantiate_decl (decl, /*defer_ok=*/false, ++ /*expl_inst_class_mem_p=*/false); + } + ++ /* If we don't need a value, then we don't need to synthesize DECL. */ ++ if (cp_unevaluated_operand != 0) ++ return; ++ + if (processing_template_decl) + return; + +@@ -4149,8 +4147,6 @@ + need. Therefore, we always try to defer instantiation. */ + instantiate_decl (decl, /*defer_ok=*/true, + /*expl_inst_class_mem_p=*/false); +- +- processing_template_decl = saved_processing_template_decl; + } + + #include "gt-cp-decl2.h" +Index: gcc/cp/parser.c +=================================================================== +--- gcc/cp/parser.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/cp/parser.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -2333,6 +2333,7 @@ + location_t location) + { + tree decl, old_scope; ++ cp_parser_commit_to_tentative_parse (parser); + /* Try to lookup the identifier. */ + old_scope = parser->scope; + parser->scope = scope; +@@ -2423,7 +2424,6 @@ + else + gcc_unreachable (); + } +- cp_parser_commit_to_tentative_parse (parser); + } + + /* Check for a common situation where a type-name should be present, +Index: gcc/ifcvt.c +=================================================================== +--- gcc/ifcvt.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/ifcvt.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -3818,7 +3818,7 @@ + basic_block other_bb, basic_block new_dest, int reversep) + { + rtx head, end, jump, earliest = NULL_RTX, old_dest, new_label = NULL_RTX; +- bitmap merge_set = NULL; ++ bitmap merge_set = NULL, merge_set_noclobber = NULL; + /* Number of pending changes. */ + int n_validated_changes = 0; + +@@ -3951,11 +3951,14 @@ + + /* Collect: + MERGE_SET = set of registers set in MERGE_BB ++ MERGE_SET_NOCLOBBER = like MERGE_SET, but only includes registers ++ that are really set, not just clobbered. + TEST_LIVE = set of registers live at EARLIEST +- TEST_SET = set of registers set between EARLIEST and the +- end of the block. */ ++ TEST_SET = set of registers set between EARLIEST and the ++ end of the block. */ + + merge_set = BITMAP_ALLOC (®_obstack); ++ merge_set_noclobber = BITMAP_ALLOC (®_obstack); + + /* If we allocated new pseudos (e.g. in the conditional move + expander called from noce_emit_cmove), we must resize the +@@ -3967,13 +3970,8 @@ + { + if (NONDEBUG_INSN_P (insn)) + { +- unsigned int uid = INSN_UID (insn); +- df_ref *def_rec; +- for (def_rec = DF_INSN_UID_DEFS (uid); *def_rec; def_rec++) +- { +- df_ref def = *def_rec; +- bitmap_set_bit (merge_set, DF_REF_REGNO (def)); +- } ++ df_simulate_find_defs (insn, merge_set); ++ df_simulate_find_noclobber_defs (insn, merge_set_noclobber); + } + } + +@@ -3984,7 +3982,7 @@ + unsigned i; + bitmap_iterator bi; + +- EXECUTE_IF_SET_IN_BITMAP (merge_set, 0, i, bi) ++ EXECUTE_IF_SET_IN_BITMAP (merge_set_noclobber, 0, i, bi) + { + if (i < FIRST_PSEUDO_REGISTER + && ! fixed_regs[i] +@@ -4015,12 +4013,14 @@ + } + + /* We can perform the transformation if +- MERGE_SET & (TEST_SET | TEST_LIVE) ++ MERGE_SET_NOCLOBBER & TEST_SET + and ++ MERGE_SET & TEST_LIVE ++ and + TEST_SET & DF_LIVE_IN (merge_bb) + are empty. */ + +- if (bitmap_intersect_p (merge_set, test_set) ++ if (bitmap_intersect_p (merge_set_noclobber, test_set) + || bitmap_intersect_p (merge_set, test_live) + || bitmap_intersect_p (test_set, df_get_live_in (merge_bb))) + intersect = true; +@@ -4104,10 +4104,11 @@ + unsigned i; + bitmap_iterator bi; + +- EXECUTE_IF_SET_IN_BITMAP (merge_set, 0, i, bi) ++ EXECUTE_IF_SET_IN_BITMAP (merge_set_noclobber, 0, i, bi) + remove_reg_equal_equiv_notes_for_regno (i); + + BITMAP_FREE (merge_set); ++ BITMAP_FREE (merge_set_noclobber); + } + + reorder_insns (head, end, PREV_INSN (earliest)); +@@ -4128,7 +4129,10 @@ + cancel_changes (0); + fail: + if (merge_set) +- BITMAP_FREE (merge_set); ++ { ++ BITMAP_FREE (merge_set); ++ BITMAP_FREE (merge_set_noclobber); ++ } + return FALSE; + } + +Index: gcc/BASE-VER +=================================================================== +--- gcc/BASE-VER (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/BASE-VER (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -1 +1 @@ +-4.5.3 ++4.5.4 +Index: gcc/df.h +=================================================================== +--- gcc/df.h (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/df.h (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -978,6 +978,7 @@ + extern void df_md_add_problem (void); + extern void df_md_simulate_artificial_defs_at_top (basic_block, bitmap); + extern void df_md_simulate_one_insn (basic_block, rtx, bitmap); ++extern void df_simulate_find_noclobber_defs (rtx, bitmap); + extern void df_simulate_find_defs (rtx, bitmap); + extern void df_simulate_defs (rtx, bitmap); + extern void df_simulate_uses (rtx, bitmap); +Index: gcc/c-typeck.c +=================================================================== +--- gcc/c-typeck.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/c-typeck.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -9800,7 +9800,7 @@ + warn_for_sign_compare (location, orig_op0_folded, + orig_op1_folded, op0, op1, + result_type, resultcode); +- if (!in_late_binary_op) ++ if (!in_late_binary_op && !int_operands) + { + if (!op0_maybe_const || TREE_CODE (op0) != INTEGER_CST) + op0 = c_wrap_maybe_const (op0, !op0_maybe_const); +Index: gcc/tree-inline.c +=================================================================== +--- gcc/tree-inline.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/tree-inline.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -4179,14 +4179,16 @@ + CONSTRUCTOR_ELTS (*tp)); + *tp = new_tree; + } ++ else if (code == STATEMENT_LIST) ++ /* We used to just abort on STATEMENT_LIST, but we can run into them ++ with statement-expressions (c++/40975). */ ++ copy_statement_list (tp); + else if (TREE_CODE_CLASS (code) == tcc_type) + *walk_subtrees = 0; + else if (TREE_CODE_CLASS (code) == tcc_declaration) + *walk_subtrees = 0; + else if (TREE_CODE_CLASS (code) == tcc_constant) + *walk_subtrees = 0; +- else +- gcc_assert (code != STATEMENT_LIST); + return NULL_TREE; + } + +Index: gcc/var-tracking.c +=================================================================== +--- gcc/var-tracking.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/var-tracking.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -4134,8 +4134,9 @@ + VALUE_RECURSED_INTO (val) = true; + + for (node = var->var_part[0].loc_chain; node; node = node->next) +- if (MEM_P (node->loc) && MEM_EXPR (node->loc) == expr +- && MEM_OFFSET (node->loc) == 0) ++ if (MEM_P (node->loc) ++ && MEM_EXPR (node->loc) == expr ++ && INT_MEM_OFFSET (node->loc) == 0) + { + where = node; + break; +@@ -4198,11 +4199,10 @@ + { + for (loc = var->var_part[0].loc_chain; loc; loc = loc->next) + { +- /* We want to remove dying MEMs that doesn't refer to +- DECL. */ ++ /* We want to remove dying MEMs that doesn't refer to DECL. */ + if (GET_CODE (loc->loc) == MEM + && (MEM_EXPR (loc->loc) != decl +- || MEM_OFFSET (loc->loc)) ++ || INT_MEM_OFFSET (loc->loc) != 0) + && !mem_dies_at_call (loc->loc)) + break; + /* We want to move here MEMs that do refer to DECL. */ +@@ -4246,7 +4246,7 @@ + + if (GET_CODE (loc->loc) != MEM + || (MEM_EXPR (loc->loc) == decl +- && MEM_OFFSET (loc->loc) == 0) ++ && INT_MEM_OFFSET (loc->loc) == 0) + || !mem_dies_at_call (loc->loc)) + { + if (old_loc != loc->loc && emit_notes) +Index: gcc/df-problems.c +=================================================================== +--- gcc/df-problems.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/df-problems.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -3748,9 +3748,22 @@ + for (def_rec = DF_INSN_UID_DEFS (uid); *def_rec; def_rec++) + { + df_ref def = *def_rec; +- /* If the def is to only part of the reg, it does +- not kill the other defs that reach here. */ +- if (!(DF_REF_FLAGS (def) & (DF_REF_PARTIAL | DF_REF_CONDITIONAL))) ++ bitmap_set_bit (defs, DF_REF_REGNO (def)); ++ } ++} ++ ++/* Find the set of real DEFs, which are not clobbers, for INSN. */ ++ ++void ++df_simulate_find_noclobber_defs (rtx insn, bitmap defs) ++{ ++ df_ref *def_rec; ++ unsigned int uid = INSN_UID (insn); ++ ++ for (def_rec = DF_INSN_UID_DEFS (uid); *def_rec; def_rec++) ++ { ++ df_ref def = *def_rec; ++ if (!(DF_REF_FLAGS (def) & (DF_REF_MUST_CLOBBER | DF_REF_MAY_CLOBBER))) + bitmap_set_bit (defs, DF_REF_REGNO (def)); + } + } +@@ -3903,13 +3916,9 @@ + the block, starting with the first one. + ----------------------------------------------------------------------------*/ + +-/* Apply the artificial uses and defs at the top of BB in a forwards +- direction. ??? This is wrong; defs mark the point where a pseudo +- becomes live when scanning forwards (unless a def is unused). Since +- there are no REG_UNUSED notes for artificial defs, passes that +- require artificial defs probably should not call this function +- unless (as is the case for fwprop) they are correct when liveness +- bitmaps are *under*estimated. */ ++/* Initialize the LIVE bitmap, which should be copied from DF_LIVE_IN or ++ DF_LR_IN for basic block BB, for forward scanning by marking artificial ++ defs live. */ + + void + df_simulate_initialize_forwards (basic_block bb, bitmap live) +@@ -3921,7 +3930,7 @@ + { + df_ref def = *def_rec; + if (DF_REF_FLAGS (def) & DF_REF_AT_TOP) +- bitmap_clear_bit (live, DF_REF_REGNO (def)); ++ bitmap_set_bit (live, DF_REF_REGNO (def)); + } + } + +@@ -3942,7 +3951,7 @@ + while here the scan is performed forwards! So, first assume that the + def is live, and if this is not true REG_UNUSED notes will rectify the + situation. */ +- df_simulate_find_defs (insn, live); ++ df_simulate_find_noclobber_defs (insn, live); + + /* Clear all of the registers that go dead. */ + for (link = REG_NOTES (insn); link; link = XEXP (link, 1)) +Index: gcc/tree-switch-conversion.c +=================================================================== +--- gcc/tree-switch-conversion.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/tree-switch-conversion.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -549,7 +549,7 @@ + build_arrays (gimple swtch) + { + tree arr_index_type; +- tree tidx, sub, tmp; ++ tree tidx, sub, tmp, utype; + gimple stmt; + gimple_stmt_iterator gsi; + int i; +@@ -557,14 +557,20 @@ + + gsi = gsi_for_stmt (swtch); + ++ /* Make sure we do not generate arithmetics in a subrange. */ ++ utype = TREE_TYPE (info.index_expr); ++ if (TREE_TYPE (utype)) ++ utype = lang_hooks.types.type_for_mode (TYPE_MODE (TREE_TYPE (utype)), 1); ++ else ++ utype = lang_hooks.types.type_for_mode (TYPE_MODE (utype), 1); ++ + arr_index_type = build_index_type (info.range_size); +- tmp = create_tmp_var (TREE_TYPE (info.index_expr), "csti"); ++ tmp = create_tmp_var (utype, "csui"); + add_referenced_var (tmp); + tidx = make_ssa_name (tmp, NULL); +- sub = fold_build2_loc (loc, MINUS_EXPR, +- TREE_TYPE (info.index_expr), info.index_expr, +- fold_convert_loc (loc, TREE_TYPE (info.index_expr), +- info.range_min)); ++ sub = fold_build2_loc (loc, MINUS_EXPR, utype, ++ fold_convert_loc (loc, utype, info.index_expr), ++ fold_convert_loc (loc, utype, info.range_min)); + sub = force_gimple_operand_gsi (&gsi, sub, + false, NULL, true, GSI_SAME_STMT); + stmt = gimple_build_assign (tidx, sub); +@@ -673,12 +679,7 @@ + tree label_decl2 = create_artificial_label (UNKNOWN_LOCATION); + tree label_decl3 = create_artificial_label (UNKNOWN_LOCATION); + gimple label1, label2, label3; +- +- tree utype; +- tree tmp_u_1, tmp_u_2, tmp_u_var; +- tree cast; +- gimple cast_assign, minus_assign; +- tree ulb, minus; ++ tree utype, tidx; + tree bound; + + gimple cond_stmt; +@@ -692,49 +693,24 @@ + gcc_assert (info.default_values); + bb0 = gimple_bb (swtch); + +- /* Make sure we do not generate arithmetics in a subrange. */ +- if (TREE_TYPE (TREE_TYPE (info.index_expr))) +- utype = lang_hooks.types.type_for_mode +- (TYPE_MODE (TREE_TYPE (TREE_TYPE (info.index_expr))), 1); +- else +- utype = lang_hooks.types.type_for_mode +- (TYPE_MODE (TREE_TYPE (info.index_expr)), 1); ++ tidx = gimple_assign_lhs (info.arr_ref_first); ++ utype = TREE_TYPE (tidx); + + /* (end of) block 0 */ + gsi = gsi_for_stmt (info.arr_ref_first); +- tmp_u_var = create_tmp_var (utype, "csui"); +- add_referenced_var (tmp_u_var); +- tmp_u_1 = make_ssa_name (tmp_u_var, NULL); ++ gsi_next (&gsi); + +- cast = fold_convert_loc (loc, utype, info.index_expr); +- cast_assign = gimple_build_assign (tmp_u_1, cast); +- SSA_NAME_DEF_STMT (tmp_u_1) = cast_assign; +- gsi_insert_before (&gsi, cast_assign, GSI_SAME_STMT); +- update_stmt (cast_assign); +- +- ulb = fold_convert_loc (loc, utype, info.range_min); +- minus = fold_build2_loc (loc, MINUS_EXPR, utype, tmp_u_1, ulb); +- minus = force_gimple_operand_gsi (&gsi, minus, false, NULL, true, +- GSI_SAME_STMT); +- tmp_u_2 = make_ssa_name (tmp_u_var, NULL); +- minus_assign = gimple_build_assign (tmp_u_2, minus); +- SSA_NAME_DEF_STMT (tmp_u_2) = minus_assign; +- gsi_insert_before (&gsi, minus_assign, GSI_SAME_STMT); +- update_stmt (minus_assign); +- + bound = fold_convert_loc (loc, utype, info.range_size); +- cond_stmt = gimple_build_cond (LE_EXPR, tmp_u_2, bound, NULL_TREE, NULL_TREE); ++ cond_stmt = gimple_build_cond (LE_EXPR, tidx, bound, NULL_TREE, NULL_TREE); + gsi_insert_before (&gsi, cond_stmt, GSI_SAME_STMT); + update_stmt (cond_stmt); + + /* block 2 */ +- gsi = gsi_for_stmt (info.arr_ref_first); + label2 = gimple_build_label (label_decl2); + gsi_insert_before (&gsi, label2, GSI_SAME_STMT); + last_assign = gen_def_assigns (&gsi); + + /* block 1 */ +- gsi = gsi_for_stmt (info.arr_ref_first); + label1 = gimple_build_label (label_decl1); + gsi_insert_before (&gsi, label1, GSI_SAME_STMT); + +Index: gcc/config/i386/i386.md +=================================================================== +--- gcc/config/i386/i386.md (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/config/i386/i386.md (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -2430,7 +2430,7 @@ + [(set_attr "type" "*,*,mmx,mmxmov,mmxmov,sselog1,ssemov,ssemov,ssemov,sselog1,ssemov,ssemov,ssemov") + (set (attr "prefix") + (if_then_else (eq_attr "alternative" "5,6,7,8") +- (const_string "vex") ++ (const_string "maybe_vex") + (const_string "orig"))) + (set_attr "mode" "DI,DI,DI,DI,DI,TI,DI,TI,DI,V4SF,V2SF,V4SF,V2SF")]) + +@@ -2468,21 +2468,15 @@ + return "movdq2q\t{%1, %0|%0, %1}"; + + case TYPE_SSEMOV: +- if (TARGET_AVX) +- { +- if (get_attr_mode (insn) == MODE_TI) +- return "vmovdqa\t{%1, %0|%0, %1}"; +- else +- return "vmovq\t{%1, %0|%0, %1}"; +- } +- + if (get_attr_mode (insn) == MODE_TI) +- return "movdqa\t{%1, %0|%0, %1}"; +- /* FALLTHRU */ ++ return "%vmovdqa\t{%1, %0|%0, %1}"; ++ /* Handle broken assemblers that require movd instead of movq. */ ++ if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])) ++ return "%vmovd\t{%1, %0|%0, %1}"; ++ return "%vmovq\t{%1, %0|%0, %1}"; + + case TYPE_MMXMOV: +- /* Moves from and into integer register is done using movd +- opcode with REX prefix. */ ++ /* Handle broken assemblers that require movd instead of movq. */ + if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])) + return "movd\t{%1, %0|%0, %1}"; + return "movq\t{%1, %0|%0, %1}"; +@@ -2915,12 +2909,13 @@ + + case 9: case 10: case 14: case 15: + return "movd\t{%1, %0|%0, %1}"; +- case 12: case 13: +- return "%vmovd\t{%1, %0|%0, %1}"; + + case 11: + return "movq\t{%1, %0|%0, %1}"; + ++ case 12: case 13: ++ return "%vmovd\t{%1, %0|%0, %1}"; ++ + default: + gcc_unreachable (); + } +@@ -3067,6 +3062,7 @@ + case 3: + case 4: + return "#"; ++ + case 5: + switch (get_attr_mode (insn)) + { +@@ -3262,7 +3258,8 @@ + + case 9: + case 10: +- return "%vmovd\t{%1, %0|%0, %1}"; ++ /* Handle broken assemblers that require movd instead of movq. */ ++ return "%vmovd\t{%1, %0|%0, %1}"; + + default: + gcc_unreachable(); +@@ -3361,11 +3358,11 @@ + switch (get_attr_mode (insn)) + { + case MODE_V4SF: +- return "xorps\t%0, %0"; ++ return "%vxorps\t%0, %d0"; + case MODE_V2DF: +- return "xorpd\t%0, %0"; ++ return "%vxorpd\t%0, %d0"; + case MODE_TI: +- return "pxor\t%0, %0"; ++ return "%vpxor\t%0, %d0"; + default: + gcc_unreachable (); + } +@@ -3375,28 +3372,56 @@ + switch (get_attr_mode (insn)) + { + case MODE_V4SF: +- return "movaps\t{%1, %0|%0, %1}"; ++ return "%vmovaps\t{%1, %0|%0, %1}"; + case MODE_V2DF: +- return "movapd\t{%1, %0|%0, %1}"; ++ return "%vmovapd\t{%1, %0|%0, %1}"; + case MODE_TI: +- return "movdqa\t{%1, %0|%0, %1}"; ++ return "%vmovdqa\t{%1, %0|%0, %1}"; + case MODE_DI: +- return "movq\t{%1, %0|%0, %1}"; ++ return "%vmovq\t{%1, %0|%0, %1}"; + case MODE_DF: +- return "movsd\t{%1, %0|%0, %1}"; ++ if (TARGET_AVX) ++ { ++ if (REG_P (operands[0]) && REG_P (operands[1])) ++ return "vmovsd\t{%1, %0, %0|%0, %0, %1}"; ++ else ++ return "vmovsd\t{%1, %0|%0, %1}"; ++ } ++ else ++ return "movsd\t{%1, %0|%0, %1}"; + case MODE_V1DF: +- return "movlpd\t{%1, %0|%0, %1}"; ++ if (TARGET_AVX) ++ { ++ if (REG_P (operands[0])) ++ return "vmovlpd\t{%1, %0, %0|%0, %0, %1}"; ++ else ++ return "vmovlpd\t{%1, %0|%0, %1}"; ++ } ++ else ++ return "movlpd\t{%1, %0|%0, %1}"; + case MODE_V2SF: +- return "movlps\t{%1, %0|%0, %1}"; ++ if (TARGET_AVX) ++ { ++ if (REG_P (operands[0])) ++ return "vmovlps\t{%1, %0, %0|%0, %0, %1}"; ++ else ++ return "vmovlps\t{%1, %0|%0, %1}"; ++ } ++ else ++ return "movlps\t{%1, %0|%0, %1}"; + default: + gcc_unreachable (); + } + + default: +- gcc_unreachable(); ++ gcc_unreachable (); + } + } + [(set_attr "type" "fmov,fmov,fmov,multi,multi,sselog1,ssemov,ssemov,ssemov") ++ (set (attr "prefix") ++ (if_then_else (eq_attr "alternative" "0,1,2,3,4") ++ (const_string "orig") ++ (const_string "maybe_vex"))) + (set (attr "prefix_data16") + (if_then_else (eq_attr "mode" "V1DF") + (const_string "1") +Index: gcc/config/i386/mmx.md +=================================================================== +--- gcc/config/i386/mmx.md (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/config/i386/mmx.md (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -63,6 +63,7 @@ + DONE; + }) + ++;; movd instead of movq is required to handle broken assemblers. + (define_insn "*mov_internal_rex64" + [(set (match_operand:MMXMODEI8 0 "nonimmediate_operand" + "=rm,r,!?y,!?y ,m ,!y,*Y2,x,x ,m,r,Yi") +@@ -81,8 +82,8 @@ + %vpxor\t%0, %d0 + %vmovq\t{%1, %0|%0, %1} + %vmovq\t{%1, %0|%0, %1} +- %vmovq\t{%1, %0|%0, %1} +- %vmovq\t{%1, %0|%0, %1}" ++ %vmovd\t{%1, %0|%0, %1} ++ %vmovd\t{%1, %0|%0, %1}" + [(set_attr "type" "imov,imov,mmx,mmxmov,mmxmov,ssecvt,ssecvt,sselog1,ssemov,ssemov,ssemov,ssemov") + (set_attr "unit" "*,*,*,*,*,mmx,mmx,*,*,*,*,*") + (set_attr "prefix_rep" "*,*,*,*,*,1,1,*,1,*,*,*") +@@ -192,6 +193,7 @@ + (const_string "orig"))) + (set_attr "mode" "DI,DI,DI,DI,DI,DI,DI,V4SF,V4SF,V2SF,V2SF,DI,DI")]) + ++;; movd instead of movq is required to handle broken assemblers. + (define_insn "*movv2sf_internal_rex64" + [(set (match_operand:V2SF 0 "nonimmediate_operand" + "=rm,r ,!?y,!?y ,m ,!y,*Y2,x,x,x,m,r,Yi") +Index: gcc/config/i386/sse.md +=================================================================== +--- gcc/config/i386/sse.md (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/config/i386/sse.md (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -7473,9 +7473,8 @@ + "@ + # + # +- %vmov{q}\t{%1, %0|%0, %1}" ++ mov{q}\t{%1, %0|%0, %1}" + [(set_attr "type" "*,*,imov") +- (set_attr "prefix" "*,*,maybe_vex") + (set_attr "mode" "*,*,DI")]) + + (define_insn "*sse2_storeq" +@@ -7513,11 +7512,11 @@ + vmovhps\t{%1, %0|%0, %1} + vpsrldq\t{$8, %1, %0|%0, %1, 8} + vmovq\t{%H1, %0|%0, %H1} +- vmov{q}\t{%H1, %0|%0, %H1}" ++ mov{q}\t{%H1, %0|%0, %H1}" + [(set_attr "type" "ssemov,sseishft1,ssemov,imov") + (set_attr "length_immediate" "*,1,*,*") + (set_attr "memory" "*,none,*,*") +- (set_attr "prefix" "vex") ++ (set_attr "prefix" "vex,vex,vex,orig") + (set_attr "mode" "V2SF,TI,TI,DI")]) + + (define_insn "*vec_extractv2di_1_rex64" +@@ -7795,6 +7794,7 @@ + (const_string "vex"))) + (set_attr "mode" "TI,TI,TI,TI,TI,V2SF")]) + ++;; movd instead of movq is required to handle broken assemblers. + (define_insn "*vec_concatv2di_rex64_sse4_1" + [(set (match_operand:V2DI 0 "register_operand" "=x ,x ,Yi,!x,x,x,x") + (vec_concat:V2DI +@@ -7804,7 +7804,7 @@ + "@ + pinsrq\t{$0x1, %2, %0|%0, %2, 0x1} + movq\t{%1, %0|%0, %1} +- movq\t{%1, %0|%0, %1} ++ movd\t{%1, %0|%0, %1} + movq2dq\t{%1, %0|%0, %1} + punpcklqdq\t{%2, %0|%0, %2} + movlhps\t{%2, %0|%0, %2} +@@ -7815,6 +7815,7 @@ + (set_attr "length_immediate" "1,*,*,*,*,*,*") + (set_attr "mode" "TI,TI,TI,TI,TI,V4SF,V2SF")]) + ++;; movd instead of movq is required to handle broken assemblers. + (define_insn "*vec_concatv2di_rex64_sse" + [(set (match_operand:V2DI 0 "register_operand" "=Y2 ,Yi,!Y2,Y2,x,x") + (vec_concat:V2DI +@@ -7823,7 +7824,7 @@ + "TARGET_64BIT && TARGET_SSE" + "@ + movq\t{%1, %0|%0, %1} +- movq\t{%1, %0|%0, %1} ++ movd\t{%1, %0|%0, %1} + movq2dq\t{%1, %0|%0, %1} + punpcklqdq\t{%2, %0|%0, %2} + movlhps\t{%2, %0|%0, %2} +Index: gcc/config/i386/i386.c +=================================================================== +--- gcc/config/i386/i386.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/config/i386/i386.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -14610,11 +14610,15 @@ + if (req_mode == CCZmode) + return 0; + /* FALLTHRU */ ++ case CCZmode: ++ break; ++ + case CCAmode: + case CCCmode: + case CCOmode: + case CCSmode: +- case CCZmode: ++ if (set_mode != req_mode) ++ return 0; + break; + + default: +@@ -27711,10 +27715,19 @@ + break; + + case V2DImode: +- use_vec_merge = TARGET_SSE4_1; ++ use_vec_merge = TARGET_SSE4_1 && TARGET_64BIT; + if (use_vec_merge) + break; + ++ tmp = gen_reg_rtx (GET_MODE_INNER (mode)); ++ ix86_expand_vector_extract (false, tmp, target, 1 - elt); ++ if (elt == 0) ++ tmp = gen_rtx_VEC_CONCAT (mode, tmp, val); ++ else ++ tmp = gen_rtx_VEC_CONCAT (mode, val, tmp); ++ emit_insn (gen_rtx_SET (VOIDmode, target, tmp)); ++ return; ++ + case V2DFmode: + { + rtx op0, op1; +Index: gcc/config/rs6000/rs6000.c +=================================================================== +--- gcc/config/rs6000/rs6000.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/config/rs6000/rs6000.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -5426,10 +5426,11 @@ + + if (model == TLS_MODEL_GLOBAL_DYNAMIC) + { +- r3 = gen_rtx_REG (Pmode, 3); + tga = rs6000_tls_get_addr (); +- emit_library_call_value (tga, dest, LCT_CONST, Pmode, 1, r3, Pmode); ++ emit_library_call_value (tga, dest, LCT_CONST, Pmode, ++ 1, const0_rtx, Pmode); + ++ r3 = gen_rtx_REG (Pmode, 3); + if (DEFAULT_ABI == ABI_AIX && TARGET_64BIT) + insn = gen_tls_gd_aix64 (r3, got, addr, tga, const0_rtx); + else if (DEFAULT_ABI == ABI_AIX && !TARGET_64BIT) +@@ -5446,11 +5447,12 @@ + } + else if (model == TLS_MODEL_LOCAL_DYNAMIC) + { +- r3 = gen_rtx_REG (Pmode, 3); + tga = rs6000_tls_get_addr (); + tmp1 = gen_reg_rtx (Pmode); +- emit_library_call_value (tga, tmp1, LCT_CONST, Pmode, 1, r3, Pmode); ++ emit_library_call_value (tga, tmp1, LCT_CONST, Pmode, ++ 1, const0_rtx, Pmode); + ++ r3 = gen_rtx_REG (Pmode, 3); + if (DEFAULT_ABI == ABI_AIX && TARGET_64BIT) + insn = gen_tls_ld_aix64 (r3, got, tga, const0_rtx); + else if (DEFAULT_ABI == ABI_AIX && !TARGET_64BIT) +@@ -6694,7 +6696,7 @@ + + /* Nonzero if we can use an AltiVec register to pass this arg. */ + #define USE_ALTIVEC_FOR_ARG_P(CUM,MODE,TYPE,NAMED) \ +- ((ALTIVEC_VECTOR_MODE (MODE) || VSX_VECTOR_MODE (MODE)) \ ++ (ALTIVEC_OR_VSX_VECTOR_MODE (MODE) \ + && (CUM)->vregno <= ALTIVEC_ARG_MAX_REG \ + && TARGET_ALTIVEC_ABI \ + && (NAMED)) +@@ -6920,7 +6922,7 @@ + existing library interfaces. + + Doubleword align SPE vectors. +- Quadword align Altivec vectors. ++ Quadword align Altivec/VSX vectors. + Quadword align large synthetic vector types. */ + + int +@@ -6937,7 +6939,7 @@ + && int_size_in_bytes (type) >= 8 + && int_size_in_bytes (type) < 16)) + return 64; +- else if ((ALTIVEC_VECTOR_MODE (mode) || VSX_VECTOR_MODE (mode)) ++ else if (ALTIVEC_OR_VSX_VECTOR_MODE (mode) + || (type && TREE_CODE (type) == VECTOR_TYPE + && int_size_in_bytes (type) >= 16)) + return 128; +@@ -7082,8 +7084,7 @@ + cum->nargs_prototype--; + + if (TARGET_ALTIVEC_ABI +- && (ALTIVEC_VECTOR_MODE (mode) +- || VSX_VECTOR_MODE (mode) ++ && (ALTIVEC_OR_VSX_VECTOR_MODE (mode) + || (type && TREE_CODE (type) == VECTOR_TYPE + && int_size_in_bytes (type) == 16))) + { +@@ -7677,8 +7678,7 @@ + else + return gen_rtx_REG (mode, cum->vregno); + else if (TARGET_ALTIVEC_ABI +- && (ALTIVEC_VECTOR_MODE (mode) +- || VSX_VECTOR_MODE (mode) ++ && (ALTIVEC_OR_VSX_VECTOR_MODE (mode) + || (type && TREE_CODE (type) == VECTOR_TYPE + && int_size_in_bytes (type) == 16))) + { +@@ -18280,7 +18280,7 @@ + + /* Some cases that need register indexed addressing. */ + if ((TARGET_ALTIVEC_ABI && ALTIVEC_VECTOR_MODE (mode)) +- || (TARGET_VSX && VSX_VECTOR_MODE (mode)) ++ || (TARGET_VSX && ALTIVEC_OR_VSX_VECTOR_MODE (mode)) + || (TARGET_E500_DOUBLE && mode == DFmode) + || (TARGET_SPE_ABI + && SPE_VECTOR_MODE (mode) +@@ -25565,14 +25565,13 @@ + else if (TREE_CODE (valtype) == COMPLEX_TYPE + && targetm.calls.split_complex_arg) + return rs6000_complex_function_value (mode); ++ /* VSX is a superset of Altivec and adds V2DImode/V2DFmode. Since the same ++ return register is used in both cases, and we won't see V2DImode/V2DFmode ++ for pure altivec, combine the two cases. */ + else if (TREE_CODE (valtype) == VECTOR_TYPE + && TARGET_ALTIVEC && TARGET_ALTIVEC_ABI +- && ALTIVEC_VECTOR_MODE (mode)) ++ && ALTIVEC_OR_VSX_VECTOR_MODE (mode)) + regno = ALTIVEC_ARG_RETURN; +- else if (TREE_CODE (valtype) == VECTOR_TYPE +- && TARGET_VSX && TARGET_ALTIVEC_ABI +- && VSX_VECTOR_MODE (mode)) +- regno = ALTIVEC_ARG_RETURN; + else if (TARGET_E500_DOUBLE && TARGET_HARD_FLOAT + && (mode == DFmode || mode == DCmode + || mode == TFmode || mode == TCmode)) +@@ -25611,12 +25610,12 @@ + && TARGET_HARD_FLOAT && TARGET_FPRS + && ((TARGET_SINGLE_FLOAT && mode == SFmode) || TARGET_DOUBLE_FLOAT)) + regno = FP_ARG_RETURN; +- else if (ALTIVEC_VECTOR_MODE (mode) ++ /* VSX is a superset of Altivec and adds V2DImode/V2DFmode. Since the same ++ return register is used in both cases, and we won't see V2DImode/V2DFmode ++ for pure altivec, combine the two cases. */ ++ else if (ALTIVEC_OR_VSX_VECTOR_MODE (mode) + && TARGET_ALTIVEC && TARGET_ALTIVEC_ABI) + regno = ALTIVEC_ARG_RETURN; +- else if (VSX_VECTOR_MODE (mode) +- && TARGET_VSX && TARGET_ALTIVEC_ABI) +- regno = ALTIVEC_ARG_RETURN; + else if (COMPLEX_MODE_P (mode) && targetm.calls.split_complex_arg) + return rs6000_complex_function_value (mode); + else if (TARGET_E500_DOUBLE && TARGET_HARD_FLOAT + +Zmiany atrybutów dla: gcc/config/rs6000/rs6000.c +___________________________________________________________________ +Dodane: svn:mergeinfo + Połączono zmiany /trunk/gcc/config/rs6000/rs6000.c:r162404,173624 + +Index: gcc/config/rs6000/rs6000.h +=================================================================== +--- gcc/config/rs6000/rs6000.h (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/config/rs6000/rs6000.h (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -1038,10 +1038,9 @@ + + /* When setting up caller-save slots (MODE == VOIDmode) ensure we allocate + enough space to account for vectors in FP regs. */ +-#define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \ +- (TARGET_VSX \ +- && ((MODE) == VOIDmode || VSX_VECTOR_MODE (MODE) \ +- || ALTIVEC_VECTOR_MODE (MODE)) \ ++#define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \ ++ (TARGET_VSX \ ++ && ((MODE) == VOIDmode || ALTIVEC_OR_VSX_VECTOR_MODE (MODE)) \ + && FP_REGNO_P (REGNO) \ + ? V2DFmode \ + : choose_hard_reg_mode ((REGNO), (NREGS), false)) +@@ -1057,25 +1056,16 @@ + ((MODE) == V4SFmode \ + || (MODE) == V2DFmode) \ + +-#define VSX_SCALAR_MODE(MODE) \ +- ((MODE) == DFmode) +- +-#define VSX_MODE(MODE) \ +- (VSX_VECTOR_MODE (MODE) \ +- || VSX_SCALAR_MODE (MODE)) +- +-#define VSX_MOVE_MODE(MODE) \ +- (VSX_VECTOR_MODE (MODE) \ +- || VSX_SCALAR_MODE (MODE) \ +- || ALTIVEC_VECTOR_MODE (MODE) \ +- || (MODE) == TImode) +- + #define ALTIVEC_VECTOR_MODE(MODE) \ + ((MODE) == V16QImode \ + || (MODE) == V8HImode \ + || (MODE) == V4SFmode \ + || (MODE) == V4SImode) + ++#define ALTIVEC_OR_VSX_VECTOR_MODE(MODE) \ ++ (ALTIVEC_VECTOR_MODE (MODE) || VSX_VECTOR_MODE (MODE) \ ++ || (MODE) == V2DImode) ++ + #define SPE_VECTOR_MODE(MODE) \ + ((MODE) == V4HImode \ + || (MODE) == V2SFmode \ +@@ -1118,10 +1108,10 @@ + ? ALTIVEC_VECTOR_MODE (MODE2) \ + : ALTIVEC_VECTOR_MODE (MODE2) \ + ? ALTIVEC_VECTOR_MODE (MODE1) \ +- : VSX_VECTOR_MODE (MODE1) \ +- ? VSX_VECTOR_MODE (MODE2) \ +- : VSX_VECTOR_MODE (MODE2) \ +- ? VSX_VECTOR_MODE (MODE1) \ ++ : ALTIVEC_OR_VSX_VECTOR_MODE (MODE1) \ ++ ? ALTIVEC_OR_VSX_VECTOR_MODE (MODE2) \ ++ : ALTIVEC_OR_VSX_VECTOR_MODE (MODE2) \ ++ ? ALTIVEC_OR_VSX_VECTOR_MODE (MODE1) \ + : 1) + + /* Post-reload, we can't use any new AltiVec registers, as we already + +Zmiany atrybutów dla: gcc/config/rs6000/rs6000.h +___________________________________________________________________ +Dodane: svn:mergeinfo + Połączono zmiany /trunk/gcc/config/rs6000/rs6000.h:r162404,173624 + +Index: gcc/config/arm/arm.c +=================================================================== +--- gcc/config/arm/arm.c (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/config/arm/arm.c (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -18237,7 +18237,7 @@ + rtx tmp1 = gen_reg_rtx (mode); + rtx tmp2 = gen_reg_rtx (mode); + +- emit_insn (intfn (tmp1, op1, tmp2, op2)); ++ emit_insn (intfn (tmp1, op1, op2, tmp2)); + + emit_move_insn (mem, tmp1); + mem = adjust_address (mem, mode, GET_MODE_SIZE (mode)); +Index: gcc/config/arm/neon.md +=================================================================== +--- gcc/config/arm/neon.md (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/config/arm/neon.md (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -680,7 +680,7 @@ + (match_operand:SI 2 "immediate_operand" "i")))] + "TARGET_NEON" + { +- int elt = ffs ((int) INTVAL (operands[2]) - 1); ++ int elt = ffs ((int) INTVAL (operands[2])) - 1; + if (BYTES_BIG_ENDIAN) + elt = GET_MODE_NUNITS (mode) - 1 - elt; + operands[2] = GEN_INT (elt); +@@ -3895,13 +3895,14 @@ + + (define_insn "neon_vtrn_internal" + [(set (match_operand:VDQW 0 "s_register_operand" "=w") +- (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")] +- UNSPEC_VTRN1)) +- (set (match_operand:VDQW 2 "s_register_operand" "=w") +- (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")] +- UNSPEC_VTRN2))] ++ (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0") ++ (match_operand:VDQW 2 "s_register_operand" "w")] ++ UNSPEC_VTRN1)) ++ (set (match_operand:VDQW 3 "s_register_operand" "=2") ++ (unspec:VDQW [(match_dup 1) (match_dup 2)] ++ UNSPEC_VTRN2))] + "TARGET_NEON" +- "vtrn.\t%0, %2" ++ "vtrn.\t%0, %3" + [(set (attr "neon_type") + (if_then_else (ne (symbol_ref "") (const_int 0)) + (const_string "neon_bp_simple") +@@ -3921,13 +3922,14 @@ + + (define_insn "neon_vzip_internal" + [(set (match_operand:VDQW 0 "s_register_operand" "=w") +- (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")] +- UNSPEC_VZIP1)) +- (set (match_operand:VDQW 2 "s_register_operand" "=w") +- (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")] +- UNSPEC_VZIP2))] ++ (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0") ++ (match_operand:VDQW 2 "s_register_operand" "w")] ++ UNSPEC_VZIP1)) ++ (set (match_operand:VDQW 3 "s_register_operand" "=2") ++ (unspec:VDQW [(match_dup 1) (match_dup 2)] ++ UNSPEC_VZIP2))] + "TARGET_NEON" +- "vzip.\t%0, %2" ++ "vzip.\t%0, %3" + [(set (attr "neon_type") + (if_then_else (ne (symbol_ref "") (const_int 0)) + (const_string "neon_bp_simple") +@@ -3947,13 +3949,14 @@ + + (define_insn "neon_vuzp_internal" + [(set (match_operand:VDQW 0 "s_register_operand" "=w") +- (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")] ++ (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0") ++ (match_operand:VDQW 2 "s_register_operand" "w")] + UNSPEC_VUZP1)) +- (set (match_operand:VDQW 2 "s_register_operand" "=w") +- (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")] +- UNSPEC_VUZP2))] ++ (set (match_operand:VDQW 3 "s_register_operand" "=2") ++ (unspec:VDQW [(match_dup 1) (match_dup 2)] ++ UNSPEC_VUZP2))] + "TARGET_NEON" +- "vuzp.\t%0, %2" ++ "vuzp.\t%0, %3" + [(set (attr "neon_type") + (if_then_else (ne (symbol_ref "") (const_int 0)) + (const_string "neon_bp_simple") +Index: gcc/config/pa/predicates.md +=================================================================== +--- gcc/config/pa/predicates.md (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/config/pa/predicates.md (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -411,12 +411,16 @@ + + ;; True iff depi can be used to compute (reg | OP). + +-(define_predicate "ior_operand" +- (match_code "const_int") +-{ +- return (GET_CODE (op) == CONST_INT && ior_mask_p (INTVAL (op))); +-}) ++(define_predicate "cint_ior_operand" ++ (and (match_code "const_int") ++ (match_test "ior_mask_p (INTVAL (op))"))) + ++;; True iff OP can be used to compute (reg | OP). ++ ++(define_predicate "reg_or_cint_ior_operand" ++ (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. +Index: gcc/config/pa/pa.md +=================================================================== +--- gcc/config/pa/pa.md (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/config/pa/pa.md (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -5686,7 +5686,7 @@ + (define_expand "iordi3" + [(set (match_operand:DI 0 "register_operand" "") + (ior:DI (match_operand:DI 1 "register_operand" "") +- (match_operand:DI 2 "ior_operand" "")))] ++ (match_operand:DI 2 "reg_or_cint_ior_operand" "")))] + "" + " + { +@@ -5707,7 +5707,7 @@ + (define_insn "" + [(set (match_operand:DI 0 "register_operand" "=r,r") + (ior:DI (match_operand:DI 1 "register_operand" "0,0") +- (match_operand:DI 2 "ior_operand" "M,i")))] ++ (match_operand:DI 2 "cint_ior_operand" "M,i")))] + "TARGET_64BIT" + "* return output_64bit_ior (operands); " + [(set_attr "type" "binary,shift") +@@ -5726,19 +5726,14 @@ + (define_expand "iorsi3" + [(set (match_operand:SI 0 "register_operand" "") + (ior:SI (match_operand:SI 1 "register_operand" "") +- (match_operand:SI 2 "arith32_operand" "")))] ++ (match_operand:SI 2 "reg_or_cint_ior_operand" "")))] + "" +- " +-{ +- if (! (ior_operand (operands[2], SImode) +- || register_operand (operands[2], SImode))) +- operands[2] = force_reg (SImode, operands[2]); +-}") ++ "") + + (define_insn "" + [(set (match_operand:SI 0 "register_operand" "=r,r") + (ior:SI (match_operand:SI 1 "register_operand" "0,0") +- (match_operand:SI 2 "ior_operand" "M,i")))] ++ (match_operand:SI 2 "cint_ior_operand" "M,i")))] + "" + "* return output_ior (operands); " + [(set_attr "type" "binary,shift") +Index: gcc/config/pa/pa-protos.h +=================================================================== +--- gcc/config/pa/pa-protos.h (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ gcc/config/pa/pa-protos.h (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -79,7 +79,6 @@ + extern int prefetch_cc_operand (rtx, enum machine_mode); + extern int prefetch_nocc_operand (rtx, enum machine_mode); + extern int and_operand (rtx, enum machine_mode); +-extern int ior_operand (rtx, enum machine_mode); + extern int arith32_operand (rtx, enum machine_mode); + extern int uint32_operand (rtx, enum machine_mode); + extern int reg_before_reload_operand (rtx, enum machine_mode); +@@ -94,7 +93,6 @@ + extern int fmpyaddoperands (rtx *); + extern int fmpysuboperands (rtx *); + extern int call_operand_address (rtx, enum machine_mode); +-extern int ior_operand (rtx, enum machine_mode); + extern void emit_bcond_fp (rtx[]); + extern int emit_move_sequence (rtx *, enum machine_mode, rtx); + extern int emit_hpdiv_const (rtx *, int); +Index: libffi/src/alpha/osf.S +=================================================================== +--- libffi/src/alpha/osf.S (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ libffi/src/alpha/osf.S (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -1,5 +1,5 @@ + /* ----------------------------------------------------------------------- +- osf.S - Copyright (c) 1998, 2001, 2007, 2008 Red Hat ++ osf.S - Copyright (c) 1998, 2001, 2007, 2008, 2011 Red Hat + + Alpha/OSF Foreign Function Interface + +@@ -299,33 +299,51 @@ + #endif + + #ifdef __ELF__ ++# define UA_SI .4byte ++# define FDE_ENCODING 0x1b /* pcrel sdata4 */ ++# define FDE_ENCODE(X) .4byte X-. ++# define FDE_ARANGE(X) .4byte X ++#elif defined __osf__ ++# define UA_SI .align 0; .long ++# define FDE_ENCODING 0x50 /* aligned absolute */ ++# define FDE_ENCODE(X) .align 3; .quad X ++# define FDE_ARANGE(X) .align 0; .quad X ++#endif ++ ++#ifdef __ELF__ + .section .eh_frame,EH_FRAME_FLAGS,@progbits ++#elif defined __osf__ ++ .data ++ .align 3 ++ .globl _GLOBAL__F_ffi_call_osf ++_GLOBAL__F_ffi_call_osf: ++#endif + __FRAME_BEGIN__: +- .4byte $LECIE1-$LSCIE1 # Length of Common Information Entry ++ UA_SI $LECIE1-$LSCIE1 # Length of Common Information Entry + $LSCIE1: +- .4byte 0x0 # CIE Identifier Tag ++ UA_SI 0x0 # CIE Identifier Tag + .byte 0x1 # CIE Version + .ascii "zR\0" # CIE Augmentation + .byte 0x1 # uleb128 0x1; CIE Code Alignment Factor + .byte 0x78 # sleb128 -8; CIE Data Alignment Factor + .byte 26 # CIE RA Column + .byte 0x1 # uleb128 0x1; Augmentation size +- .byte 0x1b # FDE Encoding (pcrel sdata4) ++ .byte FDE_ENCODING # FDE Encoding + .byte 0xc # DW_CFA_def_cfa + .byte 30 # uleb128 column 30 + .byte 0 # uleb128 offset 0 + .align 3 + $LECIE1: + $LSFDE1: +- .4byte $LEFDE1-$LASFDE1 # FDE Length ++ UA_SI $LEFDE1-$LASFDE1 # FDE Length + $LASFDE1: +- .4byte $LASFDE1-__FRAME_BEGIN__ # FDE CIE offset +- .4byte $LFB1-. # FDE initial location +- .4byte $LFE1-$LFB1 # FDE address range ++ UA_SI $LASFDE1-__FRAME_BEGIN__ # FDE CIE offset ++ FDE_ENCODE($LFB1) # FDE initial location ++ FDE_ARANGE($LFE1-$LFB1) # FDE address range + .byte 0x0 # uleb128 0x0; Augmentation size + + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI1-$LFB1 ++ UA_SI $LCFI1-$LFB1 + .byte 0x9a # DW_CFA_offset, column 26 + .byte 4 # uleb128 4*-8 + .byte 0x8f # DW_CFA_offset, column 15 +@@ -335,32 +353,35 @@ + .byte 32 # uleb128 offset 32 + + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI2-$LCFI1 ++ UA_SI $LCFI2-$LCFI1 + .byte 0xda # DW_CFA_restore, column 26 + .align 3 + $LEFDE1: + + $LSFDE3: +- .4byte $LEFDE3-$LASFDE3 # FDE Length ++ UA_SI $LEFDE3-$LASFDE3 # FDE Length + $LASFDE3: +- .4byte $LASFDE3-__FRAME_BEGIN__ # FDE CIE offset +- .4byte $LFB2-. # FDE initial location +- .4byte $LFE2-$LFB2 # FDE address range ++ UA_SI $LASFDE3-__FRAME_BEGIN__ # FDE CIE offset ++ FDE_ENCODE($LFB2) # FDE initial location ++ FDE_ARANGE($LFE2-$LFB2) # FDE address range + .byte 0x0 # uleb128 0x0; Augmentation size + + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI5-$LFB2 ++ UA_SI $LCFI5-$LFB2 + .byte 0xe # DW_CFA_def_cfa_offset + .byte 0x80,0x1 # uleb128 128 + + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI6-$LCFI5 ++ UA_SI $LCFI6-$LCFI5 + .byte 0x9a # DW_CFA_offset, column 26 + .byte 16 # uleb128 offset 16*-8 + .align 3 + $LEFDE3: ++#if defined __osf__ ++ .align 0 ++ .long 0 # End of Table ++#endif + +-#ifdef __linux__ ++#if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",@progbits + #endif +-#endif +Index: libffi/ChangeLog +=================================================================== +--- libffi/ChangeLog (.../tags/gcc_4_5_3_release) (wersja 173771) ++++ libffi/ChangeLog (.../branches/gcc-4_5-branch) (wersja 173771) +@@ -1,3 +1,13 @@ ++2011-05-02 Rainer Orth ++ ++ Backport from mainline: ++ 2011-04-29 Rainer Orth ++ ++ * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE): ++ Define. ++ Use them to handle ELF vs. ECOFF differences. ++ [__osf__] (_GLOBAL__F_ffi_call_osf): Define. ++ + 2011-04-28 Release Manager + + * GCC 4.5.3 released. 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-enable-java-awt-qt.patch b/gcc-enable-java-awt-qt.patch new file mode 100644 index 0000000..d5bfb65 --- /dev/null +++ b/gcc-enable-java-awt-qt.patch @@ -0,0 +1,82 @@ +--- trunk/libjava/classpath/configure.ac 2006-07-02 15:32:04.000000000 +0200 ++++ trunk/libjava/classpath/configure.ac 2006-07-02 19:18:28.913906000 +0200 +@@ -502,7 +502,8 @@ + AC_CHECK_FILE([$EXTRA_QT_INCLUDE_DIR/QWidget], + QT_CFLAGS="$QT_CFLAGS -I$EXTRA_QT_INCLUDE_DIR", + AC_MSG_WARN([QWidget not found]))) +- AC_CHECK_PROG(MOC, [moc], [moc]) ++ QT4DIR=`$PKG_CONFIG --variable=prefix QtGui` ++ AC_CHECK_PROG(MOC, [moc], [$QT4DIR/bin/moc], [], $QT4DIR/bin) + AC_CHECK_PROG(MOC, [moc-qt4], [moc-qt4]) + fi + if test "x$HAVE_QT4" = "xno"; then +--- trunk/libjava/classpath/native/jni/qt-peer/Makefile.am 2007-06-04 01:18:43.000000000 +0200 ++++ trunk/libjava/classpath/native/jni/qt-peer/Makefile.am 2008-03-06 16:32:36.000000000 +0100 +@@ -1,8 +1,7 @@ + # Qt AWT backend for Classpath + # + +-## GCJ LOCAL: don't install this library +-noinst_LTLIBRARIES = libqtpeer.la ++nativeexeclib_LTLIBRARIES = libqtpeer.la + + AM_LDFLAGS = @CLASSPATH_MODULE@ @QT_LIBS@ + AM_CPPFLAGS = @CLASSPATH_INCLUDES@ +--- trunk/libjava/classpath/native/jni/qt-peer/Makefile.in 2007-08-04 12:53:49.000000000 +0200 ++++ trunk/libjava/classpath/native/jni/qt-peer/Makefile.in 2008-03-06 15:24:38.000000000 +0100 +@@ -64,7 +64,8 @@ + mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs + CONFIG_HEADER = $(top_builddir)/include/config.h + CONFIG_CLEAN_FILES = +-LTLIBRARIES = $(noinst_LTLIBRARIES) ++nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) ++LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) + libqtpeer_la_LIBADD = + am_libqtpeer_la_OBJECTS = componentevent.lo keybindings.lo \ + mainqtthread.lo mainthreadinterface.lo nativewrapper.lo \ +@@ -357,7 +358,7 @@ + target_vendor = @target_vendor@ + toolexeclibdir = @toolexeclibdir@ + vm_classes = @vm_classes@ +-noinst_LTLIBRARIES = libqtpeer.la ++nativeexeclib_LTLIBRARIES = libqtpeer.la + AM_LDFLAGS = @CLASSPATH_MODULE@ @QT_LIBS@ + AM_CPPFLAGS = @CLASSPATH_INCLUDES@ + AM_CXXFLAGS = @QT_CFLAGS@ \ +@@ -475,7 +476,7 @@ + rm -f "$${dir}/so_locations"; \ + done + libqtpeer.la: $(libqtpeer_la_OBJECTS) $(libqtpeer_la_DEPENDENCIES) +- $(CXXLINK) $(libqtpeer_la_LDFLAGS) $(libqtpeer_la_OBJECTS) $(libqtpeer_la_LIBADD) $(LIBS) ++ $(LINK) -rpath $(nativeexeclibdir) $(libqtpeer_la_LDFLAGS) $(libqtpeer_la_OBJECTS) $(libqtpeer_la_LIBADD) $(LIBS) + + mostlyclean-compile: + -rm -f *.$(OBJEXT) +@@ -686,7 +687,18 @@ + + install-data-am: + +-install-exec-am: ++install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES) ++ @$(NORMAL_INSTALL) ++ test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)" ++ @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ ++ if test -f $$p; then \ ++ f=$(am__strip_dir) \ ++ echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \ ++ $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \ ++ else :; fi; \ ++ done ++ ++install-exec-am: install-nativeexeclibLTLIBRARIES + + install-info: install-info-am + +@@ -720,6 +732,7 @@ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-exec \ + install-exec-am install-info install-info-am install-man \ ++ install-nativeexeclibLTLIBRARIES \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ diff --git a/gcc-hash-style-gnu.patch b/gcc-hash-style-gnu.patch new file mode 100644 index 0000000..3c19b2b --- /dev/null +++ b/gcc-hash-style-gnu.patch @@ -0,0 +1,122 @@ +--- gcc-4.2.0-20070316/gcc/config/alpha/linux-elf.h.orig 2006-02-18 06:12:51.000000000 -0500 ++++ gcc-4.2.0-20070316/gcc/config/alpha/linux-elf.h 2007-04-18 07:14:56.875631582 -0400 +@@ -40,7 +40,7 @@ + + #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER + +-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ ++#define LINK_SPEC "-m elf64alpha --hash-style=gnu %{G*} %{relax:-relax} \ + %{O*:-O3} %{!O*:-O1} \ + %{shared:-shared} \ + %{!shared: \ +--- gcc-4.2.0-20070316/gcc/config/s390/linux.h.orig 2006-12-12 10:21:53.000000000 -0500 ++++ gcc-4.2.0-20070316/gcc/config/s390/linux.h 2007-04-18 07:14:56.875631582 -0400 +@@ -78,7 +78,7 @@ + + #undef LINK_SPEC + #define LINK_SPEC \ +- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ ++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=gnu \ + %{shared:-shared} \ + %{!shared: \ + %{static:-static} \ +--- gcc-4.2.0-20070316/gcc/config/sparc/linux.h.orig 2006-02-18 06:12:51.000000000 -0500 ++++ gcc-4.2.0-20070316/gcc/config/sparc/linux.h 2007-04-18 07:14:56.875631582 -0400 +@@ -133,7 +133,7 @@ + + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ ++#define LINK_SPEC "-m elf32_sparc --hash-style=gnu -Y P,/usr/lib %{shared:-shared} \ + %{!mno-relax:%{!r:-relax}} \ + %{!shared: \ + %{!ibcs: \ +--- gcc-4.2.0-20070316/gcc/config/sparc/linux64.h.orig 2006-03-02 17:47:02.000000000 -0500 ++++ gcc-4.2.0-20070316/gcc/config/sparc/linux64.h 2007-04-18 07:16:49.644880415 -0400 +@@ -121,7 +121,7 @@ + { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ + { "link_arch", LINK_ARCH_SPEC }, + +-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \ ++#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=gnu -Y P,%R/usr/lib %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ +@@ -130,7 +130,7 @@ + %{static:-static}}} \ + " + +-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \ ++#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=gnu -Y P,%R/usr/lib64 %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ +@@ -211,7 +211,7 @@ + #else /* !SPARC_BI_ARCH */ + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \ ++#define LINK_SPEC "-m elf64_sparc --hash-style=gnu -Y P,%R/usr/lib64 %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ +--- gcc-4.2.0-20070316/gcc/config/i386/linux.h.orig 2006-04-06 18:16:11.000000000 -0400 ++++ gcc-4.2.0-20070316/gcc/config/i386/linux.h 2007-04-18 07:14:56.875631582 -0400 +@@ -109,7 +109,7 @@ + { "dynamic_linker", LINUX_DYNAMIC_LINKER } + + #undef LINK_SPEC +-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \ ++#define LINK_SPEC "-m %(link_emulation) --hash-style=gnu %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ +--- gcc-4.2.0-20070316/gcc/config/i386/linux64.h.orig 2006-02-18 06:12:51.000000000 -0500 ++++ gcc-4.2.0-20070316/gcc/config/i386/linux64.h 2007-04-18 07:14:56.875631582 -0400 +@@ -65,7 +65,7 @@ + #endif + + #undef LINK_SPEC +-#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \ ++#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=gnu \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +--- gcc-4.2.0-20070316/gcc/config/ia64/linux.h.orig 2006-12-12 10:21:53.000000000 -0500 ++++ gcc-4.2.0-20070316/gcc/config/ia64/linux.h 2007-04-18 07:14:56.875631582 -0400 +@@ -40,7 +40,7 @@ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "\ ++#define LINK_SPEC "--hash-style=gnu \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +--- gcc-4.2.0-20070316/gcc/config/rs6000/sysv4.h.orig 2007-03-09 19:59:15.000000000 -0500 ++++ gcc-4.2.0-20070316/gcc/config/rs6000/sysv4.h 2007-04-18 07:14:56.872300144 -0400 +@@ -902,7 +902,7 @@ + #define LINUX_DYNAMIC_LINKER \ + CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER) + +-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=gnu %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}" + +--- gcc-4.2.0-20070316/gcc/config/rs6000/linux64.h.orig 2006-07-14 11:54:23.000000000 -0400 ++++ gcc-4.2.0-20070316/gcc/config/rs6000/linux64.h 2007-04-18 07:18:14.042413298 -0400 +@@ -351,11 +351,11 @@ + CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64) + + +-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=gnu %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}}" + +-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=gnu %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}}" + diff --git a/gcc-info.patch b/gcc-info.patch new file mode 100644 index 0000000..2298512 --- /dev/null +++ b/gcc-info.patch @@ -0,0 +1,305 @@ +--- a/gcc/doc/cpp.texi 2004-09-17 10:22:36.000000000 +0200 ++++ b/gcc/doc/cpp.texi 2004-09-26 10:58:58.166721432 +0200 +@@ -50,9 +50,9 @@ + @set cppmanual + + @ifinfo +-@dircategory Software development ++@dircategory Programming Languages: + @direntry +-* Cpp: (cpp). The GNU C preprocessor. ++* Cpp: (cpp). The GNU C preprocessor + @end direntry + @end ifinfo + +--- a/gcc/doc/cppinternals.texi 2004-07-03 01:57:11.000000000 +0200 ++++ b/gcc/doc/cppinternals.texi 2004-09-26 10:58:58.208715048 +0200 +@@ -3,9 +3,9 @@ + @settitle The GNU C Preprocessor Internals + + @ifinfo +-@dircategory Software development ++@dircategory Programming Languages: + @direntry +-* Cpplib: (cppinternals). Cpplib internals. ++* Cpplib: (cppinternals). Cpplib internals + @end direntry + @end ifinfo + +--- a/gcc/doc/gcc.texi 2004-07-22 22:12:20.000000000 +0200 ++++ b/gcc/doc/gcc.texi 2004-09-26 10:58:58.218713528 +0200 +@@ -62,10 +62,10 @@ + funds for GNU development. + @end copying + @ifnottex +-@dircategory Software development ++@dircategory Programming Languages: + @direntry +-* gcc: (gcc). The GNU Compiler Collection. +-* g++: (gcc). The GNU C++ compiler. ++* gcc: (gcc). The GNU Compiler Collection ++* g++: (gcc). The GNU C++ compiler + @end direntry + This file documents the use of the GNU compilers. + @sp 1 +--- a/gcc/doc/gccint.texi 2004-05-24 00:54:29.000000000 +0200 ++++ b/gcc/doc/gccint.texi 2004-09-26 10:58:58.222712920 +0200 +@@ -46,9 +46,9 @@ + funds for GNU development. + @end copying + @ifnottex +-@dircategory Software development ++@dircategory Programming Languages: + @direntry +-* gccint: (gccint). Internals of the GNU Compiler Collection. ++* gccint: (gccint). Internals of the GNU Compiler Collection + @end direntry + This file documents the internals of the GNU compilers. + @sp 1 +--- a/gcc/ada/gnat-style.texi 2004-09-01 13:51:52.000000000 +0200 ++++ b/gcc/ada/gnat-style.texi 2004-09-26 10:58:58.342694680 +0200 +@@ -28,9 +28,9 @@ + @setchapternewpage odd + + +-@dircategory Software development ++@dircategory Programming Languages: + @direntry +-* gnat-style: (gnat-style). GNAT Coding Style ++* gnat-style: (gnat-style). GNAT Coding Style + @end direntry + + @macro syntax{element} +--- a/gcc/ada/gnat_ugn.texi 2005-12-06 23:45:52.983574000 +0100 ++++ b/gcc/ada/gnat_ugn.texi 2005-12-11 02:35:45.580878360 +0100 +@@ -109,9 +109,9 @@ + @end macro + + @settitle @value{EDITION} User's Guide @value{PLATFORM} +-@dircategory GNU Ada tools ++@dircategory Programming Languages: + @direntry +-* @value{EDITION} User's Guide: (gnat_ugn). @value{PLATFORM} ++* GNAT User's Guide (gnat_ugn_unw). GNAT User's Guide + @end direntry + + @include gcc-common.texi +--- a/gcc/fortran/gfortran.texi 2004-09-16 15:13:39.000000000 +0200 ++++ b/gcc/fortran/gfortran.texi 2004-09-26 11:05:50.258074024 +0200 +@@ -62,9 +62,9 @@ + @end copying + + @ifinfo +-@dircategory Software development ++@dircategory Programming Languages: + @direntry +-* gfortran: (gfortran). The GNU Fortran Compiler. ++* gfortran: (gfortran). The GNU Fortran Compiler + @end direntry + This file documents the use and the internals of + the GNU Fortran compiler, (@command{gfortran}). +--- a/gcc/java/gcj.texi 2006-07-02 15:30:47.000000000 +0200 ++++ b/gcc/java/gcj.texi 2006-07-02 21:15:25.663463500 +0200 +@@ -53,29 +53,22 @@ + + @ifinfo + @format +-@dircategory Software development ++@dircategory Programming Languages: + @direntry +-* Gcj: (gcj). Ahead-of-time compiler for the Java language ++* Gcj: (gcj). Ahead-of-time compiler for the Java language + @end direntry + + @dircategory Individual utilities ++@dircategory Programming tools: + @direntry +-* jcf-dump: (gcj)Invoking jcf-dump. +- Print information about Java class files +-* gij: (gcj)Invoking gij. GNU interpreter for Java bytecode +-* gcj-dbtool: (gcj)Invoking gcj-dbtool. +- Tool for manipulating class file databases. +-* jv-convert: (gcj)Invoking jv-convert. +- Convert file from one encoding to another +-* grmic: (gcj)Invoking grmic. +- Generate stubs for Remote Method Invocation. +-* gc-analyze: (gcj)Invoking gc-analyze. +- Analyze Garbage Collector (GC) memory dumps. +-* aot-compile: (gcj)Invoking aot-compile. +- Compile bytecode to native and generate databases. +-* rebuild-gcj-db: (gcj)Invoking rebuild-gcj-db. +- Merge the per-solib databases made by aot-compile +- into one system-wide database. ++* jcf-dump: (gcj)jcf-dump. Print information about Java class files ++* gij: (gcj)gij. GNU interpreter for Java bytecode ++* jv-convert: (gcj)jv-convert. Convert file from one encoding to another ++* gcj-dbtool: (gcj)gcj-dbtool. Db tool. ++* grmic: (gcj)grmic. Generate stubs for Remote Method Invocation. ++* gc-analyze: (gcj)gc-analyze. Analyze Garbage Collector (GC) memory dumps. ++* aot-compile: Compile bytecode to native and generate databases. ++* rebuild-gcj-db: Merge the per-solib databases made by aot-compile into one system-wide database. + @end direntry + @end format + +@@ -108,33 +101,31 @@ + @file{.class} files. + + @menu +-* Copying:: The GNU General Public License ++* Copying:: The GNU General Public License + * GNU Free Documentation License:: +- How you can share and copy this manual +-* Invoking gcj:: Compiler options supported by @command{gcj} +-* Compatibility:: Compatibility between gcj and other tools for Java +-* Invoking jcf-dump:: Print information about class files +-* Invoking gij:: Interpreting Java bytecodes +-* Invoking gcj-dbtool:: Tool for manipulating class file databases. +-* Invoking jv-convert:: Converting from one encoding to another +-* Invoking grmic:: Generate stubs for Remote Method Invocation. +-* Invoking gc-analyze:: Analyze Garbage Collector (GC) memory dumps. +-* Invoking aot-compile:: Compile bytecode to native and generate databases. +-* Invoking rebuild-gcj-db:: Merge the per-solib databases made by aot-compile +- into one system-wide database. +-* About CNI:: Description of the Compiled Native Interface +-* System properties:: Modifying runtime behavior of the libgcj library +-* Resources:: Where to look for more information +-* Index:: Index. ++ How you can share and copy this manual ++* gcj:: Compiler options supported by @command{gcj} ++* Compatibility:: Compatibility between gcj and other tools for Java ++* jcf-dump:: Print information about class files ++* gij:: Interpreting Java bytecodes ++* gcj-dbtool:: Tool for manipulating class file databases. ++* jv-convert:: Converting from one encoding to another ++* grmic:: Generate stubs for Remote Method Invocation. ++* gc-analyze:: Analyze Garbage Collector (GC) memory dumps. ++* aot-compile:: Compile bytecode to native and generate databases. ++* rebuild-gcj-db:: Merge the per-solib databases made by aot-compile into one system-wide database. ++* About CNI:: Description of the Compiled Native Interface ++* System properties:: Modifying runtime behavior of the libgcj library ++* Resources:: Where to look for more information ++* Index:: Index. + @end menu + +- + @include gpl_v3.texi + + @include fdl.texi + + +-@node Invoking gcj ++@node gcj + @chapter Invoking gcj + + @c man title gcj Ahead-of-time compiler for the Java language +@@ -678,8 +669,8 @@ + @code{-findirect-dispatch} then add them to the system-wide + classmap.db file using @code{gcj-dbtool}, they will be automatically + loaded by the @code{libgcj} system classloader. This is the new, +-preferred classname-to-library resolution mechanism. @xref{Invoking +-gcj-dbtool}, for more information on using the classmap database. ++preferred classname-to-library resolution mechanism. @xref{gcj-dbtool}, ++for more information on using the classmap database. + + @item + The old classname-to-library lookup mechanism is still supported +@@ -726,7 +717,7 @@ + @end itemize + + +-@node Invoking jcf-dump ++@node jcf-dump + @chapter Invoking jcf-dump + + @c man title jcf-dump print information about Java class files +@@ -786,7 +777,7 @@ + + @c man end + +-@node Invoking gij ++@node gij + @chapter Invoking gij + + @c man title gij GNU interpreter for Java bytecode +@@ -915,7 +906,7 @@ + + @c man end + +-@node Invoking gcj-dbtool ++@node gcj-dbtool + @chapter Invoking gcj-dbtool. + + @c man title gcj-dbtool Manipulate class file mapping databases for libgcj +@@ -1006,7 +997,7 @@ + + @c man end + +-@node Invoking jv-convert ++@node jv-convert + @chapter Invoking jv-convert + + @c man title jv-convert Convert file from one encoding to another +@@ -1065,7 +1056,7 @@ + + @c man end + +-@node Invoking grmic ++@node grmic + @chapter Invoking grmic + + @c man title grmic Generate stubs for Remote Method Invocation +@@ -1144,7 +1135,7 @@ + @c man end + + +-@node Invoking gc-analyze ++@node gc-analyze + @chapter Invoking gc-analyze + + @c man title gc-analyze Analyze Garbage Collector (GC) memory dumps +@@ -1227,7 +1218,7 @@ + + @c man end + +-@node Invoking aot-compile ++@node aot-compile + @chapter Invoking aot-compile + + @c man title aot-compile Compile bytecode to native and generate databases +@@ -1285,7 +1276,7 @@ + + @c man end + +-@node Invoking rebuild-gcj-db ++@node rebuild-gcj-db + @chapter Invoking rebuild-gcj-db + + @c man title rebuild-gcj-db Merge the per-solib databases made by aot-compile into one system-wide database. +--- a/gcc/ada/gnat_rm.texi 2005-11-30 12:12:06.000000000 +0100 ++++ b/gcc/ada/gnat_rm.texi 2005-12-11 02:36:14.863426736 +0100 +@@ -26,9 +26,9 @@ + + @include gcc-common.texi + +-@dircategory GNU Ada tools ++@dircategory Programming Languages: + @direntry +-* GNAT Reference Manual: (gnat_rm). Reference Manual for GNU Ada tools. ++* GNAT Reference Manual: (gnat_rm). Reference Manual for GNU Ada tools + @end direntry + + @copying +--- a/gcc/doc/install.texi 2005-11-30 12:02:42.000000000 +0100 ++++ b/gcc/doc/install.texi 2005-12-11 02:44:22.598279768 +0100 +@@ -87,9 +87,9 @@ + @ifinfo + @insertcopying + @end ifinfo +-@dircategory Software development ++@dircategory Programming Languages: + @direntry +-* gccinstall: (gccinstall). Installing the GNU Compiler Collection. ++* gccinstall: (gccinstall). Installing the GNU Compiler Collection + @end direntry + + @c Part 3 Titlepage and Copyright diff --git a/gcc-libjava-multilib.patch b/gcc-libjava-multilib.patch new file mode 100644 index 0000000..0ae37c1 --- /dev/null +++ b/gcc-libjava-multilib.patch @@ -0,0 +1,47 @@ +--- libjava/configure.ac.jj 2007-12-07 17:55:50.000000000 +0100 ++++ libjava/configure.ac 2007-12-07 18:36:56.000000000 +0100 +@@ -82,6 +82,13 @@ AC_ARG_ENABLE(java-maintainer-mode, + [allow rebuilding of .class and .h files])) + AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes) + ++AC_ARG_ENABLE(libjava-multilib, ++ AS_HELP_STRING([--enable-libjava-multilib], [build libjava as multilib])) ++if test "$enable_libjava_multilib" = no; then ++ multilib=no ++ ac_configure_args="$ac_configure_args --disable-multilib" ++fi ++ + # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX. + GCC_NO_EXECUTABLES + +--- libjava/configure.jj 2007-12-07 17:55:50.000000000 +0100 ++++ libjava/configure 2007-12-07 18:39:58.000000000 +0100 +@@ -1018,6 +1018,8 @@ Optional Features: + --enable-gconf-peer compile GConf native peers for util.preferences + --enable-java-maintainer-mode + allow rebuilding of .class and .h files ++ --enable-libjava-multilib ++ build libjava as multilib + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --enable-maintainer-mode enable make rules and dependencies not useful +@@ -1848,6 +1850,16 @@ else + fi + + ++# Check whether --enable-libjava-multilib was given. ++if test "${enable_libjava_multilib+set}" = set; then ++ enableval=$enable_libjava_multilib; ++fi ++ ++if test "$enable_libjava_multilib" = no; then ++ multilib=no ++ ac_configure_args="$ac_configure_args --disable-multilib" ++fi ++ + # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX. + + + + Jakub + diff --git a/gcc-nodebug.patch b/gcc-nodebug.patch new file mode 100644 index 0000000..6115833 --- /dev/null +++ b/gcc-nodebug.patch @@ -0,0 +1,107 @@ +--- 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 +@@ -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 + # to the stage2 and stage3 compilations +-CFLAGS = -g ++CFLAGS = + BOOT_CFLAGS = -O $(CFLAGS) + # These exists to be overridden by the t-* files, respectively. + T_CFLAGS = +@@ -102,9 +102,9 @@ + ADA_CFLAGS = + ADAFLAGS = -W -Wall -gnatpg -gnata + SOME_ADAFLAGS =-gnata +-FORCE_DEBUG_ADAFLAGS = -g ++FORCE_DEBUG_ADAFLAGS = + GNATLIBFLAGS = -gnatpg -nostdinc +-GNATLIBCFLAGS = -g -O2 ++GNATLIBCFLAGS = -O2 + # 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= +-GNATLIBCFLAGS= -g -O2 ++GNATLIBCFLAGS= -O2 + GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -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) + 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 @@ + 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)) + +--- 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 @@ + ## Extra CFLAGS used for JNI C sources shared with GNU Classpath. + PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long + +-JCFLAGS = -g ++JCFLAGS = + 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) + 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) \ diff --git a/gcc-nolocalefiles.patch b/gcc-nolocalefiles.patch new file mode 100644 index 0000000..a799c54 --- /dev/null +++ b/gcc-nolocalefiles.patch @@ -0,0 +1,11 @@ +--- gcc-4.2.0/libstdc++-v3/configure.orig 2007-06-03 03:02:48.949324693 -0400 ++++ gcc-4.2.0/libstdc++-v3/configure 2007-06-03 03:11:31.035566610 -0400 +@@ -5865,7 +5865,7 @@ + int j; + __locale_t loc; + __locale_t loc_dup; +- loc = __newlocale(1 << LC_ALL, "de_DE", 0); ++ loc = __newlocale(1 << LC_ALL, "C", 0); + loc_dup = __duplocale(loc); + i = __strcoll_l(__one, __two, loc); + j = __strcoll_l(__one, __two, loc_dup); diff --git a/gcc-optimize-la.pl b/gcc-optimize-la.pl new file mode 100644 index 0000000..5624529 --- /dev/null +++ b/gcc-optimize-la.pl @@ -0,0 +1,43 @@ +#!/usr/bin/perl + +sub trim +{ + my $string = shift; + $string =~ s/^\s+//; + $string =~ s/\s+$//; + return $string; +} + +open(F, $ARGV[0]) or die("cannot open file: $ARGV[0]\n"); +@lines = ; +close(F); + +@deps = (); + +foreach (@lines) +{ + if (/(^dependency_libs='(.*)')/) + { + @libs = split(/[\ \t\n]+/, trim($2)); + @L = grep(/^-L.*gcc\/.*\/\d\.\d\.\d(\/32)*$/, @libs); + @l = grep(/^-l.*/, @libs); + $opt_L = join(' ', @L); + $opt_l = join(' ', @l); + print("dependency_libs='"); + print($opt_L); + if (scalar(@L)) + { + print(" "); + } + print($opt_l); + print("'\n"); + } + elsif (/^libdir='(.*)'/) + { + print("libdir='$ARGV[1]'\n"); + } + else + { + print($_); + } +} diff --git a/gcc-plugin-decl-hook.patch b/gcc-plugin-decl-hook.patch new file mode 100644 index 0000000..9865f65 --- /dev/null +++ b/gcc-plugin-decl-hook.patch @@ -0,0 +1,192 @@ +Date: Tue, 22 Dec 2009 10:00:29 -0800 +Subject: plugin event for C/C++ declarations +From: Brian Hackett +To: gcc-patches at gcc dot gnu dot org + +Hi, this patch adds a new plugin event FINISH_DECL, which is invoked +at every finish_decl in the C and C++ frontends. Previously there did +not seem to be a way for a plugin to see the definition for a global +that is never used in the input file, or the initializer for a global +which is declared before a function but defined after. This event +isn't restricted to just globals though, but also locals, fields, and +parameters (C frontend only). + +Index: gcc/doc/plugins.texi +=================================================================== +--- gcc/doc/plugins.texi (revision 155401) ++++ gcc/doc/plugins.texi (working copy) +@@ -146,6 +146,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. */ +Index: gcc/plugin.def +=================================================================== +--- gcc/plugin.def (revision 155386) ++++ gcc/plugin.def (working copy) +@@ -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) + +Index: gcc/testsuite/g++.dg/plugin/plugin.exp +=================================================================== +--- gcc/testsuite/g++.dg/plugin/plugin.exp (revision 155401) ++++ gcc/testsuite/g++.dg/plugin/plugin.exp (working copy) +@@ -51,7 +51,8 @@ set plugin_test_list [list \ + { pragma_plugin.c pragma_plugin-test-1.C } \ + { selfassign.c self-assign-test-1.C self-assign-test-2.C self-assign-test-3.C } \ + { dumb_plugin.c dumb-plugin-test-1.C } \ +- { header_plugin.c header-plugin-test.C } ] ++ { header_plugin.c header-plugin-test.C } \ ++ { decl_plugin.c decl-plugin-test.C } ] + + foreach plugin_test $plugin_test_list { + # Replace each source file with its full-path name +Index: gcc/testsuite/g++.dg/plugin/decl-plugin-test.C +=================================================================== +--- gcc/testsuite/g++.dg/plugin/decl-plugin-test.C (revision 0) ++++ gcc/testsuite/g++.dg/plugin/decl-plugin-test.C (revision 0) +@@ -0,0 +1,32 @@ ++ ++ ++extern int global; // { dg-warning "Decl Global global" } ++int global_array[] = { 1, 2, 3 }; // { dg-warning "Decl Global global_array" } ++ ++int takes_args(int arg1, int arg2) ++{ ++ int local = arg1 + arg2 + global; // { dg-warning "Decl Local local" } ++ return local + 1; ++} ++ ++int global = 12; // { dg-warning "Decl Global global" } ++ ++struct test_str { ++ int field; // { dg-warning "Decl Field field" } ++}; ++ ++class test_class { ++ int class_field1; // { dg-warning "Decl Field class_field1" } ++ int class_field2; // { dg-warning "Decl Field class_field2" } ++ ++ test_class() // { dg-warning "Decl Function test_class" } ++ : class_field1(0), class_field2(0) ++ {} ++ ++ void swap_fields(int bias) // { dg-warning "Decl Function swap_fields" } ++ { ++ int temp = class_field1 + bias; // { dg-warning "Decl Local temp" } ++ class_field1 = class_field2 - bias; ++ class_field2 = temp; ++ } ++}; +Index: gcc/testsuite/g++.dg/plugin/decl_plugin.c +=================================================================== +--- gcc/testsuite/g++.dg/plugin/decl_plugin.c (revision 0) ++++ gcc/testsuite/g++.dg/plugin/decl_plugin.c (revision 0) +@@ -0,0 +1,51 @@ ++/* A plugin example that shows which declarations are caught by FINISH_DECL */ ++ ++#include "gcc-plugin.h" ++#include ++#include "config.h" ++#include "system.h" ++#include "coretypes.h" ++#include "tree.h" ++#include "tree-pass.h" ++#include "intl.h" ++ ++int plugin_is_GPL_compatible; ++ ++/* Callback function to invoke after GCC finishes a declaration. */ ++ ++void plugin_finish_decl (void *event_data, void *data) ++{ ++ tree decl = (tree) event_data; ++ ++ const char *kind = NULL; ++ switch (TREE_CODE(decl)) { ++ case FUNCTION_DECL: ++ kind = "Function"; break; ++ case PARM_DECL: ++ kind = "Parameter"; break; ++ case VAR_DECL: ++ if (DECL_CONTEXT(decl) != NULL) ++ kind = "Local"; ++ else ++ kind = "Global"; ++ break; ++ case FIELD_DECL: ++ kind = "Field"; break; ++ default: ++ kind = "Unknown"; ++ } ++ ++ warning (0, G_("Decl %s %s"), ++ kind, IDENTIFIER_POINTER (DECL_NAME (decl))); ++} ++ ++int ++plugin_init (struct plugin_name_args *plugin_info, ++ struct plugin_gcc_version *version) ++{ ++ const char *plugin_name = plugin_info->base_name; ++ ++ register_callback (plugin_name, PLUGIN_FINISH_DECL, ++ plugin_finish_decl, NULL); ++ return 0; ++} +Index: gcc/cp/decl.c +=================================================================== +--- gcc/cp/decl.c (revision 155386) ++++ gcc/cp/decl.c (working copy) +@@ -5949,6 +5949,8 @@ cp_finish_decl (tree decl, tree init, bo + /* If this was marked 'used', be sure it will be output. */ + if (lookup_attribute ("used", DECL_ATTRIBUTES (decl))) + mark_decl_referenced (decl); ++ ++ invoke_plugin_callbacks(PLUGIN_FINISH_DECL, decl); + } + + /* Returns a declaration for a VAR_DECL as if: +Index: gcc/c-decl.c +=================================================================== +--- gcc/c-decl.c (revision 155386) ++++ gcc/c-decl.c (working copy) +@@ -4389,6 +4389,8 @@ finish_decl (tree decl, location_t init_ + && DECL_INITIAL (decl) == NULL_TREE) + warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wc___compat, + "uninitialized const %qD is invalid in C++", decl); ++ ++ invoke_plugin_callbacks(PLUGIN_FINISH_DECL, decl); + } + + /* Given a parsed parameter declaration, decode it into a PARM_DECL. */ +Index: gcc/plugin.c +=================================================================== +--- gcc/plugin.c (revision 155386) ++++ gcc/plugin.c (working copy) +@@ -403,6 +403,7 @@ register_callback (const char *plugin_na + 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: +@@ -484,6 +485,7 @@ invoke_plugin_callbacks (int event, void + 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.spec b/gcc.spec new file mode 100644 index 0000000..9f6905e --- /dev/null +++ b/gcc.spec @@ -0,0 +1,3004 @@ +# $Revision: 1.649.2.3 $, $Date: 2011/07/01 17:47:33 $ +# NOTE: despite lower soname, libffi is newer than standalone 3.0.9 +# +# TODO: +# - gconf peer? (but libgcj needs split anyway) +# - package? +# /usr/bin/aot-compile +# /usr/bin/gjdoc +# /usr/share/man/man1/aot-compile.1.gz +# /usr/share/man/man1/gjdoc.1.gz +# /usr/share/python/aotcompile.py +# /usr/share/python/classfile.py +# - missing libffi.pc required by some packages (eg. python-pygobject) +# +# Conditional build: +%bcond_without ada # build without ADA support +%bcond_without cxx # build without C++ support +%bcond_without fortran # build without Fortran support +%bcond_without gomp # build without OpenMP support +%bcond_without java # build without Java support +%bcond_without mudflap # build without Mudflap pointer debugging support +%bcond_without objc # build without Objective-C support +%bcond_without objcxx # build without Objective-C++ support +%bcond_without alsa # don't build libgcj ALSA MIDI interface +%bcond_without dssi # don't build libgcj DSSI MIDI interface +%bcond_without gtk # don't build libgcj GTK peer +%bcond_without apidocs # do not build and package API docs +%bcond_with mozilla # don't build libgcjwebplugin (needs fix for new xulrunner) +%bcond_with qt # build libgcj Qt peer (currently doesn't build with libtool-2.x) +%bcond_without x # don't build libgcj Xlib-dependent AWTs (incl. GTK/Qt) +%bcond_without multilib # build without multilib support (it needs glibc[32&64]-devel) +%bcond_with profiling # build with profiling +%bcond_without python # build without libstdc++ python pretty printers for gdb +%bcond_without bootstrap # omit 3-stage bootstrap +%bcond_with tests # torture gcc + +%if %{without cxx} +%undefine with_java +%undefine with_objcxx +%endif + +%if %{without objc} +%undefine with_objcxx +%endif + +%if %{without bootstrap} +%undefine with_profiling +%endif + +%if %{without x} +%undefine with_gtk +%undefine with_qt +%endif + +%ifnarch %{x8664} +%undefine with_multilib +%endif + +%define major_ver 4.5 +%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 11 + +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 +Summary(pl.UTF-8): Kolekcja kompilatorów GNU: kompilator C i pliki współdzielone +Summary(pt_BR.UTF-8): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados +Name: gcc +Version: %{major_ver}.%{minor_ver} +Release: 4 +Epoch: 6 +License: GPL v3+ +Group: Development/Languages +Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2 +# Source0-md5: 8e0b5c12212e185f3e4383106bfa9cc6 +Source1: %{name}-optimize-la.pl +Source2: ftp://sourceware.org/pub/java/ecj-%{major_ecj_ver}.jar +# Source2-md5: d7cd6a27c8801e66cbaa964a039ecfdb +# svn diff -x --ignore-eol-style svn://gcc.gnu.org/svn/gcc/tags/gcc_4_5_3_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch > gcc-branch.diff +Patch100: %{name}-branch.diff +Patch0: %{name}-info.patch +Patch1: %{name}-nolocalefiles.patch +Patch2: %{name}-nodebug.patch +Patch3: %{name}-ada-link.patch +Patch7: %{name}-libjava-multilib.patch +Patch8: %{name}-enable-java-awt-qt.patch +Patch9: %{name}-hash-style-gnu.patch +Patch11: %{name}-build-id.patch +Patch12: %{name}-plugin-decl-hook.patch +URL: http://gcc.gnu.org/ +BuildRequires: autoconf +%{?with_tests:BuildRequires: autogen} +BuildRequires: automake +# binutils 2.17.50.0.9 or newer are required for fixing PR middle-end/20218. +BuildRequires: binutils >= 2:2.17.50.0.9-1 +BuildRequires: bison +BuildRequires: chrpath >= 0.13-2 +%{?with_tests:BuildRequires: dejagnu} +BuildRequires: elfutils-devel >= 0.145-1 +BuildRequires: fileutils >= 4.0.41 +BuildRequires: flex +%if %{with ada} +BuildRequires: gcc(ada) +BuildRequires: gcc-ada +%endif +BuildRequires: gettext-devel +BuildRequires: glibc-devel >= 6:2.4-1 +%if %{with multilib} +BuildRequires: gcc(multilib) +%ifarch %{x8664} +BuildRequires: glibc-devel(i686) +%endif +%endif +BuildRequires: gmp-devel >= 4.1 +BuildRequires: libmpc-devel +BuildRequires: mpfr-devel >= 2.3.0 +%if %{with python} +BuildRequires: python-devel +BuildRequires: rpm-pythonprov +%endif +BuildRequires: rpmbuild(macros) >= 1.211 +BuildRequires: texinfo >= 4.1 +BuildRequires: zlib-devel +%if %{with java} +%{?with_alsa:BuildRequires: alsa-lib-devel} +%if %{with dssi} +BuildRequires: dssi-devel +BuildRequires: jack-audio-connection-kit-devel +%endif +BuildRequires: libxml2-devel >= 1:2.6.8 +BuildRequires: libxslt-devel >= 1.1.11 +BuildRequires: perl-base +BuildRequires: perl-tools-pod +BuildRequires: pkgconfig +BuildRequires: unzip +BuildRequires: zip +%if %{with gtk} +BuildRequires: cairo-devel >= 0.5.0 +BuildRequires: gtk+2-devel >= 2:2.4.0 +BuildRequires: libart_lgpl-devel +BuildRequires: pango-devel +BuildRequires: xorg-lib-libXt-devel +BuildRequires: xorg-lib-libXtst-devel +%endif +%if %{with qt} +BuildRequires: QtGui-devel >= 4.0.1 +BuildRequires: qt4-build >= 4.0.1 +%endif +%{?with_mozilla:BuildRequires: xulrunner-devel >= 1.8.1.3-1.20070321.5} +%endif +BuildConflicts: pdksh < 5.2.14-50 +Requires: binutils >= 3:2.20.51.0.2 +Requires: libgcc = %{epoch}:%{version}-%{release} +Provides: cpp = %{epoch}:%{version}-%{release} +%{?with_ada:Provides: gcc(ada)} +Obsoletes: cpp +Obsoletes: egcs-cpp +Obsoletes: gcc-chill +Obsoletes: gcc-cpp +Obsoletes: gcc-ksi +Obsoletes: gcc4 +Obsoletes: gont +Conflicts: glibc-devel < 2.2.5-20 +BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) + +%define _slibdir /%{_lib} +%if %{with multilib} +# 32-bit environment on x86-64 +%define _slibdir32 /lib +%define _libdir32 /usr/lib +%endif + +%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.*' + +%description +A compiler aimed at integrating all the optimizations and features +necessary for a high-performance and stable development environment. + +This package contains the C compiler and some files shared by various +parts of the GNU Compiler Collection. In order to use another GCC +compiler you will need to install the appropriate subpackage. + +%description -l es.UTF-8 +Un compilador que intenta integrar todas las optimalizaciones y +características necesarias para un entorno de desarrollo eficaz y +estable. + +Este paquete contiene el compilador de C y unos ficheros compartidos +por varias partes de la colección de compiladores GNU (GCC). Para usar +otro compilador de GCC será necesario que instale el subpaquete +adecuado. + +%description -l pl.UTF-8 +Kompilator, posiadający duże możliwości optymalizacyjne niezbędne do +wyprodukowania szybkiego i stabilnego kodu wynikowego. + +Ten pakiet zawiera kompilator C i pliki współdzielone przez różne +części kolekcji kompilatorów GNU (GCC). Å»eby używać innego kompilatora +z GCC, trzeba zainstalować odpowiedni podpakiet. + +%description -l pt_BR.UTF-8 +Este pacote adiciona infraestrutura básica e suporte a linguagem C ao +GNU Compiler Collection. + +%package multilib +Summary: GNU Compiler Collection: the C compiler 32-bit support +Summary(pl.UTF-8): Kolekcja kompilatorów GNU: obsługa binariów 32-bitowych dla kompilatora C +License: GPL v3+ +Group: Development/Languages +Requires: %{name} +Requires: libgcc-multilib = %{epoch}:%{version}-%{release} +%{?with_multilib:Provides: gcc(multilib)} +Obsoletes: libgcc32 +%ifarch %{x8664} +Requires: glibc-devel(i686) +%endif + +%description multilib +A compiler aimed at integrating all the optimizations and features +necessary for a high-performance and stable development environment. + +This package contains the C compiler support for producing 32-bit +programs on 64-bit host. + +%description multilib -l pl.UTF-8 +Kompilator, posiadający duże możliwości optymalizacyjne niezbędne do +wyprodukowania szybkiego i stabilnego kodu wynikowego. + +Ten pakiet zawiera rozszerzenie kompilatora C o obsługę tworzenia +programów 32-bitowych na maszynie 64-bitowej. + +%package -n libgcc +Summary: Shared gcc library +Summary(es.UTF-8): Biblioteca compartida de gcc +Summary(pl.UTF-8): Biblioteka gcc +Summary(pt_BR.UTF-8): Biblioteca runtime para o GCC +License: GPL v2+ with unlimited link permission +Group: Libraries +Obsoletes: libgcc1 +Obsoletes: libgcc4 + +%description -n libgcc +Shared gcc library. + +%description -n libgcc -l es.UTF-8 +Biblioteca compartida de gcc. + +%description -n libgcc -l pl.UTF-8 +Biblioteka dynamiczna gcc. + +%description -n libgcc -l pt_BR.UTF-8 +Biblioteca runtime para o GCC. + +%package -n libgcc-multilib +Summary: Shared gcc library - 32-bit version +Summary(pl.UTF-8): Biblioteka gcc - wersja 32-bitowa +License: GPL v2+ with unlimited link permission +Group: Libraries + +%description -n libgcc-multilib +Shared gcc library - 32-bit version. + +%description -n libgcc-multilib -l pl.UTF-8 +Biblioteka dynamiczna gcc - wersja 32-bitowa. + +%package -n libgomp +Summary: GNU OpenMP library +Summary(pl.UTF-8): Biblioteka GNU OpenMP +License: LGPL v2.1+ with unlimited link permission +Group: Libraries + +%description -n libgomp +GNU OpenMP library. + +%description -n libgomp -l pl.UTF-8 +Biblioteka GNU OpenMP. + +%package -n libgomp-multilib +Summary: GNU OpenMP library - 32-bit version +Summary(pl.UTF-8): Biblioteka GNU OpenMP - wersja 32-bitowa +License: LGPL v2.1+ with unlimited link permission +Group: Libraries + +%description -n libgomp-multilib +GNU OpenMP library - 32-bit version. + +%description -n libgomp-multilib -l pl.UTF-8 +Biblioteka GNU OpenMP - wersja 32-bitowa. + +%package -n libgomp-devel +Summary: Development files for GNU OpenMP library +Summary(pl.UTF-8): Pliki programistyczne biblioteki GNU OpenMP +License: LGPL v2.1+ with unlimited link permission +Group: Development/Libraries +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: libgomp = %{epoch}:%{version}-%{release} + +%description -n libgomp-devel +Development files for GNU OpenMP library. + +%description -n libgomp-devel -l pl.UTF-8 +Pliki programistyczne biblioteki GNU OpenMP. + +%package -n libgomp-multilib-devel +Summary: Development files for 32-bit version of GNU OpenMP library +Summary(pl.UTF-8): Pliki programistyczne wersji 32-bitowej biblioteki GNU OpenMP +License: LGPL v2.1+ with unlimited link permission +Group: Development/Libraries +Requires: libgomp-devel = %{epoch}:%{version}-%{release} + +%description -n libgomp-multilib-devel +Development files for 32-bit version of GNU OpenMP library. + +%description -n libgomp-multilib-devel -l pl.UTF-8 +Pliki programistyczne wersji 32-bitowej biblioteki GNU OpenMP. + +%package -n libgomp-static +Summary: Static GNU OpenMP library +Summary(pl.UTF-8): Statyczna biblioteka GNU OpenMP +License: LGPL v2.1+ with unlimited link permission +Group: Development/Libraries +Requires: libgomp-devel = %{epoch}:%{version}-%{release} + +%description -n libgomp-static +Static GNU OpenMP library. + +%description -n libgomp-static -l pl.UTF-8 +Statyczna biblioteka GNU OpenMP. + +%package -n libgomp-multilib-static +Summary: Static GNU OpenMP library - 32-bit version +Summary(pl.UTF-8): Statyczna biblioteka GNU OpenMP - wersja 32-bitowa +License: LGPL v2.1+ with unlimited link permission +Group: Development/Libraries +Requires: libgomp-multilib-devel + +%description -n libgomp-multilib-static +Static GNU OpenMP library - 32-bit version. + +%description -n libgomp-multilib-static -l pl.UTF-8 +Statyczna biblioteka GNU OpenMP - wersja 32-bitowa. + +%package -n libmudflap +Summary: GCC mudflap shared support libraries +Summary(pl.UTF-8): Współdzielone biblioteki wspomagająca GCC mudflap +License: GPL v2+ with unlimited link permission +Group: Libraries + +%description -n libmudflap +The libmudflap libraries are used by GCC for instrumenting pointer and +array dereferencing operations. + +%description -n libmudflap -l pl.UTF-8 +Biblioteki libmudflap są używane przez GCC do obsługi operacji +dereferencji wspaźników i tablic. + +%package -n libmudflap-multilib +Summary: GCC mudflap shared support libraries - 32-bit version +Summary(pl.UTF-8): Współdzielone biblioteki wspomagająca GCC mudflap - wersja 32-bitowa +License: GPL v2+ with unlimited link permission +Group: Libraries + +%description -n libmudflap-multilib +The libmudflap libraries are used by GCC for instrumenting pointer and +array dereferencing operations. This package contains 32-bit version. + +%description -n libmudflap-multilib -l pl.UTF-8 +Biblioteki libmudflap są używane przez GCC do obsługi operacji +dereferencji wspaźników i tablic. Ten pakiet zawiera wersje 32-bitowe. + +%package -n libmudflap-devel +Summary: Development files for GCC mudflap libraries +Summary(pl.UTF-8): Pliki programistyczne bibliotek GCC mudflap +License: GPL v2+ with unlimited link permission +Group: Development/Libraries +Requires: libmudflap = %{epoch}:%{version}-%{release} + +%description -n libmudflap-devel +The libmudflap libraries are used by GCC for instrumenting pointer and +array dereferencing operations. This package contains development +files. + +%description -n libmudflap-devel -l pl.UTF-8 +Biblioteki libmudflap są używane przez GCC do obsługi operacji +dereferencji wspaźników i tablic. Ten pakiet zawiera pliki +programistyczne. + +%package -n libmudflap-multilib-devel +Summary: Development files for 32-bit version of GCC mudflap libraries +Summary(pl.UTF-8): Pliki programistyczne wersji 32-bitowych bibliotek GCC mudflap +License: GPL v2+ with unlimited link permission +Group: Development/Libraries +Requires: libmudflap-devel = %{epoch}:%{version}-%{release} + +%description -n libmudflap-multilib-devel +The libmudflap libraries are used by GCC for instrumenting pointer and +array dereferencing operations. This package contains development +files for 32-bit version of the libraries. + +%description -n libmudflap-multilib-devel -l pl.UTF-8 +Biblioteki libmudflap są używane przez GCC do obsługi operacji +dereferencji wspaźników i tablic. Ten pakiet zawiera pliki +programistyczne wersji 32-bitowych bibliotek. + +%package -n libmudflap-static +Summary: Static GCC mudflap libraries +Summary(pl.UTF-8): Statyczne biblioteki GCC mudflap +License: GPL v2+ with unlimited link permission +Group: Development/Libraries +Requires: libmudflap-devel = %{epoch}:%{version}-%{release} + +%description -n libmudflap-static +The libmudflap libraries are used by GCC for instrumenting pointer and +array dereferencing operations. This package contains static +libraries. + +%description -n libmudflap-static -l pl.UTF-8 +Biblioteki libmudflap są używane przez GCC do obsługi operacji +dereferencji wspaźników i tablic. Ten pakiet zawiera biblioteki +statyczne. + +%package -n libmudflap-multilib-static +Summary: Static GCC mudflap libraries - 32-bit version +Summary(pl.UTF-8): Statyczne biblioteki GCC mudflap - wersje 32-bitowa +License: GPL v2+ with unlimited link permission +Group: Development/Libraries +Requires: libmudflap-multilib-devel = %{epoch}:%{version}-%{release} + +%description -n libmudflap-multilib-static +The libmudflap libraries are used by GCC for instrumenting pointer and +array dereferencing operations. This package contains 32-bit static +libraries. + +%description -n libmudflap-multilib-static -l pl.UTF-8 +Biblioteki libmudflap są używane przez GCC do obsługi operacji +dereferencji wspaźników i tablic. Ten pakiet zawiera biblioteki +statyczne 32-bitowe. + +%package ada +Summary: Ada support for gcc +Summary(es.UTF-8): Soporte de Ada para gcc +Summary(pl.UTF-8): Obsługa Ady do gcc +Group: Development/Languages +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: libgnat = %{epoch}:%{version}-%{release} +Obsoletes: gcc-gnat +Obsoletes: gnat-devel + +%description ada +This package adds experimental support for compiling Ada programs. + +%description ada -l es.UTF-8 +Este paquete añade soporte experimental para compilar programas en +Ada. + +%description ada -l pl.UTF-8 +Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w +Adzie. + +%package ada-multilib +Summary: Ada 32-bit support for gcc +Summary(pl.UTF-8): Obsługa 32-bitowych binariów Ady dla gcc +Group: Development/Languages +Requires: %{name}-ada = %{epoch}:%{version}-%{release} +Requires: libgnat-multilib = %{epoch}:%{version}-%{release} + +%description ada-multilib +This package adds experimental support for compiling 32-bit Ada +programs on 64-bit host. + +%description ada-multilib -l pl.UTF-8 +Ten pakiet dodaje eksperymentalną obsługę kompilacji programów +32-bitowych w Adzie na maszynie 64-bitowej. + +%package -n libgnat +Summary: Ada standard libraries +Summary(es.UTF-8): Bibliotecas estándares de Ada +Summary(pl.UTF-8): Biblioteki standardowe dla Ady +License: GPL v2+ with linking exception +Group: Libraries +Obsoletes: gnat +Obsoletes: libgnat1 + +%description -n libgnat +This package contains shared libraries needed to run programs written +in Ada. + +%description -n libgnat -l es.UTF-8 +Este paquete contiene las bibliotecas compartidas necesarias para +ejecutar programas escritos en Ada. + +%description -n libgnat -l pl.UTF-8 +Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów +napisanych w Adzie. + +%package -n libgnat-multilib +Summary: Ada standard libraries - 32-bit version +Summary(pl.UTF-8): Biblioteki standardowe dla Ady - wersja 32-bitowa +License: GPL v2+ with linking exception +Group: Libraries + +%description -n libgnat-multilib +This package contains 32-bit version of shared libraries needed to run +programs written in Ada. + +%description -n libgnat-multilib -l pl.UTF-8 +Ten pakiet zawiera wersje 32-bitowe bibliotek potrzebnych do +uruchamiania programów napisanych w Adzie. + +%package -n libgnat-static +Summary: Static Ada standard libraries +Summary(pl.UTF-8): Statyczne biblioteki standardowe dla Ady +License: GPL v2+ with linking exception +Group: Development/Libraries +Obsoletes: gnat-static + +%description -n libgnat-static +This package contains static libraries for programs written in Ada. + +%description -n libgnat-static -l pl.UTF-8 +Ten pakiet zawiera biblioteki statyczne dla programów napisanych w +Adzie. + +%package -n libgnat-multilib-static +Summary: Static Ada standard libraries - 32-bit version +Summary(pl.UTF-8): Statyczne biblioteki standardowe dla Ady - wersje 32-bitowe +License: GPL v2+ with linking exception +Group: Development/Libraries + +%description -n libgnat-multilib-static +This package contains 32-bit version of static libraries for programs +written in Ada. + +%description -n libgnat-multilib-static -l pl.UTF-8 +Ten pakiet zawiera 32-bitowe wersje bibliotek statycznych dla +programów napisanych w Adzie. + +%package c++ +Summary: C++ support for gcc +Summary(es.UTF-8): Soporte de C++ para gcc +Summary(pl.UTF-8): Obsługa C++ dla gcc +Summary(pt_BR.UTF-8): Suporte C++ para o gcc +Group: Development/Languages +Requires: %{name} = %{epoch}:%{version}-%{release} +Obsoletes: egcc-c++ +Obsoletes: egcs-c++ +Obsoletes: gcc4-c++ + +%description c++ +This package adds C++ support to the GNU Compiler Collection. It +includes support for most of the current C++ specification, including +templates and exception handling. It does not include a standard C++ +library, which is available separately. + +%description c++ -l de.UTF-8 +Dieses Paket enthält die C++-Unterstützung für den +GNU-Compiler-Collection. Es unterstützt die aktuelle +C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine +C++-Standard-Library ist nicht enthalten - sie ist getrennt +erhältlich. + +%description c++ -l es.UTF-8 +Este paquete añade soporte de C++ al GCC (colección de compiladores +GNU). Ello incluye el soporte para la mayoría de la especificación +actual de C++, incluyendo plantillas y manejo de excepciones. No +incluye la biblioteca estándar de C++, la que es disponible separada. + +%description c++ -l fr.UTF-8 +Ce package ajoute un support C++ a la collection de compilateurs GNU. +Il comprend un support pour la plupart des spécifications actuelles de +C++, dont les modéles et la gestion des exceptions. Il ne comprend pas +une bibliothéque C++ standard, qui est disponible séparément. + +%description c++ -l pl.UTF-8 +Ten pakiet dodaje obsługę C++ do kompilatora gcc. Ma wsparcie dla +dużej ilości obecnych specyfikacji C++, nie zawiera natomiast +standardowych bibliotek C++, które są w oddzielnym pakiecie. + +%description c++ -l pt_BR.UTF-8 +Este pacote adiciona suporte C++ para o gcc. + +%description c++ -l tr.UTF-8 +Bu paket, GNU C derleyicisine C++ desteği ekler. 'Template'ler ve +aykırı durum işleme gibi çoğu güncel C++ tanımlarına uyar. Standart +C++ kitaplığı bu pakette yer almaz. + +%package c++-multilib +Summary: C++ 32-bit support for gcc +Summary(pl.UTF-8): Obsługa 32-bitowych binariów C++ dla gcc +Group: Development/Languages +Requires: %{name}-c++ = %{epoch}:%{version}-%{release} +Requires: %{name}-multilib = %{epoch}:%{version}-%{release} + +%description c++-multilib +This package adds 32-bit C++ support to the GNU Compiler Collection. + +%description c++-multilib -l pl.UTF-8 +Ten pakiet dodaje obsługę 32-bitowych binariów C++ do kompilatora gcc. + +%package -n libstdc++ +Summary: GNU C++ library +Summary(es.UTF-8): Biblioteca C++ de GNU +Summary(pl.UTF-8): Biblioteki GNU C++ +Summary(pt_BR.UTF-8): Biblioteca C++ GNU +License: GPL v2+ with free software exception +Group: Libraries +# >= instead of = to allow keeping older libstdc++ (with different soname) +Requires: libgcc >= %{epoch}:%{version}-%{release} +Obsoletes: libg++ +Obsoletes: libstdc++3 +Obsoletes: libstdc++4 + +%description -n libstdc++ +This is the GNU implementation of the standard C++ libraries, along +with additional GNU tools. This package includes the shared libraries +necessary to run C++ applications. + +%description -n libstdc++ -l de.UTF-8 +Dies ist die GNU-Implementierung der Standard-C++-Libraries mit +weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von +C++-Anwendungen erforderlichen gemeinsam genutzten Libraries. + +%description -n libstdc++ -l es.UTF-8 +Este es el soporte de las bibliotecas padrón del C++, junto con +herramientas GNU adicionales. El paquete incluye las bibliotecas +compartidas necesarias para ejecutar aplicaciones C++. + +%description -n libstdc++ -l fr.UTF-8 +Ceci est l'implémentation GNU des librairies C++ standard, ainsi que +des outils GNU supplémentaires. Ce package comprend les librairies +partagées nécessaires à l'exécution d'application C++. + +%description -n libstdc++ -l pl.UTF-8 +Pakiet ten zawiera biblioteki będące implementacją standardowych +bibliotek C++. Znajdują się w nim biblioteki dynamiczne niezbędne do +uruchomienia aplikacji napisanych w C++. + +%description -n libstdc++ -l pt_BR.UTF-8 +Este pacote é uma implementação da biblioteca padrão C++ v3, um +subconjunto do padrão ISO 14882. + +%description -n libstdc++ -l tr.UTF-8 +Bu paket, standart C++ kitaplıklarının GNU gerçeklemesidir ve C++ +uygulamalarının koşturulması için gerekli kitaplıkları içerir. + +%package -n libstdc++-multilib +Summary: GNU C++ library - 32-bit version +Summary(pl.UTF-8): Biblioteka GNU C++ - wersja 32-bitowa +License: GPL v2+ with free software exception +Group: Libraries +# >= instead of = to allow keeping older libstdc++ (with different soname) +Requires: libgcc-multilib >= %{epoch}:%{version}-%{release} + +%description -n libstdc++-multilib +This is 32-bit version of the GNU implementation of the standard C++ +library. + +%description -n libstdc++-multilib -l pl.UTF-8 +Ten pakiet ten zawiera 32-bitową wersję implementacji GNU biblioteki +standardowej C++. + +%package -n libstdc++-gdb +Summary: libstdc++ pretty printers for GDB +Summary(pl.UTF-8): Funkcje wypisujące dane libstdc++ dla GDB +Group: Development/Debuggers +Requires: python-gdb + +%description -n libstdc++-gdb +This package contains Python scripts for GDB pretty printing of the +libstdc++ types/containers. + +%description -n libstdc++-gdb -l pl.UTF-8 +Ten pakiet zawiera skrypty Pythona dla GDB służące do ładnego +wypisywania typów i kontenerów libstdc++. + +%package -n libstdc++-devel +Summary: Header files and documentation for C++ development +Summary(de.UTF-8): Header-Dateien zur Entwicklung mit C++ +Summary(es.UTF-8): Ficheros de cabecera y documentación para desarrollo C++ +Summary(fr.UTF-8): Fichiers d'en-tête et biblitothèques pour développer en C++ +Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja do biblioteki standardowej C++ +Summary(pt_BR.UTF-8): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++ +Summary(tr.UTF-8): C++ ile program geliştirmek için gerekli dosyalar +License: GPL v2+ with free software exception +Group: Development/Libraries +Requires: %{name}-c++ = %{epoch}:%{version}-%{release} +Requires: glibc-devel +Requires: libstdc++ = %{epoch}:%{version}-%{release} +Obsoletes: libg++-devel +Obsoletes: libstdc++3-devel +Obsoletes: libstdc++4-devel + +%description -n libstdc++-devel +This is the GNU implementation of the standard C++ libraries. This +package includes the header files needed for C++ development and +library documentation. + +%description -n libstdc++-devel -l es.UTF-8 +Este es el soporte de las bibliotecas padrón del lenguaje C++. Este +paquete incluye los archivos de inclusión y bibliotecas necesarios +para desarrollo de programas en lenguaje C++. + +%description -n libstdc++-devel -l pl.UTF-8 +Pakiet ten zawiera biblioteki będące implementacją standardowych +bibliotek C++. Znajdują się w nim pliki nagłówkowe wykorzystywane przy +programowaniu w języku C++ oraz dokumentacja biblioteki standardowej. + +%description -n libstdc++-devel -l pt_BR.UTF-8 +Este pacote inclui os arquivos de inclusão e bibliotecas necessárias +para desenvolvimento de programas C++. + +%package -n libstdc++-multilib-devel +Summary: Development files for C++ development - 32-bit version +Summary(pl.UTF-8): Pliki programistyczne biblioteki standardowej C++ - wersja 32-bitowa +License: GPL v2+ with free software exception +Group: Development/Libraries +Requires: %{name}-c++-multilib = %{epoch}:%{version}-%{release} +Requires: libstdc++-devel = %{epoch}:%{version}-%{release} +Requires: libstdc++-multilib = %{epoch}:%{version}-%{release} + +%description -n libstdc++-multilib-devel +This package contains the development files for 32-bit version of the +GNU implementation of the standard C++ library. + +%description -n libstdc++-multilib-devel -l pl.UTF-8 +Ten pakiet zawiera pliki programistyczne 32-bitowej wersji +implementacji GNU biblioteki standardowej C++. + +%package -n libstdc++-static +Summary: Static C++ standard library +Summary(es.UTF-8): Biblioteca estándar estática de C++ +Summary(pl.UTF-8): Statyczna biblioteka standardowa C++ +License: GPL v2+ with free software exception +Group: Development/Libraries +Requires: libstdc++-devel = %{epoch}:%{version}-%{release} +Obsoletes: libstdc++4-static + +%description -n libstdc++-static +Static C++ standard library. + +%description -n libstdc++-static -l es.UTF-8 +Biblioteca estándar estática de C++. + +%description -n libstdc++-static -l pl.UTF-8 +Statyczna biblioteka standardowa C++. + +%package -n libstdc++-multilib-static +Summary: Static C++ standard library - 32-bit version +Summary(pl.UTF-8): Statyczna biblioteka standardowa C++ - wersja 32-bitowa +License: GPL v2+ with free software exception +Group: Development/Libraries +Requires: libstdc++-multilib-devel = %{epoch}:%{version}-%{release} + +%description -n libstdc++-multilib-static +Static C++ standard library - 32-bit version. + +%description -n libstdc++-multilib-static -l pl.UTF-8 +Statyczna biblioteka standardowa C++ - wersja 32-bitowa. + +%package -n libstdc++-apidocs +Summary: C++ standard library API documentation +Summary(pl.UTF-8): Dokumentacja API biblioteki standardowej C++ +Group: Documentation + +%description -n libstdc++-apidocs +API and internal documentation for C++ standard library. + +%description -n libstdc++-apidocs -l pl.UTF-8 +Dokumentacja API i wewnętrzna biblioteki standardowej C++. + +%package fortran +Summary: Fortran 95 support for gcc +Summary(es.UTF-8): Soporte de Fortran 95 para gcc +Summary(pl.UTF-8): Obsługa Fortranu 95 dla gcc +Summary(pt_BR.UTF-8): Suporte Fortran 95 para o GCC +Group: Development/Languages/Fortran +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: libgfortran = %{epoch}:%{version}-%{release} +Provides: gcc-g77 = %{epoch}:%{version}-%{release} +Obsoletes: egcs-g77 +Obsoletes: gcc-g77 + +%description fortran +This package adds support for compiling Fortran 95 programs with the +GNU compiler. + +%description fortran -l es.UTF-8 +Este paquete añade soporte para compilar programas escritos en Fortran +95 con el compilador GNU. + +%description fortran -l pl.UTF-8 +Ten pakiet dodaje obsługę Fortranu 95 do kompilatora gcc. Jest +potrzebny do kompilowania programów pisanych w języku Fortran 95. + +%description fortran -l pt_BR.UTF-8 +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 +Group: Development/Languages/Fortran +Requires: %{name}-fortran = %{epoch}:%{version}-%{release} +Requires: libgfortran-multilib = %{epoch}:%{version}-%{release} + +%description fortran-multilib +This package adds support for compiling 32-bit Fortran 95 programs +with the GNU compiler. + +%description fortran-multilib -l pl.UTF-8 +Ten pakiet dodaje obsługę 32-bitowych programów w Fortranie 95 do +kompilatora gcc. + +%package -n libgfortran +Summary: Fortran 95 Library +Summary(es.UTF-8): Biblioteca de Fortran 95 +Summary(pl.UTF-8): Biblioteka Fortrana 95 +License: GPL v2+ with unlimited link permission +Group: Libraries +Obsoletes: libg2c + +%description -n libgfortran +Fortran 95 Library. + +%description -n libgfortran -l es.UTF-8 +Biblioteca de Fortran 95. + +%description -n libgfortran -l pl.UTF-8 +Biblioteka Fortrana 95. + +%package -n libgfortran-multilib +Summary: Fortran 95 Library - 32-bit version +Summary(pl.UTF-8): Biblioteka Fortrana 95 - wersja 32-bitowa +License: GPL v2+ with unlimited link permission +Group: Libraries + +%description -n libgfortran-multilib +Fortran 95 Library - 32-bit version. + +%description -n libgfortran-multilib -l pl.UTF-8 +Biblioteka Fortrana 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 +License: GPL v2+ with unlimited link permission +Group: Development/Libraries +Requires: libgfortran = %{epoch}:%{version}-%{release} +Obsoletes: libg2c-static + +%description -n libgfortran-static +Static Fortran 95 Library. + +%description -n libgfortran-static -l es.UTF-8 +Bibliotecas estáticas de Fortran 95. + +%description -n libgfortran-static -l pl.UTF-8 +Statyczna biblioteka Fortrana 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 +License: GPL v2+ with unlimited link permission +Group: Development/Libraries +Requires: libgfortran-multilib = %{epoch}:%{version}-%{release} + +%description -n libgfortran-multilib-static +Static Fortran 95 Library - 32-bit version. + +%description -n libgfortran-multilib-static -l pl.UTF-8 +Statyczna biblioteka Fortrana 95 - wersja 32-bitowa. + +%package java +Summary: Java support for gcc +Summary(es.UTF-8): Soporte de Java para gcc +Summary(pl.UTF-8): Obsługa Javy dla gcc +Group: Development/Languages/Java +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: libgcj-devel = %{epoch}:%{version}-%{release} +Provides: gcc-java-tools +Provides: gcj = %{epoch}:%{version}-%{release} +Obsoletes: eclipse-ecj +Obsoletes: gcc-java-tools +Obsoletes: java-gnu-classpath-tools + +%description java +This package adds experimental support for compiling Java(TM) programs +and bytecode into native code. To use this you will also need the +libgcj package. + +%description java -l es.UTF-8 +Este paquete añade soporte experimental para compilar programas +Java(tm) y su bytecode en código nativo. Para usarlo también va a +necesitar el paquete libgcj. + +%description java -l pl.UTF-8 +Ten pakiet dodaje możliwość kompilowania programów w języku Java(TM) +oraz bajtkodu do kodu natywnego. Do używania go wymagany jest +dodatkowo pakiet libgcj. + +%package -n libgcj +Summary: Java Class Libraries +Summary(es.UTF-8): Bibliotecas de clases de Java +Summary(pl.UTF-8): Biblioteki Klas Javy +License: GPL v2+ with limited linking exception +Group: Libraries +Requires: jpackage-utils +Requires: libstdc++ = %{epoch}:%{version}-%{release} +Provides: java(ClassDataVersion) = %{_classdataversion} +Obsoletes: libgcj3 + +%description -n libgcj +Java Class Libraries. + +%description -n libgcj -l es.UTF-8 +Bibliotecas de clases de Java. + +%description -n libgcj -l pl.UTF-8 +Biblioteki Klas Javy. + +%package -n libgcj-devel +Summary: Development files for Java Class Libraries +Summary(es.UTF-8): Ficheros de desarrollo para las bibliotecas de clases de Java +Summary(pl.UTF-8): Pliki nagłówkowe dla Bibliotek Klas Javy +License: GPL v2+ with limited linking exception +Group: Development/Libraries +Requires: libgcj = %{epoch}:%{version}-%{release} +Requires: libstdc++-devel = %{epoch}:%{version}-%{release} +Requires: zlib-devel +Obsoletes: libgcj3-devel + +%description -n libgcj-devel +Development files for Java Class Libraries. + +%description -n libgcj-devel -l es.UTF-8 +Ficheros de desarrollo para las bibliotecas de clases de Java. + +%description -n libgcj-devel -l pl.UTF-8 +Pliki nagłówkowe dla Bibliotek Klas Javy. + +%package -n libgcj-static +Summary: Static Java Class Libraries +Summary(es.UTF-8): Bibliotecas estáticas de clases de Java +Summary(pl.UTF-8): Statyczne Biblioteki Klas Javy +License: GPL v2+ with limited linking exception +Group: Development/Libraries +Requires: libgcj-devel = %{epoch}:%{version}-%{release} + +%description -n libgcj-static +Static Java Class Libraries. + +%description -n libgcj-static -l es.UTF-8 +Bibliotecas estáticas de clases de Java. + +%description -n libgcj-static -l pl.UTF-8 +Statyczne Biblioteki Klas Javy. + +%package -n libffi +Summary: Foreign Function Interface library +Summary(es.UTF-8): Biblioteca de interfaz de funciones ajenas +Summary(pl.UTF-8): Biblioteka zewnętrznych wywołań funkcji +License: BSD-like +Group: Libraries + +%description -n libffi +The libffi library provides a portable, high level programming +interface to various calling conventions. This allows a programmer to +call any function specified by a call interface description at run +time. + +%description -n libffi -l es.UTF-8 +La biblioteca libffi provee una interfaz portable de programación de +alto nivel para varias convenciones de llamada. Ello permite que un +programador llame una función cualquiera especificada por una +descripción de interfaz de llamada en el tiempo de ejecución. + +%description -n libffi -l pl.UTF-8 +Biblioteka libffi dostarcza przenośnego, wysokopoziomowego +międzymordzia do różnych konwencji wywołań funkcji. Pozwala to +programiście wywoływać dowolne funkcje podając konwencję wywołania w +czasie wykonania. + +%package -n libffi-multilib +Summary: Foreign Function Interface library - 32-bit version +Summary(pl.UTF-8): Biblioteka zewnętrznych wywołań funkcji - wersja 32-bitowa +License: BSD-like +Group: Libraries + +%description -n libffi-multilib +The libffi library provides a portable, high level programming +interface to various calling conventions. This allows a programmer to +call any function specified by a call interface description at run +time. This package contains 32-bit version of the library. + +%description -n libffi-multilib -l pl.UTF-8 +Biblioteka libffi dostarcza przenośnego, wysokopoziomowego +międzymordzia do różnych konwencji wywołań funkcji. Pozwala to +programiście wywoływać dowolne funkcje podając konwencję wywołania w +czasie wykonania. Ten pakiet zawiera wersję 32-bitową biblioteki. + +%package -n libffi-devel +Summary: Development files for Foreign Function Interface library +Summary(es.UTF-8): Ficheros de desarrollo para libffi +Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libffi +License: BSD-like +Group: Development/Libraries +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: libffi = %{epoch}:%{version}-%{release} + +%description -n libffi-devel +Development files for Foreign Function Interface library. + +%description -n libffi-devel -l es.UTF-8 +Ficheros de desarrollo para libffi. + +%description -n libffi-devel -l pl.UTF-8 +Pliki nagłówkowe biblioteki libffi. + +%package -n libffi-multilib-devel +Summary: Development files for 32-bit version of Foreign Function Interface library +Summary(pl.UTF-8): Pliki programistyczne 32-bitowej wersji biblioteki libffi +License: BSD-like +Group: Development/Libraries +Requires: libffi-devel = %{epoch}:%{version}-%{release} +Requires: libffi-multilib = %{epoch}:%{version}-%{release} + +%description -n libffi-multilib-devel +Development files for 32-bit version of Foreign Function Interface +library. + +%description -n libffi-multilib-devel -l pl.UTF-8 +Pliki programistyczne 32-bitowej wersji biblioteki libffi. + +%package -n libffi-static +Summary: Static Foreign Function Interface library +Summary(es.UTF-8): Biblioteca libffi estática +Summary(pl.UTF-8): Statyczna biblioteka libffi +License: BSD-like +Group: Development/Libraries +Requires: libffi-devel = %{epoch}:%{version}-%{release} + +%description -n libffi-static +Static Foreign Function Interface library. + +%description -n libffi-static -l es.UTF-8 +Biblioteca libffi estática. + +%description -n libffi-static -l pl.UTF-8 +Statyczna biblioteka libffi. + +%package -n libffi-multilib-static +Summary: Static Foreign Function Interface library - 32-bit version +Summary(pl.UTF-8): Statyczna biblioteka libffi - wersja 32-bitowa +License: BSD-like +Group: Development/Libraries +Requires: libffi-multilib-devel = %{epoch}:%{version}-%{release} + +%description -n libffi-multilib-static +Static Foreign Function Interface library - 32-bit version. + +%description -n libffi-multilib-static -l pl.UTF-8 +Statyczna biblioteka libffi - wersja 32-bitowa. + +%package objc +Summary: Objective C support for gcc +Summary(de.UTF-8): Objektive C-Unterstützung für gcc +Summary(es.UTF-8): Soporte de Objective C para gcc +Summary(fr.UTF-8): Gestion d'Objective C pour gcc +Summary(pl.UTF-8): Obsługa obiektowego C dla kompilatora gcc +Summary(tr.UTF-8): gcc için Objective C desteği +Group: Development/Languages +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: libobjc = %{epoch}:%{version}-%{release} +Obsoletes: egcc-objc +Obsoletes: egcs-objc + +%description objc +This package adds Objective C support to the GNU Compiler Collection. +Objective C is a object oriented derivative of the C language, mainly +used on systems running NeXTSTEP. This package does not include the +standard objective C object library. + +%description objc -l de.UTF-8 +Dieses Paket ergänzt den GNU-Compiler-Collection durch +Objective-C-Support. Objective C ist ein objektorientiertes Derivat +von C, das zur Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt. +Die Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets. + +%description objc -l es.UTF-8 +Este paquete añade soporte de Objective C al GCC (colección de +compiladores GNU). Objective C es un lenguaje orientado a objetos +derivado de C, principalmente usado en sistemas que funcionan bajo +NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de +Objective C. + +%description objc -l fr.UTF-8 +Ce package ajoute un support Objective C a la collection de +compilateurs GNU. L'Objective C est un langage orienté objetdérivé du +langage C, principalement utilisé sur les systèmes NeXTSTEP. Ce +package n'inclue pas la bibliothéque Objective C standard. + +%description objc -l pl.UTF-8 +Ten pakiet dodaje obsługę obiektowego C do kompilatora gcc. Obiektowe +C (objc) jest zorientowaną obiektowo pochodną języka C, używaną +głównie w systemach używających NeXTSTEP. W pakiecie nie ma +standardowej biblioteki objc (która znajduje się w osobnym pakiecie). + +%description objc -l tr.UTF-8 +Bu paket, GNU C derleyicisine Objective C desteği ekler. Objective C, +C dilinin nesne yönelik bir türevidir ve NeXTSTEP altında çalışan +sistemlerde yaygın olarak kullanılır. Standart Objective C nesne +kitaplığı bu pakette yer almaz. + +%package objc-multilib +Summary: 32-bit Objective C support for gcc +Summary(pl.UTF-8): Obsługa 32-bitowych binariów Objective C dla kompilatora gcc +Group: Development/Languages +Requires: %{name}-multilib = %{epoch}:%{version}-%{release} +Requires: libobjc-multilib = %{epoch}:%{version}-%{release} + +%description objc-multilib +This package adds 32-bit Objective C support to the GNU Compiler +Collection. + +%description objc-multilib -l pl.UTF-8 +Ten pakiet dodaje obsługę 32-bitowych binariów Objective C do +kompilatora gcc. + +%package objc++ +Summary: Objective C++ support for gcc +Summary(pl.UTF-8): Obsługa języka Objective C++ dla gcc +Group: Development/Languages +Requires: %{name}-c++ = %{epoch}:%{version}-%{release} +Requires: %{name}-objc = %{epoch}:%{version}-%{release} + +%description objc++ +This package adds Objective C++ support to the GNU Compiler +Collection. + +%description objc++ -l pl.UTF-8 +Ten pakiet dodaje obsługę języka Objective C++ do zestawu kompilatorów +GNU Compiler Collection. + +%package -n libobjc +Summary: Objective C Library +Summary(es.UTF-8): Biblioteca de Objective C +Summary(pl.UTF-8): Biblioteka Obiektowego C +License: GPL v2+ with linking exception +Group: Libraries +Obsoletes: libobjc1 + +%description -n libobjc +Objective C Library. + +%description -n libobjc -l es.UTF-8 +Bibliotecas de Objective C. + +%description -n libobjc -l pl.UTF-8 +Biblioteka Obiektowego C. + +%package -n libobjc-multilib +Summary: Objective C Library - 32-bit version +Summary(pl.UTF-8): Biblioteka Obiektowego C - wersja 32-bitowa +License: GPL v2+ with linking exception +Group: Libraries + +%description -n libobjc-multilib +Objective C Library - 32-bit version. + +%description -n libobjc-multilib -l pl.UTF-8 +Biblioteka Obiektowego C - wersja 32-bitowa. + +%package -n libobjc-static +Summary: Static Objective C Library +Summary(es.UTF-8): Bibliotecas estáticas de Objective C +Summary(pl.UTF-8): Statyczna Biblioteka Obiektowego C +License: GPL v2+ with linking exception +Group: Development/Libraries +Requires: libobjc = %{epoch}:%{version}-%{release} + +%description -n libobjc-static +Static Objective C Library. + +%description -n libobjc-static -l es.UTF-8 +Bibliotecas estáticas de Objective C. + +%description -n libobjc-static -l pl.UTF-8 +Statyczna biblioteka Obiektowego C. + +%package -n libobjc-multilib-static +Summary: Static Objective C Library - 32-bit version +Summary(pl.UTF-8): Statyczna Biblioteka Obiektowego C - wersja 32-bitowa +License: GPL v2+ with linking exception +Group: Development/Libraries +Requires: libobjc-multilib = %{epoch}:%{version}-%{release} + +%description -n libobjc-multilib-static +Static Objective C Library - 32-bit version. + +%description -n libobjc-multilib-static -l pl.UTF-8 +Statyczna biblioteki Obiektowego C - wersja 32-bitowa. + +%prep +%setup -q +%patch100 -p0 +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 + +%patch7 -p0 +%if %{with qt} +%patch8 -p1 +%endif +%patch9 -p1 +%patch11 -p0 +%patch12 -p0 + +mv ChangeLog ChangeLog.general + +%if %{with java} +# see contrib/download_ecj +install %{SOURCE2} ecj.jar +%endif + +# override snapshot version. +echo %{version} > gcc/BASE-VER +echo "release" > gcc/DEV-PHASE + +%build +cd gcc +#{__autoconf} +cd .. +%if %{with qt} +cd libjava/classpath +%{__autoconf} +cd ../.. +%endif +cp -f /usr/share/automake/config.sub . + +rm -rf builddir && install -d builddir && cd builddir + +# http://www.mailinglistarchive.com/java%40gcc.gnu.org/msg02751.html +export JAR=no + +CC="%{__cc}" \ +CFLAGS="%{rpmcflags}" \ +CXXFLAGS="%{rpmcxxflags}" \ +TEXCONFIG=false \ +../configure \ + --prefix=%{_prefix} \ + --with-local-prefix=%{_prefix}/local \ + --libdir=%{_libdir} \ + --libexecdir=%{_libdir} \ + --infodir=%{_infodir} \ + --mandir=%{_mandir} \ + --x-libraries=%{_libdir} \ + --enable-checking=release \ + --enable-shared \ + --enable-threads=posix \ + --enable-linux-futex \ + --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,fortran}%{?with_objc:,objc}%{?with_objcxx:,obj-c++}%{?with_ada:,ada}%{?with_java:,java}" \ + --%{?with_gomp:en}%{!?with_gomp:dis}able-libgomp \ + --%{?with_mudflap:en}%{!?with_mudflap:dis}able-libmudflap \ + --enable-c99 \ + --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 +%ifarch sparc64 + --with-cpu=ultrasparc \ +%endif + --with-gnu-as \ + --with-gnu-ld \ + --with-demangler-in-ld \ + --with-system-zlib \ + --with-slibdir=%{_slibdir} \ +%ifnarch ia64 + --without-system-libunwind \ +%else + --with-system-libunwind \ +%endif + %{!?with_java:--without-x} \ + %{?with_fortran:--enable-cmath} \ + --with-long-double-128 \ +%ifarch ppc ppc64 + --enable-secureplt \ +%endif +%if %{with cxx} + --with-gxx-include-dir=%{_includedir}/c++/%{version} \ + --disable-libstdcxx-pch \ + --enable-__cxa_atexit \ + --enable-libstdcxx-allocator=new \ +%endif +%if %{with java} + --enable-libjava-multilib=no \ + %{!?with_alsa:--disable-alsa} \ + %{!?with_dssi:--disable-dssi} \ + --disable-gconf-peer \ +%if %{with x} + --enable-java-awt="xlib%{?with_gtk:,gtk}%{?with_qt:,qt}" \ +%endif + %{?with_mozilla:--enable-plugin} \ + --enable-libgcj \ + --enable-libgcj-multifile \ + --enable-libgcj-database \ + %{?with_gtk:--enable-gtk-cairo} \ + --enable-jni \ + --enable-xmlj \ +%endif + --%{?with_bootstrap:en}%{!?with_bootstrap:dis}able-bootstrap \ + --with-pkgversion="TLD-Linux" \ + --with-bugurl="http://www.tld-linux.org" \ + %{_target_platform} + +cd .. + +cat << 'EOF' > Makefile +all := $(filter-out all Makefile,$(MAKECMDGOALS)) + +all $(all): + $(MAKE) -C builddir $(MAKE_OPTS) $(all) \ + %{?with_bootstrap:%{?with_profiling:profiledbootstrap}} \ + GCJFLAGS="%{rpmcflags}" \ + BOOT_CFLAGS="%{rpmcflags}" \ + STAGE1_CFLAGS="%{rpmcflags} -O0" \ + GNATLIBCFLAGS="%{rpmcflags}" \ + LDFLAGS_FOR_TARGET="%{rpmldflags}" \ + mandir=%{_mandir} \ + infodir=%{_infodir} +EOF + +%{__make} + +%if %{with tests} +if [ ! -r /dev/pts/0 ]; then + echo "You need to have /dev/pts mounted to avoid expect's spawn failures!" + exit 1 +fi +%{__make} -k -C builddir check 2>&1 ||: +%endif + +%install +rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}} + +cd builddir + +%{__make} -j1 install \ + mandir=%{_mandir} \ + infodir=%{_infodir} \ + DESTDIR=$RPM_BUILD_ROOT + +install gcc/specs $RPM_BUILD_ROOT%{_libdir}/gcc/%{_target_platform}/%{version} + +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 + +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 +%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 +%endif + +%if %{with fortran} +ln -sf gfortran $RPM_BUILD_ROOT%{_bindir}/g95 +echo ".so gfortran.1" > $RPM_BUILD_ROOT%{_mandir}/man1/g95.1 +%endif + +%if %{with ada} +# move ada shared libraries to proper place... +mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \ + $RPM_BUILD_ROOT%{_libdir} +# check if symlink to be made is valid +test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-%{major_ver}.so.1 +ln -sf libgnat-%{major_ver}.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-%{major_ver}.so +ln -sf libgnarl-%{major_ver}.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-%{major_ver}.so +ln -sf libgnat-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so +ln -sf libgnarl-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so +%if %{with multilib} +mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/32/adalib/*.so.1 \ + $RPM_BUILD_ROOT%{_libdir32} +# check if symlink to be made is valid +test -f $RPM_BUILD_ROOT%{_libdir32}/libgnat-%{major_ver}.so.1 +ln -sf libgnat-%{major_ver}.so.1 $RPM_BUILD_ROOT%{_libdir32}/libgnat-%{major_ver}.so +ln -sf libgnarl-%{major_ver}.so.1 $RPM_BUILD_ROOT%{_libdir32}/libgnarl-%{major_ver}.so +ln -sf libgnat-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir32}/libgnat.so +ln -sf libgnarl-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir32}/libgnarl.so +%endif +%endif + +cd .. + +%if %{with java} +install -d java-doc +cp -f libjava/READ* java-doc +ln -sf libgcj-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/libgcj.jar +rm -f $RPM_BUILD_ROOT%{_libdir}/classpath/libgjs*.la +# tools.zip sources +rm -rf $RPM_BUILD_ROOT%{_datadir}/classpath/tools/gnu +%endif +%if %{with objc} +cp -f libobjc/README gcc/objc/README.libobjc +%endif + +%define gcjdbexecdir gcj-%{version}-%{gcj_soname_ver} + +# avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version} +# normalize libdir, to avoid propagation of unnecessary RPATHs by libtool +for f in libssp.la libssp_nonshared.la \ + %{?with_cxx:libstdc++.la libsupc++.la} \ + %{?with_fortran:libgfortran.la} \ + %{?with_gomp:libgomp.la} \ + %{?with_mudflap:libmudflap.la libmudflapth.la} \ +%if %{with java} + libffi.la libgcj.la libgcj-tools.la libgij.la \ + %{gcjdbexecdir}/libjvm.la \ + %{gcjdbexecdir}/libxmlj.la \ + %{?with_x:lib-gnu-awt-xlib.la} \ + %{?with_gtk:%{gcjdbexecdir}/libgtkpeer.la %{gcjdbexecdir}/libjawt.la} \ + %{?with_qt:%{gcjdbexecdir}/libqtpeer.la} \ + %{?with_alsa:%{gcjdbexecdir}/libgjsmalsa.la} \ + %{?with_dssi:%{gcjdbexecdir}/libgjsmdssi.la} \ +%endif + %{?with_objc:libobjc.la}; +do + %{__perl} %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/$f %{_libdir} > $RPM_BUILD_ROOT%{_libdir}/$f.fixed + mv $RPM_BUILD_ROOT%{_libdir}/$f{.fixed,} +done +%if %{with multilib} +for f in libssp.la libssp_nonshared.la \ + %{?with_cxx:libstdc++.la libsupc++.la} \ + %{?with_fortran:libgfortran.la} \ + %{?with_gomp:libgomp.la} \ + %{?with_mudflap:libmudflap.la libmudflapth.la} \ + %{?with_java:libffi.la} \ + %{?with_objc:libobjc.la}; +do + %{__perl} %{SOURCE1} $RPM_BUILD_ROOT%{_libdir32}/$f %{_libdir32} > $RPM_BUILD_ROOT%{_libdir32}/$f.fixed + mv $RPM_BUILD_ROOT%{_libdir32}/$f{.fixed,} +done +%endif + +gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*) +cp $gccdir/install-tools/include/*.h $gccdir/include +cp $gccdir/include-fixed/syslimits.h $gccdir/include +rm -rf $gccdir/install-tools +rm -rf $gccdir/include-fixed + +%if %{with python} +for LIB in lib lib64; do + LIBPATH="$RPM_BUILD_ROOT%{_datadir}/gdb/auto-load%{_prefix}/$LIB" + install -d $LIBPATH + # basename is being run only for the native (non-biarch) file. + sed -e 's,@pythondir@,%{_datadir}/gdb,' \ + -e 's,@toolexeclibdir@,%{_prefix}/'"$LIB," \ + < libstdc++-v3/python/hook.in \ + > $LIBPATH/$(basename $RPM_BUILD_ROOT/%{_prefix}/%{_lib}/libstdc++.so.*.*.*)-gdb.py +done +install -d $RPM_BUILD_ROOT%{py_sitescriptdir} +cp -a libstdc++-v3/python/libstdcxx $RPM_BUILD_ROOT%{py_sitescriptdir} +%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir} +%py_comp $RPM_BUILD_ROOT%{py_sitescriptdir} +%py_postclean +%endif + +%find_lang gcc +%find_lang cpplib +cat cpplib.lang >> gcc.lang + +%if %{with cxx} +%find_lang libstdc\+\+ +install libstdc++-v3/include/precompiled/* $RPM_BUILD_ROOT%{_includedir} +%endif + +# gdb stuff maybe? +%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.py +%if %{with multilib} +%{__rm} $RPM_BUILD_ROOT%{_libdir32}/*.py +%endif + +# svn snap doesn't contain (release does) below files, +# so let's create dummy entries to satisfy %%files. +[ ! -f NEWS ] && touch NEWS +[ ! -f libgfortran/AUTHORS ] && touch libgfortran/AUTHORS +[ ! -f libgfortran/README ] && touch libgfortran/README + +%clean +rm -rf $RPM_BUILD_ROOT + +%post -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + +%postun -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + +%post ada -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + +%postun ada -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + +%post fortran -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + +%postun fortran -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + +%post java -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + +%postun java -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + +%post -p /sbin/ldconfig -n libgcc +%postun -p /sbin/ldconfig -n libgcc +%post -p /sbin/ldconfig -n libgcc-multilib +%postun -p /sbin/ldconfig -n libgcc-multilib +%post -p /sbin/ldconfig -n libgomp +%postun -p /sbin/ldconfig -n libgomp +%post -p /sbin/ldconfig -n libgomp-multilib +%postun -p /sbin/ldconfig -n libgomp-multilib +%post -p /sbin/ldconfig -n libmudflap +%postun -p /sbin/ldconfig -n libmudflap +%post -p /sbin/ldconfig -n libmudflap-multilib +%postun -p /sbin/ldconfig -n libmudflap-multilib +%post -p /sbin/ldconfig -n libgnat +%postun -p /sbin/ldconfig -n libgnat +%post -p /sbin/ldconfig -n libgnat-multilib +%postun -p /sbin/ldconfig -n libgnat-multilib +%post -p /sbin/ldconfig -n libstdc++ +%postun -p /sbin/ldconfig -n libstdc++ +%post -p /sbin/ldconfig -n libstdc++-multilib +%postun -p /sbin/ldconfig -n libstdc++-multilib +%post -p /sbin/ldconfig -n libgfortran +%postun -p /sbin/ldconfig -n libgfortran +%post -p /sbin/ldconfig -n libgfortran-multilib +%postun -p /sbin/ldconfig -n libgfortran-multilib +%post -p /sbin/ldconfig -n libgcj +%postun -p /sbin/ldconfig -n libgcj +%post -p /sbin/ldconfig -n libffi +%postun -p /sbin/ldconfig -n libffi +%post -p /sbin/ldconfig -n libffi-multilib +%postun -p /sbin/ldconfig -n libffi-multilib +%post -p /sbin/ldconfig -n libobjc +%postun -p /sbin/ldconfig -n libobjc +%post -p /sbin/ldconfig -n libobjc-multilib +%postun -p /sbin/ldconfig -n libobjc-multilib + +%files -f gcc.lang +%defattr(644,root,root,755) +%doc ChangeLog.general MAINTAINERS NEWS +# bugs.html faq.html +%doc gcc/{ChangeLog,ONEWS,README.Portability} +%attr(755,root,root) %{_bindir}/*-gcc* +%attr(755,root,root) %{_bindir}/cc +%attr(755,root,root) %{_bindir}/cpp +%attr(755,root,root) %{_bindir}/gcc +%attr(755,root,root) %{_bindir}/gccbug +%attr(755,root,root) %{_bindir}/gcov +%{_mandir}/man1/cc.1* +%{_mandir}/man1/cpp.1* +%{_mandir}/man1/gcc.1* +%{_mandir}/man1/gcov.1* +%{_infodir}/cpp.info* +%{_infodir}/cppinternals.info* +%{_infodir}/gcc.info* +%{_infodir}/gccinstall.info* +%{_infodir}/gccint.info* +%attr(755,root,root) /lib/cpp +%attr(755,root,root) %{_slibdir}/libgcc_s.so +%attr(755,root,root) %{_libdir}/libssp.so +%{_libdir}/libssp.la +%{_libdir}/libssp.a +%{_libdir}/libssp_nonshared.la +%{_libdir}/libssp_nonshared.a +%dir %{_libdir}/gcc +%dir %{_libdir}/gcc/* +%dir %{_libdir}/gcc/*/* +%{_libdir}/gcc/*/*/libgcc.a +%{_libdir}/gcc/*/*/libgcc_eh.a +%{_libdir}/gcc/*/*/libgcov.a +%{_libdir}/gcc/*/*/specs +%{_libdir}/gcc/*/*/crt*.o +%attr(755,root,root) %{_libdir}/gcc/*/*/cc1 +%attr(755,root,root) %{_libdir}/gcc/*/*/collect2 +%attr(755,root,root) %{_libdir}/gcc/*/*/lto-wrapper +%attr(755,root,root) %{_libdir}/gcc/*/*/lto1 +%{_libdir}/gcc/*/*/plugin +%dir %{_libdir}/gcc/*/*/include +%dir %{_libdir}/gcc/*/*/include/ssp +%{_libdir}/gcc/*/*/include/ssp/*.h +%{_libdir}/gcc/*/*/include/float.h +%{_libdir}/gcc/*/*/include/iso646.h +%{_libdir}/gcc/*/*/include/limits.h +%{_libdir}/gcc/*/*/include/stdarg.h +%{_libdir}/gcc/*/*/include/stdbool.h +%{_libdir}/gcc/*/*/include/stddef.h +%{_libdir}/gcc/*/*/include/stdfix.h +%{_libdir}/gcc/*/*/include/stdint.h +%{_libdir}/gcc/*/*/include/stdint-gcc.h +%{_libdir}/gcc/*/*/include/syslimits.h +%{_libdir}/gcc/*/*/include/unwind.h +%{_libdir}/gcc/*/*/include/varargs.h +%ifarch %{ix86} %{x8664} +%{_libdir}/gcc/*/*/include/abmintrin.h +%{_libdir}/gcc/*/*/include/ammintrin.h +%{_libdir}/gcc/*/*/include/avxintrin.h +%{_libdir}/gcc/*/*/include/bmmintrin.h +%{_libdir}/gcc/*/*/include/cpuid.h +%{_libdir}/gcc/*/*/include/cross-stdarg.h +%{_libdir}/gcc/*/*/include/emmintrin.h +%{_libdir}/gcc/*/*/include/fma4intrin.h +%{_libdir}/gcc/*/*/include/ia32intrin.h +%{_libdir}/gcc/*/*/include/immintrin.h +%{_libdir}/gcc/*/*/include/lwpintrin.h +%{_libdir}/gcc/*/*/include/mm3dnow.h +%{_libdir}/gcc/*/*/include/mm_malloc.h +%{_libdir}/gcc/*/*/include/mmintrin.h +%{_libdir}/gcc/*/*/include/nmmintrin.h +%{_libdir}/gcc/*/*/include/popcntintrin.h +%{_libdir}/gcc/*/*/include/pmmintrin.h +%{_libdir}/gcc/*/*/include/smmintrin.h +%{_libdir}/gcc/*/*/include/tmmintrin.h +%{_libdir}/gcc/*/*/include/wmmintrin.h +%{_libdir}/gcc/*/*/include/x86intrin.h +%{_libdir}/gcc/*/*/include/xmmintrin.h +%{_libdir}/gcc/*/*/include/xopintrin.h +%endif +%ifarch powerpc ppc ppc64 +%{_libdir}/gcc/*/*/include/altivec.h +%{_libdir}/gcc/*/*/include/paired.h +%{_libdir}/gcc/*/*/include/ppc-asm.h +%{_libdir}/gcc/*/*/include/ppu_intrinsics.h +%{_libdir}/gcc/*/*/include/si2vmx.h +%{_libdir}/gcc/*/*/include/spe.h +%{_libdir}/gcc/*/*/include/spu2vmx.h +%{_libdir}/gcc/*/*/include/vec_types.h +%endif + +%if %{with multilib} +%files multilib +%defattr(644,root,root,755) +%attr(755,root,root) %{_slibdir32}/libgcc_s.so +%dir %{_libdir}/gcc/*/*/32 +%{_libdir}/gcc/*/*/32/crt*.o +%{_libdir}/gcc/*/*/32/libgcc.a +%{_libdir}/gcc/*/*/32/libgcc_eh.a +%{_libdir}/gcc/*/*/32/libgcov.a +%attr(755,root,root) %{_libdir32}/libssp.so +%{_libdir32}/libssp.la +%{_libdir32}/libssp.a +%{_libdir32}/libssp_nonshared.la +%{_libdir32}/libssp_nonshared.a +%endif + +%files -n libgcc +%defattr(644,root,root,755) +%attr(755,root,root) %{_slibdir}/libgcc_s.so.1 +%attr(755,root,root) %{_slibdir}/libssp.so.*.*.* +%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}/libssp.so.*.*.* +%attr(755,root,root) %ghost %{_slibdir32}/libssp.so.0 +%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 + +%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 +%endif + +%files -n libgomp-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libgomp.so +%{_libdir}/libgomp.la +%{_libdir}/libgomp.spec +%{_libdir}/gcc/*/*/finclude +%{_libdir}/gcc/*/*/include/omp.h +%{_infodir}/libgomp.info* + +%if %{with multilib} +%files -n libgomp-multilib-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libgomp.so +%{_libdir32}/libgomp.la +%{_libdir32}/libgomp.spec +%endif + +%files -n libgomp-static +%defattr(644,root,root,755) +%{_libdir}/libgomp.a + +%if %{with multilib} +%files -n libgomp-multilib-static +%defattr(644,root,root,755) +%{_libdir32}/libgomp.a +%endif +%endif + +%if %{with mudflap} +%files -n libmudflap +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libmudflap.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libmudflap.so.0 +%attr(755,root,root) %{_libdir}/libmudflapth.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libmudflapth.so.0 + +%if %{with multilib} +%files -n libmudflap-multilib +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libmudflap.so.*.*.* +%attr(755,root,root) %ghost %{_libdir32}/libmudflap.so.0 +%attr(755,root,root) %{_libdir32}/libmudflapth.so.*.*.* +%attr(755,root,root) %ghost %{_libdir32}/libmudflapth.so.0 +%endif + +%files -n libmudflap-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libmudflap.so +%attr(755,root,root) %{_libdir}/libmudflapth.so +%{_libdir}/libmudflap.la +%{_libdir}/libmudflapth.la +%{_libdir}/gcc/*/*/include/mf-runtime.h + +%if %{with multilib} +%files -n libmudflap-multilib-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libmudflap.so +%attr(755,root,root) %{_libdir32}/libmudflapth.so +%{_libdir32}/libmudflap.la +%{_libdir32}/libmudflapth.la +%endif + +%files -n libmudflap-static +%defattr(644,root,root,755) +%{_libdir}/libmudflap.a +%{_libdir}/libmudflapth.a + +%if %{with multilib} +%files -n libmudflap-multilib-static +%defattr(644,root,root,755) +%{_libdir32}/libmudflap.a +%{_libdir32}/libmudflapth.a +%endif +%endif + +%if %{with ada} +%files ada +%defattr(644,root,root,755) +%doc gcc/ada/ChangeLog +%attr(755,root,root) %{_bindir}/gnat* +%if %{with java} +%exclude %{_bindir}/gnative2ascii +%endif +%attr(755,root,root) %{_libdir}/libgnarl-*.so +%attr(755,root,root) %{_libdir}/libgnarl.so +%attr(755,root,root) %{_libdir}/libgnat-*.so +%attr(755,root,root) %{_libdir}/libgnat.so +%attr(755,root,root) %{_libdir}/gcc/*/*/gnat1 +%{_libdir}/gcc/*/*/adainclude +%dir %{_libdir}/gcc/*/*/adalib +%{_libdir}/gcc/*/*/adalib/*.ali +%{_libdir}/gcc/*/*/adalib/g-trasym.o +%ifarch %{ix86} %{x8664} +%{_libdir}/gcc/*/*/adalib/libgmem.a +%endif +%{_infodir}/gnat-style.info* +%{_infodir}/gnat_rm.info* +%{_infodir}/gnat_ugn.info* + +%if %{with multilib} +%files ada-multilib +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libgnarl-*.so +%attr(755,root,root) %{_libdir32}/libgnarl.so +%attr(755,root,root) %{_libdir32}/libgnat-*.so +%attr(755,root,root) %{_libdir32}/libgnat.so +%{_libdir}/gcc/*/*/32/adainclude +%dir %{_libdir}/gcc/*/*/32/adalib +%{_libdir}/gcc/*/*/32/adalib/*.ali +%{_libdir}/gcc/*/*/32/adalib/g-trasym.o +%ifarch %{ix86} %{x8664} +%{_libdir}/gcc/*/*/32/adalib/libgmem.a +%endif +%endif + +%files -n libgnat +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libgnarl-*.so.1 +%attr(755,root,root) %{_libdir}/libgnarl.so.1 +%attr(755,root,root) %{_libdir}/libgnat-*.so.1 +%attr(755,root,root) %{_libdir}/libgnat.so.1 + +%if %{with multilib} +%files -n libgnat-multilib +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libgnarl-*.so.1 +%attr(755,root,root) %{_libdir32}/libgnarl.so.1 +%attr(755,root,root) %{_libdir32}/libgnat-*.so.1 +%attr(755,root,root) %{_libdir32}/libgnat.so.1 +%endif + +%files -n libgnat-static +%defattr(644,root,root,755) +%{_libdir}/gcc/*/*/adalib/libgnala.a +%{_libdir}/gcc/*/*/adalib/libgnarl.a +%{_libdir}/gcc/*/*/adalib/libgnat.a + +%if %{with multilib} +%files -n libgnat-multilib-static +%defattr(644,root,root,755) +%{_libdir}/gcc/*/*/32/adalib/libgnala.a +%{_libdir}/gcc/*/*/32/adalib/libgnarl.a +%{_libdir}/gcc/*/*/32/adalib/libgnat.a +%endif +%endif + +%if %{with cxx} +%files c++ +%defattr(644,root,root,755) +%doc gcc/cp/{ChangeLog,NEWS} +%attr(755,root,root) %{_bindir}/g++ +%attr(755,root,root) %{_bindir}/*-g++ +%attr(755,root,root) %{_bindir}/c++ +%attr(755,root,root) %{_bindir}/*-c++ +%attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus +%{_libdir}/libsupc++.la +%{_libdir}/libsupc++.a +%{_mandir}/man1/g++.1* + +%if %{with multilib} +%files c++-multilib +%defattr(644,root,root,755) +%{_libdir32}/libsupc++.la +%{_libdir32}/libsupc++.a +%endif + +%files -n libstdc++ -f libstdc++.lang +%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 + +%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 +%endif + +%if %{with python} +%files -n libstdc++-gdb +%defattr(644,root,root,755) +%dir %{py_sitescriptdir}/libstdcxx +%{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.14-gdb.py +%endif + +%files -n libstdc++-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libstdc++.so +%{_libdir}/libstdc++.la +%dir %{_includedir}/c++ +%{_includedir}/c++/%{version} +%{_includedir}/extc++.h +%{_includedir}/stdc++.h +%{_includedir}/stdtr1c++.h +%if %{with java} +%exclude %{_includedir}/c++/%{version}/java +%exclude %{_includedir}/c++/%{version}/javax +%exclude %{_includedir}/c++/%{version}/gcj +%exclude %{_includedir}/c++/%{version}/gnu +%exclude %{_includedir}/c++/%{version}/org +%exclude %{_includedir}/c++/%{version}/sun +%endif + +%if %{with apidocs} +%files -n libstdc++-apidocs +%defattr(644,root,root,755) +%doc libstdc++-v3/doc/html/* +%endif + +%if %{with multilib} +%files -n libstdc++-multilib-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libstdc++.so +%{_libdir32}/libstdc++.la +%endif + +%files -n libstdc++-static +%defattr(644,root,root,755) +%{_libdir}/libstdc++.a + +%if %{with multilib} +%files -n libstdc++-multilib-static +%defattr(644,root,root,755) +%{_libdir32}/libstdc++.a +%endif +%endif + +%if %{with fortran} +%files fortran +%defattr(644,root,root,755) +%doc gcc/fortran/ChangeLog +%attr(755,root,root) %{_bindir}/g95 +%attr(755,root,root) %{_bindir}/gfortran +%attr(755,root,root) %{_bindir}/*-gfortran +%attr(755,root,root) %{_libdir}/gcc/*/*/f951 +%attr(755,root,root) %{_libdir}/libgfortran.so +%{_libdir}/libgfortran.la +%{_libdir}/gcc/*/*/libgfortranbegin.la +%{_libdir}/gcc/*/*/libgfortranbegin.a +%{_infodir}/gfortran.info* +%{_mandir}/man1/g95.1* +%{_mandir}/man1/gfortran.1* + +%if %{with multilib} +%files fortran-multilib +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libgfortran.so +%{_libdir32}/libgfortran.la +%{_libdir}/gcc/*/*/32/libgfortranbegin.la +%{_libdir}/gcc/*/*/32/libgfortranbegin.a +%endif + +%files -n libgfortran +%defattr(644,root,root,755) +%doc libgfortran/{AUTHORS,README,ChangeLog} +%attr(755,root,root) %{_libdir}/libgfortran.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libgfortran.so.3 + +%if %{with multilib} +%files -n libgfortran-multilib +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libgfortran.so.*.*.* +%attr(755,root,root) %ghost %{_libdir32}/libgfortran.so.3 +%endif + +%files -n libgfortran-static +%defattr(644,root,root,755) +%{_libdir}/libgfortran.a + +%if %{with multilib} +%files -n libgfortran-multilib-static +%defattr(644,root,root,755) +%{_libdir32}/libgfortran.a +%endif +%endif + +%if %{with java} +%files java +%defattr(644,root,root,755) +%doc gcc/java/ChangeLog java-doc/* +%attr(755,root,root) %{_bindir}/gappletviewer +%attr(755,root,root) %{_bindir}/gc-analyze +%attr(755,root,root) %{_bindir}/gcj +%attr(755,root,root) %{_bindir}/gcj-dbtool +%attr(755,root,root) %{_bindir}/gcjh +%attr(755,root,root) %{_bindir}/gjar +%attr(755,root,root) %{_bindir}/gjarsigner +%attr(755,root,root) %{_bindir}/gjavah +%attr(755,root,root) %{_bindir}/gkeytool +%attr(755,root,root) %{_bindir}/gnative2ascii +%attr(755,root,root) %{_bindir}/gorbd +%attr(755,root,root) %{_bindir}/grmic +%attr(755,root,root) %{_bindir}/grmid +%attr(755,root,root) %{_bindir}/grmiregistry +%attr(755,root,root) %{_bindir}/gserialver +%attr(755,root,root) %{_bindir}/gtnameserv +%attr(755,root,root) %{_bindir}/jcf-dump +%attr(755,root,root) %{_bindir}/jv-convert +%attr(755,root,root) %{_bindir}/rebuild-gcj-db +%attr(755,root,root) %{_bindir}/*-gcj +%attr(755,root,root) %{_libdir}/gcc/*/*/ecj1 +%attr(755,root,root) %{_libdir}/gcc/*/*/jc1 +%attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain +%{_infodir}/cp-tools.info* +%{_infodir}/gcj.info* +%{_mandir}/man1/gappletviewer.1* +%{_mandir}/man1/gc-analyze.1* +%{_mandir}/man1/gcj.1* +%{_mandir}/man1/gcj-dbtool.1* +%{_mandir}/man1/gcjh.1* +%{_mandir}/man1/gjar.1* +%{_mandir}/man1/gjarsigner.1* +%{_mandir}/man1/gjavah.1* +%{_mandir}/man1/gkeytool.1* +%{_mandir}/man1/gnative2ascii.1* +%{_mandir}/man1/gorbd.1* +%{_mandir}/man1/grmic.1* +%{_mandir}/man1/grmid.1* +%{_mandir}/man1/grmiregistry.1* +%{_mandir}/man1/gserialver.1* +%{_mandir}/man1/gtnameserv.1* +%{_mandir}/man1/jcf-dump.1* +%{_mandir}/man1/jv-convert.1* +%{_mandir}/man1/rebuild-gcj-db* + +%files -n libgcj +%defattr(644,root,root,755) +%doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS} +%attr(755,root,root) %{_bindir}/gij +%attr(755,root,root) %{_libdir}/libgcj-tools.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libgcj-tools.so.%{gcj_soname_ver} +%attr(755,root,root) %{_libdir}/libgcj.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libgcj.so.%{gcj_soname_ver} +%attr(755,root,root) %{_libdir}/libgcj_bc.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libgcj_bc.so.1 +%attr(755,root,root) %{_libdir}/libgcj_bc.so +%attr(755,root,root) %{_libdir}/libgij.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libgij.so.%{gcj_soname_ver} +%{?with_x:%attr(755,root,root) %{_libdir}/lib-gnu-awt-xlib.so.*.*.*} +%{?with_x:%attr(755,root,root) %ghost %{_libdir}/lib-gnu-awt-xlib.so.%{gcj_soname_ver}} +%dir %{_libdir}/%{gcjdbexecdir} +%{_libdir}/%{gcjdbexecdir}/classmap.db +%{?with_mozilla:%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libgcjwebplugin.so} +%{?with_alsa:%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libgjsmalsa.so*} +%{?with_dssi:%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libgjsmdssi.so*} +%{?with_gtk:%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libgtkpeer.so} +%{?with_gtk:%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libjawt.so} +%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libjavamath.so +%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libjvm.so +%{?with_qt:%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libqtpeer.so} +%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libxmlj.so* +%{_libdir}/logging.properties +%{_javadir}/libgcj*.jar +%{_javadir}/ecj.jar +%{_mandir}/man1/gij.1* + +%files -n libgcj-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libgcj-tools.so +%{_libdir}/libgcj-tools.la +%attr(755,root,root) %{_libdir}/libgcj.so +%{_libdir}/libgcj.la +%attr(755,root,root) %{_libdir}/libgij.so +%{_libdir}/libgij.la +%if %{with x} +%attr(755,root,root) %{_libdir}/lib-gnu-awt-xlib.so +%{_libdir}/lib-gnu-awt-xlib.la +%endif +%{_libdir}/libgcj.spec +%dir %{_libdir}/security +%{_libdir}/security/* +%{?with_alsa:%{_libdir}/%{gcjdbexecdir}/libgjsmalsa.la} +%{?with_dssi:%{_libdir}/%{gcjdbexecdir}/libgjsmdssi.la} +%{?with_gtk:%{_libdir}/%{gcjdbexecdir}/libgtkpeer.la} +%{?with_gtk:%{_libdir}/%{gcjdbexecdir}/libjawt.la} +%{_libdir}/%{gcjdbexecdir}/libjavamath.la +%{_libdir}/%{gcjdbexecdir}/libjvm.la +%{?with_qt:%{_libdir}/%{gcjdbexecdir}/libqtpeer.la} +%{?with_mozilla:%{_libdir}/%{gcjdbexecdir}/libgcjwebplugin.la} +%{_libdir}/%{gcjdbexecdir}/libxmlj.la +%{_libdir}/gcc/*/*/include/gcj +%{_libdir}/gcc/*/*/include/jawt.h +%{_libdir}/gcc/*/*/include/jawt_md.h +%{_libdir}/gcc/*/*/include/jni.h +%{_libdir}/gcc/*/*/include/jni_md.h +%{_libdir}/gcc/*/*/include/jvmpi.h +%{_includedir}/c++/%{version}/java +%{_includedir}/c++/%{version}/javax +%{_includedir}/c++/%{version}/gcj +%{_includedir}/c++/%{version}/gnu +%{_includedir}/c++/%{version}/org +%{_includedir}/c++/%{version}/sun +%{_pkgconfigdir}/libgcj-%{major_ver}.pc + +%files -n libgcj-static +%defattr(644,root,root,755) +%{_libdir}/libgcj-tools.a +%{_libdir}/libgcj.a +%{_libdir}/libgcj_bc.a +%{_libdir}/libgij.a +%{?with_x:%{_libdir}/lib-gnu-awt-xlib.a} +%{_libdir}/%{gcjdbexecdir}/libjvm.a + +%files -n libffi +%defattr(644,root,root,755) +%doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README} +%attr(755,root,root) %{_libdir}/libffi.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libffi.so.4 + +%if %{with multilib} +%files -n libffi-multilib +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libffi.so.*.*.* +%attr(755,root,root) %ghost %{_libdir32}/libffi.so.4 +%endif + +%files -n libffi-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libffi.so +%{_libdir}/libffi.la +%{_libdir}/gcc/*/*/include/ffi.h +%{_libdir}/gcc/*/*/include/ffitarget.h +%{_mandir}/man3/ffi*.3* + +%if %{with multilib} +%files -n libffi-multilib-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libffi.so +%{_libdir32}/libffi.la +%endif + +%files -n libffi-static +%defattr(644,root,root,755) +%{_libdir}/libffi.a + +%if %{with multilib} +%files -n libffi-multilib-static +%defattr(644,root,root,755) +%{_libdir32}/libffi.a +%endif +%endif + +%if %{with objc} +%files objc +%defattr(644,root,root,755) +%doc gcc/objc/README +%attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj +%attr(755,root,root) %{_libdir}/libobjc.so +%{_libdir}/libobjc.la +%{_libdir}/gcc/*/*/include/objc + +%if %{with multilib} +%files objc-multilib +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libobjc.so +%{_libdir32}/libobjc.la +%endif + +%files -n libobjc +%defattr(644,root,root,755) +%doc libobjc/{ChangeLog,README*} +%attr(755,root,root) %{_libdir}/libobjc.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libobjc.so.2 + +%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.2 +%endif + +%files -n libobjc-static +%defattr(644,root,root,755) +%{_libdir}/libobjc.a + +%if %{with multilib} +%files -n libobjc-multilib-static +%defattr(644,root,root,755) +%{_libdir32}/libobjc.a +%endif +%endif + +%if %{with objcxx} +%files objc++ +%defattr(644,root,root,755) +%doc gcc/objcp/ChangeLog +%attr(755,root,root) %{_libdir}/gcc/*/*/cc1objplus +%endif + +%define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`) +%changelog +* %{date} PLD Team +All persons listed below can be reached at @pld-linux.org + +$Log: gcc.spec,v $ +Revision 1.649.2.3 2011/07/01 17:47:33 lisu +- rel 3 + +Revision 1.649.2.2 2011/06/28 09:11:28 lisu +- rel 2 + +Revision 1.649.2.1 2011/05/15 14:26:34 arekm +- up to 4.5.3 + +Revision 1.649 2011/02/12 18:47:58 arekm +- rel 4; branch diff updated + +Revision 1.648 2011/02/09 17:00:38 qboosh +- no // + +Revision 1.647 2011/02/09 16:39:44 qboosh +- pl for libstdc++-gdb + +Revision 1.646 2011/01/24 19:05:00 arekm +- rel 3; branch diff updated + +Revision 1.645 2011/01/08 17:34:35 arekm +- rel 2; branch diff updated + +Revision 1.644 2010/12/18 21:01:45 arekm +- up to 4.5.2 + +Revision 1.643 2010/11/16 08:53:09 arekm +- rel 5; branch diff updated; python-pretty-printer-bool-vector.patch dropped (unneded says pluto) + +Revision 1.642 2010/10/27 19:34:30 wiget +- added note about missing libffi.pc + +Revision 1.641 2010/10/25 05:51:51 qboosh +- pl for libstdc++-apidocs + +Revision 1.640 2010/10/25 05:25:54 glen +- typos + +Revision 1.639 2010/10/25 05:14:11 glen +- no html subdir + +Revision 1.638 2010/10/25 05:13:43 glen +- libstdc++-apidocs subpackage + +Revision 1.637 2010/10/16 14:07:56 pluto +- do not check for unresolved symbols on mudflap hooks and java modules. +- release 4. + +Revision 1.636 2010/10/16 08:52:48 pluto +- patch pretty printers to support std::vector. +- release 3 for rebuild with new branch diff. + +Revision 1.635 2010/10/15 21:44:34 pluto +- gcc-branch.diff updated. +- libstdc++ python pretty printers for gdb packaged. +- adapterized. +- nfy... + +Revision 1.634 2010/10/02 06:24:56 qboosh +- libffi note + +Revision 1.633 2010/09/30 06:44:44 qboosh +- needs pdksh with heredoc quote fix + +Revision 1.632 2010/09/29 07:06:38 qboosh +- restored gcj-dbtool +- remaining ghost soname symlinks + +Revision 1.631 2010/09/29 06:32:22 qboosh +- unified rm and info post/postun + +Revision 1.630 2010/09/29 06:18:15 qboosh +- more verbose/unified form of files + +Revision 1.629 2010/09/28 18:23:54 qboosh +- finished fixing multilib descriptions + +Revision 1.628 2010/09/28 06:41:46 qboosh +- fixing multilib descriptions part#1 + +Revision 1.627 2010/09/28 06:15:10 qboosh +- missing strict internal deps +- libgcj R: libstdc++ + +Revision 1.626 2010/08/29 19:28:54 arekm +- rel 2; branch fixes + +Revision 1.625 2010/08/03 12:55:54 pluto +- bootstrap fixed, release 1. + +Revision 1.624 2010/08/01 18:39:38 arekm +- rel should be 0.1 + +Revision 1.623 2010/08/01 18:18:49 arekm +- up to 4.5.1 (but broken, doesn't build, just like most of our 4.5.0 snaps) + +Revision 1.622 2010/07/04 19:21:20 arekm +- rel 10; branch diff updated + +Revision 1.621 2010/06/15 20:02:42 pluto +- branch.diff updeaded, revert.patch dropped, release 9. + +Revision 1.620 2010/06/08 08:55:30 arekm +- rel 8; fixes from upstream + +Revision 1.619 2010/06/01 08:11:05 arekm +- rel 7; branch diff updated + +Revision 1.618 2010/05/24 13:31:34 arekm +- rel 6; revert one optimization until gcc bug 44258 is fixed + +Revision 1.617 2010/05/20 12:17:23 arekm +- rel 5; branch diff updated + +Revision 1.616 2010/05/18 10:09:27 gotar +- binutils is epoch 3 since rev. 1.224/1.198.2.3 + +Revision 1.615 2010/05/15 08:10:40 pluto +- release 4 (rebuild with updated branch diff). + +Revision 1.614 2010/04/16 20:04:15 glen +- gdb note + +Revision 1.613 2010/04/16 17:11:05 pluto +- trully release 3. +- more TODO. + +Revision 1.612 2010/04/16 17:02:36 arekm +- rel 3 + +Revision 1.611 2010/04/16 15:09:36 arekm +- rel 2; don't install libdir py files for now as ldconfig yells on this + +Revision 1.610 2010/04/16 12:32:56 arekm +- rel 1 + +Revision 1.609 2010/04/16 11:16:18 pluto +- additional hook (FINISH_DECL) for plugin machinery. + +Revision 1.608 2010/04/16 10:59:41 pluto +- use major_ver and gcj_soname_ver instead of hardcoded numbers. + +Revision 1.607 2010/04/16 10:27:25 arekm +- more todo + +Revision 1.606 2010/04/16 10:23:09 arekm +- ffi man pages + +Revision 1.605 2010/04/16 10:19:47 arekm +- update files + +Revision 1.604 2010/04/16 08:56:23 pluto +- add missed BRs, enable LTO and plugin machinery. +- remove --enable-multilib from ./configure, it's enabled by default. + +Revision 1.603 2010/04/16 06:36:06 arekm +- fetch 4.5.0 tarball + +Revision 1.602 2010/04/14 13:57:00 pluto +- speedup bootstrap stage1 build. + +Revision 1.601 2010/03/29 05:53:51 arekm +- rel 5; fix patches + +Revision 1.600 2010/03/28 20:57:20 arekm +- rel 4 + +Revision 1.599 2010/03/28 20:35:25 arekm +- release 3 + +Revision 1.598 2010/02/05 20:13:02 arekm +- rel 2; disable mozilla bcond until it's fixed + +Revision 1.597 2010/01/21 18:49:47 arekm +- rel 1; builds + +Revision 1.596 2010/01/21 14:59:21 pluto +- updated to 4.4.3, java build broken by recent xulrunner headers! + +Revision 1.595 2009/12/06 20:34:09 jajcus +- BR: dssi-devel, not dssi + +Revision 1.594 2009/11/24 19:42:40 sparky +- put all make options inside Makefile, so it's easier to restart the build + +Revision 1.593 2009/11/12 11:33:54 patrys +- rebuild +- rel 5 + +Revision 1.592 2009/10/26 21:31:39 arekm +- rel 4; fix patches + +Revision 1.591 2009/10/26 20:44:46 arekm +- rel 3; more branch fixes + +Revision 1.590 2009/10/25 12:26:03 gotar +- updated binutils R (unknown pseudo-op: `.cfi_sections') + +Revision 1.589 2009/10/23 15:04:21 sls +- BR: xorg-lib-libXt-devel + +Revision 1.588 2009/10/21 11:14:52 pluto +- release 2, branch diff updated. + +Revision 1.587 2009/10/15 14:33:38 pluto +- updated to 4.4.2, branch diff regenerated, release 1. + +Revision 1.586 2009/09/18 11:18:58 arekm +- rel 3; branch diff updated + +Revision 1.585 2009/07/26 09:35:39 arekm +- rel 2; drop pr14912 patch which causes https://svn.boost.org/trac/boost/ticket/3287 + +Revision 1.584 2009/07/24 08:21:05 arekm +- check for release + +Revision 1.583 2009/07/24 07:33:19 arekm +- up to 4.4.1 + +Revision 1.582 2009/07/12 16:40:11 arekm +- rel 7; drop patch101 (we don't know where it comes from and it seem to be unmaintained here); update branch diff + +Revision 1.581 2009/07/11 10:19:19 pluto +- one more sparcv9 fix. + +Revision 1.580 2009/07/07 08:10:22 tommat +- 32bit sparc in th is sparcv9 + +Revision 1.579 2009/07/01 00:32:06 arekm +- rel 6; more fixes + +Revision 1.578 2009/06/28 16:28:16 arekm +- rel 5; upstream fixes + +Revision 1.577 2009/06/10 05:47:42 pawelz +- gij supports ClassDataVersion 50 now +- subpackage java obsoletes java-gnu-classpath-tools +- rel 4 + +Revision 1.576 2009/05/25 05:00:49 tommat +- enable moresparcs patch + +Revision 1.575 2009/05/21 16:54:39 tommat +- disable ada for sparc64 + +Revision 1.574 2009/04/27 07:44:41 arekm +- rel 3 + +Revision 1.573 2009/04/24 13:18:24 arekm +- rel 2; add latest fixes from 4.4 branch + +Revision 1.572 2009/04/22 21:22:02 pawelz +- package rebuild-gcj-db man page +- ghost symlinks for libstdc++ and gcj libs + +Revision 1.571 2009/04/21 22:48:35 sparky +- cross-stdarg.h is x86(64)-specyfic + +Revision 1.570 2009/04/21 20:54:09 pluto +- reenable ix86 branch diff. + +Revision 1.569 2009/04/21 13:29:17 arekm +- up to final 4.4.0 + +Revision 1.568 2009/04/02 10:59:19 pluto +- remove dead entry in %%files. + +Revision 1.567 2009/04/01 18:12:59 pluto +- bump 4.4 branch snapshot, apply smarter template diagnostics patch. + +Revision 1.566 2009/03/23 08:14:11 arekm +- enable build-id feature by default + +Revision 1.565 2009/02/27 11:28:51 glen +- multilib obsoletes libgcc32; rel .3 + +Revision 1.564 2009/02/25 22:12:28 baggins +- gcc-fortran requires exact gcc, or you'll get this: + i686-pld-linux-gfortran: error trying to exec 'cc1': execvp: No such file or directory + +Revision 1.563 2009/01/26 19:43:49 pluto +- new snap, decimal float enabled explicitly. + +Revision 1.562 2009/01/03 15:10:13 pluto +- initial update for incoming 4.4.0 (stable 4.3 branched as GCC_4_3). + +Revision 1.561 2008/11/17 23:48:41 pluto +- strict deps for libstdc++-multilib-devel. + +Revision 1.560 2008/11/14 22:20:39 arekm +- rel 5; update branch diff + +Revision 1.559 2008/11/05 23:42:15 arekm +- release 4 + +Revision 1.558 2008/09/11 09:16:40 pluto +- branch.diff updated (fix powerpc wrong code due to insn scheduler bug). +- release 3. + +Revision 1.557 2008/09/08 22:03:35 pluto +- branch.diff updated, release 2. + +Revision 1.556 2008/08/28 16:29:30 pluto +- correct DEV-PHASE. + +Revision 1.555 2008/08/28 15:31:08 pluto +- updated to 4.3.2 w/ additional branch fixes, release 1. + +Revision 1.554 2008/08/26 20:01:12 pluto +- updated to 4.3.2-RC1. + +Revision 1.553 2008/07/28 12:20:43 blekot +- added Provides: java(ClassDataVersion) = %{_classdataversion} +- rel up (4) + +Revision 1.552 2008/07/22 20:41:20 arekm +gcc-java O: eclipse-ecj + +Revision 1.551 2008/07/21 12:19:49 arekm +- readline not needed + +Revision 1.550 2008/07/20 11:13:30 arekm +- conditional on source is evil + +Revision 1.549 2008/07/20 11:10:29 arekm +rel 3; include ecj here; patch by uzi18/o2.pl + +Revision 1.548 2008/06/27 20:43:20 arekm +- rel 2 + +Revision 1.547 2008/06/27 20:37:41 arekm +BR perl-base + +Revision 1.546 2008/06/27 20:36:16 arekm +- Call SOURCE1 via perl so it will work even if source file doesn't have executable bit set. + +Revision 1.545 2008/06/23 15:12:28 pluto +- branch diff updated, fixes major ia32 bug (kernel-wrong-code). + +Revision 1.544 2008/06/20 08:53:38 pluto +- don't require external jar, we have gjar now in gcc-java. +- fix internal jar wrapper build. + +Revision 1.543 2008/06/19 18:29:11 pluto +- testing alternative solution to avoid BC:jar... + +Revision 1.542 2008/06/16 18:02:38 arekm +- BC jar only if building with java + +Revision 1.541 2008/06/16 18:01:28 arekm +- BC: jar + +Revision 1.540 2008/06/16 11:16:34 pluto +- apply branch fixes (mostly c++ mem/cpu hogs). +- apply ix86 branch diff for recent intel/amd processors + with hardware aes/pclmul support. +- disable qt(peer) bcond. build requires ac/am/lt regen but libjava + runtime (natRuntime.cc) uses deprecated/removed libtool-1.5 api + (see lt_dlforeach function). finally it doesn;t build at all. +- release 1. + +Revision 1.539 2008-06-13 22:09:52 arekm +- libtool solved + +Revision 1.538 2008-06-13 11:04:53 arekm +- partial libtool 2.2 workaround. lt_dlforeach() libltdl API was deprecated and we need to find out how to replace it + +Revision 1.537 2008-06-09 14:49:23 pluto +- fetch 4.3.1 tarball, release 0.1 dueto TODO. + +Revision 1.536 2008-05-29 13:45:14 pluto +- updated to 4.3.1-RC2, needs libtool fix (see TODO). + +Revision 1.535 2008-05-28 06:00:33 tommat +- added moresparcs patch, sparcv9 target still not working + +Revision 1.534 2008-05-26 14:26:56 pluto +- updated to 4.3.1-RC1. + +Revision 1.533 2008-04-30 11:47:29 pluto +- if-java for gnative2ascii exclude. + +Revision 1.532 2008-04-18 14:31:24 pluto +- wrong patch dropped, branch.diff updated. + +Revision 1.531 2008-04-09 14:16:10 pluto +- gomp/mudflap bconded. + +Revision 1.530 2008-04-08 21:22:19 pluto +- s/branch.diff/branch.diff.bz2/ + +Revision 1.529 2008-03-13 21:47:04 pluto +- restore version overwriting (accidentally removed). + +Revision 1.528 2008-03-13 21:01:40 pluto +- branch diff reactivated. + +Revision 1.527 2008-03-10 12:10:14 pluto +- support -mcld option (generate cld instruction in fn. prologue). +- userland compiled with gcc43 for old buggy kernels needs this! + +Revision 1.526 2008-03-08 07:22:01 pluto +- gcc reqs gmp-devel and mpfr-devel unconditionally now. + +Revision 1.525 2008-03-06 23:11:54 pluto +- pass CC=%%{__cc} to configure. + +Revision 1.524 2008-03-06 23:01:09 pluto +- alpha_ada-fix.patch not needed. + +Revision 1.523 2008-03-06 22:48:55 pluto +- enable optimized __cxa_guard_{acquire,release,abort} for linux. + http://gcc.gnu.org/ml/gcc-patches/2007-12/msg01195.html + +Revision 1.522 2008-03-06 21:24:30 pluto +- new includes for ppc vector unit. + +Revision 1.521 2008-03-06 19:34:29 pluto +- s/gsyslimits.h/syslimits.h/ + +Revision 1.520 2008-03-06 15:35:15 pluto +- libqtpeer.so is back, release 1. + +Revision 1.519 2008-03-06 08:22:28 pluto +- fetch final 4.3.0 tarball, qtpeer nfy, kernel has a bug, release 0.1. + +Revision 1.518 2008-03-04 20:43:13 pluto +- move omp.h from libgomp-devel to gcc (libstdc++/parallel needs this header). +- move {org,sun} subdirs from libstdc++-devel to libgcj-devel. + +Revision 1.517 2008-03-04 20:26:13 pluto +- fixup install/files. qtpeer.so linking needs fix. + +Revision 1.516 2008-03-04 15:30:05 pluto +- 4.2.3 copied to GCC_4_2 branch. +- spec updated to 4.3.0-rc2. + +Revision 1.515 2008-02-14 19:29:47 pluto +- ldconfig for *-multilib subpkgs. + +Revision 1.514 2008-02-01 20:00:36 pluto +- dropped concept checks bcond. current boost-based design of this feature is broken. + suitable implementation of concepts will be merged into gcc-4.4. + development branch: http://gcc.gnu.org/projects/cxx0x.html#concepts +- updated to 4.2.3, release 1. + +Revision 1.513 2008-01-24 01:36:31 glen +- invoke fix-info-dir via /sbin/postshell where possible to avoid extra /bin/sh dep + +Revision 1.512 2008-01-24 01:22:59 glen +- invoke fix-info-dir via /sbin/postshell where possible to avoid extra /bin/sh dep + +Revision 1.511 2008-01-18 16:29:55 qboosh +- libstdc++ R: equal or newer libgcc + +Revision 1.510 2007-12-29 00:40:26 glen +- obsoletes for ac gcc4 package; rel 3 + +Revision 1.509 2007-12-09 01:39:13 glen +- R: jpackage-utils for %{_javadir} + +Revision 1.508 2007-10-10 12:03:36 pluto +- branch diff updated. wrong-code regressions fixed, release 2. + +Revision 1.507 2007/10/09 11:01:47 pluto +- updated to 4.2.2 final, release 1. + +Revision 1.506 2007/09/28 14:56:53 pluto +- updated to 4.2.2-RC2. + +Revision 1.505 2007/09/16 12:44:32 qboosh +- updated/fixed License tags (gcc is on GPL v3+ now) + +Revision 1.504 2007/09/10 13:45:57 pluto +- updated to 4.2.2-RC1. + +Revision 1.503 2007/08/28 08:30:04 pluto +- branch.diff updated, release 2. + +Revision 1.502 2007/07/22 11:12:08 pluto +- updated to 4.2.1. + +Revision 1.501 2007/07/18 05:44:18 arekm +- rel 9; disable concept checks by default + +Revision 1.500 2007/07/04 21:55:21 arekm +- rel 8; updated branch diff + +Revision 1.499 2007/06/25 22:01:28 pluto +- branch.diff, unnecessary_anonymous_warning.patch updated, release 7. + +Revision 1.498 2007/06/12 14:14:47 pluto +- enable concept checks in libstdc++. + +Revision 1.497 2007/06/09 14:09:45 arekm +- multilib build needs BR: gcc(multilib) + +Revision 1.496 2007/06/09 13:35:37 arekm +- P: gcc(multilib) moved from main package to -multilib subpackage + +Revision 1.495 2007/06/09 10:23:20 arekm +- rel 6; branch diff update; gcc-multilib R: libgcc-multilib added + +Revision 1.494 2007/06/03 13:08:05 pluto +- multilib split merged from devel, branch diff updated, release 5. + +Revision 1.493 2007/05/28 12:36:50 pluto +- remove obsolete patch. + +Revision 1.492 2007/05/24 19:28:17 qboosh +- javadeps not used by default (and currently not needed here) + +Revision 1.491 2007/05/24 19:13:36 qboosh +- relative .jar symlink within directory + +Revision 1.490 2007/05/24 18:23:14 pluto +- java BR rpm-javaprov, release 4. + +Revision 1.489 2007/05/21 11:30:54 pluto +- fix patch for PR/30052 that causes an ICE during fortran bootstrap. +- release 3. + +Revision 1.488 2007/05/19 17:18:48 qboosh +- sanitize libgij.la + +Revision 1.487 2007/05/19 17:13:35 qboosh +- package libgfortranbegin.la + +Revision 1.486 2007/05/19 14:36:40 pluto +- fix mem/time hog, release 2. + +Revision 1.485 2007/05/19 12:49:36 qboosh +- mozilla bcond (for libgcjwebplugin) + +Revision 1.484 2007/05/18 19:33:41 qboosh +- post-snap cleanup (snaps belong to DEVEL branch) + +Revision 1.483 2007/05/15 21:07:56 pluto +- 4.2.0 released. + +Revision 1.482 2007/05/05 14:27:30 pluto +- turn off unnecessary warnings about anonymous namespaces. + +Revision 1.481 2007/05/02 19:27:33 pluto +- 4.2.0-RC3. + +Revision 1.480 2007/05/01 21:18:52 pluto +- 4.2.0-RC2. + +Revision 1.479 2007/04/25 21:17:40 pluto +- branch diff updated to 20070425. + +Revision 1.478 2007/04/18 13:15:02 pluto +- enable .gnu.hash by default, enable libgcjwebplugin.so. + +Revision 1.477 2007/04/16 09:38:58 pluto +- branch diff (bugfixes) applied. + +Revision 1.476 2007/04/09 00:09:09 baggins +- removed stupid hack + +Revision 1.475 2007/04/09 00:06:25 baggins +- removed pre 4.2 changelog entries (40KB of now meaningless text) + +Revision 1.474 2007/04/09 00:04:55 baggins +- reverted to rc1, hack around release to avoid bumping epoch +- we don't want broken random snapshots anymore now + +Revision 1.473 2007/04/03 07:00:04 arekm +- up to 20070403.r123448 + +Revision 1.472 2007/03/20 20:13:37 pluto +- fix PR c++/7302, drop broken patches, make testsuite working. + +Revision 1.471 2007/03/18 09:50:31 arekm +4.2.0 rc1 + +Revision 1.470 2007/03/08 00:36:48 pluto +- updated to 4.2.0-20070307. + +Revision 1.469 2007/03/01 15:48:22 arekm +- up to 20070228 + +Revision 1.468 2007/02/24 04:51:15 sls +- BR: libart_lgpl-devel (--with gtk); sorted BR + +Revision 1.467 2007/02/22 21:04:12 arekm +- up to 20070221; -pr29943.patch merged + +Revision 1.466 2007/02/14 23:06:54 pluto +- updated to 4.2.0-20070214. + +Revision 1.465 2007/02/14 21:50:28 pluto +- fix -fsection-anchors ( ppc related ). + +Revision 1.464 2007/02/13 07:16:45 glen +- tabs in preamble + +Revision 1.463 2007/02/12 00:48:34 baggins +- converted to UTF-8 + +Revision 1.462 2007/02/10 11:51:55 arekm +- add libgomp info files + +Revision 1.461 2007/02/09 23:49:48 arekm +- disable one patch that looks broken according to bugreport + +Revision 1.460 2007/02/09 23:40:11 arekm +- snap 20070207; pr19505 already fixed in different way + +Revision 1.459 2007/01/26 20:24:54 arekm +- up to 20070126r121214 + +Revision 1.458 2007/01/14 12:11:26 qboosh +- restored lib-gnu-awt-xlib after my messing (it comes directly from libjava, + not classpath as I though); added x bcond + +Revision 1.457 2007/01/06 11:49:18 pluto +- update + +Revision 1.456 2007/01/06 11:43:31 arekm +- use any external jar like fastjar + +Revision 1.455 2007/01/05 02:28:42 sls +- BR: perl-tools-pod (fastjar needs pod2man) + +Revision 1.454 2007/01/02 11:55:15 arekm +- gmem.a is also available on x86_64 + +Revision 1.453 2007/01/01 20:50:22 arekm +TODO + +Revision 1.452 2007/01/01 18:18:16 arekm +- add --enable-java-awt + +Revision 1.451 2007/01/01 14:22:58 arekm +- correct bcond names (?) + +Revision 1.450 2007/01/01 00:10:07 arekm +- rel .2 + +Revision 1.449 2006/12/31 21:29:34 pluto +- up to 20061231r120298 + +Revision 1.448 2006/12/31 18:25:10 qboosh +- reverted c++config.h splitting, it's already handled by 32 subdir in C++ headers + +Revision 1.447 2006/12/31 17:15:26 qboosh +- release .3 + +Revision 1.446 2006/12/31 03:56:58 qboosh +- bugfix + +Revision 1.445 2006/12/31 00:09:02 qboosh +- configure --with-cpu=ultrasparc on sparc64 (merged from AC-branch) + +Revision 1.444 2006/12/30 23:59:20 qboosh +- sparc64->sparc hardlinks only if built with multilib +- handle different c++config.h files if c++ is built with multilib + +Revision 1.443 2006/12/30 23:47:49 qboosh +- more sparc64->sparc hardlinks (merged from AC-branch) + +Revision 1.442 2006/12/30 02:13:36 qboosh +- more libgomp + +Revision 1.441 2006/12/30 01:24:55 qboosh +- bugfix + +Revision 1.440 2006/12/30 01:11:39 qboosh +- no lib-gnu-awt-xlib + +Revision 1.439 2006/12/29 15:29:25 qboosh +- typo + +Revision 1.438 2006/12/29 14:32:40 qboosh +- java updates, added alsa,dssi,gtk,qt bconds + +Revision 1.437 2006/12/29 13:30:47 qboosh +- added libgomp* + +Revision 1.436 2006/12/25 17:50:40 pluto +- up to 4.2-20061225r120195 + +Revision 1.435 2006/12/07 22:23:05 pluto +- oops, remove local trash. + +Revision 1.434 2006/12/07 22:12:01 pluto +- package ppc specific files. + +Revision 1.433 2006/12/07 09:55:08 wiget +- one more todo + +Revision 1.432 2006/12/06 22:16:28 pluto +- updated to 4.2.0-20061206 (rev. 119598). + +Revision 1.431 2006/12/06 15:49:15 pluto +- BR: mpfr-devel >= 2.2.1, updated patch for PR20218, testing... + +Revision 1.430 2006/11/19 19:12:48 pluto +- updated to 4.2-20061119 (rev. 118994). + +Revision 1.429 2006/11/13 14:56:53 sparky +- don't use %{without ...}, it may not work after inverting bcond + +Revision 1.428 2006/11/10 19:49:02 pluto +- updated to 4.2.0-20061110 (rev. 118658). +- BR: mpfr-devel >= 2.2. + +Revision 1.427 2006/11/01 18:05:39 pluto +- remove dups from c++ %files. + +Revision 1.426 2006/11/01 17:59:54 pluto +- java %files updated. + +Revision 1.425 2006/11/01 14:02:10 pluto +- package c++ dir. + +Revision 1.424 2006/10/31 08:00:33 pluto +- fix %files. + +Revision 1.423 2006/10/30 23:37:12 pluto +- updated to 4.2-20061030 (rev. 118195). + +Revision 1.422 2006/10/22 15:47:20 pluto +- fix PR target/29512 - O(c^N) complexity algorithm in the i386 backend. +- move c++ headers into versioned dir. + +Revision 1.421 2006/10/22 13:29:05 pluto +- disable multlib build ( broken ), fix %files. + +Revision 1.420 2006/10/21 18:56:38 pluto +- updated to 4.2.0-20061021 (rev. 117925). + (4.2 branch created). + +Revision 1.419 2006/10/16 15:02:59 qrczak +- PR28230: fixes wrong code generation with -fwrapv + +Revision 1.418 2006/09/16 21:07:00 pluto +- java %files updated. + +Revision 1.417 2006/09/16 12:47:31 pluto +- updated to 4.2.0-20060916 (rev. 116994). + +Revision 1.416 2006/09/03 21:01:12 pluto +- updated to 4.2.0-20060831 (rev. 116602). + +Revision 1.415 2006/08/07 12:04:06 pluto +- BR: s/perl-devel/perl-base/ + +Revision 1.414 2006/08/06 22:36:23 pluto +- jar wrapper build forced, files updated. + +Revision 1.413 2006/08/06 20:45:50 pluto +- updated to 4.2.0-20060806 (rev. 115974). + +Revision 1.412 2006/07/25 13:17:02 pluto +- updated to 4.2.0-20060725 (rev. 115734). + +Revision 1.411 2006/07/17 20:01:28 pluto +- visibility fixes for 4.2. + +Revision 1.410 2006/07/06 10:34:58 pluto +- now it should bootstrap on x86 and ppc... + +Revision 1.409 2006/07/05 13:40:49 pluto +- %files updated (mmx/sse issue). + +Revision 1.408 2006/07/04 10:22:15 glen +- typo + +Revision 1.407 2006/07/04 08:25:48 pluto +- logfix (kill utf8). + +Revision 1.406 2006/07/04 08:21:14 pluto +- fastjar is not bundled anymore with gcc. to build libgcj, you will need + either InfoZIP (both zip and unzip) or an external jar program. + in the former case, the gcc build will install a jar shell script that + uses InfoZIP to provide the functionality of jar. + +Revision 1.405 2006/07/03 00:06:57 pluto +- --with-qt4dir no more needed. + +Revision 1.404 2006/07/02 22:47:21 pluto +- gcc/java += gappletviewer,gjarsigner,gkeytool. + +Revision 1.403 2006/07/02 22:09:25 pluto +- don't duplicate libffi docs in libgcj package. + +Revision 1.402 2006/07/02 21:49:39 pluto +- install/files updated. + +Revision 1.401 2006/07/02 19:20:17 pluto +- updated to 4.2.0-20060702r115125. + +Revision 1.400 2006/05/01 08:54:55 pluto +- updated to 4.2.0-20060428 (rev. 113350). + +Revision 1.399 2006/03/23 19:27:13 pluto +- BR:zip, install fixes, TODO added. + +Revision 1.398 2006/03/22 20:46:40 agaran +- commit for pluto, testing if it will lock for me too + +Revision 1.397 2005/12/02 09:02:50 pluto +- working on 4.2.0...