]> TLD Linux GIT Repositories - packages/gcc.git/commitdiff
- from pld cvs @GCC_4_5, with dropped architecture: sparc, sparc64, ppc,
authorBartosz Swiatek <shadzik@tld-linux.org>
Sun, 2 Oct 2011 15:28:15 +0000 (17:28 +0200)
committerBartosz Swiatek <shadzik@tld-linux.org>
Sun, 2 Oct 2011 15:28:15 +0000 (17:28 +0200)
  pcc64

12 files changed:
gcc-ada-link.patch [new file with mode: 0644]
gcc-branch.diff [new file with mode: 0644]
gcc-build-id.patch [new file with mode: 0644]
gcc-enable-java-awt-qt.patch [new file with mode: 0644]
gcc-hash-style-gnu.patch [new file with mode: 0644]
gcc-info.patch [new file with mode: 0644]
gcc-libjava-multilib.patch [new file with mode: 0644]
gcc-nodebug.patch [new file with mode: 0644]
gcc-nolocalefiles.patch [new file with mode: 0644]
gcc-optimize-la.pl [new file with mode: 0644]
gcc-plugin-decl-hook.patch [new file with mode: 0644]
gcc.spec [new file with mode: 0644]

diff --git a/gcc-ada-link.patch b/gcc-ada-link.patch
new file mode 100644 (file)
index 0000000..b664972
--- /dev/null
@@ -0,0 +1,66 @@
+--- a/gcc/ada/link.c   2004-09-13 12:18:40.000000000 +0200
++++ b/gcc/ada/link.c   2004-09-26 12:24:29.079704096 +0200
+@@ -213,10 +213,10 @@
+ #elif defined (linux) || defined(__GLIBC__)
+ const char *__gnat_object_file_option = "";
+-const char *__gnat_run_path_option = "-Wl,-rpath,";
++const char *__gnat_run_path_option = "";
+ char __gnat_shared_libgnat_default = STATIC;
+-char __gnat_shared_libgcc_default = STATIC;
+-int __gnat_link_max = 8192;
++char __gnat_shared_libgcc_default = SHARED;
++int __gnat_link_max = 131072;
+ unsigned char __gnat_objlist_file_supported = 1;
+ unsigned char __gnat_using_gnu_linker = 1;
+ const char *__gnat_object_library_extension = ".a";
+--- a/gcc/ada/gcc-interface/Make-lang.in       2004-09-01 12:46:47.000000000 +0200
++++ b/gcc/ada/gcc-interface/Make-lang.in       2004-09-26 12:21:15.135188144 +0200
+@@ -378,7 +378,7 @@
+ ada/doctools/xgnatugn$(build_exeext): ada/xgnatugn.adb
+       -$(MKDIR) ada/doctools
+       $(CP) $^ ada/doctools
+-      cd ada/doctools && $(GNATMAKE) -q xgnatugn
++      cd ada/doctools && $(GNATMAKE) -q xgnatugn -a0../rts
+ # Note that gnat_ugn_unw.texi does not depend on xgnatugn 
+ # being built so we can distribute a pregenerated gnat_ugn_unw.info
+--- a/gcc/ada/gcc-interface/Makefile.in        2005-05-26 10:48:40.000000000 +0000
++++ b/gcc/ada/gcc-interface/Makefile.in        2005-05-26 10:59:25.000000000 +0000
+@@ -126,7 +126,7 @@
+ objext = .o
+ exeext =
+ arext  = .a
+-soext  = .so
++soext  = .so.1
+ shext  =
+ hyphen = -
+@@ -193,7 +193,7 @@
+ # Link flags used to build gnat tools.  By default we prefer to statically
+ # link with libgcc to avoid a dependency on shared libgcc (which is tricky
+ # to deal with as it may conflict with the libgcc provided by the system).
+-GCC_LINK_FLAGS=-static-libgcc
++GCC_LINK_FLAGS=
+ # End of variables for you to override.
+@@ -2489,7 +2489,8 @@
+               -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
+               $(GNATRTL_TASKING_OBJS) \
+               $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
+-              $(THREADSLIB)
++              $(THREADSLIB) \
++              ./libgnat-$(LIBRARY_VERSION)$(soext)
+       cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
+               libgnat$(soext)
+       cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
+@@ -2546,7 +2547,7 @@
+            THREAD_KIND="$(THREAD_KIND)" \
+              gnatlib
+       $(RM) $(RTSDIR)/libgna*$(soext)
+-      cd $(RTSDIR); ../../xgcc -B../../ -shared $(TARGET_LIBGCC2_CFLAGS) \
++      cd $(RTSDIR); ../../xgcc -B../../ -shared -shared-libgcc $(TARGET_LIBGCC2_CFLAGS) \
+               -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
+               $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
+               $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)
diff --git a/gcc-branch.diff b/gcc-branch.diff
new file mode 100644 (file)
index 0000000..622f26d
--- /dev/null
@@ -0,0 +1,2117 @@
+Index: libgomp/fortran.c
+===================================================================
+--- libgomp/fortran.c  (.../tags/gcc_4_5_3_release)    (wersja 173771)
++++ libgomp/fortran.c  (.../branches/gcc-4_5-branch)   (wersja 173771)
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
++/* Copyright (C) 2005, 2007, 2008, 2009, 2011 Free Software Foundation, Inc.
+    Contributed by Jakub Jelinek <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 (&reg_obstack);
++      merge_set_noclobber = BITMAP_ALLOC (&reg_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.
diff --git a/gcc-build-id.patch b/gcc-build-id.patch
new file mode 100644 (file)
index 0000000..f76f939
--- /dev/null
@@ -0,0 +1,52 @@
+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"
diff --git a/gcc-enable-java-awt-qt.patch b/gcc-enable-java-awt-qt.patch
new file mode 100644 (file)
index 0000000..d5bfb65
--- /dev/null
@@ -0,0 +1,82 @@
+--- trunk/libjava/classpath/configure.ac       2006-07-02 15:32:04.000000000 +0200
++++ trunk/libjava/classpath/configure.ac       2006-07-02 19:18:28.913906000 +0200
+@@ -502,7 +502,8 @@
+       AC_CHECK_FILE([$EXTRA_QT_INCLUDE_DIR/QWidget],
+       QT_CFLAGS="$QT_CFLAGS -I$EXTRA_QT_INCLUDE_DIR",
+       AC_MSG_WARN([QWidget not found])))
+-      AC_CHECK_PROG(MOC, [moc], [moc])
++      QT4DIR=`$PKG_CONFIG --variable=prefix QtGui`
++      AC_CHECK_PROG(MOC, [moc], [$QT4DIR/bin/moc], [], $QT4DIR/bin)
+       AC_CHECK_PROG(MOC, [moc-qt4], [moc-qt4])
+     fi
+     if test "x$HAVE_QT4" = "xno"; then
+--- trunk/libjava/classpath/native/jni/qt-peer/Makefile.am     2007-06-04 01:18:43.000000000 +0200
++++ trunk/libjava/classpath/native/jni/qt-peer/Makefile.am     2008-03-06 16:32:36.000000000 +0100
+@@ -1,8 +1,7 @@
+ # Qt AWT backend for Classpath
+ #
+-## GCJ LOCAL: don't install this library
+-noinst_LTLIBRARIES = libqtpeer.la
++nativeexeclib_LTLIBRARIES = libqtpeer.la
+ AM_LDFLAGS = @CLASSPATH_MODULE@ @QT_LIBS@
+ AM_CPPFLAGS = @CLASSPATH_INCLUDES@
+--- trunk/libjava/classpath/native/jni/qt-peer/Makefile.in     2007-08-04 12:53:49.000000000 +0200
++++ trunk/libjava/classpath/native/jni/qt-peer/Makefile.in     2008-03-06 15:24:38.000000000 +0100
+@@ -64,7 +64,8 @@
+ mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
+ CONFIG_HEADER = $(top_builddir)/include/config.h
+ CONFIG_CLEAN_FILES =
+-LTLIBRARIES = $(noinst_LTLIBRARIES)
++nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL)
++LTLIBRARIES = $(nativeexeclib_LTLIBRARIES)
+ libqtpeer_la_LIBADD =
+ am_libqtpeer_la_OBJECTS = componentevent.lo keybindings.lo \
+       mainqtthread.lo mainthreadinterface.lo nativewrapper.lo \
+@@ -357,7 +358,7 @@
+ target_vendor = @target_vendor@
+ toolexeclibdir = @toolexeclibdir@
+ vm_classes = @vm_classes@
+-noinst_LTLIBRARIES = libqtpeer.la
++nativeexeclib_LTLIBRARIES = libqtpeer.la
+ AM_LDFLAGS = @CLASSPATH_MODULE@ @QT_LIBS@
+ AM_CPPFLAGS = @CLASSPATH_INCLUDES@
+ AM_CXXFLAGS = @QT_CFLAGS@ \
+@@ -475,7 +476,7 @@
+         rm -f "$${dir}/so_locations"; \
+       done
+ libqtpeer.la: $(libqtpeer_la_OBJECTS) $(libqtpeer_la_DEPENDENCIES) 
+-      $(CXXLINK)  $(libqtpeer_la_LDFLAGS) $(libqtpeer_la_OBJECTS) $(libqtpeer_la_LIBADD) $(LIBS)
++      $(LINK) -rpath $(nativeexeclibdir) $(libqtpeer_la_LDFLAGS) $(libqtpeer_la_OBJECTS) $(libqtpeer_la_LIBADD) $(LIBS)
+ mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+@@ -686,7 +687,18 @@
+ install-data-am:
+-install-exec-am:
++install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES)
++      @$(NORMAL_INSTALL)
++      test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)"
++      @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
++        if test -f $$p; then \
++          f=$(am__strip_dir) \
++          echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \
++          $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \
++        else :; fi; \
++      done
++
++install-exec-am: install-nativeexeclibLTLIBRARIES
+ install-info: install-info-am
+@@ -720,6 +732,7 @@
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-man \
++      install-nativeexeclibLTLIBRARIES \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
diff --git a/gcc-hash-style-gnu.patch b/gcc-hash-style-gnu.patch
new file mode 100644 (file)
index 0000000..3c19b2b
--- /dev/null
@@ -0,0 +1,122 @@
+--- gcc-4.2.0-20070316/gcc/config/alpha/linux-elf.h.orig       2006-02-18 06:12:51.000000000 -0500
++++ gcc-4.2.0-20070316/gcc/config/alpha/linux-elf.h    2007-04-18 07:14:56.875631582 -0400
+@@ -40,7 +40,7 @@
+ #define ELF_DYNAMIC_LINKER    LINUX_DYNAMIC_LINKER
+-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}                \
++#define LINK_SPEC "-m elf64alpha --hash-style=gnu %{G*} %{relax:-relax}       \
+   %{O*:-O3} %{!O*:-O1}                                                \
+   %{shared:-shared}                                           \
+   %{!shared:                                                  \
+--- gcc-4.2.0-20070316/gcc/config/s390/linux.h.orig    2006-12-12 10:21:53.000000000 -0500
++++ gcc-4.2.0-20070316/gcc/config/s390/linux.h 2007-04-18 07:14:56.875631582 -0400
+@@ -78,7 +78,7 @@
+ #undef  LINK_SPEC
+ #define LINK_SPEC \
+-  "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
++  "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=gnu \
+    %{shared:-shared} \
+    %{!shared: \
+       %{static:-static} \
+--- gcc-4.2.0-20070316/gcc/config/sparc/linux.h.orig   2006-02-18 06:12:51.000000000 -0500
++++ gcc-4.2.0-20070316/gcc/config/sparc/linux.h        2007-04-18 07:14:56.875631582 -0400
+@@ -133,7 +133,7 @@
+ #undef  LINK_SPEC
+-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
++#define LINK_SPEC "-m elf32_sparc --hash-style=gnu -Y P,/usr/lib %{shared:-shared} \
+   %{!mno-relax:%{!r:-relax}} \
+   %{!shared: \
+     %{!ibcs: \
+--- gcc-4.2.0-20070316/gcc/config/sparc/linux64.h.orig 2006-03-02 17:47:02.000000000 -0500
++++ gcc-4.2.0-20070316/gcc/config/sparc/linux64.h      2007-04-18 07:16:49.644880415 -0400
+@@ -121,7 +121,7 @@
+   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },      \
+   { "link_arch",       LINK_ARCH_SPEC },
+-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
++#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=gnu -Y P,%R/usr/lib %{shared:-shared} \
+   %{!shared: \
+     %{!ibcs: \
+       %{!static: \
+@@ -130,7 +130,7 @@
+         %{static:-static}}} \
+ "
+-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=gnu -Y P,%R/usr/lib64 %{shared:-shared} \
+   %{!shared: \
+     %{!ibcs: \
+       %{!static: \
+@@ -211,7 +211,7 @@
+ #else /* !SPARC_BI_ARCH */
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_SPEC "-m elf64_sparc --hash-style=gnu -Y P,%R/usr/lib64 %{shared:-shared} \
+   %{!shared: \
+     %{!ibcs: \
+       %{!static: \
+--- gcc-4.2.0-20070316/gcc/config/i386/linux.h.orig    2006-04-06 18:16:11.000000000 -0400
++++ gcc-4.2.0-20070316/gcc/config/i386/linux.h 2007-04-18 07:14:56.875631582 -0400
+@@ -109,7 +109,7 @@
+   { "dynamic_linker", LINUX_DYNAMIC_LINKER }
+ #undef        LINK_SPEC
+-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
++#define LINK_SPEC "-m %(link_emulation) --hash-style=gnu %{shared:-shared} \
+   %{!shared: \
+     %{!ibcs: \
+       %{!static: \
+--- gcc-4.2.0-20070316/gcc/config/i386/linux64.h.orig  2006-02-18 06:12:51.000000000 -0500
++++ gcc-4.2.0-20070316/gcc/config/i386/linux64.h       2007-04-18 07:14:56.875631582 -0400
+@@ -65,7 +65,7 @@
+ #endif
+ #undef        LINK_SPEC
+-#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
++#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=gnu \
+   %{shared:-shared} \
+   %{!shared: \
+     %{!static: \
+--- gcc-4.2.0-20070316/gcc/config/ia64/linux.h.orig    2006-12-12 10:21:53.000000000 -0500
++++ gcc-4.2.0-20070316/gcc/config/ia64/linux.h 2007-04-18 07:14:56.875631582 -0400
+@@ -40,7 +40,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
+ #undef LINK_SPEC
+-#define LINK_SPEC "\
++#define LINK_SPEC "--hash-style=gnu \
+   %{shared:-shared} \
+   %{!shared: \
+     %{!static: \
+--- gcc-4.2.0-20070316/gcc/config/rs6000/sysv4.h.orig  2007-03-09 19:59:15.000000000 -0500
++++ gcc-4.2.0-20070316/gcc/config/rs6000/sysv4.h       2007-04-18 07:14:56.872300144 -0400
+@@ -902,7 +902,7 @@
+ #define LINUX_DYNAMIC_LINKER \
+   CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
+-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=gnu %{!shared: %{!static: \
+   %{rdynamic:-export-dynamic} \
+   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
+--- gcc-4.2.0-20070316/gcc/config/rs6000/linux64.h.orig        2006-07-14 11:54:23.000000000 -0400
++++ gcc-4.2.0-20070316/gcc/config/rs6000/linux64.h     2007-04-18 07:18:14.042413298 -0400
+@@ -351,11 +351,11 @@
+   CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
+-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=gnu %{!shared: %{!static: \
+   %{rdynamic:-export-dynamic} \
+   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}}"
+-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=gnu %{!shared: %{!static: \
+   %{rdynamic:-export-dynamic} \
+   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}}"
diff --git a/gcc-info.patch b/gcc-info.patch
new file mode 100644 (file)
index 0000000..2298512
--- /dev/null
@@ -0,0 +1,305 @@
+--- a/gcc/doc/cpp.texi 2004-09-17 10:22:36.000000000 +0200
++++ b/gcc/doc/cpp.texi 2004-09-26 10:58:58.166721432 +0200
+@@ -50,9 +50,9 @@
+ @set cppmanual
+ @ifinfo
+-@dircategory Software development
++@dircategory Programming Languages:
+ @direntry
+-* Cpp: (cpp).                  The GNU C preprocessor.
++* Cpp: (cpp).                         The GNU C preprocessor
+ @end direntry
+ @end ifinfo
+--- a/gcc/doc/cppinternals.texi        2004-07-03 01:57:11.000000000 +0200
++++ b/gcc/doc/cppinternals.texi        2004-09-26 10:58:58.208715048 +0200
+@@ -3,9 +3,9 @@
+ @settitle The GNU C Preprocessor Internals
+ @ifinfo
+-@dircategory Software development
++@dircategory Programming Languages:
+ @direntry
+-* Cpplib: (cppinternals).      Cpplib internals.
++* Cpplib: (cppinternals).             Cpplib internals
+ @end direntry
+ @end ifinfo
+--- a/gcc/doc/gcc.texi 2004-07-22 22:12:20.000000000 +0200
++++ b/gcc/doc/gcc.texi 2004-09-26 10:58:58.218713528 +0200
+@@ -62,10 +62,10 @@
+      funds for GNU development.
+ @end copying
+ @ifnottex
+-@dircategory Software development
++@dircategory Programming Languages:
+ @direntry
+-* gcc: (gcc).                  The GNU Compiler Collection.
+-* g++: (gcc).                  The GNU C++ compiler.
++* gcc: (gcc).                         The GNU Compiler Collection
++* g++: (gcc).                         The GNU C++ compiler
+ @end direntry
+ This file documents the use of the GNU compilers.
+ @sp 1
+--- a/gcc/doc/gccint.texi      2004-05-24 00:54:29.000000000 +0200
++++ b/gcc/doc/gccint.texi      2004-09-26 10:58:58.222712920 +0200
+@@ -46,9 +46,9 @@
+      funds for GNU development.
+ @end copying
+ @ifnottex
+-@dircategory Software development
++@dircategory Programming Languages:
+ @direntry
+-* gccint: (gccint).            Internals of the GNU Compiler Collection.
++* gccint: (gccint).                   Internals of the GNU Compiler Collection
+ @end direntry
+ This file documents the internals of the GNU compilers.
+ @sp 1
+--- a/gcc/ada/gnat-style.texi  2004-09-01 13:51:52.000000000 +0200
++++ b/gcc/ada/gnat-style.texi  2004-09-26 10:58:58.342694680 +0200
+@@ -28,9 +28,9 @@
+ @setchapternewpage odd
+-@dircategory Software development
++@dircategory Programming Languages:
+ @direntry
+-* gnat-style: (gnat-style).      GNAT Coding Style
++* gnat-style: (gnat-style).           GNAT Coding Style
+ @end direntry
+ @macro syntax{element}
+--- a/gcc/ada/gnat_ugn.texi    2005-12-06 23:45:52.983574000 +0100
++++ b/gcc/ada/gnat_ugn.texi    2005-12-11 02:35:45.580878360 +0100
+@@ -109,9 +109,9 @@
+ @end macro
+ @settitle @value{EDITION} User's Guide @value{PLATFORM}
+-@dircategory GNU Ada tools
++@dircategory Programming Languages:
+ @direntry
+-* @value{EDITION} User's Guide: (gnat_ugn). @value{PLATFORM}
++* GNAT User's Guide (gnat_ugn_unw).     GNAT User's Guide
+ @end direntry
+ @include gcc-common.texi
+--- a/gcc/fortran/gfortran.texi        2004-09-16 15:13:39.000000000 +0200
++++ b/gcc/fortran/gfortran.texi        2004-09-26 11:05:50.258074024 +0200
+@@ -62,9 +62,9 @@
+ @end copying
+ @ifinfo
+-@dircategory Software development
++@dircategory Programming Languages:
+ @direntry
+-* gfortran: (gfortran).                  The GNU Fortran Compiler.
++* gfortran: (gfortran).                       The GNU Fortran Compiler
+ @end direntry
+ This file documents the use and the internals of
+ the GNU Fortran compiler, (@command{gfortran}).
+--- a/gcc/java/gcj.texi        2006-07-02 15:30:47.000000000 +0200
++++ b/gcc/java/gcj.texi        2006-07-02 21:15:25.663463500 +0200
+@@ -53,29 +53,22 @@
+ @ifinfo
+ @format
+-@dircategory Software development
++@dircategory Programming Languages:
+ @direntry
+-* Gcj: (gcj).               Ahead-of-time compiler for the Java language
++* Gcj: (gcj).                         Ahead-of-time compiler for the Java language
+ @end direntry
+ @dircategory Individual utilities
++@dircategory Programming tools:
+ @direntry
+-* jcf-dump: (gcj)Invoking jcf-dump.
+-                            Print information about Java class files
+-* gij: (gcj)Invoking gij.   GNU interpreter for Java bytecode
+-* gcj-dbtool: (gcj)Invoking gcj-dbtool.
+-                            Tool for manipulating class file databases.
+-* jv-convert: (gcj)Invoking jv-convert.
+-                            Convert file from one encoding to another
+-* grmic: (gcj)Invoking grmic.
+-                            Generate stubs for Remote Method Invocation.
+-* gc-analyze: (gcj)Invoking gc-analyze.
+-                            Analyze Garbage Collector (GC) memory dumps.
+-* aot-compile: (gcj)Invoking aot-compile.
+-                            Compile bytecode to native and generate databases.
+-* rebuild-gcj-db: (gcj)Invoking rebuild-gcj-db.
+-                            Merge the per-solib databases made by aot-compile
+-                            into one system-wide database.
++* jcf-dump: (gcj)jcf-dump.            Print information about Java class files
++* gij: (gcj)gij.                      GNU interpreter for Java bytecode
++* jv-convert: (gcj)jv-convert.                Convert file from one encoding to another
++* gcj-dbtool: (gcj)gcj-dbtool.                Db tool.
++* grmic: (gcj)grmic.                  Generate stubs for Remote Method Invocation.
++* gc-analyze: (gcj)gc-analyze.                Analyze Garbage Collector (GC) memory dumps.
++* aot-compile:                                Compile bytecode to native and generate databases.
++* rebuild-gcj-db:                     Merge the per-solib databases made by aot-compile into one system-wide database.
+ @end direntry
+ @end format
+@@ -108,33 +101,31 @@
+ @file{.class} files.
+ @menu
+-* Copying::             The GNU General Public License
++* Copying::           The GNU General Public License
+ * GNU Free Documentation License::
+-                        How you can share and copy this manual
+-* Invoking gcj::        Compiler options supported by @command{gcj}
+-* Compatibility::       Compatibility between gcj and other tools for Java
+-* Invoking jcf-dump::   Print information about class files
+-* Invoking gij::        Interpreting Java bytecodes
+-* Invoking gcj-dbtool:: Tool for manipulating class file databases.
+-* Invoking jv-convert:: Converting from one encoding to another
+-* Invoking grmic::      Generate stubs for Remote Method Invocation.
+-* Invoking gc-analyze:: Analyze Garbage Collector (GC) memory dumps.
+-* Invoking aot-compile:: Compile bytecode to native and generate databases.
+-* Invoking rebuild-gcj-db:: Merge the per-solib databases made by aot-compile
+-                            into one system-wide database.
+-* About CNI::           Description of the Compiled Native Interface
+-* System properties::   Modifying runtime behavior of the libgcj library
+-* Resources::           Where to look for more information
+-* Index::               Index.
++                      How you can share and copy this manual
++* gcj::                       Compiler options supported by @command{gcj}
++* Compatibility::     Compatibility between gcj and other tools for Java
++* jcf-dump::          Print information about class files
++* gij::                       Interpreting Java bytecodes
++* gcj-dbtool::                Tool for manipulating class file databases.
++* jv-convert::                Converting from one encoding to another
++* grmic::             Generate stubs for Remote Method Invocation.
++* gc-analyze::                Analyze Garbage Collector (GC) memory dumps.
++* aot-compile::               Compile bytecode to native and generate databases.
++* rebuild-gcj-db::    Merge the per-solib databases made by aot-compile into one system-wide database.
++* About CNI::         Description of the Compiled Native Interface
++* System properties:: Modifying runtime behavior of the libgcj library
++* Resources::         Where to look for more information
++* Index::             Index.
+ @end menu
+-
+ @include gpl_v3.texi
+ @include fdl.texi
+-@node Invoking gcj
++@node gcj
+ @chapter Invoking gcj
+ @c man title gcj Ahead-of-time compiler for the Java language
+@@ -678,8 +669,8 @@
+ @code{-findirect-dispatch} then add them to the system-wide
+ classmap.db file using @code{gcj-dbtool}, they will be automatically
+ loaded by the @code{libgcj} system classloader.  This is the new,
+-preferred classname-to-library resolution mechanism.  @xref{Invoking
+-gcj-dbtool}, for more information on using the classmap database.
++preferred classname-to-library resolution mechanism.  @xref{gcj-dbtool},
++for more information on using the classmap database.
+ @item
+ The old classname-to-library lookup mechanism is still supported
+@@ -726,7 +717,7 @@
+ @end itemize
+-@node Invoking jcf-dump
++@node jcf-dump
+ @chapter Invoking jcf-dump
+ @c man title jcf-dump print information about Java class files
+@@ -786,7 +777,7 @@
+ @c man end
+-@node Invoking gij
++@node gij
+ @chapter Invoking gij
+ @c man title gij GNU interpreter for Java bytecode
+@@ -915,7 +906,7 @@
+ @c man end
+-@node Invoking gcj-dbtool
++@node gcj-dbtool
+ @chapter Invoking gcj-dbtool.
+ @c man title gcj-dbtool Manipulate class file mapping databases for libgcj
+@@ -1006,7 +997,7 @@
+ @c man end
+-@node Invoking jv-convert
++@node jv-convert
+ @chapter Invoking jv-convert
+ @c man title jv-convert Convert file from one encoding to another
+@@ -1065,7 +1056,7 @@
+ @c man end
+-@node Invoking grmic
++@node grmic
+ @chapter Invoking grmic
+ @c man title grmic Generate stubs for Remote Method Invocation
+@@ -1144,7 +1135,7 @@
+ @c man end
+-@node Invoking gc-analyze
++@node gc-analyze
+ @chapter Invoking gc-analyze
+ @c man title gc-analyze Analyze Garbage Collector (GC) memory dumps
+@@ -1227,7 +1218,7 @@
+ @c man end
+-@node Invoking aot-compile
++@node aot-compile
+ @chapter Invoking aot-compile
+ @c man title aot-compile Compile bytecode to native and generate databases
+@@ -1285,7 +1276,7 @@
+ @c man end
+-@node Invoking rebuild-gcj-db
++@node rebuild-gcj-db
+ @chapter Invoking rebuild-gcj-db
+ @c man title rebuild-gcj-db Merge the per-solib databases made by aot-compile into one system-wide database.
+--- a/gcc/ada/gnat_rm.texi     2005-11-30 12:12:06.000000000 +0100
++++ b/gcc/ada/gnat_rm.texi     2005-12-11 02:36:14.863426736 +0100
+@@ -26,9 +26,9 @@
+ @include gcc-common.texi
+-@dircategory GNU Ada tools
++@dircategory Programming Languages:
+ @direntry
+-* GNAT Reference Manual: (gnat_rm).  Reference Manual for GNU Ada tools.
++* GNAT Reference Manual: (gnat_rm).   Reference Manual for GNU Ada tools
+ @end direntry
+ @copying
+--- a/gcc/doc/install.texi     2005-11-30 12:02:42.000000000 +0100
++++ b/gcc/doc/install.texi     2005-12-11 02:44:22.598279768 +0100
+@@ -87,9 +87,9 @@
+ @ifinfo
+ @insertcopying
+ @end ifinfo
+-@dircategory Software development
++@dircategory Programming Languages:
+ @direntry
+-* gccinstall: (gccinstall).    Installing the GNU Compiler Collection.
++* gccinstall: (gccinstall).           Installing the GNU Compiler Collection
+ @end direntry
+ @c Part 3 Titlepage and Copyright
diff --git a/gcc-libjava-multilib.patch b/gcc-libjava-multilib.patch
new file mode 100644 (file)
index 0000000..0ae37c1
--- /dev/null
@@ -0,0 +1,47 @@
+--- libjava/configure.ac.jj    2007-12-07 17:55:50.000000000 +0100
++++ libjava/configure.ac       2007-12-07 18:36:56.000000000 +0100
+@@ -82,6 +82,13 @@ AC_ARG_ENABLE(java-maintainer-mode,
+       [allow rebuilding of .class and .h files]))
+ AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes)
++AC_ARG_ENABLE(libjava-multilib,
++      AS_HELP_STRING([--enable-libjava-multilib], [build libjava as multilib]))
++if test "$enable_libjava_multilib" = no; then
++  multilib=no
++  ac_configure_args="$ac_configure_args --disable-multilib"
++fi
++
+ # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
+ GCC_NO_EXECUTABLES
+--- libjava/configure.jj       2007-12-07 17:55:50.000000000 +0100
++++ libjava/configure  2007-12-07 18:39:58.000000000 +0100
+@@ -1018,6 +1018,8 @@ Optional Features:
+   --enable-gconf-peer     compile GConf native peers for util.preferences
+   --enable-java-maintainer-mode
+                           allow rebuilding of .class and .h files
++  --enable-libjava-multilib
++                          build libjava as multilib
+   --disable-dependency-tracking  speeds up one-time build
+   --enable-dependency-tracking   do not reject slow dependency extractors
+   --enable-maintainer-mode  enable make rules and dependencies not useful
+@@ -1848,6 +1850,16 @@ else
+ fi
++# Check whether --enable-libjava-multilib was given.
++if test "${enable_libjava_multilib+set}" = set; then
++  enableval=$enable_libjava_multilib;
++fi
++
++if test "$enable_libjava_multilib" = no; then
++  multilib=no
++  ac_configure_args="$ac_configure_args --disable-multilib"
++fi
++
+ # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
+
+       Jakub
+
diff --git a/gcc-nodebug.patch b/gcc-nodebug.patch
new file mode 100644 (file)
index 0000000..6115833
--- /dev/null
@@ -0,0 +1,107 @@
+--- a/Makefile.in      2006-07-02 15:31:20.000000000 +0200
++++ b/Makefile.in      2006-07-02 20:55:33.573762250 +0200
+@@ -274,7 +274,7 @@
+ # Flags to pass to stage2 and later makes.  They are defined
+ # here so that they can be overridden by Makefile fragments.
+-BOOT_CFLAGS= -g -O2
++BOOT_CFLAGS= -O2
+ BOOT_LDFLAGS=
+ BISON = @BISON@
+--- a/gcc/Makefile.in  2008-02-25 15:53:34.000000000 +0100
++++ b/gcc/Makefile.in  2008-03-03 16:42:29.000000000 +0100
+@@ -560,7 +560,7 @@
+ # Options to use when compiling libgcc2.a.
+ #
+-LIBGCC2_DEBUG_CFLAGS = -g
++LIBGCC2_DEBUG_CFLAGS =
+ LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) \
+                $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) \
+                -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED \
+--- a/gcc/ada/gcc-interface/Makefile.in        2004-09-13 12:18:40.000000000 +0200
++++ b/gcc/ada/gcc-interface/Makefile.in        2004-09-26 11:40:30.070894416 +0200
+@@ -66,7 +66,7 @@
+ # CFLAGS is for the user to override to, e.g., do a bootstrap with -O2.
+ # BOOT_CFLAGS is the value of CFLAGS to pass
+ # to the stage2 and stage3 compilations
+-CFLAGS = -g
++CFLAGS =
+ BOOT_CFLAGS = -O $(CFLAGS)
+ # These exists to be overridden by the t-* files, respectively.
+ T_CFLAGS =
+@@ -102,9 +102,9 @@
+ ADA_CFLAGS =
+ ADAFLAGS = -W -Wall -gnatpg -gnata
+ SOME_ADAFLAGS =-gnata
+-FORCE_DEBUG_ADAFLAGS = -g
++FORCE_DEBUG_ADAFLAGS =
+ GNATLIBFLAGS = -gnatpg -nostdinc
+-GNATLIBCFLAGS = -g -O2
++GNATLIBCFLAGS = -O2
+ # Pretend that _Unwind_GetIPInfo is available for the target by default.  This
+ # should be autodetected during the configuration of libada and passed down to
+ # here, but we need something for --disable-libada and hope for the best.
+--- a/libada/Makefile.in       2005-11-04 13:49:08.000000000 +0000
++++ b/libada/Makefile.in       2005-11-24 23:52:14.739531296 +0000
+@@ -49,13 +49,13 @@
+ LDFLAGS=
+ # The tedious process of getting CFLAGS right.
+-CFLAGS=-g
++CFLAGS=
+ LOOSE_WARN = -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
+ GCC_WARN_CFLAGS = $(LOOSE_WARN)
+ WARN_CFLAGS = @warn_cflags@
+ TARGET_LIBGCC2_CFLAGS=
+-GNATLIBCFLAGS= -g -O2
++GNATLIBCFLAGS= -O2
+ GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \
+       -DIN_RTS @have_getipinfo@
+--- a/libffi/Makefile.in       2004-08-30 17:42:59.000000000 +0200
++++ b/libffi/Makefile.in       2004-09-26 11:44:10.789340112 +0200
+@@ -453,7 +453,7 @@
+       $(am__append_21) $(am__append_22)
+ libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
+ nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
+-AM_CFLAGS = -Wall -g -fexceptions
++AM_CFLAGS = -Wall -fexceptions
+ LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
+ libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS)
+ AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
+--- a/libffi/Makefile.am       2008-05-09 12:10:53.000000000 +0200
++++ b/libffi/Makefile.am       2008-11-28 02:02:01.690063811 +0100
+@@ -154,7 +154,7 @@
+ libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
+ nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
+-AM_CFLAGS = -Wall -g -fexceptions
++AM_CFLAGS = -Wall -fexceptions
+ LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
+--- a/libjava/Makefile.am      2004-09-10 10:22:58.000000000 +0200
++++ b/libjava/Makefile.am      2004-09-26 11:46:24.041082768 +0200
+@@ -179,7 +179,7 @@
+ ## Extra CFLAGS used for JNI C sources shared with GNU Classpath.
+ PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long
+-JCFLAGS = -g
++JCFLAGS =
+ JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS)
+ LIBFFIINCS = @LIBFFIINCS@
+--- a/libjava/Makefile.in      2004-09-19 19:47:04.000000000 +0200
++++ b/libjava/Makefile.in      2004-09-26 11:47:02.431246576 +0200
+@@ -4167,7 +4167,7 @@
+ @USING_GCC_FALSE@AM_CFLAGS = @LIBGCJ_CFLAGS@
+ @USING_GCC_TRUE@AM_CFLAGS = @LIBGCJ_CFLAGS@ $(WARNINGS)
+ PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long
+-JCFLAGS = -g
++JCFLAGS =
+ JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS)
+ AM_CPPFLAGS = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include \
+       $(GCINCS) $(THREADINCS) $(INCLTDL) \
diff --git a/gcc-nolocalefiles.patch b/gcc-nolocalefiles.patch
new file mode 100644 (file)
index 0000000..a799c54
--- /dev/null
@@ -0,0 +1,11 @@
+--- gcc-4.2.0/libstdc++-v3/configure.orig      2007-06-03 03:02:48.949324693 -0400
++++ gcc-4.2.0/libstdc++-v3/configure   2007-06-03 03:11:31.035566610 -0400
+@@ -5865,7 +5865,7 @@
+         int j;
+         __locale_t        loc;
+         __locale_t        loc_dup;
+-        loc = __newlocale(1 << LC_ALL, "de_DE", 0);
++        loc = __newlocale(1 << LC_ALL, "C", 0);
+         loc_dup = __duplocale(loc);
+         i = __strcoll_l(__one, __two, loc);
+         j = __strcoll_l(__one, __two, loc_dup);
diff --git a/gcc-optimize-la.pl b/gcc-optimize-la.pl
new file mode 100644 (file)
index 0000000..5624529
--- /dev/null
@@ -0,0 +1,43 @@
+#!/usr/bin/perl
+
+sub trim
+{
+    my $string = shift;
+    $string =~ s/^\s+//;
+    $string =~ s/\s+$//;
+    return $string;
+}
+
+open(F, $ARGV[0]) or die("cannot open file: $ARGV[0]\n");
+@lines = <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($_);
+    }
+}
diff --git a/gcc-plugin-decl-hook.patch b/gcc-plugin-decl-hook.patch
new file mode 100644 (file)
index 0000000..9865f65
--- /dev/null
@@ -0,0 +1,192 @@
+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:
diff --git a/gcc.spec b/gcc.spec
new file mode 100644 (file)
index 0000000..9f6905e
--- /dev/null
+++ b/gcc.spec
@@ -0,0 +1,3004 @@
+# $Revision: 1.649.2.3 $, $Date: 2011/07/01 17:47:33 $
+# NOTE: despite lower soname, libffi is newer than standalone 3.0.9
+#
+# TODO:
+# - gconf peer? (but libgcj needs split anyway)
+# - package?
+#   /usr/bin/aot-compile
+#   /usr/bin/gjdoc
+#   /usr/share/man/man1/aot-compile.1.gz
+#   /usr/share/man/man1/gjdoc.1.gz
+#   /usr/share/python/aotcompile.py
+#   /usr/share/python/classfile.py
+# - missing libffi.pc required by some packages (eg. python-pygobject)
+#
+# Conditional build:
+%bcond_without ada             # build without ADA support
+%bcond_without cxx             # build without C++ support
+%bcond_without fortran         # build without Fortran support
+%bcond_without gomp            # build without OpenMP support
+%bcond_without java            # build without Java support
+%bcond_without mudflap         # build without Mudflap pointer debugging support
+%bcond_without objc            # build without Objective-C support
+%bcond_without objcxx          # build without Objective-C++ support
+%bcond_without alsa            # don't build libgcj ALSA MIDI interface
+%bcond_without dssi            # don't build libgcj DSSI MIDI interface
+%bcond_without gtk             # don't build libgcj GTK peer
+%bcond_without apidocs         # do not build and package API docs
+%bcond_with    mozilla         # don't build libgcjwebplugin (needs fix for new xulrunner)
+%bcond_with    qt              # build libgcj Qt peer (currently doesn't build with libtool-2.x)
+%bcond_without x               # don't build libgcj Xlib-dependent AWTs (incl. GTK/Qt)
+%bcond_without multilib        # build without multilib support (it needs glibc[32&64]-devel)
+%bcond_with    profiling       # build with profiling
+%bcond_without python          # build without libstdc++ python pretty printers for gdb
+%bcond_without bootstrap       # omit 3-stage bootstrap
+%bcond_with    tests           # torture gcc
+
+%if %{without cxx}
+%undefine      with_java
+%undefine      with_objcxx
+%endif
+
+%if %{without objc}
+%undefine      with_objcxx
+%endif
+
+%if %{without bootstrap}
+%undefine      with_profiling
+%endif
+
+%if %{without x}
+%undefine      with_gtk
+%undefine      with_qt
+%endif
+
+%ifnarch %{x8664}
+%undefine      with_multilib
+%endif
+
+%define                major_ver       4.5
+%define                minor_ver       3
+%define                major_ecj_ver   4.5
+# class data version seen with file(1) that this jvm is able to load
+%define                _classdataversion 50.0
+%define                gcj_soname_ver  11
+
+Summary:       GNU Compiler Collection: the C compiler and shared files
+Summary(es.UTF-8):     Colección de compiladores GNU: el compilador C y ficheros compartidos
+Summary(pl.UTF-8):     Kolekcja kompilatorów GNU: kompilator C i pliki współdzielone
+Summary(pt_BR.UTF-8):  Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
+Name:          gcc
+Version:       %{major_ver}.%{minor_ver}
+Release:       4
+Epoch:         6
+License:       GPL v3+
+Group:         Development/Languages
+Source0:       ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
+# Source0-md5: 8e0b5c12212e185f3e4383106bfa9cc6
+Source1:       %{name}-optimize-la.pl
+Source2:       ftp://sourceware.org/pub/java/ecj-%{major_ecj_ver}.jar
+# Source2-md5: d7cd6a27c8801e66cbaa964a039ecfdb
+# svn diff -x --ignore-eol-style svn://gcc.gnu.org/svn/gcc/tags/gcc_4_5_3_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch > gcc-branch.diff
+Patch100:      %{name}-branch.diff
+Patch0:                %{name}-info.patch
+Patch1:                %{name}-nolocalefiles.patch
+Patch2:                %{name}-nodebug.patch
+Patch3:                %{name}-ada-link.patch
+Patch7:                %{name}-libjava-multilib.patch
+Patch8:                %{name}-enable-java-awt-qt.patch
+Patch9:                %{name}-hash-style-gnu.patch
+Patch11:       %{name}-build-id.patch
+Patch12:       %{name}-plugin-decl-hook.patch
+URL:           http://gcc.gnu.org/
+BuildRequires: autoconf
+%{?with_tests:BuildRequires:   autogen}
+BuildRequires: automake
+# binutils 2.17.50.0.9 or newer are required for fixing PR middle-end/20218.
+BuildRequires: binutils >= 2:2.17.50.0.9-1
+BuildRequires: bison
+BuildRequires: chrpath >= 0.13-2
+%{?with_tests:BuildRequires:   dejagnu}
+BuildRequires: elfutils-devel >= 0.145-1
+BuildRequires: fileutils >= 4.0.41
+BuildRequires: flex
+%if %{with ada}
+BuildRequires: gcc(ada)
+BuildRequires: gcc-ada
+%endif
+BuildRequires: gettext-devel
+BuildRequires: glibc-devel >= 6:2.4-1
+%if %{with multilib}
+BuildRequires: gcc(multilib)
+%ifarch %{x8664}
+BuildRequires: glibc-devel(i686)
+%endif
+%endif
+BuildRequires: gmp-devel >= 4.1
+BuildRequires: libmpc-devel
+BuildRequires: mpfr-devel >= 2.3.0
+%if %{with python}
+BuildRequires: python-devel
+BuildRequires: rpm-pythonprov
+%endif
+BuildRequires: rpmbuild(macros) >= 1.211
+BuildRequires: texinfo >= 4.1
+BuildRequires: zlib-devel
+%if %{with java}
+%{?with_alsa:BuildRequires:    alsa-lib-devel}
+%if %{with dssi}
+BuildRequires: dssi-devel
+BuildRequires: jack-audio-connection-kit-devel
+%endif
+BuildRequires: libxml2-devel >= 1:2.6.8
+BuildRequires: libxslt-devel >= 1.1.11
+BuildRequires: perl-base
+BuildRequires: perl-tools-pod
+BuildRequires: pkgconfig
+BuildRequires: unzip
+BuildRequires: zip
+%if %{with gtk}
+BuildRequires: cairo-devel >= 0.5.0
+BuildRequires: gtk+2-devel >= 2:2.4.0
+BuildRequires: libart_lgpl-devel
+BuildRequires: pango-devel
+BuildRequires: xorg-lib-libXt-devel
+BuildRequires: xorg-lib-libXtst-devel
+%endif
+%if %{with qt}
+BuildRequires: QtGui-devel >= 4.0.1
+BuildRequires: qt4-build >= 4.0.1
+%endif
+%{?with_mozilla:BuildRequires: xulrunner-devel >= 1.8.1.3-1.20070321.5}
+%endif
+BuildConflicts:        pdksh < 5.2.14-50
+Requires:      binutils >= 3:2.20.51.0.2
+Requires:      libgcc = %{epoch}:%{version}-%{release}
+Provides:      cpp = %{epoch}:%{version}-%{release}
+%{?with_ada:Provides:  gcc(ada)}
+Obsoletes:     cpp
+Obsoletes:     egcs-cpp
+Obsoletes:     gcc-chill
+Obsoletes:     gcc-cpp
+Obsoletes:     gcc-ksi
+Obsoletes:     gcc4
+Obsoletes:     gont
+Conflicts:     glibc-devel < 2.2.5-20
+BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define                _slibdir        /%{_lib}
+%if %{with multilib}
+# 32-bit environment on x86-64
+%define                _slibdir32      /lib
+%define                _libdir32       /usr/lib
+%endif
+
+%define                filterout       -fwrapv -fno-strict-aliasing -fsigned-char
+%define                filterout_ld    -Wl,--as-needed
+
+%define                skip_post_check_so      '.*(libmudflap|libmudflapth|libxmlj|lib-gnu-awt-xlib)\.so.*'
+
+%description
+A compiler aimed at integrating all the optimizations and features
+necessary for a high-performance and stable development environment.
+
+This package contains the C compiler and some files shared by various
+parts of the GNU Compiler Collection. In order to use another GCC
+compiler you will need to install the appropriate subpackage.
+
+%description -l es.UTF-8
+Un compilador que intenta integrar todas las optimalizaciones y
+características necesarias para un entorno de desarrollo eficaz y
+estable.
+
+Este paquete contiene el compilador de C y unos ficheros compartidos
+por varias partes de la colección de compiladores GNU (GCC). Para usar
+otro compilador de GCC será necesario que instale el subpaquete
+adecuado.
+
+%description -l pl.UTF-8
+Kompilator, posiadajÄ…cy duże możliwoÅ›ci optymalizacyjne niezbÄ™dne do
+wyprodukowania szybkiego i stabilnego kodu wynikowego.
+
+Ten pakiet zawiera kompilator C i pliki współdzielone przez różne
+części kolekcji kompilatorów GNU (GCC). Å»eby używać innego kompilatora
+z GCC, trzeba zainstalować odpowiedni podpakiet.
+
+%description -l pt_BR.UTF-8
+Este pacote adiciona infraestrutura básica e suporte a linguagem C ao
+GNU Compiler Collection.
+
+%package multilib
+Summary:       GNU Compiler Collection: the C compiler 32-bit support
+Summary(pl.UTF-8):     Kolekcja kompilatorów GNU: obsÅ‚uga binariów 32-bitowych dla kompilatora C
+License:       GPL v3+
+Group:         Development/Languages
+Requires:      %{name}
+Requires:      libgcc-multilib = %{epoch}:%{version}-%{release}
+%{?with_multilib:Provides:     gcc(multilib)}
+Obsoletes:     libgcc32
+%ifarch %{x8664}
+Requires:      glibc-devel(i686)
+%endif
+
+%description multilib
+A compiler aimed at integrating all the optimizations and features
+necessary for a high-performance and stable development environment.
+
+This package contains the C compiler support for producing 32-bit
+programs on 64-bit host.
+
+%description multilib -l pl.UTF-8
+Kompilator, posiadajÄ…cy duże możliwoÅ›ci optymalizacyjne niezbÄ™dne do
+wyprodukowania szybkiego i stabilnego kodu wynikowego.
+
+Ten pakiet zawiera rozszerzenie kompilatora C o obsÅ‚ugÄ™ tworzenia
+programów 32-bitowych na maszynie 64-bitowej.
+
+%package -n libgcc
+Summary:       Shared gcc library
+Summary(es.UTF-8):     Biblioteca compartida de gcc
+Summary(pl.UTF-8):     Biblioteka gcc
+Summary(pt_BR.UTF-8):  Biblioteca runtime para o GCC
+License:       GPL v2+ with unlimited link permission
+Group:         Libraries
+Obsoletes:     libgcc1
+Obsoletes:     libgcc4
+
+%description -n libgcc
+Shared gcc library.
+
+%description -n libgcc -l es.UTF-8
+Biblioteca compartida de gcc.
+
+%description -n libgcc -l pl.UTF-8
+Biblioteka dynamiczna gcc.
+
+%description -n libgcc -l pt_BR.UTF-8
+Biblioteca runtime para o GCC.
+
+%package -n libgcc-multilib
+Summary:       Shared gcc library - 32-bit version
+Summary(pl.UTF-8):     Biblioteka gcc - wersja 32-bitowa
+License:       GPL v2+ with unlimited link permission
+Group:         Libraries
+
+%description -n libgcc-multilib
+Shared gcc library - 32-bit version.
+
+%description -n libgcc-multilib -l pl.UTF-8
+Biblioteka dynamiczna gcc - wersja 32-bitowa.
+
+%package -n libgomp
+Summary:       GNU OpenMP library
+Summary(pl.UTF-8):     Biblioteka GNU OpenMP
+License:       LGPL v2.1+ with unlimited link permission
+Group:         Libraries
+
+%description -n libgomp
+GNU OpenMP library.
+
+%description -n libgomp -l pl.UTF-8
+Biblioteka GNU OpenMP.
+
+%package -n libgomp-multilib
+Summary:       GNU OpenMP library - 32-bit version
+Summary(pl.UTF-8):     Biblioteka GNU OpenMP - wersja 32-bitowa
+License:       LGPL v2.1+ with unlimited link permission
+Group:         Libraries
+
+%description -n libgomp-multilib
+GNU OpenMP library - 32-bit version.
+
+%description -n libgomp-multilib -l pl.UTF-8
+Biblioteka GNU OpenMP - wersja 32-bitowa.
+
+%package -n libgomp-devel
+Summary:       Development files for GNU OpenMP library
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki GNU OpenMP
+License:       LGPL v2.1+ with unlimited link permission
+Group:         Development/Libraries
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libgomp = %{epoch}:%{version}-%{release}
+
+%description -n libgomp-devel
+Development files for GNU OpenMP library.
+
+%description -n libgomp-devel -l pl.UTF-8
+Pliki programistyczne biblioteki GNU OpenMP.
+
+%package -n libgomp-multilib-devel
+Summary:       Development files for 32-bit version of GNU OpenMP library
+Summary(pl.UTF-8):     Pliki programistyczne wersji 32-bitowej biblioteki GNU OpenMP
+License:       LGPL v2.1+ with unlimited link permission
+Group:         Development/Libraries
+Requires:      libgomp-devel = %{epoch}:%{version}-%{release}
+
+%description -n libgomp-multilib-devel
+Development files for 32-bit version of GNU OpenMP library.
+
+%description -n libgomp-multilib-devel -l pl.UTF-8
+Pliki programistyczne wersji 32-bitowej biblioteki GNU OpenMP.
+
+%package -n libgomp-static
+Summary:       Static GNU OpenMP library
+Summary(pl.UTF-8):     Statyczna biblioteka GNU OpenMP
+License:       LGPL v2.1+ with unlimited link permission
+Group:         Development/Libraries
+Requires:      libgomp-devel = %{epoch}:%{version}-%{release}
+
+%description -n libgomp-static
+Static GNU OpenMP library.
+
+%description -n libgomp-static -l pl.UTF-8
+Statyczna biblioteka GNU OpenMP.
+
+%package -n libgomp-multilib-static
+Summary:       Static GNU OpenMP library - 32-bit version
+Summary(pl.UTF-8):     Statyczna biblioteka GNU OpenMP - wersja 32-bitowa
+License:       LGPL v2.1+ with unlimited link permission
+Group:         Development/Libraries
+Requires:      libgomp-multilib-devel
+
+%description -n libgomp-multilib-static
+Static GNU OpenMP library - 32-bit version.
+
+%description -n libgomp-multilib-static -l pl.UTF-8
+Statyczna biblioteka GNU OpenMP - wersja 32-bitowa.
+
+%package -n libmudflap
+Summary:       GCC mudflap shared support libraries
+Summary(pl.UTF-8):     Współdzielone biblioteki wspomagajÄ…ca GCC mudflap
+License:       GPL v2+ with unlimited link permission
+Group:         Libraries
+
+%description -n libmudflap
+The libmudflap libraries are used by GCC for instrumenting pointer and
+array dereferencing operations.
+
+%description -n libmudflap -l pl.UTF-8
+Biblioteki libmudflap sÄ… używane przez GCC do obsÅ‚ugi operacji
+dereferencji wspaźników i tablic.
+
+%package -n libmudflap-multilib
+Summary:       GCC mudflap shared support libraries - 32-bit version
+Summary(pl.UTF-8):     Współdzielone biblioteki wspomagajÄ…ca GCC mudflap - wersja 32-bitowa
+License:       GPL v2+ with unlimited link permission
+Group:         Libraries
+
+%description -n libmudflap-multilib
+The libmudflap libraries are used by GCC for instrumenting pointer and
+array dereferencing operations. This package contains 32-bit version.
+
+%description -n libmudflap-multilib -l pl.UTF-8
+Biblioteki libmudflap sÄ… używane przez GCC do obsÅ‚ugi operacji
+dereferencji wspaźników i tablic. Ten pakiet zawiera wersje 32-bitowe.
+
+%package -n libmudflap-devel
+Summary:       Development files for GCC mudflap libraries
+Summary(pl.UTF-8):     Pliki programistyczne bibliotek GCC mudflap
+License:       GPL v2+ with unlimited link permission
+Group:         Development/Libraries
+Requires:      libmudflap = %{epoch}:%{version}-%{release}
+
+%description -n libmudflap-devel
+The libmudflap libraries are used by GCC for instrumenting pointer and
+array dereferencing operations. This package contains development
+files.
+
+%description -n libmudflap-devel -l pl.UTF-8
+Biblioteki libmudflap sÄ… używane przez GCC do obsÅ‚ugi operacji
+dereferencji wspaźników i tablic. Ten pakiet zawiera pliki
+programistyczne.
+
+%package -n libmudflap-multilib-devel
+Summary:       Development files for 32-bit version of GCC mudflap libraries
+Summary(pl.UTF-8):     Pliki programistyczne wersji 32-bitowych bibliotek GCC mudflap
+License:       GPL v2+ with unlimited link permission
+Group:         Development/Libraries
+Requires:      libmudflap-devel = %{epoch}:%{version}-%{release}
+
+%description -n libmudflap-multilib-devel
+The libmudflap libraries are used by GCC for instrumenting pointer and
+array dereferencing operations. This package contains development
+files for 32-bit version of the libraries.
+
+%description -n libmudflap-multilib-devel -l pl.UTF-8
+Biblioteki libmudflap sÄ… używane przez GCC do obsÅ‚ugi operacji
+dereferencji wspaźników i tablic. Ten pakiet zawiera pliki
+programistyczne wersji 32-bitowych bibliotek.
+
+%package -n libmudflap-static
+Summary:       Static GCC mudflap libraries
+Summary(pl.UTF-8):     Statyczne biblioteki GCC mudflap
+License:       GPL v2+ with unlimited link permission
+Group:         Development/Libraries
+Requires:      libmudflap-devel = %{epoch}:%{version}-%{release}
+
+%description -n libmudflap-static
+The libmudflap libraries are used by GCC for instrumenting pointer and
+array dereferencing operations. This package contains static
+libraries.
+
+%description -n libmudflap-static -l pl.UTF-8
+Biblioteki libmudflap sÄ… używane przez GCC do obsÅ‚ugi operacji
+dereferencji wspaźników i tablic. Ten pakiet zawiera biblioteki
+statyczne.
+
+%package -n libmudflap-multilib-static
+Summary:       Static GCC mudflap libraries - 32-bit version
+Summary(pl.UTF-8):     Statyczne biblioteki GCC mudflap - wersje 32-bitowa
+License:       GPL v2+ with unlimited link permission
+Group:         Development/Libraries
+Requires:      libmudflap-multilib-devel = %{epoch}:%{version}-%{release}
+
+%description -n libmudflap-multilib-static
+The libmudflap libraries are used by GCC for instrumenting pointer and
+array dereferencing operations. This package contains 32-bit static
+libraries.
+
+%description -n libmudflap-multilib-static -l pl.UTF-8
+Biblioteki libmudflap sÄ… używane przez GCC do obsÅ‚ugi operacji
+dereferencji wspaźników i tablic. Ten pakiet zawiera biblioteki
+statyczne 32-bitowe.
+
+%package ada
+Summary:       Ada support for gcc
+Summary(es.UTF-8):     Soporte de Ada para gcc
+Summary(pl.UTF-8):     ObsÅ‚uga Ady do gcc
+Group:         Development/Languages
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libgnat = %{epoch}:%{version}-%{release}
+Obsoletes:     gcc-gnat
+Obsoletes:     gnat-devel
+
+%description ada
+This package adds experimental support for compiling Ada programs.
+
+%description ada -l es.UTF-8
+Este paquete añade soporte experimental para compilar programas en
+Ada.
+
+%description ada -l pl.UTF-8
+Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w
+Adzie.
+
+%package ada-multilib
+Summary:       Ada 32-bit support for gcc
+Summary(pl.UTF-8):     ObsÅ‚uga 32-bitowych binariów Ady dla gcc
+Group:         Development/Languages
+Requires:      %{name}-ada = %{epoch}:%{version}-%{release}
+Requires:      libgnat-multilib = %{epoch}:%{version}-%{release}
+
+%description ada-multilib
+This package adds experimental support for compiling 32-bit Ada
+programs on 64-bit host.
+
+%description ada-multilib -l pl.UTF-8
+Ten pakiet dodaje eksperymentalnÄ… obsÅ‚ugÄ™ kompilacji programów
+32-bitowych w Adzie na maszynie 64-bitowej.
+
+%package -n libgnat
+Summary:       Ada standard libraries
+Summary(es.UTF-8):     Bibliotecas estándares de Ada
+Summary(pl.UTF-8):     Biblioteki standardowe dla Ady
+License:       GPL v2+ with linking exception
+Group:         Libraries
+Obsoletes:     gnat
+Obsoletes:     libgnat1
+
+%description -n libgnat
+This package contains shared libraries needed to run programs written
+in Ada.
+
+%description -n libgnat -l es.UTF-8
+Este paquete contiene las bibliotecas compartidas necesarias para
+ejecutar programas escritos en Ada.
+
+%description -n libgnat -l pl.UTF-8
+Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów
+napisanych w Adzie.
+
+%package -n libgnat-multilib
+Summary:       Ada standard libraries - 32-bit version
+Summary(pl.UTF-8):     Biblioteki standardowe dla Ady - wersja 32-bitowa
+License:       GPL v2+ with linking exception
+Group:         Libraries
+
+%description -n libgnat-multilib
+This package contains 32-bit version of shared libraries needed to run
+programs written in Ada.
+
+%description -n libgnat-multilib -l pl.UTF-8
+Ten pakiet zawiera wersje 32-bitowe bibliotek potrzebnych do
+uruchamiania programów napisanych w Adzie.
+
+%package -n libgnat-static
+Summary:       Static Ada standard libraries
+Summary(pl.UTF-8):     Statyczne biblioteki standardowe dla Ady
+License:       GPL v2+ with linking exception
+Group:         Development/Libraries
+Obsoletes:     gnat-static
+
+%description -n libgnat-static
+This package contains static libraries for programs written in Ada.
+
+%description -n libgnat-static -l pl.UTF-8
+Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
+Adzie.
+
+%package -n libgnat-multilib-static
+Summary:       Static Ada standard libraries - 32-bit version
+Summary(pl.UTF-8):     Statyczne biblioteki standardowe dla Ady - wersje 32-bitowe
+License:       GPL v2+ with linking exception
+Group:         Development/Libraries
+
+%description -n libgnat-multilib-static
+This package contains 32-bit version of static libraries for programs
+written in Ada.
+
+%description -n libgnat-multilib-static -l pl.UTF-8
+Ten pakiet zawiera 32-bitowe wersje bibliotek statycznych dla
+programów napisanych w Adzie.
+
+%package c++
+Summary:       C++ support for gcc
+Summary(es.UTF-8):     Soporte de C++ para gcc
+Summary(pl.UTF-8):     ObsÅ‚uga C++ dla gcc
+Summary(pt_BR.UTF-8):  Suporte C++ para o gcc
+Group:         Development/Languages
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Obsoletes:     egcc-c++
+Obsoletes:     egcs-c++
+Obsoletes:     gcc4-c++
+
+%description c++
+This package adds C++ support to the GNU Compiler Collection. It
+includes support for most of the current C++ specification, including
+templates and exception handling. It does not include a standard C++
+library, which is available separately.
+
+%description c++ -l de.UTF-8
+Dieses Paket enthält die C++-Unterstützung für den
+GNU-Compiler-Collection. Es unterstützt die aktuelle
+C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine
+C++-Standard-Library ist nicht enthalten - sie ist getrennt
+erhältlich.
+
+%description c++ -l es.UTF-8
+Este paquete añade soporte de C++ al GCC (colección de compiladores
+GNU). Ello incluye el soporte para la mayoría de la especificación
+actual de C++, incluyendo plantillas y manejo de excepciones. No
+incluye la biblioteca estándar de C++, la que es disponible separada.
+
+%description c++ -l fr.UTF-8
+Ce package ajoute un support C++ a la collection de compilateurs GNU.
+Il comprend un support pour la plupart des spécifications actuelles de
+C++, dont les modéles et la gestion des exceptions. Il ne comprend pas
+une bibliothéque C++ standard, qui est disponible séparément.
+
+%description c++ -l pl.UTF-8
+Ten pakiet dodaje obsÅ‚ugÄ™ C++ do kompilatora gcc. Ma wsparcie dla
+dużej iloÅ›ci obecnych specyfikacji C++, nie zawiera natomiast
+standardowych bibliotek C++, które sÄ… w oddzielnym pakiecie.
+
+%description c++ -l pt_BR.UTF-8
+Este pacote adiciona suporte C++ para o gcc.
+
+%description c++ -l tr.UTF-8
+Bu paket, GNU C derleyicisine C++ desteÄŸi ekler. 'Template'ler ve
+aykırı durum iÅŸleme gibi Ã§oÄŸu güncel C++ tanımlarına uyar. Standart
+C++ kitaplığı bu pakette yer almaz.
+
+%package c++-multilib
+Summary:       C++ 32-bit support for gcc
+Summary(pl.UTF-8):     ObsÅ‚uga 32-bitowych binariów C++ dla gcc
+Group:         Development/Languages
+Requires:      %{name}-c++ = %{epoch}:%{version}-%{release}
+Requires:      %{name}-multilib = %{epoch}:%{version}-%{release}
+
+%description c++-multilib
+This package adds 32-bit C++ support to the GNU Compiler Collection.
+
+%description c++-multilib -l pl.UTF-8
+Ten pakiet dodaje obsÅ‚ugÄ™ 32-bitowych binariów C++ do kompilatora gcc.
+
+%package -n libstdc++
+Summary:       GNU C++ library
+Summary(es.UTF-8):     Biblioteca C++ de GNU
+Summary(pl.UTF-8):     Biblioteki GNU C++
+Summary(pt_BR.UTF-8):  Biblioteca C++ GNU
+License:       GPL v2+ with free software exception
+Group:         Libraries
+# >= instead of = to allow keeping older libstdc++ (with different soname)
+Requires:      libgcc >= %{epoch}:%{version}-%{release}
+Obsoletes:     libg++
+Obsoletes:     libstdc++3
+Obsoletes:     libstdc++4
+
+%description -n libstdc++
+This is the GNU implementation of the standard C++ libraries, along
+with additional GNU tools. This package includes the shared libraries
+necessary to run C++ applications.
+
+%description -n libstdc++ -l de.UTF-8
+Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
+weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
+C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
+
+%description -n libstdc++ -l es.UTF-8
+Este es el soporte de las bibliotecas padrón del C++, junto con
+herramientas GNU adicionales. El paquete incluye las bibliotecas
+compartidas necesarias para ejecutar aplicaciones C++.
+
+%description -n libstdc++ -l fr.UTF-8
+Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
+des outils GNU supplémentaires. Ce package comprend les librairies
+partagées nécessaires Ã  l'exécution d'application C++.
+
+%description -n libstdc++ -l pl.UTF-8
+Pakiet ten zawiera biblioteki bÄ™dÄ…ce implementacjÄ… standardowych
+bibliotek C++. ZnajdujÄ… siÄ™ w nim biblioteki dynamiczne niezbÄ™dne do
+uruchomienia aplikacji napisanych w C++.
+
+%description -n libstdc++ -l pt_BR.UTF-8
+Este pacote Ã© uma implementação da biblioteca padrão C++ v3, um
+subconjunto do padrão ISO 14882.
+
+%description -n libstdc++ -l tr.UTF-8
+Bu paket, standart C++ kitaplıklarının GNU gerçeklemesidir ve C++
+uygulamalarının koÅŸturulması için gerekli kitaplıkları içerir.
+
+%package -n libstdc++-multilib
+Summary:       GNU C++ library - 32-bit version
+Summary(pl.UTF-8):     Biblioteka GNU C++ - wersja 32-bitowa
+License:       GPL v2+ with free software exception
+Group:         Libraries
+# >= instead of = to allow keeping older libstdc++ (with different soname)
+Requires:      libgcc-multilib >= %{epoch}:%{version}-%{release}
+
+%description -n libstdc++-multilib
+This is 32-bit version of the GNU implementation of the standard C++
+library.
+
+%description -n libstdc++-multilib -l pl.UTF-8
+Ten pakiet ten zawiera 32-bitowÄ… wersjÄ™ implementacji GNU biblioteki
+standardowej C++.
+
+%package -n libstdc++-gdb
+Summary:       libstdc++ pretty printers for GDB
+Summary(pl.UTF-8):     Funkcje wypisujÄ…ce dane libstdc++ dla GDB
+Group:         Development/Debuggers
+Requires:      python-gdb
+
+%description -n libstdc++-gdb
+This package contains Python scripts for GDB pretty printing of the
+libstdc++ types/containers.
+
+%description -n libstdc++-gdb -l pl.UTF-8
+Ten pakiet zawiera skrypty Pythona dla GDB sÅ‚użące do Å‚adnego
+wypisywania typów i kontenerów libstdc++.
+
+%package -n libstdc++-devel
+Summary:       Header files and documentation for C++ development
+Summary(de.UTF-8):     Header-Dateien zur Entwicklung mit C++
+Summary(es.UTF-8):     Ficheros de cabecera y documentación para desarrollo C++
+Summary(fr.UTF-8):     Fichiers d'en-tête et biblitothèques pour développer en C++
+Summary(pl.UTF-8):     Pliki nagłówkowe i dokumentacja do biblioteki standardowej C++
+Summary(pt_BR.UTF-8):  Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
+Summary(tr.UTF-8):     C++ ile program geliÅŸtirmek için gerekli dosyalar
+License:       GPL v2+ with free software exception
+Group:         Development/Libraries
+Requires:      %{name}-c++ = %{epoch}:%{version}-%{release}
+Requires:      glibc-devel
+Requires:      libstdc++ = %{epoch}:%{version}-%{release}
+Obsoletes:     libg++-devel
+Obsoletes:     libstdc++3-devel
+Obsoletes:     libstdc++4-devel
+
+%description -n libstdc++-devel
+This is the GNU implementation of the standard C++ libraries. This
+package includes the header files needed for C++ development and
+library documentation.
+
+%description -n libstdc++-devel -l es.UTF-8
+Este es el soporte de las bibliotecas padrón del lenguaje C++. Este
+paquete incluye los archivos de inclusión y bibliotecas necesarios
+para desarrollo de programas en lenguaje C++.
+
+%description -n libstdc++-devel -l pl.UTF-8
+Pakiet ten zawiera biblioteki bÄ™dÄ…ce implementacjÄ… standardowych
+bibliotek C++. ZnajdujÄ… siÄ™ w nim pliki nagłówkowe wykorzystywane przy
+programowaniu w jÄ™zyku C++ oraz dokumentacja biblioteki standardowej.
+
+%description -n libstdc++-devel -l pt_BR.UTF-8
+Este pacote inclui os arquivos de inclusão e bibliotecas necessárias
+para desenvolvimento de programas C++.
+
+%package -n libstdc++-multilib-devel
+Summary:       Development files for C++ development - 32-bit version
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki standardowej C++ - wersja 32-bitowa
+License:       GPL v2+ with free software exception
+Group:         Development/Libraries
+Requires:      %{name}-c++-multilib = %{epoch}:%{version}-%{release}
+Requires:      libstdc++-devel = %{epoch}:%{version}-%{release}
+Requires:      libstdc++-multilib = %{epoch}:%{version}-%{release}
+
+%description -n libstdc++-multilib-devel
+This package contains the development files for 32-bit version of the
+GNU implementation of the standard C++ library.
+
+%description -n libstdc++-multilib-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne 32-bitowej wersji
+implementacji GNU biblioteki standardowej C++.
+
+%package -n libstdc++-static
+Summary:       Static C++ standard library
+Summary(es.UTF-8):     Biblioteca estándar estática de C++
+Summary(pl.UTF-8):     Statyczna biblioteka standardowa C++
+License:       GPL v2+ with free software exception
+Group:         Development/Libraries
+Requires:      libstdc++-devel = %{epoch}:%{version}-%{release}
+Obsoletes:     libstdc++4-static
+
+%description -n libstdc++-static
+Static C++ standard library.
+
+%description -n libstdc++-static -l es.UTF-8
+Biblioteca estándar estática de C++.
+
+%description -n libstdc++-static -l pl.UTF-8
+Statyczna biblioteka standardowa C++.
+
+%package -n libstdc++-multilib-static
+Summary:       Static C++ standard library - 32-bit version
+Summary(pl.UTF-8):     Statyczna biblioteka standardowa C++ - wersja 32-bitowa
+License:       GPL v2+ with free software exception
+Group:         Development/Libraries
+Requires:      libstdc++-multilib-devel = %{epoch}:%{version}-%{release}
+
+%description -n libstdc++-multilib-static
+Static C++ standard library - 32-bit version.
+
+%description -n libstdc++-multilib-static -l pl.UTF-8
+Statyczna biblioteka standardowa C++ - wersja 32-bitowa.
+
+%package -n libstdc++-apidocs
+Summary:       C++ standard library API documentation
+Summary(pl.UTF-8):     Dokumentacja API biblioteki standardowej C++
+Group:         Documentation
+
+%description -n libstdc++-apidocs
+API and internal documentation for C++ standard library.
+
+%description -n libstdc++-apidocs -l pl.UTF-8
+Dokumentacja API i wewnÄ™trzna biblioteki standardowej C++.
+
+%package fortran
+Summary:       Fortran 95 support for gcc
+Summary(es.UTF-8):     Soporte de Fortran 95 para gcc
+Summary(pl.UTF-8):     ObsÅ‚uga Fortranu 95 dla gcc
+Summary(pt_BR.UTF-8):  Suporte Fortran 95 para o GCC
+Group:         Development/Languages/Fortran
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libgfortran = %{epoch}:%{version}-%{release}
+Provides:      gcc-g77 = %{epoch}:%{version}-%{release}
+Obsoletes:     egcs-g77
+Obsoletes:     gcc-g77
+
+%description fortran
+This package adds support for compiling Fortran 95 programs with the
+GNU compiler.
+
+%description fortran -l es.UTF-8
+Este paquete añade soporte para compilar programas escritos en Fortran
+95 con el compilador GNU.
+
+%description fortran -l pl.UTF-8
+Ten pakiet dodaje obsÅ‚ugÄ™ Fortranu 95 do kompilatora gcc. Jest
+potrzebny do kompilowania programów pisanych w jÄ™zyku Fortran 95.
+
+%description fortran -l pt_BR.UTF-8
+Suporte Fortran 95 para o GCC.
+
+%package fortran-multilib
+Summary:       Fortran 95 32-bit support for gcc
+Summary(pl.UTF-8):     ObsÅ‚uga binariów 32-bitowych Fortrana 95 dla gcc
+Group:         Development/Languages/Fortran
+Requires:      %{name}-fortran = %{epoch}:%{version}-%{release}
+Requires:      libgfortran-multilib = %{epoch}:%{version}-%{release}
+
+%description fortran-multilib
+This package adds support for compiling 32-bit Fortran 95 programs
+with the GNU compiler.
+
+%description fortran-multilib -l pl.UTF-8
+Ten pakiet dodaje obsÅ‚ugÄ™ 32-bitowych programów w Fortranie 95 do
+kompilatora gcc.
+
+%package -n libgfortran
+Summary:       Fortran 95 Library
+Summary(es.UTF-8):     Biblioteca de Fortran 95
+Summary(pl.UTF-8):     Biblioteka Fortrana 95
+License:       GPL v2+ with unlimited link permission
+Group:         Libraries
+Obsoletes:     libg2c
+
+%description -n libgfortran
+Fortran 95 Library.
+
+%description -n libgfortran -l es.UTF-8
+Biblioteca de Fortran 95.
+
+%description -n libgfortran -l pl.UTF-8
+Biblioteka Fortrana 95.
+
+%package -n libgfortran-multilib
+Summary:       Fortran 95 Library - 32-bit version
+Summary(pl.UTF-8):     Biblioteka Fortrana 95 - wersja 32-bitowa
+License:       GPL v2+ with unlimited link permission
+Group:         Libraries
+
+%description -n libgfortran-multilib
+Fortran 95 Library - 32-bit version.
+
+%description -n libgfortran-multilib -l pl.UTF-8
+Biblioteka Fortrana 95 - wersja 32-bitowa.
+
+%package -n libgfortran-static
+Summary:       Static Fortran 95 Library
+Summary(es.UTF-8):     Bibliotecas estáticas de Fortran 95
+Summary(pl.UTF-8):     Statyczna Biblioteka Fortrana 95
+License:       GPL v2+ with unlimited link permission
+Group:         Development/Libraries
+Requires:      libgfortran = %{epoch}:%{version}-%{release}
+Obsoletes:     libg2c-static
+
+%description -n libgfortran-static
+Static Fortran 95 Library.
+
+%description -n libgfortran-static -l es.UTF-8
+Bibliotecas estáticas de Fortran 95.
+
+%description -n libgfortran-static -l pl.UTF-8
+Statyczna biblioteka Fortrana 95.
+
+%package -n libgfortran-multilib-static
+Summary:       Static Fortran 95 Library - 32-bit version
+Summary(pl.UTF-8):     Statyczna Biblioteka Fortrana 95 - wersja 32-bitowa
+License:       GPL v2+ with unlimited link permission
+Group:         Development/Libraries
+Requires:      libgfortran-multilib = %{epoch}:%{version}-%{release}
+
+%description -n libgfortran-multilib-static
+Static Fortran 95 Library - 32-bit version.
+
+%description -n libgfortran-multilib-static -l pl.UTF-8
+Statyczna biblioteka Fortrana 95 - wersja 32-bitowa.
+
+%package java
+Summary:       Java support for gcc
+Summary(es.UTF-8):     Soporte de Java para gcc
+Summary(pl.UTF-8):     ObsÅ‚uga Javy dla gcc
+Group:         Development/Languages/Java
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libgcj-devel = %{epoch}:%{version}-%{release}
+Provides:      gcc-java-tools
+Provides:      gcj = %{epoch}:%{version}-%{release}
+Obsoletes:     eclipse-ecj
+Obsoletes:     gcc-java-tools
+Obsoletes:     java-gnu-classpath-tools
+
+%description java
+This package adds experimental support for compiling Java(TM) programs
+and bytecode into native code. To use this you will also need the
+libgcj package.
+
+%description java -l es.UTF-8
+Este paquete añade soporte experimental para compilar programas
+Java(tm) y su bytecode en código nativo. Para usarlo también va a
+necesitar el paquete libgcj.
+
+%description java -l pl.UTF-8
+Ten pakiet dodaje możliwość kompilowania programów w jÄ™zyku Java(TM)
+oraz bajtkodu do kodu natywnego. Do używania go wymagany jest
+dodatkowo pakiet libgcj.
+
+%package -n libgcj
+Summary:       Java Class Libraries
+Summary(es.UTF-8):     Bibliotecas de clases de Java
+Summary(pl.UTF-8):     Biblioteki Klas Javy
+License:       GPL v2+ with limited linking exception
+Group:         Libraries
+Requires:      jpackage-utils
+Requires:      libstdc++ = %{epoch}:%{version}-%{release}
+Provides:      java(ClassDataVersion) = %{_classdataversion}
+Obsoletes:     libgcj3
+
+%description -n libgcj
+Java Class Libraries.
+
+%description -n libgcj -l es.UTF-8
+Bibliotecas de clases de Java.
+
+%description -n libgcj -l pl.UTF-8
+Biblioteki Klas Javy.
+
+%package -n libgcj-devel
+Summary:       Development files for Java Class Libraries
+Summary(es.UTF-8):     Ficheros de desarrollo para las bibliotecas de clases de Java
+Summary(pl.UTF-8):     Pliki nagłówkowe dla Bibliotek Klas Javy
+License:       GPL v2+ with limited linking exception
+Group:         Development/Libraries
+Requires:      libgcj = %{epoch}:%{version}-%{release}
+Requires:      libstdc++-devel = %{epoch}:%{version}-%{release}
+Requires:      zlib-devel
+Obsoletes:     libgcj3-devel
+
+%description -n libgcj-devel
+Development files for Java Class Libraries.
+
+%description -n libgcj-devel -l es.UTF-8
+Ficheros de desarrollo para las bibliotecas de clases de Java.
+
+%description -n libgcj-devel -l pl.UTF-8
+Pliki nagłówkowe dla Bibliotek Klas Javy.
+
+%package -n libgcj-static
+Summary:       Static Java Class Libraries
+Summary(es.UTF-8):     Bibliotecas estáticas de clases de Java
+Summary(pl.UTF-8):     Statyczne Biblioteki Klas Javy
+License:       GPL v2+ with limited linking exception
+Group:         Development/Libraries
+Requires:      libgcj-devel = %{epoch}:%{version}-%{release}
+
+%description -n libgcj-static
+Static Java Class Libraries.
+
+%description -n libgcj-static -l es.UTF-8
+Bibliotecas estáticas de clases de Java.
+
+%description -n libgcj-static -l pl.UTF-8
+Statyczne Biblioteki Klas Javy.
+
+%package -n libffi
+Summary:       Foreign Function Interface library
+Summary(es.UTF-8):     Biblioteca de interfaz de funciones ajenas
+Summary(pl.UTF-8):     Biblioteka zewnÄ™trznych wywoÅ‚aÅ„ funkcji
+License:       BSD-like
+Group:         Libraries
+
+%description -n libffi
+The libffi library provides a portable, high level programming
+interface to various calling conventions. This allows a programmer to
+call any function specified by a call interface description at run
+time.
+
+%description -n libffi -l es.UTF-8
+La biblioteca libffi provee una interfaz portable de programación de
+alto nivel para varias convenciones de llamada. Ello permite que un
+programador llame una función cualquiera especificada por una
+descripción de interfaz de llamada en el tiempo de ejecución.
+
+%description -n libffi -l pl.UTF-8
+Biblioteka libffi dostarcza przenoÅ›nego, wysokopoziomowego
+miÄ™dzymordzia do różnych konwencji wywoÅ‚aÅ„ funkcji. Pozwala to
+programiÅ›cie wywoÅ‚ywać dowolne funkcje podajÄ…c konwencjÄ™ wywoÅ‚ania w
+czasie wykonania.
+
+%package -n libffi-multilib
+Summary:       Foreign Function Interface library - 32-bit version
+Summary(pl.UTF-8):     Biblioteka zewnÄ™trznych wywoÅ‚aÅ„ funkcji - wersja 32-bitowa
+License:       BSD-like
+Group:         Libraries
+
+%description -n libffi-multilib
+The libffi library provides a portable, high level programming
+interface to various calling conventions. This allows a programmer to
+call any function specified by a call interface description at run
+time. This package contains 32-bit version of the library.
+
+%description -n libffi-multilib -l pl.UTF-8
+Biblioteka libffi dostarcza przenoÅ›nego, wysokopoziomowego
+miÄ™dzymordzia do różnych konwencji wywoÅ‚aÅ„ funkcji. Pozwala to
+programiÅ›cie wywoÅ‚ywać dowolne funkcje podajÄ…c konwencjÄ™ wywoÅ‚ania w
+czasie wykonania. Ten pakiet zawiera wersjÄ™ 32-bitowÄ… biblioteki.
+
+%package -n libffi-devel
+Summary:       Development files for Foreign Function Interface library
+Summary(es.UTF-8):     Ficheros de desarrollo para libffi
+Summary(pl.UTF-8):     Pliki nagłówkowe biblioteki libffi
+License:       BSD-like
+Group:         Development/Libraries
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libffi = %{epoch}:%{version}-%{release}
+
+%description -n libffi-devel
+Development files for Foreign Function Interface library.
+
+%description -n libffi-devel -l es.UTF-8
+Ficheros de desarrollo para libffi.
+
+%description -n libffi-devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki libffi.
+
+%package -n libffi-multilib-devel
+Summary:       Development files for 32-bit version of Foreign Function Interface library
+Summary(pl.UTF-8):     Pliki programistyczne 32-bitowej wersji biblioteki libffi
+License:       BSD-like
+Group:         Development/Libraries
+Requires:      libffi-devel = %{epoch}:%{version}-%{release}
+Requires:      libffi-multilib = %{epoch}:%{version}-%{release}
+
+%description -n libffi-multilib-devel
+Development files for 32-bit version of Foreign Function Interface
+library.
+
+%description -n libffi-multilib-devel -l pl.UTF-8
+Pliki programistyczne 32-bitowej wersji biblioteki libffi.
+
+%package -n libffi-static
+Summary:       Static Foreign Function Interface library
+Summary(es.UTF-8):     Biblioteca libffi estática
+Summary(pl.UTF-8):     Statyczna biblioteka libffi
+License:       BSD-like
+Group:         Development/Libraries
+Requires:      libffi-devel = %{epoch}:%{version}-%{release}
+
+%description -n libffi-static
+Static Foreign Function Interface library.
+
+%description -n libffi-static -l es.UTF-8
+Biblioteca libffi estática.
+
+%description -n libffi-static -l pl.UTF-8
+Statyczna biblioteka libffi.
+
+%package -n libffi-multilib-static
+Summary:       Static Foreign Function Interface library - 32-bit version
+Summary(pl.UTF-8):     Statyczna biblioteka libffi - wersja 32-bitowa
+License:       BSD-like
+Group:         Development/Libraries
+Requires:      libffi-multilib-devel = %{epoch}:%{version}-%{release}
+
+%description -n libffi-multilib-static
+Static Foreign Function Interface library - 32-bit version.
+
+%description -n libffi-multilib-static -l pl.UTF-8
+Statyczna biblioteka libffi - wersja 32-bitowa.
+
+%package objc
+Summary:       Objective C support for gcc
+Summary(de.UTF-8):     Objektive C-Unterstützung für gcc
+Summary(es.UTF-8):     Soporte de Objective C para gcc
+Summary(fr.UTF-8):     Gestion d'Objective C pour gcc
+Summary(pl.UTF-8):     ObsÅ‚uga obiektowego C dla kompilatora gcc
+Summary(tr.UTF-8):     gcc için Objective C desteÄŸi
+Group:         Development/Languages
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libobjc = %{epoch}:%{version}-%{release}
+Obsoletes:     egcc-objc
+Obsoletes:     egcs-objc
+
+%description objc
+This package adds Objective C support to the GNU Compiler Collection.
+Objective C is a object oriented derivative of the C language, mainly
+used on systems running NeXTSTEP. This package does not include the
+standard objective C object library.
+
+%description objc -l de.UTF-8
+Dieses Paket ergänzt den GNU-Compiler-Collection durch
+Objective-C-Support. Objective C ist ein objektorientiertes Derivat
+von C, das zur Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt.
+Die Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
+
+%description objc -l es.UTF-8
+Este paquete añade soporte de Objective C al GCC (colección de
+compiladores GNU). Objective C es un lenguaje orientado a objetos
+derivado de C, principalmente usado en sistemas que funcionan bajo
+NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de
+Objective C.
+
+%description objc -l fr.UTF-8
+Ce package ajoute un support Objective C a la collection de
+compilateurs GNU. L'Objective C est un langage orienté objetdérivé du
+langage C, principalement utilisé sur les systèmes NeXTSTEP. Ce
+package n'inclue pas la bibliothéque Objective C standard.
+
+%description objc -l pl.UTF-8
+Ten pakiet dodaje obsÅ‚ugÄ™ obiektowego C do kompilatora gcc. Obiektowe
+C (objc) jest zorientowanÄ… obiektowo pochodnÄ… jÄ™zyka C, używanÄ…
+głównie w systemach używajÄ…cych NeXTSTEP. W pakiecie nie ma
+standardowej biblioteki objc (która znajduje siÄ™ w osobnym pakiecie).
+
+%description objc -l tr.UTF-8
+Bu paket, GNU C derleyicisine Objective C desteÄŸi ekler. Objective C,
+C dilinin nesne yönelik bir türevidir ve NeXTSTEP altında Ã§alışan
+sistemlerde yaygın olarak kullanılır. Standart Objective C nesne
+kitaplığı bu pakette yer almaz.
+
+%package objc-multilib
+Summary:       32-bit Objective C support for gcc
+Summary(pl.UTF-8):     ObsÅ‚uga 32-bitowych binariów Objective C dla kompilatora gcc
+Group:         Development/Languages
+Requires:      %{name}-multilib = %{epoch}:%{version}-%{release}
+Requires:      libobjc-multilib = %{epoch}:%{version}-%{release}
+
+%description objc-multilib
+This package adds 32-bit Objective C support to the GNU Compiler
+Collection.
+
+%description objc-multilib -l pl.UTF-8
+Ten pakiet dodaje obsÅ‚ugÄ™ 32-bitowych binariów Objective C do
+kompilatora gcc.
+
+%package objc++
+Summary:       Objective C++ support for gcc
+Summary(pl.UTF-8):     ObsÅ‚uga jÄ™zyka Objective C++ dla gcc
+Group:         Development/Languages
+Requires:      %{name}-c++ = %{epoch}:%{version}-%{release}
+Requires:      %{name}-objc = %{epoch}:%{version}-%{release}
+
+%description objc++
+This package adds Objective C++ support to the GNU Compiler
+Collection.
+
+%description objc++ -l pl.UTF-8
+Ten pakiet dodaje obsÅ‚ugÄ™ jÄ™zyka Objective C++ do zestawu kompilatorów
+GNU Compiler Collection.
+
+%package -n libobjc
+Summary:       Objective C Library
+Summary(es.UTF-8):     Biblioteca de Objective C
+Summary(pl.UTF-8):     Biblioteka Obiektowego C
+License:       GPL v2+ with linking exception
+Group:         Libraries
+Obsoletes:     libobjc1
+
+%description -n libobjc
+Objective C Library.
+
+%description -n libobjc -l es.UTF-8
+Bibliotecas de Objective C.
+
+%description -n libobjc -l pl.UTF-8
+Biblioteka Obiektowego C.
+
+%package -n libobjc-multilib
+Summary:       Objective C Library - 32-bit version
+Summary(pl.UTF-8):     Biblioteka Obiektowego C - wersja 32-bitowa
+License:       GPL v2+ with linking exception
+Group:         Libraries
+
+%description -n libobjc-multilib
+Objective C Library - 32-bit version.
+
+%description -n libobjc-multilib -l pl.UTF-8
+Biblioteka Obiektowego C - wersja 32-bitowa.
+
+%package -n libobjc-static
+Summary:       Static Objective C Library
+Summary(es.UTF-8):     Bibliotecas estáticas de Objective C
+Summary(pl.UTF-8):     Statyczna Biblioteka Obiektowego C
+License:       GPL v2+ with linking exception
+Group:         Development/Libraries
+Requires:      libobjc = %{epoch}:%{version}-%{release}
+
+%description -n libobjc-static
+Static Objective C Library.
+
+%description -n libobjc-static -l es.UTF-8
+Bibliotecas estáticas de Objective C.
+
+%description -n libobjc-static -l pl.UTF-8
+Statyczna biblioteka Obiektowego C.
+
+%package -n libobjc-multilib-static
+Summary:       Static Objective C Library - 32-bit version
+Summary(pl.UTF-8):     Statyczna Biblioteka Obiektowego C - wersja 32-bitowa
+License:       GPL v2+ with linking exception
+Group:         Development/Libraries
+Requires:      libobjc-multilib = %{epoch}:%{version}-%{release}
+
+%description -n libobjc-multilib-static
+Static Objective C Library - 32-bit version.
+
+%description -n libobjc-multilib-static -l pl.UTF-8
+Statyczna biblioteki Obiektowego C - wersja 32-bitowa.
+
+%prep
+%setup -q
+%patch100 -p0
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+
+%patch7 -p0
+%if %{with qt}
+%patch8 -p1
+%endif
+%patch9 -p1
+%patch11 -p0
+%patch12 -p0
+
+mv ChangeLog ChangeLog.general
+
+%if %{with java}
+# see contrib/download_ecj
+install %{SOURCE2} ecj.jar
+%endif
+
+# override snapshot version.
+echo %{version} > gcc/BASE-VER
+echo "release" > gcc/DEV-PHASE
+
+%build
+cd gcc
+#{__autoconf}
+cd ..
+%if %{with qt}
+cd libjava/classpath
+%{__autoconf}
+cd ../..
+%endif
+cp -f /usr/share/automake/config.sub .
+
+rm -rf builddir && install -d builddir && cd builddir
+
+# http://www.mailinglistarchive.com/java%40gcc.gnu.org/msg02751.html
+export JAR=no
+
+CC="%{__cc}" \
+CFLAGS="%{rpmcflags}" \
+CXXFLAGS="%{rpmcxxflags}" \
+TEXCONFIG=false \
+../configure \
+       --prefix=%{_prefix} \
+       --with-local-prefix=%{_prefix}/local \
+       --libdir=%{_libdir} \
+       --libexecdir=%{_libdir} \
+       --infodir=%{_infodir} \
+       --mandir=%{_mandir} \
+       --x-libraries=%{_libdir} \
+       --enable-checking=release \
+       --enable-shared \
+       --enable-threads=posix \
+       --enable-linux-futex \
+       --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,fortran}%{?with_objc:,objc}%{?with_objcxx:,obj-c++}%{?with_ada:,ada}%{?with_java:,java}" \
+       --%{?with_gomp:en}%{!?with_gomp:dis}able-libgomp \
+       --%{?with_mudflap:en}%{!?with_mudflap:dis}able-libmudflap \
+       --enable-c99 \
+       --enable-long-long \
+       --enable-decimal-float=yes \
+       %{!?with_multilib:--disable-multilib} \
+       --enable-nls \
+       --disable-werror \
+       --enable-lto \
+       --enable-plugin \
+%ifarch %{ix86} %{x8664}
+       --disable-cld \
+%endif
+%ifarch sparc64
+       --with-cpu=ultrasparc \
+%endif
+       --with-gnu-as \
+       --with-gnu-ld \
+       --with-demangler-in-ld \
+       --with-system-zlib \
+       --with-slibdir=%{_slibdir} \
+%ifnarch ia64
+       --without-system-libunwind \
+%else
+       --with-system-libunwind \
+%endif
+       %{!?with_java:--without-x} \
+       %{?with_fortran:--enable-cmath} \
+       --with-long-double-128 \
+%ifarch ppc ppc64
+       --enable-secureplt \
+%endif
+%if %{with cxx}
+       --with-gxx-include-dir=%{_includedir}/c++/%{version} \
+       --disable-libstdcxx-pch \
+       --enable-__cxa_atexit \
+       --enable-libstdcxx-allocator=new \
+%endif
+%if %{with java}
+       --enable-libjava-multilib=no \
+       %{!?with_alsa:--disable-alsa} \
+       %{!?with_dssi:--disable-dssi} \
+       --disable-gconf-peer \
+%if %{with x}
+       --enable-java-awt="xlib%{?with_gtk:,gtk}%{?with_qt:,qt}" \
+%endif
+       %{?with_mozilla:--enable-plugin} \
+       --enable-libgcj \
+       --enable-libgcj-multifile \
+       --enable-libgcj-database \
+       %{?with_gtk:--enable-gtk-cairo} \
+       --enable-jni \
+       --enable-xmlj \
+%endif
+       --%{?with_bootstrap:en}%{!?with_bootstrap:dis}able-bootstrap \
+       --with-pkgversion="TLD-Linux" \
+       --with-bugurl="http://www.tld-linux.org" \
+       %{_target_platform}
+
+cd ..
+
+cat << 'EOF' > Makefile
+all := $(filter-out all Makefile,$(MAKECMDGOALS))
+
+all $(all):
+       $(MAKE) -C builddir $(MAKE_OPTS) $(all) \
+               %{?with_bootstrap:%{?with_profiling:profiledbootstrap}} \
+               GCJFLAGS="%{rpmcflags}" \
+               BOOT_CFLAGS="%{rpmcflags}" \
+               STAGE1_CFLAGS="%{rpmcflags} -O0" \
+               GNATLIBCFLAGS="%{rpmcflags}" \
+               LDFLAGS_FOR_TARGET="%{rpmldflags}" \
+               mandir=%{_mandir} \
+               infodir=%{_infodir}
+EOF
+
+%{__make}
+
+%if %{with tests}
+if [ ! -r /dev/pts/0 ]; then
+       echo "You need to have /dev/pts mounted to avoid expect's spawn failures!"
+       exit 1
+fi
+%{__make} -k -C builddir check 2>&1 ||:
+%endif
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
+
+cd builddir
+
+%{__make} -j1 install \
+       mandir=%{_mandir} \
+       infodir=%{_infodir} \
+       DESTDIR=$RPM_BUILD_ROOT
+
+install gcc/specs $RPM_BUILD_ROOT%{_libdir}/gcc/%{_target_platform}/%{version}
+
+ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
+ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
+echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
+
+libssp=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libssp.so.*.*.*)
+mv $RPM_BUILD_ROOT%{_libdir}/libssp.so.* $RPM_BUILD_ROOT%{_slibdir}
+ln -sf %{_slibdir}/$libssp $RPM_BUILD_ROOT%{_libdir}/libssp.so
+%if %{with multilib}
+libssp=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libssp.so.*.*.*)
+mv $RPM_BUILD_ROOT%{_libdir32}/libssp.so.* $RPM_BUILD_ROOT%{_slibdir32}
+ln -sf %{_slibdir32}/$libssp $RPM_BUILD_ROOT%{_libdir32}/libssp.so
+%endif
+
+%if %{with fortran}
+ln -sf gfortran $RPM_BUILD_ROOT%{_bindir}/g95
+echo ".so gfortran.1" > $RPM_BUILD_ROOT%{_mandir}/man1/g95.1
+%endif
+
+%if %{with ada}
+# move ada shared libraries to proper place...
+mv -f  $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
+       $RPM_BUILD_ROOT%{_libdir}
+# check if symlink to be made is valid
+test -f        $RPM_BUILD_ROOT%{_libdir}/libgnat-%{major_ver}.so.1
+ln -sf libgnat-%{major_ver}.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-%{major_ver}.so
+ln -sf libgnarl-%{major_ver}.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-%{major_ver}.so
+ln -sf libgnat-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
+ln -sf libgnarl-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
+%if %{with multilib}
+mv -f  $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/32/adalib/*.so.1 \
+       $RPM_BUILD_ROOT%{_libdir32}
+# check if symlink to be made is valid
+test -f        $RPM_BUILD_ROOT%{_libdir32}/libgnat-%{major_ver}.so.1
+ln -sf libgnat-%{major_ver}.so.1 $RPM_BUILD_ROOT%{_libdir32}/libgnat-%{major_ver}.so
+ln -sf libgnarl-%{major_ver}.so.1 $RPM_BUILD_ROOT%{_libdir32}/libgnarl-%{major_ver}.so
+ln -sf libgnat-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir32}/libgnat.so
+ln -sf libgnarl-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir32}/libgnarl.so
+%endif
+%endif
+
+cd ..
+
+%if %{with java}
+install -d java-doc
+cp -f libjava/READ* java-doc
+ln -sf libgcj-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/libgcj.jar
+rm -f $RPM_BUILD_ROOT%{_libdir}/classpath/libgjs*.la
+# tools.zip sources
+rm -rf $RPM_BUILD_ROOT%{_datadir}/classpath/tools/gnu
+%endif
+%if %{with objc}
+cp -f libobjc/README gcc/objc/README.libobjc
+%endif
+
+%define        gcjdbexecdir    gcj-%{version}-%{gcj_soname_ver}
+
+# avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version}
+# normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
+for f in libssp.la libssp_nonshared.la \
+       %{?with_cxx:libstdc++.la libsupc++.la} \
+       %{?with_fortran:libgfortran.la} \
+       %{?with_gomp:libgomp.la} \
+       %{?with_mudflap:libmudflap.la libmudflapth.la} \
+%if %{with java}
+       libffi.la libgcj.la libgcj-tools.la libgij.la \
+       %{gcjdbexecdir}/libjvm.la \
+       %{gcjdbexecdir}/libxmlj.la \
+       %{?with_x:lib-gnu-awt-xlib.la} \
+       %{?with_gtk:%{gcjdbexecdir}/libgtkpeer.la %{gcjdbexecdir}/libjawt.la} \
+       %{?with_qt:%{gcjdbexecdir}/libqtpeer.la} \
+       %{?with_alsa:%{gcjdbexecdir}/libgjsmalsa.la} \
+       %{?with_dssi:%{gcjdbexecdir}/libgjsmdssi.la} \
+%endif
+       %{?with_objc:libobjc.la};
+do
+       %{__perl} %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/$f %{_libdir} > $RPM_BUILD_ROOT%{_libdir}/$f.fixed
+       mv $RPM_BUILD_ROOT%{_libdir}/$f{.fixed,}
+done
+%if %{with multilib}
+for f in libssp.la libssp_nonshared.la \
+       %{?with_cxx:libstdc++.la libsupc++.la} \
+       %{?with_fortran:libgfortran.la} \
+       %{?with_gomp:libgomp.la} \
+       %{?with_mudflap:libmudflap.la libmudflapth.la} \
+       %{?with_java:libffi.la} \
+       %{?with_objc:libobjc.la};
+do
+       %{__perl} %{SOURCE1} $RPM_BUILD_ROOT%{_libdir32}/$f %{_libdir32} > $RPM_BUILD_ROOT%{_libdir32}/$f.fixed
+       mv $RPM_BUILD_ROOT%{_libdir32}/$f{.fixed,}
+done
+%endif
+
+gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*)
+cp $gccdir/install-tools/include/*.h $gccdir/include
+cp $gccdir/include-fixed/syslimits.h $gccdir/include
+rm -rf $gccdir/install-tools
+rm -rf $gccdir/include-fixed
+
+%if %{with python}
+for LIB in lib lib64; do
+       LIBPATH="$RPM_BUILD_ROOT%{_datadir}/gdb/auto-load%{_prefix}/$LIB"
+       install -d $LIBPATH
+       # basename is being run only for the native (non-biarch) file.
+       sed -e 's,@pythondir@,%{_datadir}/gdb,' \
+         -e 's,@toolexeclibdir@,%{_prefix}/'"$LIB," \
+         < libstdc++-v3/python/hook.in \
+         > $LIBPATH/$(basename $RPM_BUILD_ROOT/%{_prefix}/%{_lib}/libstdc++.so.*.*.*)-gdb.py
+done
+install -d $RPM_BUILD_ROOT%{py_sitescriptdir}
+cp -a libstdc++-v3/python/libstdcxx $RPM_BUILD_ROOT%{py_sitescriptdir}
+%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
+%py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
+%py_postclean
+%endif
+
+%find_lang gcc
+%find_lang cpplib
+cat cpplib.lang >> gcc.lang
+
+%if %{with cxx}
+%find_lang libstdc\+\+
+install libstdc++-v3/include/precompiled/* $RPM_BUILD_ROOT%{_includedir}
+%endif
+
+# gdb stuff maybe?
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.py
+%if %{with multilib}
+%{__rm} $RPM_BUILD_ROOT%{_libdir32}/*.py
+%endif
+
+# svn snap doesn't contain (release does) below files,
+# so let's create dummy entries to satisfy %%files.
+[ ! -f NEWS ] && touch NEWS
+[ ! -f libgfortran/AUTHORS ] && touch libgfortran/AUTHORS
+[ ! -f libgfortran/README ] && touch libgfortran/README
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post  -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun        -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%post  ada -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun        ada -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%post  fortran -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun        fortran -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%post  java -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun        java -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%post  -p /sbin/ldconfig -n libgcc
+%postun        -p /sbin/ldconfig -n libgcc
+%post  -p /sbin/ldconfig -n libgcc-multilib
+%postun        -p /sbin/ldconfig -n libgcc-multilib
+%post  -p /sbin/ldconfig -n libgomp
+%postun        -p /sbin/ldconfig -n libgomp
+%post  -p /sbin/ldconfig -n libgomp-multilib
+%postun        -p /sbin/ldconfig -n libgomp-multilib
+%post  -p /sbin/ldconfig -n libmudflap
+%postun        -p /sbin/ldconfig -n libmudflap
+%post  -p /sbin/ldconfig -n libmudflap-multilib
+%postun        -p /sbin/ldconfig -n libmudflap-multilib
+%post  -p /sbin/ldconfig -n libgnat
+%postun        -p /sbin/ldconfig -n libgnat
+%post  -p /sbin/ldconfig -n libgnat-multilib
+%postun        -p /sbin/ldconfig -n libgnat-multilib
+%post  -p /sbin/ldconfig -n libstdc++
+%postun        -p /sbin/ldconfig -n libstdc++
+%post  -p /sbin/ldconfig -n libstdc++-multilib
+%postun        -p /sbin/ldconfig -n libstdc++-multilib
+%post  -p /sbin/ldconfig -n libgfortran
+%postun        -p /sbin/ldconfig -n libgfortran
+%post  -p /sbin/ldconfig -n libgfortran-multilib
+%postun        -p /sbin/ldconfig -n libgfortran-multilib
+%post  -p /sbin/ldconfig -n libgcj
+%postun        -p /sbin/ldconfig -n libgcj
+%post  -p /sbin/ldconfig -n libffi
+%postun        -p /sbin/ldconfig -n libffi
+%post  -p /sbin/ldconfig -n libffi-multilib
+%postun        -p /sbin/ldconfig -n libffi-multilib
+%post  -p /sbin/ldconfig -n libobjc
+%postun        -p /sbin/ldconfig -n libobjc
+%post  -p /sbin/ldconfig -n libobjc-multilib
+%postun        -p /sbin/ldconfig -n libobjc-multilib
+
+%files -f gcc.lang
+%defattr(644,root,root,755)
+%doc ChangeLog.general MAINTAINERS NEWS
+# bugs.html faq.html
+%doc gcc/{ChangeLog,ONEWS,README.Portability}
+%attr(755,root,root) %{_bindir}/*-gcc*
+%attr(755,root,root) %{_bindir}/cc
+%attr(755,root,root) %{_bindir}/cpp
+%attr(755,root,root) %{_bindir}/gcc
+%attr(755,root,root) %{_bindir}/gccbug
+%attr(755,root,root) %{_bindir}/gcov
+%{_mandir}/man1/cc.1*
+%{_mandir}/man1/cpp.1*
+%{_mandir}/man1/gcc.1*
+%{_mandir}/man1/gcov.1*
+%{_infodir}/cpp.info*
+%{_infodir}/cppinternals.info*
+%{_infodir}/gcc.info*
+%{_infodir}/gccinstall.info*
+%{_infodir}/gccint.info*
+%attr(755,root,root) /lib/cpp
+%attr(755,root,root) %{_slibdir}/libgcc_s.so
+%attr(755,root,root) %{_libdir}/libssp.so
+%{_libdir}/libssp.la
+%{_libdir}/libssp.a
+%{_libdir}/libssp_nonshared.la
+%{_libdir}/libssp_nonshared.a
+%dir %{_libdir}/gcc
+%dir %{_libdir}/gcc/*
+%dir %{_libdir}/gcc/*/*
+%{_libdir}/gcc/*/*/libgcc.a
+%{_libdir}/gcc/*/*/libgcc_eh.a
+%{_libdir}/gcc/*/*/libgcov.a
+%{_libdir}/gcc/*/*/specs
+%{_libdir}/gcc/*/*/crt*.o
+%attr(755,root,root) %{_libdir}/gcc/*/*/cc1
+%attr(755,root,root) %{_libdir}/gcc/*/*/collect2
+%attr(755,root,root) %{_libdir}/gcc/*/*/lto-wrapper
+%attr(755,root,root) %{_libdir}/gcc/*/*/lto1
+%{_libdir}/gcc/*/*/plugin
+%dir %{_libdir}/gcc/*/*/include
+%dir %{_libdir}/gcc/*/*/include/ssp
+%{_libdir}/gcc/*/*/include/ssp/*.h
+%{_libdir}/gcc/*/*/include/float.h
+%{_libdir}/gcc/*/*/include/iso646.h
+%{_libdir}/gcc/*/*/include/limits.h
+%{_libdir}/gcc/*/*/include/stdarg.h
+%{_libdir}/gcc/*/*/include/stdbool.h
+%{_libdir}/gcc/*/*/include/stddef.h
+%{_libdir}/gcc/*/*/include/stdfix.h
+%{_libdir}/gcc/*/*/include/stdint.h
+%{_libdir}/gcc/*/*/include/stdint-gcc.h
+%{_libdir}/gcc/*/*/include/syslimits.h
+%{_libdir}/gcc/*/*/include/unwind.h
+%{_libdir}/gcc/*/*/include/varargs.h
+%ifarch %{ix86} %{x8664}
+%{_libdir}/gcc/*/*/include/abmintrin.h
+%{_libdir}/gcc/*/*/include/ammintrin.h
+%{_libdir}/gcc/*/*/include/avxintrin.h
+%{_libdir}/gcc/*/*/include/bmmintrin.h
+%{_libdir}/gcc/*/*/include/cpuid.h
+%{_libdir}/gcc/*/*/include/cross-stdarg.h
+%{_libdir}/gcc/*/*/include/emmintrin.h
+%{_libdir}/gcc/*/*/include/fma4intrin.h
+%{_libdir}/gcc/*/*/include/ia32intrin.h
+%{_libdir}/gcc/*/*/include/immintrin.h
+%{_libdir}/gcc/*/*/include/lwpintrin.h
+%{_libdir}/gcc/*/*/include/mm3dnow.h
+%{_libdir}/gcc/*/*/include/mm_malloc.h
+%{_libdir}/gcc/*/*/include/mmintrin.h
+%{_libdir}/gcc/*/*/include/nmmintrin.h
+%{_libdir}/gcc/*/*/include/popcntintrin.h
+%{_libdir}/gcc/*/*/include/pmmintrin.h
+%{_libdir}/gcc/*/*/include/smmintrin.h
+%{_libdir}/gcc/*/*/include/tmmintrin.h
+%{_libdir}/gcc/*/*/include/wmmintrin.h
+%{_libdir}/gcc/*/*/include/x86intrin.h
+%{_libdir}/gcc/*/*/include/xmmintrin.h
+%{_libdir}/gcc/*/*/include/xopintrin.h
+%endif
+%ifarch powerpc ppc ppc64
+%{_libdir}/gcc/*/*/include/altivec.h
+%{_libdir}/gcc/*/*/include/paired.h
+%{_libdir}/gcc/*/*/include/ppc-asm.h
+%{_libdir}/gcc/*/*/include/ppu_intrinsics.h
+%{_libdir}/gcc/*/*/include/si2vmx.h
+%{_libdir}/gcc/*/*/include/spe.h
+%{_libdir}/gcc/*/*/include/spu2vmx.h
+%{_libdir}/gcc/*/*/include/vec_types.h
+%endif
+
+%if %{with multilib}
+%files multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_slibdir32}/libgcc_s.so
+%dir %{_libdir}/gcc/*/*/32
+%{_libdir}/gcc/*/*/32/crt*.o
+%{_libdir}/gcc/*/*/32/libgcc.a
+%{_libdir}/gcc/*/*/32/libgcc_eh.a
+%{_libdir}/gcc/*/*/32/libgcov.a
+%attr(755,root,root) %{_libdir32}/libssp.so
+%{_libdir32}/libssp.la
+%{_libdir32}/libssp.a
+%{_libdir32}/libssp_nonshared.la
+%{_libdir32}/libssp_nonshared.a
+%endif
+
+%files -n libgcc
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_slibdir}/libgcc_s.so.1
+%attr(755,root,root) %{_slibdir}/libssp.so.*.*.*
+%attr(755,root,root) %ghost %{_slibdir}/libssp.so.0
+
+%if %{with multilib}
+%files -n libgcc-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_slibdir32}/libgcc_s.so.1
+%attr(755,root,root) %{_slibdir32}/libssp.so.*.*.*
+%attr(755,root,root) %ghost %{_slibdir32}/libssp.so.0
+%endif
+
+%if %{with gomp}
+%files -n libgomp
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgomp.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgomp.so.1
+
+%if %{with multilib}
+%files -n libgomp-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgomp.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libgomp.so.1
+%endif
+
+%files -n libgomp-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgomp.so
+%{_libdir}/libgomp.la
+%{_libdir}/libgomp.spec
+%{_libdir}/gcc/*/*/finclude
+%{_libdir}/gcc/*/*/include/omp.h
+%{_infodir}/libgomp.info*
+
+%if %{with multilib}
+%files -n libgomp-multilib-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgomp.so
+%{_libdir32}/libgomp.la
+%{_libdir32}/libgomp.spec
+%endif
+
+%files -n libgomp-static
+%defattr(644,root,root,755)
+%{_libdir}/libgomp.a
+
+%if %{with multilib}
+%files -n libgomp-multilib-static
+%defattr(644,root,root,755)
+%{_libdir32}/libgomp.a
+%endif
+%endif
+
+%if %{with mudflap}
+%files -n libmudflap
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libmudflap.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmudflap.so.0
+%attr(755,root,root) %{_libdir}/libmudflapth.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmudflapth.so.0
+
+%if %{with multilib}
+%files -n libmudflap-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libmudflap.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libmudflap.so.0
+%attr(755,root,root) %{_libdir32}/libmudflapth.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libmudflapth.so.0
+%endif
+
+%files -n libmudflap-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libmudflap.so
+%attr(755,root,root) %{_libdir}/libmudflapth.so
+%{_libdir}/libmudflap.la
+%{_libdir}/libmudflapth.la
+%{_libdir}/gcc/*/*/include/mf-runtime.h
+
+%if %{with multilib}
+%files -n libmudflap-multilib-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libmudflap.so
+%attr(755,root,root) %{_libdir32}/libmudflapth.so
+%{_libdir32}/libmudflap.la
+%{_libdir32}/libmudflapth.la
+%endif
+
+%files -n libmudflap-static
+%defattr(644,root,root,755)
+%{_libdir}/libmudflap.a
+%{_libdir}/libmudflapth.a
+
+%if %{with multilib}
+%files -n libmudflap-multilib-static
+%defattr(644,root,root,755)
+%{_libdir32}/libmudflap.a
+%{_libdir32}/libmudflapth.a
+%endif
+%endif
+
+%if %{with ada}
+%files ada
+%defattr(644,root,root,755)
+%doc gcc/ada/ChangeLog
+%attr(755,root,root) %{_bindir}/gnat*
+%if %{with java}
+%exclude %{_bindir}/gnative2ascii
+%endif
+%attr(755,root,root) %{_libdir}/libgnarl-*.so
+%attr(755,root,root) %{_libdir}/libgnarl.so
+%attr(755,root,root) %{_libdir}/libgnat-*.so
+%attr(755,root,root) %{_libdir}/libgnat.so
+%attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
+%{_libdir}/gcc/*/*/adainclude
+%dir %{_libdir}/gcc/*/*/adalib
+%{_libdir}/gcc/*/*/adalib/*.ali
+%{_libdir}/gcc/*/*/adalib/g-trasym.o
+%ifarch %{ix86} %{x8664}
+%{_libdir}/gcc/*/*/adalib/libgmem.a
+%endif
+%{_infodir}/gnat-style.info*
+%{_infodir}/gnat_rm.info*
+%{_infodir}/gnat_ugn.info*
+
+%if %{with multilib}
+%files ada-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgnarl-*.so
+%attr(755,root,root) %{_libdir32}/libgnarl.so
+%attr(755,root,root) %{_libdir32}/libgnat-*.so
+%attr(755,root,root) %{_libdir32}/libgnat.so
+%{_libdir}/gcc/*/*/32/adainclude
+%dir %{_libdir}/gcc/*/*/32/adalib
+%{_libdir}/gcc/*/*/32/adalib/*.ali
+%{_libdir}/gcc/*/*/32/adalib/g-trasym.o
+%ifarch %{ix86} %{x8664}
+%{_libdir}/gcc/*/*/32/adalib/libgmem.a
+%endif
+%endif
+
+%files -n libgnat
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgnarl-*.so.1
+%attr(755,root,root) %{_libdir}/libgnarl.so.1
+%attr(755,root,root) %{_libdir}/libgnat-*.so.1
+%attr(755,root,root) %{_libdir}/libgnat.so.1
+
+%if %{with multilib}
+%files -n libgnat-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgnarl-*.so.1
+%attr(755,root,root) %{_libdir32}/libgnarl.so.1
+%attr(755,root,root) %{_libdir32}/libgnat-*.so.1
+%attr(755,root,root) %{_libdir32}/libgnat.so.1
+%endif
+
+%files -n libgnat-static
+%defattr(644,root,root,755)
+%{_libdir}/gcc/*/*/adalib/libgnala.a
+%{_libdir}/gcc/*/*/adalib/libgnarl.a
+%{_libdir}/gcc/*/*/adalib/libgnat.a
+
+%if %{with multilib}
+%files -n libgnat-multilib-static
+%defattr(644,root,root,755)
+%{_libdir}/gcc/*/*/32/adalib/libgnala.a
+%{_libdir}/gcc/*/*/32/adalib/libgnarl.a
+%{_libdir}/gcc/*/*/32/adalib/libgnat.a
+%endif
+%endif
+
+%if %{with cxx}
+%files c++
+%defattr(644,root,root,755)
+%doc gcc/cp/{ChangeLog,NEWS}
+%attr(755,root,root) %{_bindir}/g++
+%attr(755,root,root) %{_bindir}/*-g++
+%attr(755,root,root) %{_bindir}/c++
+%attr(755,root,root) %{_bindir}/*-c++
+%attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
+%{_libdir}/libsupc++.la
+%{_libdir}/libsupc++.a
+%{_mandir}/man1/g++.1*
+
+%if %{with multilib}
+%files c++-multilib
+%defattr(644,root,root,755)
+%{_libdir32}/libsupc++.la
+%{_libdir32}/libsupc++.a
+%endif
+
+%files -n libstdc++ -f libstdc++.lang
+%defattr(644,root,root,755)
+%doc libstdc++-v3/{ChangeLog,README}
+%attr(755,root,root) %{_libdir}/libstdc++.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libstdc++.so.6
+
+%if %{with multilib}
+%files -n libstdc++-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libstdc++.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libstdc++.so.6
+%endif
+
+%if %{with python}
+%files -n libstdc++-gdb
+%defattr(644,root,root,755)
+%dir %{py_sitescriptdir}/libstdcxx
+%{py_sitescriptdir}/libstdcxx/*.py[co]
+%dir %{py_sitescriptdir}/libstdcxx/v6
+%{py_sitescriptdir}/libstdcxx/v6/*.py[co]
+%{_datadir}/gdb/auto-load/usr/lib*/libstdc++.so.6.0.14-gdb.py
+%endif
+
+%files -n libstdc++-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libstdc++.so
+%{_libdir}/libstdc++.la
+%dir %{_includedir}/c++
+%{_includedir}/c++/%{version}
+%{_includedir}/extc++.h
+%{_includedir}/stdc++.h
+%{_includedir}/stdtr1c++.h
+%if %{with java}
+%exclude %{_includedir}/c++/%{version}/java
+%exclude %{_includedir}/c++/%{version}/javax
+%exclude %{_includedir}/c++/%{version}/gcj
+%exclude %{_includedir}/c++/%{version}/gnu
+%exclude %{_includedir}/c++/%{version}/org
+%exclude %{_includedir}/c++/%{version}/sun
+%endif
+
+%if %{with apidocs}
+%files -n libstdc++-apidocs
+%defattr(644,root,root,755)
+%doc libstdc++-v3/doc/html/*
+%endif
+
+%if %{with multilib}
+%files -n libstdc++-multilib-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libstdc++.so
+%{_libdir32}/libstdc++.la
+%endif
+
+%files -n libstdc++-static
+%defattr(644,root,root,755)
+%{_libdir}/libstdc++.a
+
+%if %{with multilib}
+%files -n libstdc++-multilib-static
+%defattr(644,root,root,755)
+%{_libdir32}/libstdc++.a
+%endif
+%endif
+
+%if %{with fortran}
+%files fortran
+%defattr(644,root,root,755)
+%doc gcc/fortran/ChangeLog
+%attr(755,root,root) %{_bindir}/g95
+%attr(755,root,root) %{_bindir}/gfortran
+%attr(755,root,root) %{_bindir}/*-gfortran
+%attr(755,root,root) %{_libdir}/gcc/*/*/f951
+%attr(755,root,root) %{_libdir}/libgfortran.so
+%{_libdir}/libgfortran.la
+%{_libdir}/gcc/*/*/libgfortranbegin.la
+%{_libdir}/gcc/*/*/libgfortranbegin.a
+%{_infodir}/gfortran.info*
+%{_mandir}/man1/g95.1*
+%{_mandir}/man1/gfortran.1*
+
+%if %{with multilib}
+%files fortran-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgfortran.so
+%{_libdir32}/libgfortran.la
+%{_libdir}/gcc/*/*/32/libgfortranbegin.la
+%{_libdir}/gcc/*/*/32/libgfortranbegin.a
+%endif
+
+%files -n libgfortran
+%defattr(644,root,root,755)
+%doc libgfortran/{AUTHORS,README,ChangeLog}
+%attr(755,root,root) %{_libdir}/libgfortran.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgfortran.so.3
+
+%if %{with multilib}
+%files -n libgfortran-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgfortran.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libgfortran.so.3
+%endif
+
+%files -n libgfortran-static
+%defattr(644,root,root,755)
+%{_libdir}/libgfortran.a
+
+%if %{with multilib}
+%files -n libgfortran-multilib-static
+%defattr(644,root,root,755)
+%{_libdir32}/libgfortran.a
+%endif
+%endif
+
+%if %{with java}
+%files java
+%defattr(644,root,root,755)
+%doc gcc/java/ChangeLog java-doc/*
+%attr(755,root,root) %{_bindir}/gappletviewer
+%attr(755,root,root) %{_bindir}/gc-analyze
+%attr(755,root,root) %{_bindir}/gcj
+%attr(755,root,root) %{_bindir}/gcj-dbtool
+%attr(755,root,root) %{_bindir}/gcjh
+%attr(755,root,root) %{_bindir}/gjar
+%attr(755,root,root) %{_bindir}/gjarsigner
+%attr(755,root,root) %{_bindir}/gjavah
+%attr(755,root,root) %{_bindir}/gkeytool
+%attr(755,root,root) %{_bindir}/gnative2ascii
+%attr(755,root,root) %{_bindir}/gorbd
+%attr(755,root,root) %{_bindir}/grmic
+%attr(755,root,root) %{_bindir}/grmid
+%attr(755,root,root) %{_bindir}/grmiregistry
+%attr(755,root,root) %{_bindir}/gserialver
+%attr(755,root,root) %{_bindir}/gtnameserv
+%attr(755,root,root) %{_bindir}/jcf-dump
+%attr(755,root,root) %{_bindir}/jv-convert
+%attr(755,root,root) %{_bindir}/rebuild-gcj-db
+%attr(755,root,root) %{_bindir}/*-gcj
+%attr(755,root,root) %{_libdir}/gcc/*/*/ecj1
+%attr(755,root,root) %{_libdir}/gcc/*/*/jc1
+%attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
+%{_infodir}/cp-tools.info*
+%{_infodir}/gcj.info*
+%{_mandir}/man1/gappletviewer.1*
+%{_mandir}/man1/gc-analyze.1*
+%{_mandir}/man1/gcj.1*
+%{_mandir}/man1/gcj-dbtool.1*
+%{_mandir}/man1/gcjh.1*
+%{_mandir}/man1/gjar.1*
+%{_mandir}/man1/gjarsigner.1*
+%{_mandir}/man1/gjavah.1*
+%{_mandir}/man1/gkeytool.1*
+%{_mandir}/man1/gnative2ascii.1*
+%{_mandir}/man1/gorbd.1*
+%{_mandir}/man1/grmic.1*
+%{_mandir}/man1/grmid.1*
+%{_mandir}/man1/grmiregistry.1*
+%{_mandir}/man1/gserialver.1*
+%{_mandir}/man1/gtnameserv.1*
+%{_mandir}/man1/jcf-dump.1*
+%{_mandir}/man1/jv-convert.1*
+%{_mandir}/man1/rebuild-gcj-db*
+
+%files -n libgcj
+%defattr(644,root,root,755)
+%doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
+%attr(755,root,root) %{_bindir}/gij
+%attr(755,root,root) %{_libdir}/libgcj-tools.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgcj-tools.so.%{gcj_soname_ver}
+%attr(755,root,root) %{_libdir}/libgcj.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgcj.so.%{gcj_soname_ver}
+%attr(755,root,root) %{_libdir}/libgcj_bc.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgcj_bc.so.1
+%attr(755,root,root) %{_libdir}/libgcj_bc.so
+%attr(755,root,root) %{_libdir}/libgij.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgij.so.%{gcj_soname_ver}
+%{?with_x:%attr(755,root,root) %{_libdir}/lib-gnu-awt-xlib.so.*.*.*}
+%{?with_x:%attr(755,root,root) %ghost %{_libdir}/lib-gnu-awt-xlib.so.%{gcj_soname_ver}}
+%dir %{_libdir}/%{gcjdbexecdir}
+%{_libdir}/%{gcjdbexecdir}/classmap.db
+%{?with_mozilla:%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libgcjwebplugin.so}
+%{?with_alsa:%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libgjsmalsa.so*}
+%{?with_dssi:%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libgjsmdssi.so*}
+%{?with_gtk:%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libgtkpeer.so}
+%{?with_gtk:%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libjawt.so}
+%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libjavamath.so
+%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libjvm.so
+%{?with_qt:%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libqtpeer.so}
+%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libxmlj.so*
+%{_libdir}/logging.properties
+%{_javadir}/libgcj*.jar
+%{_javadir}/ecj.jar
+%{_mandir}/man1/gij.1*
+
+%files -n libgcj-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgcj-tools.so
+%{_libdir}/libgcj-tools.la
+%attr(755,root,root) %{_libdir}/libgcj.so
+%{_libdir}/libgcj.la
+%attr(755,root,root) %{_libdir}/libgij.so
+%{_libdir}/libgij.la
+%if %{with x}
+%attr(755,root,root) %{_libdir}/lib-gnu-awt-xlib.so
+%{_libdir}/lib-gnu-awt-xlib.la
+%endif
+%{_libdir}/libgcj.spec
+%dir %{_libdir}/security
+%{_libdir}/security/*
+%{?with_alsa:%{_libdir}/%{gcjdbexecdir}/libgjsmalsa.la}
+%{?with_dssi:%{_libdir}/%{gcjdbexecdir}/libgjsmdssi.la}
+%{?with_gtk:%{_libdir}/%{gcjdbexecdir}/libgtkpeer.la}
+%{?with_gtk:%{_libdir}/%{gcjdbexecdir}/libjawt.la}
+%{_libdir}/%{gcjdbexecdir}/libjavamath.la
+%{_libdir}/%{gcjdbexecdir}/libjvm.la
+%{?with_qt:%{_libdir}/%{gcjdbexecdir}/libqtpeer.la}
+%{?with_mozilla:%{_libdir}/%{gcjdbexecdir}/libgcjwebplugin.la}
+%{_libdir}/%{gcjdbexecdir}/libxmlj.la
+%{_libdir}/gcc/*/*/include/gcj
+%{_libdir}/gcc/*/*/include/jawt.h
+%{_libdir}/gcc/*/*/include/jawt_md.h
+%{_libdir}/gcc/*/*/include/jni.h
+%{_libdir}/gcc/*/*/include/jni_md.h
+%{_libdir}/gcc/*/*/include/jvmpi.h
+%{_includedir}/c++/%{version}/java
+%{_includedir}/c++/%{version}/javax
+%{_includedir}/c++/%{version}/gcj
+%{_includedir}/c++/%{version}/gnu
+%{_includedir}/c++/%{version}/org
+%{_includedir}/c++/%{version}/sun
+%{_pkgconfigdir}/libgcj-%{major_ver}.pc
+
+%files -n libgcj-static
+%defattr(644,root,root,755)
+%{_libdir}/libgcj-tools.a
+%{_libdir}/libgcj.a
+%{_libdir}/libgcj_bc.a
+%{_libdir}/libgij.a
+%{?with_x:%{_libdir}/lib-gnu-awt-xlib.a}
+%{_libdir}/%{gcjdbexecdir}/libjvm.a
+
+%files -n libffi
+%defattr(644,root,root,755)
+%doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
+%attr(755,root,root) %{_libdir}/libffi.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libffi.so.4
+
+%if %{with multilib}
+%files -n libffi-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libffi.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libffi.so.4
+%endif
+
+%files -n libffi-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libffi.so
+%{_libdir}/libffi.la
+%{_libdir}/gcc/*/*/include/ffi.h
+%{_libdir}/gcc/*/*/include/ffitarget.h
+%{_mandir}/man3/ffi*.3*
+
+%if %{with multilib}
+%files -n libffi-multilib-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libffi.so
+%{_libdir32}/libffi.la
+%endif
+
+%files -n libffi-static
+%defattr(644,root,root,755)
+%{_libdir}/libffi.a
+
+%if %{with multilib}
+%files -n libffi-multilib-static
+%defattr(644,root,root,755)
+%{_libdir32}/libffi.a
+%endif
+%endif
+
+%if %{with objc}
+%files objc
+%defattr(644,root,root,755)
+%doc gcc/objc/README
+%attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
+%attr(755,root,root) %{_libdir}/libobjc.so
+%{_libdir}/libobjc.la
+%{_libdir}/gcc/*/*/include/objc
+
+%if %{with multilib}
+%files objc-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libobjc.so
+%{_libdir32}/libobjc.la
+%endif
+
+%files -n libobjc
+%defattr(644,root,root,755)
+%doc libobjc/{ChangeLog,README*}
+%attr(755,root,root) %{_libdir}/libobjc.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libobjc.so.2
+
+%if %{with multilib}
+%files -n libobjc-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libobjc.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libobjc.so.2
+%endif
+
+%files -n libobjc-static
+%defattr(644,root,root,755)
+%{_libdir}/libobjc.a
+
+%if %{with multilib}
+%files -n libobjc-multilib-static
+%defattr(644,root,root,755)
+%{_libdir32}/libobjc.a
+%endif
+%endif
+
+%if %{with objcxx}
+%files objc++
+%defattr(644,root,root,755)
+%doc gcc/objcp/ChangeLog
+%attr(755,root,root) %{_libdir}/gcc/*/*/cc1objplus
+%endif
+
+%define date   %(echo `LC_ALL="C" date +"%a %b %d %Y"`)
+%changelog
+* %{date} PLD Team <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...