Compare commits

...

100 Commits
master ... f12

Author SHA1 Message Date
Jakub Jelinek 9ca1933280 4.4.5-1 2010-10-01 23:30:01 +02:00
Dennis Gilmore 4a0a245bb9 Merge branch 'f13' into f12
Conflicts:
	gcc.spec
2010-08-31 09:28:25 -05:00
Dennis Gilmore 5d98d7edaf enable cloog support on sparc arches 2010-08-31 09:22:22 -05:00
Fedora Release Engineering 2ca6bf56d1 dist-git conversion 2010-07-28 15:07:49 +00:00
Fedora Release Engineering 0ed39024de dist-git conversion 2010-07-28 15:07:01 +00:00
Jakub Jelinek 4d7c159642 4.4.4-13 2010-07-26 09:22:23 +00:00
Jakub Jelinek 2c634c7f87 4.4.4-13 2010-07-26 09:09:00 +00:00
Jakub Jelinek 5112141b99 4.4.4-12 2010-07-13 21:33:34 +00:00
Jakub Jelinek 394291872b 4.4.4-12 2010-07-13 21:25:10 +00:00
Jakub Jelinek 5f74d245e0 4.4.4-11 2010-07-07 10:18:09 +00:00
Jakub Jelinek 5c23d59ebd 4.4.4-11 2010-07-07 09:16:31 +00:00
Jakub Jelinek 3828d4db97 4.4.4-10 2010-06-30 07:26:40 +00:00
Jakub Jelinek 3d07cd896d 4.4.4-10 2010-06-30 06:49:32 +00:00
Jakub Jelinek e308cb012d 4.4.4-9 2010-06-24 20:17:17 +00:00
Jakub Jelinek 5a7d9dc0a8 4.4.4-9 2010-06-24 20:01:10 +00:00
Jakub Jelinek 462a694956 4.4.4-8 2010-06-11 08:19:52 +00:00
Jakub Jelinek 1ed00a9db1 4.4.4-8 2010-06-11 07:44:13 +00:00
Jakub Jelinek fb5c1a0707 4.4.4-8 2010-06-11 07:30:15 +00:00
Jakub Jelinek 3442905dd8 4.4.4-7 2010-06-08 09:59:56 +00:00
Jakub Jelinek ac65565092 4.4.4-7 2010-06-08 09:46:26 +00:00
Jakub Jelinek 76b93c38a2 4.4.4-5 2010-05-25 22:54:27 +00:00
Jakub Jelinek 5add3166c1 4.4.4-5 2010-05-25 22:47:11 +00:00
Jakub Jelinek b3ac221024 4.4.4-5 2010-05-25 22:41:35 +00:00
Jakub Jelinek a18c3ea684 4.4.4-4 2010-05-18 21:15:57 +00:00
Jakub Jelinek 0a09948fd8 4.4.4-4 2010-05-18 21:01:41 +00:00
Jakub Jelinek 7eb4bda32b 4.4.4-3 2010-05-14 21:50:25 +00:00
Jakub Jelinek e245903552 4.4.4-3 2010-05-14 21:38:43 +00:00
Jakub Jelinek abdbcec5b0 4.4.4-2 2010-05-03 20:25:54 +00:00
Jakub Jelinek 1778cecda7 4.4.4-2 2010-05-03 20:04:30 +00:00
Jakub Jelinek 4a75f3b630 4.4.4-1 2010-04-30 20:06:37 +00:00
Jakub Jelinek 0e6e2a5876 4.4.4-1 2010-04-30 20:02:34 +00:00
Jakub Jelinek 2e32ee0420 4.4.3-19 2010-04-27 19:29:04 +00:00
Jakub Jelinek 4e8d565857 4.4.3-19 2010-04-27 19:10:59 +00:00
Jakub Jelinek 8e94c30a0c 4.4.3-18 2010-04-22 09:24:33 +00:00
Jakub Jelinek 14a1983937 4.4.3-18 2010-04-22 08:40:12 +00:00
Dennis Gilmore dccd321b61 - rebase and reapply patch for
- use gas .section syntax (#530847)
2010-04-15 02:25:42 +00:00
Jakub Jelinek d3daf567b2 4.4.3-16 2010-04-09 09:08:10 +00:00
Jakub Jelinek e80bd9bf12 4.4.3-16 2010-04-09 09:00:11 +00:00
Jakub Jelinek afd8af0fcb 4.4.3-15 2010-04-07 14:24:16 +00:00
Jakub Jelinek c7ea8b534d 4.4.3-15 2010-04-07 14:24:11 +00:00
Jakub Jelinek 3ac313c7c8 4.4.3-15 2010-04-07 13:10:57 +00:00
Jakub Jelinek bbbaf574f9 4.4.3-15 2010-04-07 13:07:05 +00:00
Jakub Jelinek 04b13b88d4 4.4.3-14 2010-04-01 15:05:15 +00:00
Jakub Jelinek f75f6392c2 4.4.3-14 2010-04-01 14:21:14 +00:00
Jakub Jelinek 5f4cc7d370 4.4.3-13 2010-03-27 14:50:40 +00:00
Jakub Jelinek 9213fff7ab 4.4.3-13 2010-03-27 14:48:08 +00:00
Jakub Jelinek 60625efada 4.4.3-12 2010-03-25 15:34:19 +00:00
Jakub Jelinek eb581ae38f 4.4.3-12 2010-03-25 15:30:04 +00:00
Jakub Jelinek 6df01761ec 4.4.3-11 2010-03-22 16:01:05 +00:00
Jakub Jelinek f461b6ed33 .4.4.3-11 2010-03-22 15:57:19 +00:00
Jakub Jelinek f6f9558cad 4.4.3-10 2010-03-16 16:10:16 +00:00
Jakub Jelinek 32a41c84e7 4.4.3-10 2010-03-16 15:53:08 +00:00
Jakub Jelinek 1ba2e86ef4 4.4.3-9 2010-03-09 20:54:14 +00:00
Jakub Jelinek 659ba089a7 4.4.3-9 2010-03-09 20:50:00 +00:00
Jakub Jelinek 44c3be6bae 4.4.3-8 2010-02-27 00:21:56 +00:00
Jakub Jelinek bff82482b3 4.4.3-8 2010-02-26 19:43:16 +00:00
Jakub Jelinek f3a89dbfed 4.4.3-7 2010-02-21 23:03:20 +00:00
Jakub Jelinek 1f4db6694b 4.4.3-7 2010-02-21 23:00:55 +00:00
Jesse Keating 420e395efa Initialize branch F-13 for gcc 2010-02-17 01:23:17 +00:00
Jakub Jelinek 379e7f0211 4.4.3-6 2010-02-11 21:41:22 +00:00
Jakub Jelinek 3ac8816a69 4.4.3-5 2010-02-08 20:08:18 +00:00
Jakub Jelinek 3f5a5b7946 4.4.3-4 2010-01-27 18:24:44 +00:00
Jakub Jelinek 2b90ba6797 4.4.3-3 2010-01-25 22:31:28 +00:00
Jakub Jelinek 85d822a98d 4.4.3-1 2010-01-21 17:17:27 +00:00
Jakub Jelinek 09bfdb61b5 4.4.2-28 2010-01-21 09:04:35 +00:00
Jakub Jelinek 6f77c54b8f 4.4.2-26 2010-01-14 23:14:10 +00:00
Jakub Jelinek 62dea55b3e gcc-4.4.2-25 2010-01-14 16:39:18 +00:00
Jakub Jelinek 4d70a242e3 4.4.2-24 2010-01-12 19:34:20 +00:00
Jakub Jelinek ddf3933cbe 4.4.2-23 2010-01-09 22:06:06 +00:00
Jakub Jelinek 2d0a12b85e 4.4.2-20 2009-12-22 12:11:53 +00:00
Jakub Jelinek 887d4e11f5 4.4.2-20 2009-12-22 11:57:46 +00:00
Jakub Jelinek e249787ad8 4.4.2-18 2009-12-17 20:07:54 +00:00
Jakub Jelinek d6e42845fd 4.4.2-17 2009-12-14 20:54:26 +00:00
Jakub Jelinek b0b29e5052 4.4.2-16 2009-12-11 20:43:03 +00:00
Jakub Jelinek fe7123be2e 4.4.2-15 2009-12-09 13:02:17 +00:00
Jakub Jelinek c74497bde9 4.4.2-14 2009-12-04 11:13:08 +00:00
Jakub Jelinek f1605bb0ee 4.4.2-13 2009-12-02 22:55:26 +00:00
Jakub Jelinek d99f739735 4.4.2-12 2009-12-02 14:58:27 +00:00
Jakub Jelinek a354ca51f2 4.4.2-12 2009-12-02 10:21:45 +00:00
Bill Nottingham ec957e5dc4 Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:53:28 +00:00
Jakub Jelinek 9c8124b23d 4.4.2-11 2009-11-23 17:44:31 +00:00
Jakub Jelinek 5bcda03961 4.4.2-10 2009-11-14 16:04:02 +00:00
Jakub Jelinek 9902b7cd9a 4.4.2-9 2009-11-09 14:13:19 +00:00
Jakub Jelinek 0d152de22b 4.4.2-9 2009-11-09 13:41:05 +00:00
Jakub Jelinek 76ec317715 4.4.2-8 2009-11-02 15:58:47 +00:00
Jakub Jelinek 400e8045f3 4.4.2-7 2009-10-27 19:41:34 +00:00
Jakub Jelinek 8b855723f4 4.4.2-7 2009-10-27 18:02:14 +00:00
Jakub Jelinek 9cd3a61fb2 4.4.2-6 2009-10-22 13:18:28 +00:00
Jakub Jelinek 51454468e8 4.4.2-5 2009-10-19 22:22:08 +00:00
Jakub Jelinek a50cd738d0 4.4.2-4 2009-10-18 19:46:30 +00:00
Jakub Jelinek addd43e70a 4.4.2-3 2009-10-17 22:09:38 +00:00
Jakub Jelinek a3030b561e 4.4.2-2 2009-10-16 16:56:36 +00:00
Jakub Jelinek e31e9a02d7 4.4.2-1 2009-10-15 18:53:25 +00:00
Jakub Jelinek a1aa91bff1 4.4.1-22 2009-10-14 17:21:47 +00:00
Jakub Jelinek f3f054a694 4.4.1-21 2009-10-10 17:32:39 +00:00
Jakub Jelinek 8e816cd8e4 4.4.1-21 2009-10-10 17:19:46 +00:00
Jakub Jelinek 22fa975b2a 4.4.1-20 2009-10-08 08:41:15 +00:00
Jakub Jelinek fd4bc79df7 4.4.1-19.fc12 2009-10-05 20:24:57 +00:00
Jakub Jelinek 223805d0a0 4.4.1-18 2009-10-01 08:19:33 +00:00
Jesse Keating 2defd1bd2a Initialize branch F-12 for gcc 2009-09-29 04:54:03 +00:00
16 changed files with 1021 additions and 382 deletions

View File

@ -1,2 +0,0 @@
fastjar-0.97.tar.gz
gcc-4.4.3-20100211.tar.bz2

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
fastjar-0.97.tar.gz
gcc-4.4.5-20101001.tar.bz2

View File

@ -1,21 +0,0 @@
# Makefile for source rpm: gcc
# $Id: Makefile,v 1.2 2007/10/15 18:46:35 notting Exp $
NAME := gcc
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attempt a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

View File

@ -0,0 +1,14 @@
2010-03-01 Richard Guenther <rguenther@suse.de>
* jartool.c (read_entries): Properly zero-terminate filename.
--- fastjar-0.97/jartool.c 6 Sep 2009 22:16:00 -0000 1.59
+++ fastjar-0.97/jartool.c 1 Mar 2010 15:38:43 -0000 1.60
@@ -790,6 +790,7 @@ int read_entries (int fd)
progname, jarfile);
return 1;
}
+ ze->filename[len] = '\0';
len = UNPACK_UB4(header, CEN_EFLEN);
len += UNPACK_UB4(header, CEN_COMLEN);
if (lseek (fd, len, SEEK_CUR) == -1)

102
fastjar-CVE-2010-0831.patch Normal file
View File

@ -0,0 +1,102 @@
2010-06-10 Jakub Jelinek <jakub@redhat.com>
Dan Rosenberg <dan.j.rosenberg@gmail.com>
* jartool.c (extract_jar): Fix up checks for traversal to parent
directories, disallow absolute paths, make the code slightly more
efficient.
--- fastjar-0.97/jartool.c.jj 2009-09-07 00:10:47.000000000 +0200
+++ fastjar-0.97/jartool.c 2010-06-08 20:00:29.000000000 +0200
@@ -1730,7 +1730,17 @@ int extract_jar(int fd, const char **fil
struct stat sbuf;
int depth = 0;
- tmp_buff = malloc(sizeof(char) * strlen((const char *)filename));
+ if(*filename == '/'){
+ fprintf(stderr, "Absolute path names are not allowed.\n");
+ exit(EXIT_FAILURE);
+ }
+
+ tmp_buff = malloc(strlen((const char *)filename));
+
+ if(tmp_buff == NULL) {
+ fprintf(stderr, "Out of memory.\n");
+ exit(EXIT_FAILURE);
+ }
for(;;){
const ub1 *idx = (const unsigned char *)strchr((const char *)start, '/');
@@ -1738,25 +1748,28 @@ int extract_jar(int fd, const char **fil
if(idx == NULL)
break;
else if(idx == start){
+ tmp_buff[idx - filename] = '/';
start++;
continue;
}
- start = idx + 1;
- strncpy(tmp_buff, (const char *)filename, (idx - filename));
- tmp_buff[(idx - filename)] = '\0';
+ memcpy(tmp_buff + (start - filename), (const char *)start, (idx - start));
+ tmp_buff[idx - filename] = '\0';
#ifdef DEBUG
printf("checking the existance of %s\n", tmp_buff);
#endif
- if(strcmp(tmp_buff, "..") == 0){
+ if(idx - start == 2 && memcmp(start, "..", 2) == 0){
--depth;
if (depth < 0){
fprintf(stderr, "Traversal to parent directories during unpacking!\n");
exit(EXIT_FAILURE);
}
- } else if (strcmp(tmp_buff, ".") != 0)
+ } else if (idx - start != 1 || *start != '.')
++depth;
+
+ start = idx + 1;
+
if(stat(tmp_buff, &sbuf) < 0){
if(errno != ENOENT)
exit_on_error("stat");
@@ -1765,6 +1778,7 @@ int extract_jar(int fd, const char **fil
#ifdef DEBUG
printf("Directory exists\n");
#endif
+ tmp_buff[idx - filename] = '/';
continue;
}else {
fprintf(stderr, "Hmmm.. %s exists but isn't a directory!\n",
@@ -1781,10 +1795,11 @@ int extract_jar(int fd, const char **fil
if(verbose && handle)
printf("%10s: %s/\n", "created", tmp_buff);
+ tmp_buff[idx - filename] = '/';
}
/* only a directory */
- if(strlen((const char *)start) == 0)
+ if(*start == '\0')
dir = TRUE;
#ifdef DEBUG
@@ -1792,7 +1807,7 @@ int extract_jar(int fd, const char **fil
#endif
/* If the entry was just a directory, don't write to file, etc */
- if(strlen((const char *)start) == 0)
+ if(*start == '\0')
f_fd = -1;
free(tmp_buff);
@@ -1876,7 +1891,8 @@ int extract_jar(int fd, const char **fil
exit(EXIT_FAILURE);
}
- close(f_fd);
+ if (f_fd != -1)
+ close(f_fd);
if(verbose && dir == FALSE && handle)
printf("%10s: %s\n",

27
fastjar-man.patch Normal file
View File

@ -0,0 +1,27 @@
2010-03-24 Jan Kratochvil <jan.kratochvil@redhat.com>
* Makefile.am (POD2MAN): Provide --date from ChangeLog.
* Makefile.in: Regenerate.
--- fastjar-0.97/Makefile.am.jj 2008-10-16 04:24:55.000000000 -0400
+++ fastjar-0.97/Makefile.am 2010-06-21 09:29:41.021398000 -0400
@@ -39,7 +39,7 @@ EXTRA_DIST = \
texi2pod.pl
TEXI2POD = perl $(srcdir)/texi2pod.pl
-POD2MAN = pod2man --center="GNU" --release=@VERSION@
+POD2MAN = pod2man --center="GNU" --release=@VERSION@ --date=$(shell sed -n '1s/ .*//p' <$(srcdir)/ChangeLog)
.pod.1:
-($(POD2MAN) --section=1 $< > $(@).T$$$$ && \
--- fastjar-0.97/Makefile.in.jj 2008-10-16 04:15:16.000000000 -0400
+++ fastjar-0.97/Makefile.in 2010-06-21 09:30:15.882810000 -0400
@@ -515,7 +515,7 @@ EXTRA_DIST = \
texi2pod.pl
TEXI2POD = perl $(srcdir)/texi2pod.pl
-POD2MAN = pod2man --center="GNU" --release=@VERSION@
+POD2MAN = pod2man --center="GNU" --release=@VERSION@ --date=$(shell sed -n '1s/ .*//p' <$(srcdir)/ChangeLog)
#SPLINT_FLAGS=-I . -I $(srcdir)/lib -I $(srcdir) -DHAVE_CONFIG_H +posixlib +weak
SPLINT_FLAGS = -I . -I $(srcdir)/lib -I $(srcdir) -DHAVE_CONFIG_H -DPRIx32= -warnposix +weak

710
gcc.spec

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +0,0 @@
2008-01-25 Jakub Jelinek <jakub@redhat.com>
* lang.c (java_classify_record): Revert 2007-12-20 change.
--- gcc/java/lang.c 2007-12-27 09:09:49.000000000 +0100
+++ gcc/java/lang.c 2008-01-25 17:43:57.000000000 +0100
@@ -965,9 +965,7 @@ java_classify_record (tree type)
if (! CLASS_P (type))
return RECORD_IS_STRUCT;
- /* ??? GDB does not support DW_TAG_interface_type as of December,
- 2007. Re-enable this at a later time. */
- if (0 && CLASS_INTERFACE (TYPE_NAME (type)))
+ if (CLASS_INTERFACE (TYPE_NAME (type)))
return RECORD_IS_INTERFACE;
return RECORD_IS_CLASS;

View File

@ -1,229 +0,0 @@
2010-01-05 Alexandre Oliva <aoliva@redhat.com>
* params.def (PARAM_MAX_VARTRACK_SIZE): New.
* doc/invoke.texi: Document it.
* var-tracking.c: Include toplev.h and params.h.
(vt_find_locations): Return bool indicating success. Compute
hash sizes unconditionally. Check new parameter, report.
(variable_tracking_main_1): Check vt_find_locations results and
retry. Renamed from...
(variable_tracking_main): ... this. New wrapper to preserve
flag_var_tracking_assignments.
* Makefile.in (var-tracking.o): Adjust dependencies.
--- gcc/doc/invoke.texi.jj 2010-01-09 20:39:58.000000000 +0100
+++ gcc/doc/invoke.texi 2010-01-21 10:00:15.979730377 +0100
@@ -7937,6 +7937,15 @@ with more basic blocks than this paramet
motion optimization performed on them. The default value of the
parameter is 1000 for -O1 and 10000 for -O2 and above.
+@item max-vartrack-size
+Sets a maximum number of hash table slots to use during variable
+tracking dataflow analysis of any function. If this limit is exceeded
+with variable tracking at assignments enabled, analysis for that
+function is retried without it, after removing all debug insns from
+the function. If the limit is exceeded even without debug insns, var
+tracking analysis is completely disabled for the function. Setting
+the parameter to zero makes it unlimited.
+
@item min-nondebug-insn-uid
Use uids starting at this parameter for nondebug insns. The range below
the parameter is reserved exclusively for debug insns created by
--- gcc/params.def.jj 2010-01-09 20:39:58.000000000 +0100
+++ gcc/params.def 2010-01-21 10:00:15.980730943 +0100
@@ -771,6 +771,13 @@ DEFPARAM (PARAM_LOOP_INVARIANT_MAX_BBS_I
"max basic blocks number in loop for loop invariant motion",
10000, 0, 0)
+/* Set maximum hash table size for var tracking. */
+
+DEFPARAM (PARAM_MAX_VARTRACK_SIZE,
+ "max-vartrack-size",
+ "Max. size of var tracking hash tables",
+ 50000000, 0, 0)
+
/* Set minimum insn uid for non-debug insns. */
DEFPARAM (PARAM_MIN_NONDEBUG_INSN_UID,
--- gcc/var-tracking.c.jj 2010-01-21 09:10:37.000000000 +0100
+++ gcc/var-tracking.c 2010-01-21 10:00:15.983740989 +0100
@@ -109,6 +109,8 @@
#include "tree-flow.h"
#include "cselib.h"
#include "target.h"
+#include "toplev.h"
+#include "params.h"
/* var-tracking.c assumes that tree code with the same value as VALUE rtx code
has no chance to appear in REG_EXPR/MEM_EXPRs and isn't a decl.
@@ -451,7 +453,7 @@ static int add_uses (rtx *, void *);
static void add_uses_1 (rtx *, void *);
static void add_stores (rtx, const_rtx, void *);
static bool compute_bb_dataflow (basic_block);
-static void vt_find_locations (void);
+static bool vt_find_locations (void);
static void dump_attrs_list (attrs);
static int dump_var_slot (void **, void *);
@@ -5511,7 +5513,7 @@ compute_bb_dataflow (basic_block bb)
/* Find the locations of variables in the whole function. */
-static void
+static bool
vt_find_locations (void)
{
fibheap_t worklist, pending, fibheap_swap;
@@ -5522,6 +5524,8 @@ vt_find_locations (void)
int *rc_order;
int i;
int htabsz = 0;
+ int htabmax = PARAM_VALUE (PARAM_MAX_VARTRACK_SIZE);
+ bool success = true;
/* Compute reverse completion order of depth first search of the CFG
so that the data-flow runs faster. */
@@ -5543,7 +5547,7 @@ vt_find_locations (void)
fibheap_insert (pending, bb_order[bb->index], bb);
sbitmap_ones (in_pending);
- while (!fibheap_empty (pending))
+ while (success && !fibheap_empty (pending))
{
fibheap_swap = pending;
pending = worklist;
@@ -5566,11 +5570,11 @@ vt_find_locations (void)
SET_BIT (visited, bb->index);
- if (dump_file && VTI (bb)->in.vars)
+ if (VTI (bb)->in.vars)
{
htabsz
- -= htab_size (shared_hash_htab (VTI (bb)->in.vars))
- + htab_size (shared_hash_htab (VTI (bb)->out.vars));
+ -= (htab_size (shared_hash_htab (VTI (bb)->in.vars))
+ + htab_size (shared_hash_htab (VTI (bb)->out.vars)));
oldinsz
= htab_elements (shared_hash_htab (VTI (bb)->in.vars));
oldoutsz
@@ -5634,9 +5638,20 @@ vt_find_locations (void)
}
changed = compute_bb_dataflow (bb);
- if (dump_file)
- htabsz += htab_size (shared_hash_htab (VTI (bb)->in.vars))
- + htab_size (shared_hash_htab (VTI (bb)->out.vars));
+ htabsz += (htab_size (shared_hash_htab (VTI (bb)->in.vars))
+ + htab_size (shared_hash_htab (VTI (bb)->out.vars)));
+
+ if (htabmax && htabsz > htabmax)
+ {
+ if (MAY_HAVE_DEBUG_INSNS)
+ inform (DECL_SOURCE_LOCATION (cfun->decl),
+ "variable tracking size limit exceeded with debug insns, retrying without");
+ else
+ inform (DECL_SOURCE_LOCATION (cfun->decl),
+ "variable tracking size limit exceeded");
+ success = false;
+ break;
+ }
if (changed)
{
@@ -5687,7 +5702,7 @@ vt_find_locations (void)
}
}
- if (MAY_HAVE_DEBUG_INSNS)
+ if (success && MAY_HAVE_DEBUG_INSNS)
FOR_EACH_BB (bb)
gcc_assert (VTI (bb)->flooded);
@@ -5698,6 +5713,8 @@ vt_find_locations (void)
sbitmap_free (visited);
sbitmap_free (in_worklist);
sbitmap_free (in_pending);
+
+ return success;
}
/* Print the content of the LIST to dump file. */
@@ -7600,9 +7617,11 @@ vt_finalize (void)
/* The entry point to variable tracking pass. */
-unsigned int
-variable_tracking_main (void)
+static inline unsigned int
+variable_tracking_main_1 (void)
{
+ bool success;
+
if (flag_var_tracking_assignments < 0)
{
delete_debug_insns ();
@@ -7627,7 +7646,31 @@ variable_tracking_main (void)
}
}
- vt_find_locations ();
+ success = vt_find_locations ();
+
+ if (!success && flag_var_tracking_assignments > 0)
+ {
+ vt_finalize ();
+
+ delete_debug_insns ();
+
+ /* This is later restored by our caller. */
+ flag_var_tracking_assignments = 0;
+
+ vt_initialize ();
+
+ if (!frame_pointer_needed && !vt_stack_adjustments ())
+ gcc_unreachable ();
+
+ success = vt_find_locations ();
+ }
+
+ if (!success)
+ {
+ vt_finalize ();
+ vt_debug_insns_local (false);
+ return 0;
+ }
if (dump_file && (dump_flags & TDF_DETAILS))
{
@@ -7641,6 +7684,19 @@ variable_tracking_main (void)
vt_debug_insns_local (false);
return 0;
}
+
+unsigned int
+variable_tracking_main (void)
+{
+ unsigned int ret;
+ int save = flag_var_tracking_assignments;
+
+ ret = variable_tracking_main_1 ();
+
+ flag_var_tracking_assignments = save;
+
+ return ret;
+}
static bool
gate_handle_var_tracking (void)
--- gcc/Makefile.in.jj 2010-01-21 08:58:12.000000000 +0100
+++ gcc/Makefile.in 2010-01-21 10:00:45.555730868 +0100
@@ -2751,7 +2751,7 @@ var-tracking.o : var-tracking.c $(CONFIG
$(RTL_H) $(TREE_H) hard-reg-set.h insn-config.h reload.h $(FLAGS_H) \
$(BASIC_BLOCK_H) output.h sbitmap.h alloc-pool.h $(FIBHEAP_H) $(HASHTAB_H) \
$(REGS_H) $(EXPR_H) $(TIMEVAR_H) tree-pass.h cselib.h $(TARGET_H) \
- $(TREE_FLOW_H)
+ $(TREE_FLOW_H) $(TOPLEV_H) $(PARAMS_H)
profile.o : profile.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(TREE_H) $(FLAGS_H) output.h $(REGS_H) $(EXPR_H) $(FUNCTION_H) \
$(TOPLEV_H) $(COVERAGE_H) $(TREE_FLOW_H) value-prof.h cfghooks.h \

View File

@ -1,28 +0,0 @@
2007-10-21 Jakub Jelinek <jakub@redhat.com>
* doc/Makefile.am (POD2MAN): Set date from cp-tools.texinfo
timestamp rather than from current date.
* doc/Makefile.in: Regenerated.
--- libjava/classpath/doc/Makefile.am.jj 2007-12-07 17:55:00.000000000 +0100
+++ libjava/classpath/doc/Makefile.am 2007-12-07 18:55:28.000000000 +0100
@@ -31,7 +31,7 @@ TOOLS_MANFILES = \
gtnameserv.1 \
gjdoc.1
-POD2MAN = pod2man --center="GNU" --release="$(VERSION)"
+POD2MAN = pod2man --center="GNU" --release="$(VERSION)" --date="$(shell ls --time-style=+%F -l $(srcdir)/cp-tools.texinfo | awk '{print $$6}')"
TEXI2POD = perl $(srcdir)/texi2pod.pl
STAMP = echo timestamp >
--- libjava/classpath/doc/Makefile.in.jj 2007-12-07 17:55:00.000000000 +0100
+++ libjava/classpath/doc/Makefile.in 2007-12-07 18:55:43.000000000 +0100
@@ -382,7 +382,7 @@ TOOLS_MANFILES = \
gtnameserv.1 \
gjdoc.1
-POD2MAN = pod2man --center="GNU" --release="$(VERSION)"
+POD2MAN = pod2man --center="GNU" --release="$(VERSION)" --date="$(shell ls --time-style=+%F -l $(srcdir)/cp-tools.texinfo | awk '{print $$6}')"
TEXI2POD = perl $(srcdir)/texi2pod.pl
STAMP = echo timestamp >
@GENINSRC_FALSE@STAMP_GENINSRC =

153
gcc44-rh533181.patch Normal file
View File

@ -0,0 +1,153 @@
2010-07-22 Jakub Jelinek <jakub@redhat.com>
* gimplify.c (enum gimplify_omp_var_data): Add
GOVD_THREADPRIVATE_WARNED.
(gimplify_bind_expr): Add GOVD_LOCAL | GOVD_SEEN even for global vars.
(omp_notice_threadprivate_variable): Note used threadprivate vars
with current function's context in shared clauses.
(gimplify_adjust_omp_clauses_1): Allow globals with current function's
context in taskreg shared clause.
* omp-low.c (lower_rec_input_clauses): For function-local is_global_var
VAR_DECLs in shared clauses add a decl copy with DECL_VALUE_EXPR
pointing to the original.
* trans-openmp.c (gfc_omp_private_debug_clause): Return false for
threadprivate decls.
* gcc.dg/gomp/tls-3.c: New test.
--- gcc/fortran/trans-openmp.c.jj 2010-06-24 21:47:09.908230044 +0200
+++ gcc/fortran/trans-openmp.c 2010-07-26 10:45:15.830229443 +0200
@@ -351,6 +351,18 @@ gfc_omp_disregard_value_expr (tree decl,
bool
gfc_omp_private_debug_clause (tree decl, bool shared)
{
+ if (TREE_STATIC (decl) || DECL_EXTERNAL (decl))
+ {
+ if (DECL_THREAD_LOCAL_P (decl))
+ return false;
+ if (DECL_HAS_VALUE_EXPR_P (decl))
+ {
+ tree value = get_base_address (DECL_VALUE_EXPR (decl));
+ if (value && DECL_P (value) && DECL_THREAD_LOCAL_P (value))
+ return false;
+ }
+ }
+
if (GFC_DECL_CRAY_POINTEE (decl))
return true;
--- gcc/gimplify.c.jj 2010-07-09 09:01:37.049604412 +0200
+++ gcc/gimplify.c 2010-07-26 10:50:05.646291216 +0200
@@ -66,6 +66,7 @@ enum gimplify_omp_var_data
GOVD_LOCAL = 128,
GOVD_DEBUG_PRIVATE = 256,
GOVD_PRIVATE_OUTER_REF = 512,
+ GOVD_THREADPRIVATE_WARNED = 1024,
GOVD_DATA_SHARE_CLASS = (GOVD_SHARED | GOVD_PRIVATE | GOVD_FIRSTPRIVATE
| GOVD_LASTPRIVATE | GOVD_REDUCTION | GOVD_LOCAL)
};
@@ -1234,7 +1235,7 @@ gimplify_bind_expr (tree *expr_p, gimple
struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp;
/* Mark variable as local. */
- if (ctx && !is_global_var (t)
+ if (ctx
&& (! DECL_SEEN_IN_BIND_EXPR_P (t)
|| splay_tree_lookup (ctx->variables,
(splay_tree_key) t) == NULL))
@@ -5339,18 +5340,36 @@ omp_notice_threadprivate_variable (struc
{
splay_tree_node n;
- if (ctx->region_type != ORT_UNTIED_TASK)
+ while (ctx && ctx->region_type == ORT_WORKSHARE)
+ {
+ n = splay_tree_lookup (ctx->variables, (splay_tree_key)decl);
+ if (n != NULL)
+ {
+ gcc_assert (n->value & GOVD_LOCAL);
+ return false;
+ }
+ ctx = ctx->outer_context;
+ }
+ if (ctx == NULL)
return false;
+
n = splay_tree_lookup (ctx->variables, (splay_tree_key)decl);
if (n == NULL)
+ n = splay_tree_insert (ctx->variables, (splay_tree_key)decl,
+ DECL_CONTEXT (decl) == current_function_decl
+ ? GOVD_SHARED | GOVD_SEEN : 0);
+ if (ctx->region_type == ORT_UNTIED_TASK
+ && (n->value & GOVD_THREADPRIVATE_WARNED) == 0)
{
error ("threadprivate variable %qs used in untied task",
IDENTIFIER_POINTER (DECL_NAME (decl)));
error ("%Henclosing task", &ctx->location);
- splay_tree_insert (ctx->variables, (splay_tree_key)decl, 0);
+ n->value |= GOVD_THREADPRIVATE_WARNED;
}
if (decl2)
- splay_tree_insert (ctx->variables, (splay_tree_key)decl2, 0);
+ splay_tree_insert (ctx->variables, (splay_tree_key)decl2,
+ DECL_CONTEXT (decl2) == current_function_decl
+ ? GOVD_SHARED | GOVD_SEEN : 0);
return false;
}
@@ -5779,7 +5798,9 @@ gimplify_adjust_omp_clauses_1 (splay_tre
break;
ctx = ctx->outer_context;
}
- if (ctx == NULL)
+ if (ctx == NULL
+ && (DECL_CONTEXT (decl) != current_function_decl
+ || gimplify_omp_ctxp->region_type == ORT_WORKSHARE))
return 0;
}
code = OMP_CLAUSE_SHARED;
--- gcc/omp-low.c.jj 2010-06-11 11:06:00.913659301 +0200
+++ gcc/omp-low.c 2010-07-26 10:45:15.866229447 +0200
@@ -2222,6 +2222,17 @@ lower_rec_input_clauses (tree clauses, g
continue;
break;
case OMP_CLAUSE_SHARED:
+ if (pass == 0
+ && is_global_var (OMP_CLAUSE_DECL (c))
+ && (DECL_CONTEXT (OMP_CLAUSE_DECL (c))
+ == current_function_decl)
+ && is_taskreg_ctx (ctx)
+ && !DECL_IGNORED_P (OMP_CLAUSE_DECL (c)))
+ {
+ new_var = omp_copy_decl_1 (OMP_CLAUSE_DECL (c), ctx);
+ SET_DECL_VALUE_EXPR (new_var, OMP_CLAUSE_DECL (c));
+ DECL_HAS_VALUE_EXPR_P (new_var) = 1;
+ }
if (maybe_lookup_decl (OMP_CLAUSE_DECL (c), ctx) == NULL)
{
gcc_assert (is_global_var (OMP_CLAUSE_DECL (c)));
--- gcc/testsuite/gcc.dg/gomp/tls-3.c.jj 2010-07-26 10:45:15.868228753 +0200
+++ gcc/testsuite/gcc.dg/gomp/tls-3.c 2010-07-26 10:45:15.868228753 +0200
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target tls_native } */
+
+int thr;
+#pragma omp threadprivate(thr)
+
+void
+foo (void)
+{
+ #pragma omp task untied /* { dg-error "enclosing task" } */
+ {
+ static int thr2;
+ #pragma omp threadprivate(thr2)
+ static int thr3;
+ #pragma omp threadprivate(thr3)
+ thr++; /* { dg-error "used in untied task" } */
+ thr2++; /* { dg-error "used in untied task" } */
+ thr++;
+ thr2++;
+ }
+}

74
gcc44-rh610785.patch Normal file
View File

@ -0,0 +1,74 @@
2010-07-07 Jakub Jelinek <jakub@redhat.com>
* tree-sra.c (sra_build_assignment): Don't add BIT_XOR_EXPR/MINUS_EXPR
of signbit if signbit is the most significant bit of utype already.
* gcc.c-torture/execute/20100707-1.c: New test.
--- gcc/tree-sra.c.jj 2010-05-13 13:08:52.000000000 +0200
+++ gcc/tree-sra.c 2010-07-06 19:50:09.000000000 +0200
@@ -2211,7 +2211,10 @@ sra_build_assignment (tree dst, tree src
/* Perform sign extension, if required.
??? This should never be necessary. */
- if (!unsignedp)
+ if (!unsignedp
+ && (TREE_INT_CST_LOW (width) != TYPE_PRECISION (utype)
+ || (TREE_INT_CST_LOW (width)
+ != GET_MODE_BITSIZE (TYPE_MODE (utype)))))
{
tree signbit = int_const_binop (LSHIFT_EXPR,
build_int_cst_wide (utype, 1, 0),
--- gcc/testsuite/gcc.c-torture/execute/20100707-1.c 2010-05-27 15:41:40.446237053 +0200
+++ gcc/testsuite/gcc.c-torture/execute/20100707-1.c 2010-07-06 13:55:35.000000000 +0200
@@ -0,0 +1,50 @@
+struct S { int s; };
+struct T { int w; int h; };
+int vr;
+
+inline struct T
+bar (const struct S * x)
+{
+ struct T t;
+ t.w = vr;
+ t.h = x->s;
+ return t;
+}
+
+__attribute__ ((noinline))
+void foo (struct S * w, unsigned char *x, int y, int *z[2])
+{
+ struct T t;
+ int i, j, k;
+ t = bar (w);
+ k = t.w + 2;
+ for (i = 0; i <= t.h; i++)
+ {
+ int *u = z[i > 0] + 1;
+ unsigned char *v;
+ int q = 0;
+ v = x + k * i + 1;
+ for (j = 0; j < t.w; j++)
+ {
+ int m = u[j];
+ if (m > y && !q && v[j - k] != 2)
+ v[j] = 0;
+ }
+ }
+}
+
+unsigned char b[64];
+
+int
+main (void)
+{
+ int v[32], *z[2];
+ struct S s;
+ __builtin_memset (v, 0, sizeof (v));
+ vr = 16;
+ s.s = 16;
+ z[0] = v;
+ z[1] = v;
+ foo (&s, b + 32, -1, z);
+ return 0;
+}

View File

@ -6,7 +6,7 @@
;;
-sparc-*-linux*) # SPARC's running GNU/Linux, libc6
+sparc-*-linux* | sparcv9*-*-linux*) # SPARC's running GNU/Linux, libc6
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h"
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/gas.h linux.h"
extra_options="${extra_options} sparc/long-double-switch.opt"
tmake_file="${tmake_file} sparc/t-linux"
@@ -2287,7 +2287,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
@ -15,7 +15,7 @@
;;
-sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
+sparc64*-*-linux*) # 64-bit SPARC's running GNU/Linux
tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h sparc/linux64.h"
tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/gas.h linux.h sparc/linux64.h"
extra_options="${extra_options} sparc/long-double-switch.opt"
tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm"
--- libgcc/config.host.jj 2008-04-24 15:46:19.000000000 -0500

View File

@ -1,3 +1,7 @@
2010-04-27 Jakub Jelinek <jakub@redhat.com>
* unwind-dw2.c (_Unwind_DebugHook): Add used attribute.
2009-05-27 Tom Tromey <tromey@redhat.com>
* unwind-dw2.c (_Unwind_DebugHook): New function.
@ -5,11 +9,12 @@
--- gcc/unwind-dw2.c (revision 147933)
+++ gcc/unwind-dw2.c (revision 147934)
@@ -1473,18 +1473,31 @@ uw_init_context_1 (struct _Unwind_Contex
@@ -1473,18 +1473,32 @@ uw_init_context_1 (struct _Unwind_Contex
context->ra = __builtin_extract_return_addr (outer_ra);
}
+static void _Unwind_DebugHook (void *, void *) __attribute__ ((__noinline__));
+static void _Unwind_DebugHook (void *, void *)
+ __attribute__ ((__noinline__, __used__));
+
+/* This function is called during unwinding. It is intended as a hook
+ for a debugger to intercept exceptions. CFA is the CFA of the

View File

@ -1,9 +0,0 @@
gcc-4_4_0-0_3:HEAD:gcc-4.4.0-0.3.src.rpm:1232130841
gcc-4_4_0-5:HEAD:gcc-4.4.0-5.src.rpm:1242291126
gcc-4_4_2-14_fc13:HEAD:gcc-4.4.2-14.fc13.src.rpm:1259930464
gcc-4_4_2-20_fc13:HEAD:gcc-4.4.2-20.fc13.src.rpm:1261484502
gcc-4_4_2-25_fc13:HEAD:gcc-4.4.2-25.fc13.src.rpm:1263487371
gcc-4_4_3-1_fc13:HEAD:gcc-4.4.3-1.fc13.src.rpm:1264094717
gcc-4_4_3-4_fc13:HEAD:gcc-4.4.3-4.fc13.src.rpm:1264621537
gcc-4_4_3-5_fc13:HEAD:gcc-4.4.3-5.fc13.src.rpm:1265659730
gcc-4_4_3-6_fc13:HEAD:gcc-4.4.3-6.fc13.src.rpm:1265925505

View File

@ -1,2 +1,2 @@
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
080254256e618fa9f8f28e03698b016a gcc-4.4.3-20100211.tar.bz2
5e3853fc44c14522ac9ba15a9db01301 gcc-4.4.5-20101001.tar.bz2