public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@fedoraproject.org>
To: git-commits@fedoraproject.org
Subject: [rpms/gcc] rhel-f41-base: 4.1.2-13
Date: Mon, 29 Jun 2026 12:23:17 GMT [thread overview]
Message-ID: <178273579793.1.4981703828529845384.rpms-gcc-1c109062ac58@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/gcc
Branch : rhel-f41-base
Commit : 1c109062ac585a6f2d5e4a9be83bd8901592b5f4
Author : Jakub Jelinek <jakub@fedoraproject.org>
Date : 2007-06-15T17:42:21+00:00
Stats : +294/-339 in 11 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/1c109062ac585a6f2d5e4a9be83bd8901592b5f4?branch=rhel-f41-base
Log:
4.1.2-13
---
diff --git a/.cvsignore b/.cvsignore
index f922c4c..6205488 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gcc-4.1.2-20070503.tar.bz2
+gcc-4.1.2-20070615.tar.bz2
diff --git a/gcc41-dtor-relro.patch b/gcc41-dtor-relro.patch
deleted file mode 100644
index 118128c..0000000
--- a/gcc41-dtor-relro.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-2007-05-03 Ulrich Drepper <drepper@redhat.com>
- Jakub Jelinek <jakub@redhat.com>
-
- * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
- (__do_global_dtors_aux): Use more paranoid loop to run
- destructors if HIDDEN_DTOR_LIST_END.
- (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
-
---- gcc/crtstuff.c.jj 2007-01-24 22:24:21.000000000 +0100
-+++ gcc/crtstuff.c 2007-05-03 10:40:29.000000000 +0200
-@@ -106,6 +107,11 @@ call_ ## FUNC (void) \
- # define EH_FRAME_SECTION_CONST
- #endif
-
-+#if !defined(DTOR_LIST_END) && defined(OBJECT_FORMAT_ELF) \
-+ && defined(HAVE_GAS_HIDDEN) && !defined(FINI_ARRAY_SECTION_ASM_OP)
-+# define HIDDEN_DTOR_LIST_END
-+#endif
-+
- /* We do not want to add the weak attribute to the declarations of these
- routines in unwind-dw2-fde.h because that will cause the definition of
- these symbols to be weak as well.
-@@ -265,10 +271,6 @@ extern void __cxa_finalize (void *) TARG
- static void __attribute__((used))
- __do_global_dtors_aux (void)
- {
--#ifndef FINI_ARRAY_SECTION_ASM_OP
-- static func_ptr *p = __DTOR_LIST__ + 1;
-- func_ptr f;
--#endif /* !defined(FINI_ARRAY_SECTION_ASM_OP) */
- static _Bool completed;
-
- if (__builtin_expect (completed, 0))
-@@ -282,12 +284,32 @@ __do_global_dtors_aux (void)
- #ifdef FINI_ARRAY_SECTION_ASM_OP
- /* If we are using .fini_array then destructors will be run via that
- mechanism. */
-+#elif defined(HIDDEN_DTOR_LIST_END)
-+ {
-+ /* Safer version that makes sure only .dtors function pointers are
-+ called even if the static variable is maliciously changed. */
-+ extern func_ptr __DTOR_END__[] __attribute__((visibility ("hidden")));
-+ static size_t dtor_idx;
-+ const size_t max_idx = __DTOR_END__ - __DTOR_LIST__ - 1;
-+ func_ptr f;
-+
-+ while (dtor_idx < max_idx)
-+ {
-+ f = __DTOR_LIST__[++dtor_idx];
-+ f ();
-+ }
-+ }
- #else /* !defined (FINI_ARRAY_SECTION_ASM_OP) */
-- while ((f = *p))
-- {
-- p++;
-- f ();
-- }
-+ {
-+ static func_ptr *p = __DTOR_LIST__ + 1;
-+ func_ptr f;
-+
-+ while ((f = *p))
-+ {
-+ p++;
-+ f ();
-+ }
-+ }
- #endif /* !defined(FINI_ARRAY_SECTION_ASM_OP) */
-
- #ifdef USE_EH_FRAME_REGISTRY
-@@ -471,6 +493,17 @@ STATIC func_ptr __CTOR_END__[1]
-
- #ifdef DTOR_LIST_END
- DTOR_LIST_END;
-+#elif defined(HIDDEN_DTOR_LIST_END)
-+#ifdef DTORS_SECTION_ASM_OP
-+asm (DTORS_SECTION_ASM_OP);
-+#endif
-+func_ptr __DTOR_END__[1]
-+ __attribute__ ((unused,
-+#ifndef DTORS_SECTION_ASM_OP
-+ section(".dtors"),
-+#endif
-+ aligned(sizeof(func_ptr)), visibility ("hidden")))
-+ = { (func_ptr) 0 };
- #elif defined(DTORS_SECTION_ASM_OP)
- asm (DTORS_SECTION_ASM_OP);
- STATIC func_ptr __DTOR_END__[1]
diff --git a/gcc41-libgomp-ncpus.patch b/gcc41-libgomp-ncpus.patch
deleted file mode 100644
index 3cb6238..0000000
--- a/gcc41-libgomp-ncpus.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-2007-05-02 Jakub Jelinek <jakub@redhat.com>
-
- * config/linux/proc.c: New file.
-
---- libgomp/config/linux/proc.c.jj 2007-05-02 13:50:37.000000000 +0200
-+++ libgomp/config/linux/proc.c 2007-05-02 16:00:47.000000000 +0200
-@@ -0,0 +1,179 @@
-+/* Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
-+ Contributed by Jakub Jelinek <jakub@redhat.com>.
-+
-+ This file is part of the GNU OpenMP Library (libgomp).
-+
-+ Libgomp is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1 of the License, or
-+ (at your option) any later version.
-+
-+ Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
-+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-+ FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
-+ more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with libgomp; see the file COPYING.LIB. If not, write to the
-+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-+ MA 02110-1301, USA. */
-+
-+/* As a special exception, if you link this library with other files, some
-+ of which are compiled with GCC, to produce an executable, this library
-+ does not by itself cause the resulting executable to be covered by the
-+ GNU General Public License. This exception does not however invalidate
-+ any other reasons why the executable file might be covered by the GNU
-+ General Public License. */
-+
-+/* This file contains system specific routines related to counting
-+ online processors and dynamic load balancing. */
-+
-+#ifndef _GNU_SOURCE
-+#define _GNU_SOURCE 1
-+#endif
-+#include "libgomp.h"
-+#include <sched.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#ifdef HAVE_GETLOADAVG
-+# ifdef HAVE_SYS_LOADAVG_H
-+# include <sys/loadavg.h>
-+# endif
-+#endif
-+
-+#ifdef HAVE_PTHREAD_AFFINITY_NP
-+static unsigned long
-+cpuset_popcount (cpu_set_t *cpusetp)
-+{
-+#ifdef CPU_COUNT
-+ /* glibc 2.6 and above provide a macro for this. */
-+ return CPU_COUNT (cpusetp);
-+#else
-+ size_t i;
-+ unsigned long ret = 0;
-+ extern int check[sizeof (cpusetp->__bits[0]) == sizeof (unsigned long int)];
-+
-+ (void) check;
-+ for (i = 0; i < sizeof (*cpusetp) / sizeof (cpusetp->__bits[0]); i++)
-+ {
-+ unsigned long int mask = cpusetp->__bits[i];
-+ if (mask == 0)
-+ continue;
-+ ret += __builtin_popcountl (mask);
-+ }
-+ return ret;
-+#endif
-+}
-+#endif
-+
-+/* At startup, determine the default number of threads. It would seem
-+ this should be related to the number of cpus online. */
-+
-+void
-+gomp_init_num_threads (void)
-+{
-+#ifdef HAVE_PTHREAD_AFFINITY_NP
-+ cpu_set_t cpuset;
-+
-+ if (pthread_getaffinity_np (pthread_self (), sizeof (cpuset), &cpuset) == 0)
-+ {
-+ /* Count only the CPUs this process can use. */
-+ gomp_nthreads_var = cpuset_popcount (&cpuset);
-+ if (gomp_nthreads_var == 0)
-+ gomp_nthreads_var = 1;
-+ return;
-+ }
-+#endif
-+#ifdef _SC_NPROCESSORS_ONLN
-+ gomp_nthreads_var = sysconf (_SC_NPROCESSORS_ONLN);
-+#endif
-+}
-+
-+static int
-+get_num_procs (void)
-+{
-+#ifdef HAVE_PTHREAD_AFFINITY_NP
-+ cpu_set_t cpuset;
-+
-+ if (gomp_cpu_affinity == NULL)
-+ {
-+ /* Count only the CPUs this process can use. */
-+ if (pthread_getaffinity_np (pthread_self (), sizeof (cpuset),
-+ &cpuset) == 0)
-+ {
-+ int ret = cpuset_popcount (&cpuset);
-+ return ret != 0 ? ret : 1;
-+ }
-+ }
-+ else
-+ {
-+ size_t idx;
-+ static int affinity_cpus;
-+
-+ /* We can't use pthread_getaffinity_np in this case
-+ (we have changed it ourselves, it binds to just one CPU).
-+ Count instead the number of different CPUs we are
-+ using. */
-+ CPU_ZERO (&cpuset);
-+ if (affinity_cpus == 0)
-+ {
-+ int cpus = 0;
-+ for (idx = 0; idx < gomp_cpu_affinity_len; idx++)
-+ if (! CPU_ISSET (gomp_cpu_affinity[idx], &cpuset))
-+ {
-+ cpus++;
-+ CPU_SET (gomp_cpu_affinity[idx], &cpuset);
-+ }
-+ affinity_cpus = cpus;
-+ }
-+ return affinity_cpus;
-+ }
-+#endif
-+#ifdef _SC_NPROCESSORS_ONLN
-+ return sysconf (_SC_NPROCESSORS_ONLN);
-+#else
-+ return gomp_nthreads_var;
-+#endif
-+}
-+
-+/* When OMP_DYNAMIC is set, at thread launch determine the number of
-+ threads we should spawn for this team. */
-+/* ??? I have no idea what best practice for this is. Surely some
-+ function of the number of processors that are *still* online and
-+ the load average. Here I use the number of processors online
-+ minus the 15 minute load average. */
-+
-+unsigned
-+gomp_dynamic_max_threads (void)
-+{
-+ unsigned n_onln, loadavg;
-+
-+ n_onln = get_num_procs ();
-+ if (n_onln > gomp_nthreads_var)
-+ n_onln = gomp_nthreads_var;
-+
-+ loadavg = 0;
-+#ifdef HAVE_GETLOADAVG
-+ {
-+ double dloadavg[3];
-+ if (getloadavg (dloadavg, 3) == 3)
-+ {
-+ /* Add 0.1 to get a kind of biased rounding. */
-+ loadavg = dloadavg[2] + 0.1;
-+ }
-+ }
-+#endif
-+
-+ if (loadavg >= n_onln)
-+ return 1;
-+ else
-+ return n_onln - loadavg;
-+}
-+
-+int
-+omp_get_num_procs (void)
-+{
-+ return get_num_procs ();
-+}
-+
-+ialias (omp_get_num_procs)
diff --git a/gcc41-pr28482.patch b/gcc41-pr28482.patch
deleted file mode 100644
index 2cb3638..0000000
--- a/gcc41-pr28482.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-2007-05-02 Jakub Jelinek <jakub@redhat.com>
-
- PR libgomp/28482
- * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
-
---- libgomp/configure.tgt.jj 2007-04-20 12:55:40.000000000 +0200
-+++ libgomp/configure.tgt 2007-05-02 17:32:15.000000000 +0200
-@@ -11,11 +11,8 @@
- # XLDFLAGS Add extra link flags to use.
-
- # Optimize TLS usage by avoiding the overhead of dynamic allocation.
--# This does require that the library be present during process
--# startup, so mark the library as not to be dlopened.
- if test $have_tls = yes && test "$with_gnu_ld" = "yes"; then
- XCFLAGS="${XCFLAGS} -ftls-model=initial-exec"
-- XLDFLAGS="${XLDFLAGS} -Wl,-z,nodlopen"
- fi
-
- # Since we require POSIX threads, assume a POSIX system by default.
diff --git a/gcc41-pr31809.patch b/gcc41-pr31809.patch
new file mode 100644
index 0000000..a620a2d
--- /dev/null
+++ b/gcc41-pr31809.patch
@@ -0,0 +1,68 @@
+2007-05-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/31806
+ * decl.c (cp_finish_decl): Also clear was_readonly if a static var
+ needs runtime initialization.
+
+2007-05-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/31809
+ * decl.c (cp_finish_decl): Clear TREE_READONLY flag on TREE_STATIC
+ variables that need runtime initialization.
+
+ * g++.dg/opt/static5.C: New test.
+
+--- gcc/cp/decl.c (revision 125200)
++++ gcc/cp/decl.c (revision 125229)
+@@ -5357,7 +5357,18 @@ cp_finish_decl (tree decl, tree init, bo
+ initializer. It is not legal to redeclare a static data
+ member, so this issue does not arise in that case. */
+ if (var_definition_p && TREE_STATIC (decl))
+- expand_static_init (decl, init);
++ {
++ /* If a TREE_READONLY variable needs initialization
++ at runtime, it is no longer readonly and we need to
++ avoid MEM_READONLY_P being set on RTL created for it. */
++ if (init)
++ {
++ if (TREE_READONLY (decl))
++ TREE_READONLY (decl) = 0;
++ was_readonly = 0;
++ }
++ expand_static_init (decl, init);
++ }
+ }
+ }
+
+--- gcc/testsuite/g++.dg/opt/static5.C (revision 0)
++++ gcc/testsuite/g++.dg/opt/static5.C (revision 125229)
+@@ -0,0 +1,29 @@
++// PR c++/31809
++// { dg-do run }
++// { dg-options "-O2" }
++
++struct S
++{
++ unsigned v;
++ static inline S f (unsigned a);
++};
++
++inline S
++S::f (unsigned a)
++{
++ static S t = { a };
++ return t;
++}
++
++const static S s = S::f (26);
++
++extern "C" void abort (void);
++
++int
++main ()
++{
++ S t = s;
++ if (t.v != 26)
++ abort ();
++ return 0;
++}
diff --git a/gcc41-pr32139.patch b/gcc41-pr32139.patch
new file mode 100644
index 0000000..84e8ffb
--- /dev/null
+++ b/gcc41-pr32139.patch
@@ -0,0 +1,58 @@
+2007-06-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/32139
+ * c-typeck.c (common_pointer_type): Set TYPE_READONLY
+ and TYPE_VOLATILE on the merged pointed to FUNCTION_TYPE
+ only if both pointed_to_1 and pointed_to_2 are TYPE_READONLY
+ resp. TYPE_VOLATILE.
+
+ * gcc.c-torture/compile/20070531-1.c: New test.
+
+--- gcc/c-typeck.c.jj 2007-04-25 10:13:52.000000000 +0200
++++ gcc/c-typeck.c 2007-06-01 10:51:53.000000000 +0200
+@@ -499,6 +499,7 @@ common_pointer_type (tree t1, tree t2)
+ tree pointed_to_1, mv1;
+ tree pointed_to_2, mv2;
+ tree target;
++ int type_quals;
+
+ /* Save time if the two types are the same. */
+
+@@ -526,10 +527,19 @@ common_pointer_type (tree t1, tree t2)
+ if (TREE_CODE (mv2) != ARRAY_TYPE)
+ mv2 = TYPE_MAIN_VARIANT (pointed_to_2);
+ target = composite_type (mv1, mv2);
+- t1 = build_pointer_type (c_build_qualified_type
+- (target,
+- TYPE_QUALS (pointed_to_1) |
+- TYPE_QUALS (pointed_to_2)));
++ type_quals = TYPE_QUALS (pointed_to_1) | TYPE_QUALS (pointed_to_2);
++ if (TREE_CODE (pointed_to_1) == FUNCTION_TYPE)
++ {
++ /* TYPE_READONLY and TYPE_VOLATILE on FUNCTION_TYPE should be
++ logically ANDed, not ORed, as if one function is
++ __attribute__((const)) and the other is not, the common type
++ must be conservatively not __attribute__((const))
++ and similarly for __attribute__((noreturn)). */
++ type_quals &= ~(TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE);
++ type_quals |= (TYPE_QUALS (pointed_to_1) & TYPE_QUALS (pointed_to_2))
++ & (TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE);
++ }
++ t1 = build_pointer_type (c_build_qualified_type (target, type_quals));
+ return build_type_attribute_variant (t1, attributes);
+ }
+
+--- gcc/testsuite/gcc.c-torture/compile/20070531-1.c.jj 2007-05-31 13:47:22.000000000 +0200
++++ gcc/testsuite/gcc.c-torture/compile/20070531-1.c 2007-06-01 10:57:15.000000000 +0200
+@@ -0,0 +1,11 @@
++/* PR tree-optimization/32139 */
++int foo (void);
++int bar (void) __attribute__ ((const));
++
++int
++test (int x)
++{
++ int a = (x == 10000 ? foo : bar) ();
++ int b = (x == 10000 ? foo : bar) ();
++ return a + b;
++}
diff --git a/gcc41-pr32285.patch b/gcc41-pr32285.patch
new file mode 100644
index 0000000..1863830
--- /dev/null
+++ b/gcc41-pr32285.patch
@@ -0,0 +1,73 @@
+2007-06-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/32285
+ * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
+ if ACCUMULATE_OUTGOING_ARGS.
+
+ * gcc.c-torture/execute/20070614-1.c: New test.
+
+--- gcc/calls.c.jj 2007-06-13 17:38:55.000000000 +0200
++++ gcc/calls.c 2007-06-14 14:50:56.000000000 +0200
+@@ -1269,13 +1269,25 @@ precompute_arguments (int flags, int num
+
+ /* If this is a libcall, then precompute all arguments so that we do not
+ get extraneous instructions emitted as part of the libcall sequence. */
+- if ((flags & ECF_LIBCALL_BLOCK) == 0)
++
++ /* If we preallocated the stack space, and some arguments must be passed
++ on the stack, then we must precompute any parameter which contains a
++ function call which will store arguments on the stack.
++ Otherwise, evaluating the parameter may clobber previous parameters
++ which have already been stored into the stack. (we have code to avoid
++ such case by saving the outgoing stack arguments, but it results in
++ worse code) */
++ if ((flags & ECF_LIBCALL_BLOCK) == 0 && !ACCUMULATE_OUTGOING_ARGS)
+ return;
+
+ for (i = 0; i < num_actuals; i++)
+ {
+ enum machine_mode mode;
+
++ if ((flags & ECF_LIBCALL_BLOCK) == 0
++ && TREE_CODE (args[i].tree_value) != CALL_EXPR)
++ continue;
++
+ /* If this is an addressable type, we cannot pre-evaluate it. */
+ gcc_assert (!TREE_ADDRESSABLE (TREE_TYPE (args[i].tree_value)));
+
+--- gcc/testsuite/gcc.c-torture/execute/20070614-1.c.jj 2007-06-14 15:32:28.000000000 +0200
++++ gcc/testsuite/gcc.c-torture/execute/20070614-1.c 2007-06-11 13:23:19.000000000 +0200
+@@ -0,0 +1,33 @@
++extern void abort (void);
++
++_Complex v = 3.0 + 1.0iF;
++
++void
++foo (_Complex z, int *x)
++{
++ if (z != v)
++ abort ();
++}
++
++_Complex bar (_Complex z) __attribute__ ((pure));
++_Complex
++bar (_Complex z)
++{
++ return v;
++}
++
++int
++baz (void)
++{
++ int a, i;
++ for (i = 0; i < 6; i++)
++ foo (bar (1.0iF * i), &a);
++ return 0;
++}
++
++int
++main ()
++{
++ baz ();
++ return 0;
++}
diff --git a/gcc41-pr32353.patch b/gcc41-pr32353.patch
new file mode 100644
index 0000000..79e2c2b
--- /dev/null
+++ b/gcc41-pr32353.patch
@@ -0,0 +1,64 @@
+2007-06-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/32353
+ * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
+
+ * g++.dg/opt/nrv13.C: New test.
+
+--- gcc/tree-ssa-structalias.c.jj 2007-06-11 11:12:27.000000000 +0200
++++ gcc/tree-ssa-structalias.c 2007-06-15 16:40:29.000000000 +0200
+@@ -4343,7 +4343,8 @@ set_uids_in_ptset (tree ptr, bitmap into
+ bitmap_set_bit (into, DECL_UID (sv->var));
+ }
+ else if (TREE_CODE (vi->decl) == VAR_DECL
+- || TREE_CODE (vi->decl) == PARM_DECL)
++ || TREE_CODE (vi->decl) == PARM_DECL
++ || TREE_CODE (vi->decl) == RESULT_DECL)
+ {
+ if (var_can_have_subvars (vi->decl)
+ && get_subvars_for_var (vi->decl))
+--- gcc/testsuite/g++.dg/opt/nrv13.C.jj 2007-06-15 16:59:02.000000000 +0200
++++ gcc/testsuite/g++.dg/opt/nrv13.C 2007-06-15 17:03:39.000000000 +0200
+@@ -0,0 +1,42 @@
++// PR tree-optimization/32353
++// { dg-do run }
++// { dg-options "-O2" }
++
++extern "C" void abort ();
++
++struct A
++{
++ int f;
++ A (int x) : f (x) {}
++};
++
++A
++foo (const A &x, const A &y)
++{
++ A r (0);
++ r = x.f == -111 ? y : (y.f == -111 || x.f > y.f) ? x : y;
++ A s (0);
++ r = r.f == -111 ? s : (r.f > s.f) ? r : s;
++ return r;
++}
++
++int
++main ()
++{
++ if (foo (A (0), A (1)).f != 1)
++ abort ();
++ if (foo (A (1), A (9)).f != 9)
++ abort ();
++ if (foo (A (9), A (1)).f != 9)
++ abort ();
++ if (foo (A (-4), A (-5)).f != 0)
++ abort ();
++ if (foo (A (-111), A (-111)).f != 0)
++ abort ();
++ if (foo (A (2), A (-111)).f != 2)
++ abort ();
++ if (foo (A (-111), A (6)).f != 6)
++ abort ();
++ if (foo (A (-111), A (-4)).f != 0)
++ abort ();
++}
diff --git a/gcc41-tls-data-alignment.patch b/gcc41-tls-data-alignment.patch
deleted file mode 100644
index 1ad26c7..0000000
--- a/gcc41-tls-data-alignment.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-2007-05-03 Jakub Jelinek <jakub@redhat.com>
-
- * varasm.c (align_variable): Don't increase alignment for
- DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
- DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
-
---- gcc/varasm.c.jj 2007-04-14 14:55:25.000000000 +0200
-+++ gcc/varasm.c 2007-05-03 11:23:56.000000000 +0200
-@@ -1097,11 +1097,22 @@ align_variable (tree decl, bool dont_out
- if (! DECL_USER_ALIGN (decl))
- {
- #ifdef DATA_ALIGNMENT
-- align = DATA_ALIGNMENT (TREE_TYPE (decl), align);
-+ unsigned int data_align = DATA_ALIGNMENT (TREE_TYPE (decl), align);
-+ /* Don't increase alignment too much for TLS variables - TLS space
-+ is too precious. */
-+ if (! DECL_THREAD_LOCAL_P (decl) || data_align <= BITS_PER_WORD)
-+ align = data_align;
- #endif
- #ifdef CONSTANT_ALIGNMENT
- if (DECL_INITIAL (decl) != 0 && DECL_INITIAL (decl) != error_mark_node)
-- align = CONSTANT_ALIGNMENT (DECL_INITIAL (decl), align);
-+ {
-+ unsigned int const_align = CONSTANT_ALIGNMENT (DECL_INITIAL (decl),
-+ align);
-+ /* Don't increase alignment too much for TLS variables - TLS space
-+ is too precious. */
-+ if (! DECL_THREAD_LOCAL_P (decl) || const_align <= BITS_PER_WORD)
-+ align = const_align;
-+ }
- #endif
- }
-
diff --git a/gcc41.spec b/gcc41.spec
index 1e156f6..c5cdb29 100644
--- a/gcc41.spec
+++ b/gcc41.spec
@@ -1,6 +1,6 @@
-%define DATE 20070503
+%define DATE 20070615
%define gcc_version 4.1.2
-%define gcc_release 12
+%define gcc_release 13
%define _unpackaged_files_terminate_build 0
%define multilib_64_archs sparc64 ppc64 s390x x86_64
%define include_gappletviewer 1
@@ -137,14 +137,14 @@ Patch25: gcc41-pr29299.patch
Patch26: gcc41-java-bogus-debugline.patch
Patch27: gcc41-libjava-visibility.patch
Patch28: gcc41-pr31187.patch
-Patch29: gcc41-dtor-relro.patch
+Patch29: gcc41-pr31809.patch
Patch30: gcc41-rh234515.patch
-Patch31: gcc41-libgomp-ncpus.patch
+Patch31: gcc41-pr32139.patch
Patch32: gcc41-rh236895.patch
-Patch33: gcc41-pr28482.patch
+Patch33: gcc41-pr32285.patch
Patch34: gcc41-rh235008.patch
Patch35: gcc41-pr31748.patch
-Patch36: gcc41-tls-data-alignment.patch
+Patch36: gcc41-pr32353.patch
%define _gnu %{nil}
%ifarch sparc
@@ -452,14 +452,14 @@ which are required to run programs compiled with the GNAT.
%patch26 -p0 -b .java-bogus-debugline~
%patch27 -p0 -b .libjava-visibility~
%patch28 -p0 -b .pr31187~
-%patch29 -p0 -b .dtor-relro~
+%patch29 -p0 -b .pr31809~
%patch30 -p0 -b .rh234515~
-%patch31 -p0 -b .libgomp-ncpus~
+%patch31 -p0 -b .pr32139~
%patch32 -p0 -b .rh236895~
-%patch33 -p0 -b .pr28482~
+%patch33 -p0 -b .pr32285~
%patch34 -p0 -b .rh235008~
%patch35 -p0 -b .pr31748~
-%patch36 -p0 -b .tls-data-alignment~
+%patch36 -p0 -b .pr32353~
sed -i -e 's/4\.1\.3/4.1.2/' gcc/BASE-VER gcc/version.c
sed -i -e 's/" (Red Hat[^)]*)"/" (Red Hat %{version}-%{gcc_release})"/' gcc/version.c
@@ -1583,6 +1583,25 @@ fi
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
%changelog
+* Fri Jun 15 2007 Jakub Jelinek <jakub@redhat.com> 4.1.2-13
+- update from gcc-4_1-branch (-r124365:125727)
+ - PRs libfortran/31409, libfortran/31880, libfortran/31964,
+ rtl-optimization/31691, target/31022, target/31480, target/31701,
+ target/31876, target/32163, tree-optimization/26998
+- gomp updates from the trunk (-r125541:125542, -r125543:125544) and
+ from gcc-4_2-branch (-r125184:125185)
+ - PRs tree-optimization/31769, c++/32177
+- don't set TREE_READONLY on C++ objects that need runtime initialization
+ (PRs c++/31806, c++/31809)
+- fix computation of common pointer type (PR tree-optimization/32139)
+- precompute const and pure fn calls inside another fn call arguments
+ with accumulating outgoing args
+ (PRs middle-end/32285, tree-optimization/30493)
+- fix handling of RESULT_DECLs in points-to analysis
+ (#243438, PR tree-optimization/32353)
+- work around java.lang.reflect.Modifier.INTERPRETED clash with
+ java.lang.reflect.Modifier.SYNTHETIC (Andrew Haley, #240720)
+
* Thu May 3 2007 Jakub Jelinek <jakub@redhat.com> 4.1.2-12
- update from gcc-4_1-branch (-r124100:124365)
- PRs c++/30016, c++/30221, middle-end/30761, target/18989,
diff --git a/sources b/sources
index 63b52c2..fb1ad5f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-f592f2e4d5779b970a7050a864131e69 gcc-4.1.2-20070503.tar.bz2
+746cc04ccc1ff19913d6b81a072ea526 gcc-4.1.2-20070615.tar.bz2
reply other threads:[~2026-06-29 12:23 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178273579793.1.4981703828529845384.rpms-gcc-1c109062ac58@fedoraproject.org \
--to=jakub@fedoraproject.org \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox