--- /dev/null
+--- 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)
--- /dev/null
+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 <jakub@redhat.com>.
+
+ This file is part of the GNU OpenMP Library (libgomp).
+@@ -27,6 +27,7 @@
+ #include "libgomp.h"
+ #include "libgomp_f.h"
+ #include <stdlib.h>
++#include <limits.h>
+
+ #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 <jakub@redhat.com>
++
++ 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 <meissner@linux.vnet.ibm.com>
++
++ Backport from mainline
++ 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
++
++ 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 <jakub@redhat.com>
++
++ Backported from mainline
++ 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
++
++ 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 <ebotcazou@adacore.com>
++
++ * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
++ (dataflow_set_preserve_mem_locs): Likewise.
++
++2011-05-07 Alan Modra <amodra@gmail.com>
++
++ 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 <jason@redhat.com>
++
++ PR c++/40975
++ * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
++
++2011-05-05 Julian Brown <julian@codesourcery.com>
++
++ * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
++ parenthesis in D-register case.
++
++2011-05-05 Ira Rosen <ira.rosen@linaro.org>
++
++ Backport from mainline:
++ 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
++ Ira Rosen <ira.rosen@linaro.org>
++
++ 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<mode>_internal): Make both
++ outputs explicitly dependent on both inputs.
++ (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
++
++2011-05-04 Uros Bizjak <ubizjak@gmail.com>
++
++ Backport from mainline
++ 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
++
++ PR target/48708
++ * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
++ vec_extract and vec_concat for non-SSE4_1 targets.
++
++2011-05-04 Uros Bizjak <ubizjak@gmail.com>
++
++ * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
++ 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<mode>_internal_rex64): Ditto.
++
++2011-05-03 Uros Bizjak <ubizjak@gmail.com>
++ Jakub Jelinek <jakub@redhat.com>
++
++ 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 <jakub@redhat.com>
++
++ Backport from mainline
++ 2011-04-30 Jakub Jelinek <jakub@redhat.com>
++
++ 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 <jakub@redhat.com>
++
++ PR middle-end/48597
++ * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
++ inline asm.
++
++ 2011-04-27 Jakub Jelinek <jakub@redhat.com>
++
++ PR c/48742
++ * c-typeck.c (build_binary_op): Don't wrap arguments if
++ int_operands is true.
++
++ 2011-04-23 Jakub Jelinek <jakub@redhat.com>
++
++ 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 <ulrich.weigand@linaro.org>
++
++ PR middle-end/43085
++ Backport from mainline:
++
++ 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
++
++ From Dominique d'Humieres <dominiq@lps.ens.fr>
++ PR bootstrap/43858
++ * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
++ test_set.
++
++ 2010-04-26 Bernd Schmidt <bernds@codesourcery.com>
++
++ * 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 <bernds@codesourcery.com>
++
++ * 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 <dave.anglin@nrc-cnrc.gc.ca>
++
++ 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 <rguenther@suse.de>
++
++ * 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 <stdlib.h>
++#include <string.h>
++
++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 <stdlib.h>
++
++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 <emmintrin.h>
++
++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 <emmintrin.h>
+
+@@ -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 <meissner@linux.vnet.ibm.com>
++
++ Backport from mainline
++ 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
++
++ 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 <jakub@redhat.com>
++
++ Backported from mainline
++ 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
++
++ PR tree-optimization/48837
++ * gcc.dg/pr48837.c: New testcase.
++
++2011-05-09 Jason Merrill <jason@redhat.com>
++
++ * g++.dg/template/nontype23.C: New.
++
++2011-05-05 Jason Merrill <jason@redhat.com>
++
++ * g++.dg/init/new30.C: New.
++
++2011-05-05 Julian Brown <julian@codesourcery.com>
++
++ * gcc.target/arm/neon-vset_lanes8.c: New test.
++
++2011-05-05 Ira Rosen <ira.rosen@linaro.org>
++
++ Backport from mainline:
++ 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
++ Ira Rosen <ira.rosen@linaro.org>
++
++ PR target/48252
++ * gcc.target/arm/pr48252.c: New test.
++
++2011-05-04 Uros Bizjak <ubizjak@gmail.com>
++
++ Backport from mainline
++ 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
++
++ PR target/48708
++ * gcc.target/i386/pr48708.c: New test.
++
++2011-05-04 Uros Bizjak <ubizjak@gmail.com>
++
++ Backport from mainline
++ 2010-12-08 H.J. Lu <hongjiu.lu@intel.com>
++
++ * gcc.target/i386/sse2-init-v2di-2.c: Add "-dp" and update
++ expected scan.
++
++2011-05-03 Jakub Jelinek <jakub@redhat.com>
++
++ PR target/48774
++ * gcc.dg/pr48774.c: New test.
++
++ Backport from mainline
++ 2011-04-30 Jakub Jelinek <jakub@redhat.com>
++
++ PR tree-optimization/48809
++ * gcc.c-torture/execute/pr48809.c: New test.
++
++ 2011-04-27 Jakub Jelinek <jakub@redhat.com>
++
++ PR c/48742
++ * gcc.c-torture/compile/pr48742.c: New test.
++
++ 2011-04-23 Jakub Jelinek <jakub@redhat.com>
++
++ PR c/48685
++ * gcc.dg/pr48685.c: New test.
++
++2011-04-27 Jason Merrill <jason@redhat.com>
++
++ * 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 <bool C> int foo (void);
++template <class T> struct S
++{
++ static const unsigned int a = sizeof (T);
++ enum { c = sizeof (foo <(a == 0)> ()) };
++};
++S<int> 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 <jason@redhat.com>
++
++ PR c++/48936
++ * decl2.c (mark_used): Instantiate constant variables even
++ in unevaluated context.
++
++2011-04-27 Jason Merrill <jason@redhat.com>
++
++ 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;
+ }
+ \f
+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<mode>_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>mode) - 1 - elt;
+ operands[2] = GEN_INT (elt);
+@@ -3895,13 +3895,14 @@
+
+ (define_insn "neon_vtrn<mode>_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.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
++ "vtrn.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
+ [(set (attr "neon_type")
+ (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
+ (const_string "neon_bp_simple")
+@@ -3921,13 +3922,14 @@
+
+ (define_insn "neon_vzip<mode>_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.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
++ "vzip.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
+ [(set (attr "neon_type")
+ (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
+ (const_string "neon_bp_simple")
+@@ -3947,13 +3949,14 @@
+
+ (define_insn "neon_vuzp<mode>_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.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
++ "vuzp.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
+ [(set (attr "neon_type")
+ (if_then_else (ne (symbol_ref "<Is_d_reg>") (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 <ro@CeBiTec.Uni-Bielefeld.DE>
++
++ Backport from mainline:
++ 2011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
++
++ * 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.
--- /dev/null
+2007-07-22 Roland McGrath <roland@redhat.com>
+
+ * 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"
+
--- /dev/null
+--- 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 \
--- /dev/null
+--- 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 "}}}"
+
--- /dev/null
+--- 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
--- /dev/null
+--- 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
+
--- /dev/null
+--- 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) \
--- /dev/null
+--- 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);
--- /dev/null
+#!/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 = <F>;
+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($_);
+ }
+}
--- /dev/null
+Date: Tue, 22 Dec 2009 10:00:29 -0800
+Subject: plugin event for C/C++ declarations
+From: Brian Hackett <bhackett1024 at gmail dot com>
+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 <stdlib.h>
++#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:
--- /dev/null
+# $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 <feedback@pld-linux.org>
+All persons listed below can be reached at <cvs_login>@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<bool>.
+- 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...