public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gcc] rhel-f41-base: 4.1.1-45
@ 2026-06-29 12:23 Jakub Jelinek
0 siblings, 0 replies; only message in thread
From: Jakub Jelinek @ 2026-06-29 12:23 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/gcc
Branch : rhel-f41-base
Commit : 8b341f87025466bd97643e21dab7caa6f909d955
Author : Jakub Jelinek <jakub@fedoraproject.org>
Date : 2006-12-08T20:55:43+00:00
Stats : +473/-9 in 5 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/8b341f87025466bd97643e21dab7caa6f909d955?branch=rhel-f41-base
Log:
4.1.1-45
---
diff --git a/.cvsignore b/.cvsignore
index 0598ba5..634144d 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gcc-4.1.1-20061130.tar.bz2
+gcc-4.1.1-20061208.tar.bz2
diff --git a/gcc41-tests.patch b/gcc41-tests.patch
index d9b9791..63ef171 100644
--- a/gcc41-tests.patch
+++ b/gcc41-tests.patch
@@ -1,3 +1,13 @@
+2006-12-08 Jakub Jelinek <jakub@redhat.com>
+
+ * g++.dg/debug/vartrack1.C: New test.
+
+ * g++.dg/opt/ifcvt1.C: New test.
+
+2006-12-08 Alexandre Oliva <aoliva@redhat.com>
+
+ * g++.dg/template/array17.C: New test.
+
2006-05-05 Jakub Jelinek <jakub@redhat.com>
* gcc.dg/tls/opt-13.c: New test.
@@ -232,3 +242,151 @@
+ __builtin_strcpy (thr.b, "abcd");
+ return 0;
+}
+--- gcc/testsuite/g++.dg/debug/vartrack1.C 2004-06-24 14:04:38.000000000 -0400
++++ gcc/testsuite/g++.dg/debug/vartrack1.C 2006-12-08 05:29:41.000000000 -0500
+@@ -0,0 +1,99 @@
++// This testcase used to hang the compiler in vt_find_locations.
++// { dg-do compile }
++// { dg-options "-O2 -g" }
++
++struct S
++{
++ int a;
++ S *b, *c, *d;
++};
++
++struct T
++{
++ void f1 (S *x);
++ void f2 (S *x);
++ void f3 (S *x, S *y);
++ S *e;
++};
++
++void
++T::f3 (S *x, S *y)
++{
++ while (x != this->e && (!x || x->a == 1))
++ {
++ if (x == y->c)
++ {
++ S *w = y->d;
++ if (w && w->a == 0)
++ {
++ w->a = 1;
++ y->a = 0;
++ f2 (y);
++ w = y->d;
++ }
++ if (w && (!w->c || w->c->a == 1) && (!w->d || w->d->a == 1))
++ {
++ w->a = 0;
++ x = y;
++ y = x->b;
++ }
++ else
++ {
++ if (w && (!w->d || w->d->a == 1))
++ {
++ if (w->c)
++ w->c->a = 1;
++ w->a = 0;
++ f1 (w);
++ w = y->d;
++ }
++ if (w)
++ {
++ w->a = y->a;
++ if (w->d)
++ w->d->a = 1;
++ }
++ y->a = 1;
++ f2 (y);
++ x = e;
++ }
++ }
++ else
++ {
++ S *w = y->c;
++ if (w && w->a == 0)
++ {
++ w->a = 1;
++ y->a = 0;
++ f1 (y);
++ w = y->c;
++ }
++ if (w && (!w->c || w->c->a == 1) && (!w->d || w->d->a == 1))
++ {
++ w->a = 0;
++ x = y;
++ y = x->b;
++ }
++ else
++ {
++ if (w && (!w->c || w->c->a == 1))
++ {
++ w->a = 0;
++ if (w->d)
++ w->d->a = 1;
++ f2 (w);
++ w = y->c;
++ }
++ if (w)
++ {
++ w->a = y->a;
++ if (w->c)
++ w->c->a = 1;
++ }
++ y->a = 1;
++ f1 (y);
++ x = e;
++ }
++ }
++ }
++}
+--- gcc/testsuite/g++.dg/opt/ifcvt1.C 2006-10-04 16:28:56.502613000 +0200
++++ gcc/testsuite/g++.dg/opt/ifcvt1.C 2006-12-08 12:23:23.000000000 +0100
+@@ -0,0 +1,17 @@
++// { dg-do compile }
++// { dg-options "-O2 -fnon-call-exceptions" }
++
++struct S { ~S () throw () {} };
++double bar ();
++
++int
++foo ()
++{
++ S a;
++ int i = 0;
++ double c = bar ();
++ c = c < 0 ? -c : c;
++ if (c <= 1.e-8)
++ i += 24;
++ return i;
++}
+--- gcc/testsuite/g++.dg/template/array17.C 2006-10-04 16:28:56.502613000 +0200
++++ gcc/testsuite/g++.dg/template/array17.C 2006-12-08 12:38:27.000000000 +0100
+@@ -0,0 +1,23 @@
++// { dg-do compile }
++
++template <typename T>
++struct V {
++ T& operator[](int);
++};
++
++struct S {
++ S operator +(int);
++ template <typename T> T value();
++};
++
++template <typename T>
++void R (T v)
++{
++ v[(S() + 0).template value<int>()][0] = 0;
++}
++
++int
++main ()
++{
++ R(V<V<int> >());
++}
diff --git a/gcc41.spec b/gcc41.spec
index b5cb1ac..144f815 100644
--- a/gcc41.spec
+++ b/gcc41.spec
@@ -1,6 +1,6 @@
-%define DATE 20061130
+%define DATE 20061208
%define gcc_version 4.1.1
-%define gcc_release 44
+%define gcc_release 45
%define _unpackaged_files_terminate_build 0
%define multilib_64_archs sparc64 ppc64 s390x x86_64
%ifarch %{ix86} x86_64 ia64
@@ -30,6 +30,7 @@ Group: Development/Languages
Source0: gcc-%{version}-%{DATE}.tar.bz2
Source1: libgcc_post_upgrade.c
Source2: README.libgcjwebplugin.so
+Source3: protoize.1
URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
# Need binutils with -pie support >= 2.14.90.0.4-4
@@ -137,8 +138,8 @@ Patch29: gcc41-pr29703.patch
Patch30: gcc41-pr29299.patch
Patch31: gcc41-libjava-anonverscript.patch
Patch32: gcc41-ppc64-libffi-unwind.patch
-Patch33: gcc41-pr29965.patch
-Patch34: gcc41-pr29949.patch
+Patch33: gcc41-pr27761.patch
+Patch34: gcc41-pr30110.patch
%define _gnu %{nil}
%ifarch sparc
@@ -447,8 +448,8 @@ which are required to run programs compiled with the GNAT.
%patch30 -p0 -b .pr29299~
%patch31 -p0 -b .libjava-anonverscript~
%patch32 -p0 -b .ppc64-libffi-unwind~
-%patch33 -p0 -b .pr29965~
-%patch34 -p0 -b .pr29949~
+%patch33 -p0 -b .pr27761~
+%patch34 -p0 -b .pr30110~
sed -i -e 's/4\.1\.2/4.1.1/' gcc/BASE-VER gcc/version.c
sed -i -e 's/" (Red Hat[^)]*)"/" (Red Hat %{version}-%{gcc_release})"/' gcc/version.c
@@ -975,6 +976,10 @@ chmod 755 $RPM_BUILD_ROOT%{_prefix}/share/java/gcj-endorsed \
touch $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gcj-%{version}/classmap.db
%endif
+install -m644 %{SOURCE3} $RPM_BUILD_ROOT%{_mandir}/man1/protoize.1
+echo '.so man1/protoize.1' > $RPM_BUILD_ROOT%{_mandir}/man1/unprotoize.1
+chmod 644 $RPM_BUILD_ROOT%{_mandir}/man1/unprotoize.1
+
%clean
rm -rf $RPM_BUILD_ROOT
@@ -1099,6 +1104,8 @@ fi
%{_prefix}/bin/%{gcc_target_platform}-gcc
%{_mandir}/man1/gcc.1*
%{_mandir}/man1/gcov.1*
+%{_mandir}/man1/protoize.1*
+%{_mandir}/man1/unprotoize.1*
%{_infodir}/gcc*
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
@@ -1508,8 +1515,16 @@ fi
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
%changelog
+* Fri Dec 8 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-45
+- update from gcc-4_1-branch (-r119343:119654)
+ - PRs c++/14329, c++/28284, c++/29632, c++/29728, c++/29729, c++/29730,
+ c++/29733, c++/30022, libfortran/29810
+- add protoize.1 and unprotoize.1 man pages (#188914)
+- fix RTL sharing problem in combine (#218603, PR rtl-optimization/27761)
+- additions to libgcj-src (Ben Konrath, PR libgcj/30110)
+
* Fri Dec 1 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-44
-- fix OpenMP loops with 0 iterations (PR libgomp/29949)
+- fix OpenMP loops with 0 iterations (PR libgomp/29947)
* Thu Nov 30 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-43
- update from gcc-4_1-branch (-r119167:119343)
diff --git a/protoize.1 b/protoize.1
new file mode 100644
index 0000000..5dde73d
--- /dev/null
+++ b/protoize.1
@@ -0,0 +1,291 @@
+.\" Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation
+.\" See section COPYING for conditions for redistribution
+.\"
+.TH protoize 1 "8 December 2006" "GCC" "GNU"
+.SH NAME
+protoize, unprotoize \- automatically add or remove function prototypes
+.SH SYNOPSIS
+.HP 7
+\fBprotoize\fR [\-CfgklNnqv] [\-B \fIDIRECTORY\fR] [\-c \fICOMPILATION-OPTIONS\fR] [\-d \fIDIRECTORY\fR] [\-i \fISTRING\fR] [\-p \fIPROGRAM\fR] [\-x \fIFILE\fR] [\fIFILE\fR...]
+.HP 7
+\fBunprotoize\fR [\-fkNnqv] [\-c \fICOMPILATION-OPTIONS\fR] [\-d \fIDIRECTORY\fR] [\-i \fISTRING\fR] [\-p \fIPROGRAM\fR] [\-x \fIFILE\fR] [\fIFILE\fR...]
+.SH DESCRIPTION
+.PP
+\fBprotoize\fR is an optional part of GCC.
+You can use it to add prototypes to a program,
+thus converting the program to ANSI C in one respect.
+The companion program
+\fBunprotoize\fR does the reverse: it removes argument types from any prototypes that are found.
+.PP
+When you run these programs, you must specify a set of source files
+as command line arguments.
+The conversion programs start out by compiling these files
+to see what functions they define.
+The information gathered about a file
+\fIFOO\fR is saved in a file named \fIFOO.X\fR.
+.PP
+After scanning comes the actual conversion.
+The specified files are all eligible to be converted;
+any files they include (whether sources or just headers) are eligible as well.
+.PP
+But not all the eligible files are converted.
+By default,
+\fBprotoize\fR and \fBunprotoize\fR
+convert only source and header files in the current directory.
+You can specify additional directories whose files
+should be converted with the
+\fB\-d\fR \fIDIRECTORY\fR option.
+You can also specify particular files to exclude with the
+\fB\-x\fR \fIFILE\fR option.
+A file is converted if it is eligible, its directory name matches one of the
+specified directory names, and its name within the directory has not
+been excluded.
+.PP
+Basic conversion with
+\fBprotoize\fR consists of rewriting most function definitions and function declarations
+to specify the types of the arguments.
+The only ones not rewritten are those for varargs functions.
+.PP
+\fBprotoize\fR optionally inserts prototype declarations at the beginning of the source file,
+to make them available for any calls that precede the function's definition.
+Or it can insert prototype declarations with block scope
+in the blocks where undeclared functions are called.
+.PP
+Basic conversion with
+\fBunprotoize\fR
+consists of rewriting most function declarations to remove any argument types,
+and rewriting function definitions to the old-style pre-ANSI form.
+.PP
+Both conversion programs print a warning for any function
+declaration or definition that they can't convert.
+You can suppress these warnings with the
+\fB\-q\fR option.
+.PP
+The output from
+\fBprotoize\fR or \fBunprotoize\fR
+replaces the original source file.
+The original file is renamed to a name ending with
+\fI.save\fR.
+If the \fI.save\fR file already exists, then the source file is simply discarded.
+.PP
+\fBprotoize\fR and \fBunprotoize\fR both depend on
+\fBgcc\fR\|(1) to scan the program and collect information about the functions it uses.
+.PP
+The options are as follows:
+.TP
+\fB\-B\fR \fIDIRECTORY\fR
+Look for the file
+\fISYSCALLS.c.X\fR in \fIdirectory\fR,
+instead of the usual directory (normally \fI/usr/local/lib\fR).
+This file contains prototype information about standard system functions.
+This option applies only to \fBprotoize\fR.
+.TP
+\fB\-C\fR
+Rename files to end in
+\fI.C\fR instead of \fI.c\fR.
+This is convenient if you are converting a C program to C++.
+This option applies only to
+\fBprotoize\fR.
+.TP
+\fB\-c\fR \fICOMPILATION-OPTIONS\fR
+Use \fICOMPILATION-OPTIONS\fR as the options when running \fBgcc\fR\|(1) to produce the
+\fI.X\fR files.
+The special option \fB\-aux-info\fR is always passed in addition, to tell gcc to write a
+\fI.X\fR file.
+Note that the compilation options must be given as a single argument to
+\fBprotoize\fR or \fBunprotoize\fR.
+If you want to specify several gcc options, you must quote the entire set of
+compilation options to make them a single word in the shell.
+There are certain gcc arguments that you cannot use, because they
+would produce the wrong kind of output.
+These include
+\fB\-g\fR, \fB\-O\fR, \fB\-c\fR, \fB\-S\fR,\fB\-o\fR.
+If you include these in the \fICOMPILATION-OPTIONS\fR, they are ignored.
+.TP
+\fB\-d\fR \fIDIRECTORY\fR
+Specify additional directories whose files should be converted.
+.TP
+\fB\-g\fR
+Add explicit global declarations.
+This means inserting explicit declarations at the beginning of each
+source file for each function that is called in the file and was not declared.
+These declarations precede the first function definition that contains a
+call to an undeclared function.
+This option applies only to
+.\fBprotoize\fR.
+.TP
+\fB\-i\fR \fISTRING\fR
+Indent old-style parameter declarations with the string
+\fISTRING\fR.
+This option applies only to
+\fBprotoize\fR.
+\fBunprotoize\fR converts prototyped function definitions to old-style
+function definitions, where the arguments are declared between the
+argument list and the initial
+\fB{\fR.
+By default,
+\fBunprotoize\fR uses five spaces as the indentation.
+If you want to indent with just one space instead, use
+\fB\-i " "\fR.
+.TP
+\fB\-k\fR
+Keep the
+\fI.X\fR files.
+Normally, they are deleted after conversion is finished.
+.TP
+\fB\-l\fR
+Add explicit local declarations.
+\fBprotoize\fR with
+\fB\-l\fR inserts a prototype declaration for each function in each block which calls
+the function without any declaration.
+This option applies only to
+\fBprotoize\fR.
+.TP
+\fB\-N\fR
+Make no \fI.save\fR files.
+The original files are simply deleted.
+Use this option with caution.
+.TP
+\fB\-n\fR
+Make no real changes.
+This mode just prints information about the conversions
+that would have been done without
+\fB\-n\fR.
+.TP
+\fB\-p\fR \fIPROGRAM\fR
+Use the program
+\fBPROGRAM\fR as the compiler.
+Normally, the name
+\fBgcc\fR is used.
+.TP
+\fB\-q\fR
+Work quietly.
+Most warnings are suppressed.
+.TP
+\fB\-v\fR
+Print the version number, just like
+\fB\-v\fR for gcc.
+.TP
+\fB\-x\fR \fBFILE\fR
+List of files to exclude from the conversion process.
+.PP
+If you need special compiler options to compile one of your program's
+source files, then you should generate that file's
+\fI.X\fR file specially, by running gcc on that source file with
+the appropriate options and the option
+\fB\-aux-info\fR.
+Then run
+\fBprotoize\fR on the entire set of files.
+\fBprotoize\fR will use the existing
+\fI.X\fR file because it is newer than the source file.
+For example:
+.PP
+.DL $ gcc -Dfoo=bar file1.c -aux-info
+.DL $ protoize *.c
+.PP
+You need to include the special files along with the rest in the
+\fBprotoize\fR command, even though their
+\fI.X\fR files already exist, because otherwise they won't get converted.
+.PP
+.SH SEE ALSO
+\fBgcc\fR\|(1), and the Info entry for \fBgcc\fR, particularly
+\fBRunning protoize\fR section.
+.SH HISTORY
+Ron Guilmette implemented the
+\fBprotoize\fR and \fBunprotoize\fR tools.
+.SH AUTHORS
+See the GCC manual for the contributors to GCC.
+.SH CAVEATS
+The conversion programs \fBprotoize\fR and \fBunprotoize\fR
+can sometimes change a source file in a way that won't work
+unless you rearrange it.
+.PP
+\fBprotoize\fR can insert references to a type name or type tag before
+the definition, or in a file where they are not defined.
+.PP
+If this happens, compiler error messages should indicate where the
+new references are, so fixing the file by hand is straightforward.
+.PP
+There are some C constructs which \fBprotoize\fR
+cannot figure out.
+For example, it can't determine argument types for declaring a
+pointer-to-function variable; this must be done by hand. \fBprotoize\fR
+inserts a comment containing \fB???\fR each time it finds such a variable;
+all such variables can be found by searching for this string.
+ANSI C does not require declaring the argument types of
+pointer-to-function types.
+.PP
+Using \fBunprotoize\fR can easily introduce bugs.
+If the program relied on prototypes to bring about conversion of arguments,
+these conversions will not take place in the program without prototypes.
+One case in which you can be sure \fBunprotoize\fR
+is safe is when you are removing prototypes that were made with
+\fBprotoize\fR; if the program worked before without any prototypes,
+it will work again without them.
+.PP
+You can find all the places where this problem might occur by
+compiling the program with the \fB\-Wconversion\fR option.
+It prints a warning whenever an argument is converted.
+.PP
+Both conversion programs can be confused if there are macro calls
+in and around the text to be converted.
+In other words, the standard syntax for a declaration or definition
+must not result from expanding a macro.
+This problem is inherent in the design of C and cannot be fixed.
+If only a few functions have confusing macro calls,
+you can easily convert them manually.
+.PP
+\fBprotoize\fR cannot get the argument types for a function whose definition was not
+actually compiled due to preprocessing conditionals.
+When this happens, \fBprotoize\fR changes nothing in regard to such a function.
+\fBprotoize\fR tries to detect such instances and warn about them.
+.PP
+You can generally work around this problem by using
+\fBprotoize\fR step by step, each time specifying a different set of
+\fB\-D\fR options for compilation, until all of the functions have been converted.
+There is no automatic way to verify that you have got them all, however.
+.PP
+Confusion may result if there is an occasion to convert a function
+declaration or definition in a region of source code where there
+is more than one formal parameter list present.
+Thus, attempts to convert code containing multiple (conditionally compiled)
+versions of a single function header (in the same vicinity)
+may not produce the desired (or expected) results.
+.PP
+If you plan on converting source files which contain such code,
+it is recommended that you first make sure that each conditionally
+compiled region of source code which contains an alternative
+function header also contains at least one additional follower
+token (past the final right parenthesis of the function header).
+This should circumvent the problem.
+.PP
+\fBunprotoize\fR can become confused when trying to convert a function
+definition or declaration which contains a declaration for a
+pointer-to-function formal argument which has the same name as the
+function being defined or declared.
+We recommand you avoid such choices of formal parameter names.
+.PP
+It might be necessary to correct some of the indentation by hand and
+break long lines.
+(The conversion programs don't write lines longer than eighty characters
+in any case.)
+.SH BUGS
+For instructions on reporting bugs, see the GCC manual.
+.SH COPYING
+Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+.PP
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+.PP
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+.PP
+Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be included in
+translations approved by the Free Software Foundation instead of in
+the original English.
diff --git a/sources b/sources
index e413f4c..b824181 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-bc0aa7ff1ee0389f30c97e7e973814a3 gcc-4.1.1-20061130.tar.bz2
+4411e28a7590ccc573632710250f934b gcc-4.1.1-20061208.tar.bz2
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-29 12:23 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-29 12:23 [rpms/gcc] rhel-f41-base: 4.1.1-45 Jakub Jelinek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox