Compare commits

..

37 Commits
master ... f15

Author SHA1 Message Date
Jakub Jelinek e561c431ae 4.6.3-2 2012-03-06 17:51:59 +01:00
Jakub Jelinek a93f055e77 4.6.3-1 2012-03-06 12:50:21 +01:00
Jakub Jelinek acf847e63a 4.6.1-9 2011-09-08 10:50:35 +02:00
Jakub Jelinek f9c8fd47c4 4.6.1-8 2011-08-24 09:47:03 +02:00
Jakub Jelinek a83ade956a 4.6.1-7 2011-08-04 21:01:44 +02:00
Jakub Jelinek ecda783286 4.6.1-5 2011-07-31 13:39:44 +02:00
Jakub Jelinek 7b60096ebe 4.6.1-4 2011-07-27 19:53:57 +02:00
Jakub Jelinek f6c097666b 4.6.1-4 2011-07-27 19:53:36 +02:00
Jakub Jelinek 6a5d24a797 4.6.1-3 2011-07-15 13:07:05 +02:00
Jakub Jelinek 7d7f40f869 4.6.1-2 2011-07-08 10:25:23 +02:00
Jakub Jelinek f2035a7497 gcc-4.6.1-1.fc16 2011-06-28 07:41:07 +02:00
Jakub Jelinek 63542a2cf0 4.6.0-10 2011-06-03 15:21:16 +02:00
Jakub Jelinek cdd0c8207a 4.6.0-9 2011-05-30 19:52:35 +02:00
Jakub Jelinek ff85664008 4.6.0-8 2011-05-25 11:07:52 +02:00
Jakub Jelinek 45a8b12105 4.6.0-8 2011-05-25 10:42:55 +02:00
Jakub Jelinek 858292bd84 4.6.0-7 2011-05-09 14:53:16 +02:00
Jakub Jelinek 3e27f9e68c 4.6.0-7 2011-05-09 13:25:02 +02:00
Jakub Jelinek 1ae9553d28 4.6.0-6 2011-04-28 16:05:59 +02:00
Jakub Jelinek 72874fb2ad 4.6.0-5 2011-04-19 19:27:26 +02:00
Jakub Jelinek 1fa5f2b290 4.6.0-4 2011-04-13 18:35:01 +02:00
Jakub Jelinek 4b85ac0fcc 4.6.0-3 2011-04-08 10:31:08 +02:00
Jakub Jelinek de7ef8959a 4.6.0-3 2011-04-08 09:54:32 +02:00
Jakub Jelinek 689e85cc53 4.6.0-3 2011-04-08 09:48:07 +02:00
Jakub Jelinek 3d859ddd85 4.6.0-2.fc15 2011-03-31 11:16:50 +02:00
Jakub Jelinek 020c04d784 4.6.0-1 2011-03-29 09:04:52 +02:00
Jakub Jelinek 8d5e77f9e5 4.6.0-0.15 2011-03-21 20:50:44 +01:00
Jakub Jelinek 88f5aeebda 4.6.0-0.14 2011-03-18 20:37:48 +01:00
Jakub Jelinek ea637ffe98 4.6.0-0.13 2011-03-15 18:35:47 +01:00
Jakub Jelinek 49ad19ee12 4.6.0-0.13 2011-03-15 18:24:43 +01:00
Jakub Jelinek 678b6aa3f0 4.6.0-0.12 2011-03-04 10:00:59 +01:00
Jakub Jelinek 8738e8b3d4 4.6.0-0.12 2011-03-04 09:29:25 +01:00
Jakub Jelinek 4bac5086a8 4.6.0-0.11 2011-03-01 12:16:22 +01:00
Jakub Jelinek b5a49205ba 4.6.0-0.10 2011-02-23 22:25:15 +01:00
Jakub Jelinek 4bf11691c3 4.6.0-0.9 2011-02-23 10:33:13 +01:00
Jakub Jelinek cc5df407aa 4.6.0-0.8 2011-02-20 08:51:52 +01:00
Jakub Jelinek 2bbb85d9bd 4.6.0-0.7 2011-02-12 22:35:15 +01:00
Jakub Jelinek 753dd73e32 4.6.0-0.7 2011-02-12 22:14:49 +01:00
40 changed files with 3616 additions and 3192 deletions

26
.gitignore vendored
View File

@ -1,8 +1,18 @@
/gcc-10.0.1-20200118.tar.xz
/newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz
/nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz
/gcc-10.0.1-20200121.tar.xz
/gcc-10.0.1-20200123.tar.xz
/gcc-10.0.1-20200126.tar.xz
/gcc-10.0.1-20200130.tar.xz
/gcc-10.0.1-20200216.tar.xz
/fastjar-0.97.tar.gz
/gcc-4.6.0-20110128.tar.bz2
/gcc-4.6.0-20110205.tar.bz2
/gcc-4.6.0-20110525.tar.bz2
/gcc-4.6.0-20110530.tar.bz2
/gcc-4.6.0-20110603.tar.bz2
/gcc-4.6.1-20110627.tar.bz2
/gcc-4.6.1-20110708.tar.bz2
/gcc-4.6.1-20110715.tar.bz2
/gcc-4.6.1-20110727.tar.bz2
/gcc-4.6.1-20110731.tar.bz2
/gcc-4.6.1-20110802.tar.bz2
/gcc-4.6.1-20110804.tar.bz2
/gcc-4.6.1-20110824.tar.bz2
/gcc-4.6.1-20110908.tar.bz2
/gcc-4.6.1-20111002.tar.bz2
/gcc-4.6.2-20111027.tar.bz2
/gcc-4.6.3-20120306.tar.bz2

View File

@ -1,35 +0,0 @@
srpm gcc
mcd $BUILDDIR/gcc
# These are for gcc cross-tools (politics sometime result in slightly
# different arch names)
GCC_CONFIGARGS="--prefix=$PREFIX
--libdir=$PREFIX/lib${SUFFIX}
--target=$TARGET
${GCC_CONFIG_EXTRA}
--enable-languages=c,c++
--with-sysroot=$ROOTFS
--with-build-sysroot=$ROOTFS
--cache-file=config.cache
--disable-bootstrap
--enable-threads=posix
--enable-64-bit-bfd
--disable-lto
$WITHPPL
"
# prefill gcc cache
echo 'lt_cv_shlibpath_overrides_runpath=no' > config.cache
echo 'gcc_cv_libc_provides_ssp=yes' >> config.cache
if [ ! "$BUILDER_ARCH" = "$TARGET_ARCH" ]; then
WITH_HEADERS="--with-headers=$ROOTFS/usr/include"
fi
$SRC/gcc-*/configure $GCC_CONFIGARGS $WITH_HEADERS
notparallel
make $J
make $J install
mcd $ROOTFS/lib${SUFFIX}/gcc
rsync -av $PREFIX/lib${SUFFIX}/gcc/ $ROOTFS/lib${SUFFIX}/gcc/
rsync -av $PREFIX/$TARGET/lib/ $ROOTFS/lib${SUFFIX}/

View File

@ -1,48 +0,0 @@
srpm gcc
mcd $BUILDDIR/gcc-host
# These are for gcc cross-tools (politics sometime result in slightly
# different arch names)
GCC_CONFIGARGS="--prefix=$PREFIX
--libdir=$PREFIX/lib${SUFFIX}
--target=$TARGET
${GCC_CONFIG_EXTRA}
--enable-languages=c,c++
--with-sysroot=$ROOTFS
--with-build-sysroot=$ROOTFS
--cache-file=config.cache
--disable-bootstrap
--enable-threads=posix
--enable-64-bit-bfd
--disable-lto
$WITHPPL
"
# prefill gcc cache
echo 'lt_cv_shlibpath_overrides_runpath=no' > config.cache
echo 'gcc_cv_libc_provides_ssp=yes' >> config.cache
if [ ! "$BUILDER_ARCH" = "$TARGET_ARCH" ]; then
WITH_HEADERS="--with-headers=$ROOTFS/usr/include"
fi
$SRC/gcc-*/configure $GCC_CONFIGARGS $WITH_HEADERS
notparallel
# Pass gcc_cv_libc_provides_ssp down, because the config.cache
# version is not passed down to the gcc subdir.
make $J all-host gcc_cv_libc_provides_ssp=yes
make $J install-host gcc_cv_libc_provides_ssp=yes
if false; then
mkdirp $ROOTFS/usr/lib${SUFFIX}
for o in crt Scrt1 crti crtbegin crtbeginS crtend crtendS crtn
do
$TARGET-gcc -nostdlib -nostartfiles -c -x c /dev/null -c -o $ROOTFS/usr/lib${SUFFIX}/$o.o
done
for so in gcc gcc_s c
do
$TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o $ROOTFS/usr/lib${SUFFIX}/lib$so.so
done
fi

View File

@ -1,34 +0,0 @@
srpm gcc
mcd $BUILDDIR/gcc-libgcc
# These are for gcc cross-tools (politics sometime result in slightly
# different arch names)
GCC_CONFIGARGS="--prefix=$PREFIX
--libdir=$PREFIX/lib${SUFFIX}
--target=$TARGET
${GCC_CONFIG_EXTRA}
--enable-languages=c,c++
--with-sysroot=$ROOTFS
--with-build-sysroot=$ROOTFS
--cache-file=config.cache
--disable-bootstrap
--enable-threads=posix
--enable-64-bit-bfd
--disable-lto
$WITHPPL
"
# prefill gcc cache
echo 'lt_cv_shlibpath_overrides_runpath=no' > config.cache
echo 'gcc_cv_libc_provides_ssp=yes' >> config.cache
if [ ! "$BUILDER_ARCH" = "$TARGET_ARCH" ]; then
WITH_HEADERS="--with-headers=$ROOTFS/usr/include"
fi
$SRC/gcc-*/configure $GCC_CONFIGARGS $WITH_HEADERS
notparallel
# Pass gcc_cv_libc_provides_ssp down, because the config.cache
# version is not passed down to the gcc subdir.
make $J all-target-libgcc all-target-libssp gcc_cv_libc_provides_ssp=yes
make $J install-target-libgcc install-target-libssp gcc_cv_libc_provides_ssp=yes

View File

@ -1,28 +0,0 @@
srpm gcc
mcd $BUILDDIR/t-gcc
GCC_TCONFIGARGS="--prefix=/usr
--libdir=/usr/lib${SUFFIX}
--with-sysroot=/
--with-build-sysroot=$ROOTFS
--build=$BUILD
--host=$TARGET
--target=$TARGET
--disable-bootstrap
--enable-werror=no
--enable-cxx
${GCC_CONFIG_EXTRA}
--enable-languages=c,c++
--enable-threads=posix
--enable-linker-build-id
"
$SRC/gcc-*/configure $GCC_TCONFIGARGS
notparallel
make $J
make $J install DESTDIR=${ROOTFS}
test -e ${ROOTFS}/usr/bin/cc && rm ${ROOTFS}/usr/bin/cc
ln -s gcc ${ROOTFS}/usr/bin/cc
mkdir -p ${ROOTFS}/usr/share/gdb/auto-load/usr/lib${SUFFIX}
mv -f ${ROOTFS}/usr/lib${SUFFIX}/libstdc++*gdb.py* \
${ROOTFS}/usr/share/gdb/auto-load/usr/lib${SUFFIX}

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)

16
fastjar-0.97-len1.patch Normal file
View File

@ -0,0 +1,16 @@
2009-12-21 Chris Ball <cjb@laptop.org>
* jartool.c (add_file_to_jar): Test write return value against -1
instead of 1.
--- fastjar-0.97/jartool.c.jj 2008-10-15 12:35:37.000000000 -0400
+++ fastjar-0.97/jartool.c 2009-12-22 06:48:09.309530000 -0500
@@ -1257,7 +1257,7 @@ int add_file_to_jar(int jfd, int ffd, co
exit_on_error("write");
/* write the file name to the zip file */
- if (1 == write(jfd, fname, file_name_length))
+ if (-1 == write(jfd, fname, file_name_length))
exit_on_error("write");
if(verbose){

View File

@ -0,0 +1,29 @@
2009-01-14 Jakub Jelinek <jakub@redhat.com>
* jartool.c (make_manifest): Initialize current_time before
calling unix2dostime on it.
--- fastjar-0.97/jartool.c.jj 2008-10-15 18:35:37.000000000 +0200
+++ fastjar-0.97/jartool.c 2009-01-14 15:40:50.000000000 +0100
@@ -820,6 +820,10 @@ int make_manifest(int jfd, const char *m
int mod_time; /* file modification time */
struct zipentry *ze;
+ current_time = time(NULL);
+ if(current_time == (time_t)-1)
+ exit_on_error("time");
+
mod_time = unix2dostime(&current_time);
/* If we are creating a new manifest, create a META-INF directory entry */
@@ -828,10 +832,6 @@ int make_manifest(int jfd, const char *m
memset((file_header + 12), '\0', 16); /*clear mod time, crc, size fields*/
- current_time = time(NULL);
- if(current_time == (time_t)-1)
- exit_on_error("time");
-
PACK_UB2(file_header, LOC_EXTRA, 0);
PACK_UB2(file_header, LOC_COMP, 0);
PACK_UB2(file_header, LOC_FNLEN, nlen);

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

3707
gcc.spec

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +0,0 @@
2017-02-25 Jakub Jelinek <jakub@redhat.com>
* configure.ac: When adding -Wno-format, also add -Wno-format-security.
* configure: Regenerated.
--- gcc/configure.ac.jj 2017-02-13 12:20:53.000000000 +0100
+++ gcc/configure.ac 2017-02-25 12:42:32.859175403 +0100
@@ -480,7 +480,7 @@ AC_ARG_ENABLE(build-format-warnings,
AS_HELP_STRING([--disable-build-format-warnings],[don't use -Wformat while building GCC]),
[],[enable_build_format_warnings=yes])
AS_IF([test $enable_build_format_warnings = no],
- [wf_opt=-Wno-format],[wf_opt=])
+ [wf_opt="-Wno-format -Wno-format-security"],[wf_opt=])
ACX_PROG_CXX_WARNING_OPTS(
m4_quote(m4_do([-W -Wall -Wno-narrowing -Wwrite-strings ],
[-Wcast-qual -Wno-error=format-diag $wf_opt])),
--- gcc/configure.jj 2017-02-13 12:20:52.000000000 +0100
+++ gcc/configure 2017-02-25 12:42:50.041946391 +0100
@@ -6647,7 +6647,7 @@ else
fi
if test $enable_build_format_warnings = no; then :
- wf_opt=-Wno-format
+ wf_opt="-Wno-format -Wno-format-security"
else
wf_opt=
fi

View File

@ -1,20 +0,0 @@
2019-01-17 Jakub Jelinek <jakub@redhat.com>
* d-spec.cc (lang_specific_driver): Make -shared-libphobos
the default rather than -static-libphobos.
--- gcc/d/d-spec.cc.jj 2019-01-01 12:37:49.502444257 +0100
+++ gcc/d/d-spec.cc 2019-01-17 17:09:45.364949246 +0100
@@ -405,9 +405,9 @@ lang_specific_driver (cl_decoded_option
/* Add `-lgphobos' if we haven't already done so. */
if (phobos_library != PHOBOS_NOLINK && need_phobos)
{
- /* Default to static linking. */
- if (phobos_library != PHOBOS_DYNAMIC)
- phobos_library = PHOBOS_STATIC;
+ /* Default to shared linking. */
+ if (phobos_library != PHOBOS_STATIC)
+ phobos_library = PHOBOS_DYNAMIC;
#ifdef HAVE_LD_STATIC_DYNAMIC
if (phobos_library == PHOBOS_DYNAMIC && static_link)

View File

@ -1,122 +0,0 @@
2019-01-17 Jakub Jelinek <jakub@redhat.com>
* gcc.c (offload_targets_default): New variable.
(process_command): Set it if -foffload is defaulted.
(driver::maybe_putenv_OFFLOAD_TARGETS): Add OFFLOAD_TARGET_DEFAULT=1
into environment if -foffload has been defaulted.
* lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
(compile_offload_image): If OFFLOAD_TARGET_DEFAULT
is in the environment, don't fail if corresponding mkoffload
can't be found.
(compile_images_for_offload_targets): Likewise. Free and clear
offload_names if no valid offload is found.
libgomp/
* target.c (gomp_load_plugin_for_device): If a plugin can't be
dlopened, assume it has no devices silently.
--- gcc/gcc.c.jj 2017-01-17 10:28:40.000000000 +0100
+++ gcc/gcc.c 2017-01-20 16:26:29.649962902 +0100
@@ -290,6 +290,10 @@ static const char *spec_host_machine = D
static char *offload_targets = NULL;
+/* Set to true if -foffload has not been used and offload_targets
+ is set to the configured in default. */
+static bool offload_targets_default;
+
/* Nonzero if cross-compiling.
When -b is used, the value comes from the `specs' file. */
@@ -4457,7 +4461,10 @@ process_command (unsigned int decoded_op
/* If the user didn't specify any, default to all configured offload
targets. */
if (ENABLE_OFFLOADING && offload_targets == NULL)
- handle_foffload_option (OFFLOAD_TARGETS);
+ {
+ handle_foffload_option (OFFLOAD_TARGETS);
+ offload_targets_default = true;
+ }
if (output_file
&& strcmp (output_file, "-") != 0
@@ -7693,6 +7700,8 @@ driver::maybe_putenv_OFFLOAD_TARGETS ()
obstack_grow (&collect_obstack, offload_targets,
strlen (offload_targets) + 1);
xputenv (XOBFINISH (&collect_obstack, char *));
+ if (offload_targets_default)
+ xputenv ("OFFLOAD_TARGET_DEFAULT=1");
}
free (offload_targets);
--- gcc/lto-wrapper.c.jj 2017-01-01 12:45:34.000000000 +0100
+++ gcc/lto-wrapper.c 2017-01-20 16:34:18.294016997 +0100
@@ -52,6 +52,7 @@ along with GCC; see the file COPYING3.
/* Environment variable, used for passing the names of offload targets from GCC
driver to lto-wrapper. */
#define OFFLOAD_TARGET_NAMES_ENV "OFFLOAD_TARGET_NAMES"
+#define OFFLOAD_TARGET_DEFAULT_ENV "OFFLOAD_TARGET_DEFAULT"
enum lto_mode_d {
LTO_MODE_NONE, /* Not doing LTO. */
@@ -822,6 +823,12 @@ compile_offload_image (const char *targe
break;
}
+ if (!compiler && getenv (OFFLOAD_TARGET_DEFAULT_ENV))
+ {
+ free_array_of_ptrs ((void **) paths, n_paths);
+ return NULL;
+ }
+
if (!compiler)
fatal_error (input_location,
"could not find %s in %s (consider using %<-B%>)",
@@ -885,6 +892,7 @@ compile_images_for_offload_targets (unsi
unsigned num_targets = parse_env_var (target_names, &names, NULL);
int next_name_entry = 0;
+ bool hsa_seen = false;
const char *compiler_path = getenv ("COMPILER_PATH");
if (!compiler_path)
goto out;
@@ -897,18 +905,26 @@ compile_images_for_offload_targets (unsi
/* HSA does not use LTO-like streaming and a different compiler, skip
it. */
if (strcmp (names[i], "hsa") == 0)
- continue;
+ {
+ hsa_seen = true;
+ continue;
+ }
offload_names[next_name_entry]
= compile_offload_image (names[i], compiler_path, in_argc, in_argv,
compiler_opts, compiler_opt_count,
linker_opts, linker_opt_count);
if (!offload_names[next_name_entry])
- fatal_error (input_location,
- "problem with building target image for %s", names[i]);
+ continue;
next_name_entry++;
}
+ if (next_name_entry == 0 && !hsa_seen)
+ {
+ free (offload_names);
+ offload_names = NULL;
+ }
+
out:
free_array_of_ptrs ((void **) names, num_targets);
}
--- libgomp/target.c.jj 2017-01-01 12:45:52.000000000 +0100
+++ libgomp/target.c 2017-01-20 20:12:13.756710875 +0100
@@ -2356,7 +2356,7 @@ gomp_load_plugin_for_device (struct gomp
void *plugin_handle = dlopen (plugin_name, RTLD_LAZY);
if (!plugin_handle)
- goto dl_fail;
+ return 0;
/* Check if all required functions are available in the plugin and store
their handlers. None of the symbols can legitimately be NULL,

View File

@ -1,126 +0,0 @@
--- libada/Makefile.in.jj 2019-01-09 13:01:18.015608205 +0100
+++ libada/Makefile.in 2019-01-11 18:16:23.441726931 +0100
@@ -71,18 +71,40 @@ version := $(shell @get_gcc_base_ver@ $(
libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR)
ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
+DEFAULTMULTIFLAGS :=
+ifeq ($(MULTISUBDIR),)
+targ:=$(subst -, ,$(target))
+arch:=$(word 1,$(targ))
+ifeq ($(words $(targ)),2)
+osys:=$(word 2,$(targ))
+else
+osys:=$(word 3,$(targ))
+endif
+ifeq ($(strip $(filter-out i%86 x86_64 powerpc% ppc% s390% sparc% linux%, $(arch) $(osys))),)
+ifeq ($(shell $(CC) $(CFLAGS) -print-multi-os-directory),../lib64)
+DEFAULTMULTIFLAGS := -m64
+else
+ifeq ($(strip $(filter-out s390%, $(arch))),)
+DEFAULTMULTIFLAGS := -m31
+else
+DEFAULTMULTIFLAGS := -m32
+endif
+endif
+endif
+endif
+
# exeext should not be used because it's the *host* exeext. We're building
# a *target* library, aren't we?!? Likewise for CC. Still, provide bogus
# definitions just in case something slips through the safety net provided
# by recursive make invocations in gcc/ada/Makefile.in
LIBADA_FLAGS_TO_PASS = \
"MAKEOVERRIDES=" \
- "LDFLAGS=$(LDFLAGS)" \
+ "LDFLAGS=$(LDFLAGS) $(DEFAULTMULTIFLAGS)" \
"LN_S=$(LN_S)" \
"SHELL=$(SHELL)" \
- "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
- "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
- "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
+ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
+ "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
+ "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS)" \
"PICFLAG_FOR_TARGET=$(PICFLAG)" \
"THREAD_KIND=$(THREAD_KIND)" \
"TRACE=$(TRACE)" \
@@ -93,7 +115,7 @@ LIBADA_FLAGS_TO_PASS = \
"exeext=.exeext.should.not.be.used " \
'CC=the.host.compiler.should.not.be.needed' \
"GCC_FOR_TARGET=$(CC)" \
- "CFLAGS=$(CFLAGS)"
+ "CFLAGS=$(CFLAGS) $(DEFAULTMULTIFLAGS)"
.PHONY: libada gnatlib gnatlib-shared gnatlib-sjlj gnatlib-zcx osconstool
--- config-ml.in.jj 2019-01-09 12:50:16.646501448 +0100
+++ config-ml.in 2019-01-11 18:16:23.442726914 +0100
@@ -511,6 +511,8 @@ multi-do:
ADAFLAGS="$(ADAFLAGS) $${flags}" \
prefix="$(prefix)" \
exec_prefix="$(exec_prefix)" \
+ mandir="$(mandir)" \
+ infodir="$(infodir)" \
GOCFLAGS="$(GOCFLAGS) $${flags}" \
GDCFLAGS="$(GDCFLAGS) $${flags}" \
CXXFLAGS="$(CXXFLAGS) $${flags}" \
--- libcpp/macro.c.jj 2019-01-09 13:01:21.420552123 +0100
+++ libcpp/macro.c 2019-01-11 18:18:17.736876285 +0100
@@ -3256,8 +3256,6 @@ static cpp_macro *
create_iso_definition (cpp_reader *pfile)
{
bool following_paste_op = false;
- const char *paste_op_error_msg =
- N_("'##' cannot appear at either end of a macro expansion");
unsigned int num_extra_tokens = 0;
unsigned nparms = 0;
cpp_hashnode **params = NULL;
@@ -3382,7 +3380,9 @@ create_iso_definition (cpp_reader *pfile
function-like macros, but not at the end. */
if (following_paste_op)
{
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
+ cpp_error (pfile, CPP_DL_ERROR,
+ "'##' cannot appear at either end of a macro "
+ "expansion");
goto out;
}
if (!vaopt_tracker.completed ())
@@ -3397,7 +3397,9 @@ create_iso_definition (cpp_reader *pfile
function-like macros, but not at the beginning. */
if (macro->count == 1)
{
- cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
+ cpp_error (pfile, CPP_DL_ERROR,
+ "'##' cannot appear at either end of a macro "
+ "expansion");
goto out;
}
--- libcpp/expr.c.jj 2019-01-09 13:01:22.415535734 +0100
+++ libcpp/expr.c 2019-01-11 18:16:23.444726882 +0100
@@ -788,16 +788,17 @@ cpp_classify_number (cpp_reader *pfile,
if ((result & CPP_N_WIDTH) == CPP_N_LARGE
&& CPP_OPTION (pfile, cpp_warn_long_long))
{
- const char *message = CPP_OPTION (pfile, cplusplus)
- ? N_("use of C++11 long long integer constant")
- : N_("use of C99 long long integer constant");
-
if (CPP_OPTION (pfile, c99))
cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location,
- 0, message);
+ 0, CPP_OPTION (pfile, cplusplus)
+ ? N_("use of C++11 long long integer constant")
+ : N_("use of C99 long long integer constant"));
else
cpp_pedwarning_with_line (pfile, CPP_W_LONG_LONG,
- virtual_location, 0, message);
+ virtual_location, 0,
+ CPP_OPTION (pfile, cplusplus)
+ ? N_("use of C++11 long long integer constant")
+ : N_("use of C99 long long integer constant"));
}
result |= CPP_N_INTEGER;

View File

@ -1,11 +0,0 @@
--- libgomp/configure.tgt.jj 2008-01-10 20:53:48.000000000 +0100
+++ libgomp/configure.tgt 2008-03-27 12:44:51.000000000 +0100
@@ -67,7 +67,7 @@ if test $enable_linux_futex = yes; then
;;
*)
if test -z "$with_arch"; then
- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
fi
esac
;;

View File

@ -1,715 +0,0 @@
--- gcc/Makefile.in.jj 2015-06-06 10:00:25.000000000 +0200
+++ gcc/Makefile.in 2015-11-04 14:56:02.643536437 +0100
@@ -1063,7 +1063,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
# and the system's installed libraries.
LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \
$(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS)
-BACKENDLIBS = $(ISLLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
+BACKENDLIBS = $(if $(ISLLIBS),-ldl) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
$(ZLIB) $(ZSTD_LIB)
# Any system libraries needed just for GNAT.
SYSLIBS = @GNAT_LIBEXC@
@@ -2302,6 +2302,15 @@ $(out_object_file): $(out_file)
$(common_out_object_file): $(common_out_file)
$(COMPILE) $<
$(POSTCOMPILE)
+
+graphite%.o : \
+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
+graphite.o : \
+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
+graphite%.o : \
+ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
+graphite.o : \
+ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
#
# Generate header and source files from the machine description,
# and compile them.
--- gcc/graphite.h.jj 2016-01-27 12:44:06.000000000 +0100
+++ gcc/graphite.h 2016-01-27 13:26:38.309876856 +0100
@@ -39,6 +39,590 @@ along with GCC; see the file COPYING3.
#include <isl/schedule_node.h>
#include <isl/id.h>
#include <isl/space.h>
+#include <isl/version.h>
+#include <dlfcn.h>
+
+#define DYNSYMS \
+ DYNSYM (isl_aff_add_coefficient_si); \
+ DYNSYM (isl_aff_free); \
+ DYNSYM (isl_aff_get_space); \
+ DYNSYM (isl_aff_set_coefficient_si); \
+ DYNSYM (isl_aff_set_constant_si); \
+ DYNSYM (isl_aff_zero_on_domain); \
+ DYNSYM (isl_band_free); \
+ DYNSYM (isl_band_get_children); \
+ DYNSYM (isl_band_get_partial_schedule); \
+ DYNSYM (isl_band_has_children); \
+ DYNSYM (isl_band_list_free); \
+ DYNSYM (isl_band_list_get_band); \
+ DYNSYM (isl_band_list_get_ctx); \
+ DYNSYM (isl_band_list_n_band); \
+ DYNSYM (isl_band_n_member); \
+ DYNSYM (isl_basic_map_add_constraint); \
+ DYNSYM (isl_basic_map_project_out); \
+ DYNSYM (isl_basic_map_universe); \
+ DYNSYM (isl_constraint_set_coefficient_si); \
+ DYNSYM (isl_constraint_set_constant_si); \
+ DYNSYM (isl_ctx_alloc); \
+ DYNSYM (isl_ctx_free); \
+ DYNSYM (isl_equality_alloc); \
+ DYNSYM (isl_id_alloc); \
+ DYNSYM (isl_id_copy); \
+ DYNSYM (isl_id_free); \
+ DYNSYM (isl_inequality_alloc); \
+ DYNSYM (isl_local_space_copy); \
+ DYNSYM (isl_local_space_free); \
+ DYNSYM (isl_local_space_from_space); \
+ DYNSYM (isl_local_space_range); \
+ DYNSYM (isl_map_add_constraint); \
+ DYNSYM (isl_map_add_dims); \
+ DYNSYM (isl_map_align_params); \
+ DYNSYM (isl_map_apply_range); \
+ DYNSYM (isl_map_copy); \
+ DYNSYM (isl_map_dim); \
+ DYNSYM (isl_map_dump); \
+ DYNSYM (isl_map_equate); \
+ DYNSYM (isl_map_fix_si); \
+ DYNSYM (isl_map_flat_product); \
+ DYNSYM (isl_map_flat_range_product); \
+ DYNSYM (isl_map_free); \
+ DYNSYM (isl_map_from_basic_map); \
+ DYNSYM (isl_map_from_pw_aff); \
+ DYNSYM (isl_map_from_union_map); \
+ DYNSYM (isl_map_get_ctx); \
+ DYNSYM (isl_map_get_space); \
+ DYNSYM (isl_map_get_tuple_id); \
+ DYNSYM (isl_map_insert_dims); \
+ DYNSYM (isl_map_intersect); \
+ DYNSYM (isl_map_intersect_domain); \
+ DYNSYM (isl_map_intersect_range); \
+ DYNSYM (isl_map_is_empty); \
+ DYNSYM (isl_map_lex_ge); \
+ DYNSYM (isl_map_lex_le); \
+ DYNSYM (isl_map_n_out); \
+ DYNSYM (isl_map_range); \
+ DYNSYM (isl_map_set_tuple_id); \
+ DYNSYM (isl_map_universe); \
+ DYNSYM (isl_options_set_on_error); \
+ DYNSYM (isl_options_set_schedule_serialize_sccs); \
+ DYNSYM (isl_printer_set_yaml_style); \
+ DYNSYM (isl_options_set_schedule_max_constant_term); \
+ DYNSYM (isl_options_set_schedule_maximize_band_depth); \
+ DYNSYM (isl_printer_free); \
+ DYNSYM (isl_printer_print_aff); \
+ DYNSYM (isl_printer_print_constraint); \
+ DYNSYM (isl_printer_print_map); \
+ DYNSYM (isl_printer_print_set); \
+ DYNSYM (isl_printer_to_file); \
+ DYNSYM (isl_pw_aff_add); \
+ DYNSYM (isl_pw_aff_alloc); \
+ DYNSYM (isl_pw_aff_copy); \
+ DYNSYM (isl_pw_aff_eq_set); \
+ DYNSYM (isl_pw_aff_free); \
+ DYNSYM (isl_pw_aff_from_aff); \
+ DYNSYM (isl_pw_aff_ge_set); \
+ DYNSYM (isl_pw_aff_gt_set); \
+ DYNSYM (isl_pw_aff_is_cst); \
+ DYNSYM (isl_pw_aff_le_set); \
+ DYNSYM (isl_pw_aff_lt_set); \
+ DYNSYM (isl_pw_aff_mul); \
+ DYNSYM (isl_pw_aff_ne_set); \
+ DYNSYM (isl_pw_aff_nonneg_set); \
+ DYNSYM (isl_pw_aff_set_tuple_id); \
+ DYNSYM (isl_pw_aff_sub); \
+ DYNSYM (isl_pw_aff_zero_set); \
+ DYNSYM (isl_schedule_free); \
+ DYNSYM (isl_schedule_get_band_forest); \
+ DYNSYM (isl_set_add_constraint); \
+ DYNSYM (isl_set_add_dims); \
+ DYNSYM (isl_set_apply); \
+ DYNSYM (isl_set_coalesce); \
+ DYNSYM (isl_set_copy); \
+ DYNSYM (isl_set_dim); \
+ DYNSYM (isl_set_fix_si); \
+ DYNSYM (isl_set_free); \
+ DYNSYM (isl_set_get_space); \
+ DYNSYM (isl_set_get_tuple_id); \
+ DYNSYM (isl_set_intersect); \
+ DYNSYM (isl_set_is_empty); \
+ DYNSYM (isl_set_n_dim); \
+ DYNSYM (isl_set_nat_universe); \
+ DYNSYM (isl_set_project_out); \
+ DYNSYM (isl_set_set_tuple_id); \
+ DYNSYM (isl_set_universe); \
+ DYNSYM (isl_space_add_dims); \
+ DYNSYM (isl_space_alloc); \
+ DYNSYM (isl_space_copy); \
+ DYNSYM (isl_space_dim); \
+ DYNSYM (isl_space_domain); \
+ DYNSYM (isl_space_find_dim_by_id); \
+ DYNSYM (isl_space_free); \
+ DYNSYM (isl_space_from_domain); \
+ DYNSYM (isl_space_get_tuple_id); \
+ DYNSYM (isl_space_params_alloc); \
+ DYNSYM (isl_space_range); \
+ DYNSYM (isl_space_set_alloc); \
+ DYNSYM (isl_space_set_dim_id); \
+ DYNSYM (isl_space_set_tuple_id); \
+ DYNSYM (isl_union_map_add_map); \
+ DYNSYM (isl_union_map_align_params); \
+ DYNSYM (isl_union_map_apply_domain); \
+ DYNSYM (isl_union_map_apply_range); \
+ DYNSYM (isl_union_map_compute_flow); \
+ DYNSYM (isl_union_map_copy); \
+ DYNSYM (isl_union_map_empty); \
+ DYNSYM (isl_union_map_flat_range_product); \
+ DYNSYM (isl_union_map_foreach_map); \
+ DYNSYM (isl_union_map_free); \
+ DYNSYM (isl_union_map_from_map); \
+ DYNSYM (isl_union_map_get_ctx); \
+ DYNSYM (isl_union_map_get_space); \
+ DYNSYM (isl_union_map_gist_domain); \
+ DYNSYM (isl_union_map_gist_range); \
+ DYNSYM (isl_union_map_intersect_domain); \
+ DYNSYM (isl_union_map_is_empty); \
+ DYNSYM (isl_union_map_subtract); \
+ DYNSYM (isl_union_map_union); \
+ DYNSYM (isl_union_set_add_set); \
+ DYNSYM (isl_union_set_compute_schedule); \
+ DYNSYM (isl_union_set_copy); \
+ DYNSYM (isl_union_set_empty); \
+ DYNSYM (isl_union_set_from_set); \
+ DYNSYM (isl_aff_add_constant_val); \
+ DYNSYM (isl_aff_get_coefficient_val); \
+ DYNSYM (isl_aff_get_ctx); \
+ DYNSYM (isl_aff_mod_val); \
+ DYNSYM (isl_ast_build_ast_from_schedule); \
+ DYNSYM (isl_ast_build_free); \
+ DYNSYM (isl_ast_build_from_context); \
+ DYNSYM (isl_ast_build_get_ctx); \
+ DYNSYM (isl_ast_build_get_schedule); \
+ DYNSYM (isl_ast_build_get_schedule_space); \
+ DYNSYM (isl_ast_build_set_before_each_for); \
+ DYNSYM (isl_ast_build_set_options); \
+ DYNSYM (isl_ast_expr_free); \
+ DYNSYM (isl_ast_expr_from_val); \
+ DYNSYM (isl_ast_expr_get_ctx); \
+ DYNSYM (isl_ast_expr_get_id); \
+ DYNSYM (isl_ast_expr_get_op_arg); \
+ DYNSYM (isl_ast_expr_get_op_n_arg); \
+ DYNSYM (isl_ast_expr_get_op_type); \
+ DYNSYM (isl_ast_expr_get_type); \
+ DYNSYM (isl_ast_expr_get_val); \
+ DYNSYM (isl_ast_expr_sub); \
+ DYNSYM (isl_ast_node_block_get_children); \
+ DYNSYM (isl_ast_node_for_get_body); \
+ DYNSYM (isl_ast_node_for_get_cond); \
+ DYNSYM (isl_ast_node_for_get_inc); \
+ DYNSYM (isl_ast_node_for_get_init); \
+ DYNSYM (isl_ast_node_for_get_iterator); \
+ DYNSYM (isl_ast_node_free); \
+ DYNSYM (isl_ast_node_get_annotation); \
+ DYNSYM (isl_ast_node_get_type); \
+ DYNSYM (isl_ast_node_if_get_cond); \
+ DYNSYM (isl_ast_node_if_get_else); \
+ DYNSYM (isl_ast_node_if_get_then); \
+ DYNSYM (isl_ast_node_list_free); \
+ DYNSYM (isl_ast_node_list_get_ast_node); \
+ DYNSYM (isl_ast_node_list_n_ast_node); \
+ DYNSYM (isl_ast_node_user_get_expr); \
+ DYNSYM (isl_constraint_set_coefficient_val); \
+ DYNSYM (isl_constraint_set_constant_val); \
+ DYNSYM (isl_id_get_user); \
+ DYNSYM (isl_local_space_get_ctx); \
+ DYNSYM (isl_map_fix_val); \
+ DYNSYM (isl_options_set_ast_build_atomic_upper_bound); \
+ DYNSYM (isl_printer_print_ast_node); \
+ DYNSYM (isl_printer_print_str); \
+ DYNSYM (isl_printer_set_output_format); \
+ DYNSYM (isl_pw_aff_mod_val); \
+ DYNSYM (isl_schedule_constraints_compute_schedule); \
+ DYNSYM (isl_schedule_constraints_on_domain); \
+ DYNSYM (isl_schedule_constraints_set_coincidence); \
+ DYNSYM (isl_schedule_constraints_set_proximity); \
+ DYNSYM (isl_schedule_constraints_set_validity); \
+ DYNSYM (isl_set_get_dim_id); \
+ DYNSYM (isl_set_max_val); \
+ DYNSYM (isl_set_min_val); \
+ DYNSYM (isl_set_params); \
+ DYNSYM (isl_space_align_params); \
+ DYNSYM (isl_space_map_from_domain_and_range); \
+ DYNSYM (isl_space_set_tuple_name); \
+ DYNSYM (isl_space_wrap); \
+ DYNSYM (isl_union_map_from_domain_and_range); \
+ DYNSYM (isl_union_map_range); \
+ DYNSYM (isl_union_set_union); \
+ DYNSYM (isl_union_set_universe); \
+ DYNSYM (isl_val_2exp); \
+ DYNSYM (isl_val_add_ui); \
+ DYNSYM (isl_val_copy); \
+ DYNSYM (isl_val_free); \
+ DYNSYM (isl_val_int_from_si); \
+ DYNSYM (isl_val_int_from_ui); \
+ DYNSYM (isl_val_mul); \
+ DYNSYM (isl_val_neg); \
+ DYNSYM (isl_val_sub); \
+ DYNSYM (isl_printer_print_union_map); \
+ DYNSYM (isl_pw_aff_get_ctx); \
+ DYNSYM (isl_val_is_int); \
+ DYNSYM (isl_ctx_get_max_operations); \
+ DYNSYM (isl_ctx_set_max_operations); \
+ DYNSYM (isl_ctx_last_error); \
+ DYNSYM (isl_ctx_reset_operations); \
+ DYNSYM (isl_map_coalesce); \
+ DYNSYM (isl_printer_print_schedule); \
+ DYNSYM (isl_set_set_dim_id); \
+ DYNSYM (isl_union_map_coalesce); \
+ DYNSYM (isl_multi_val_set_val); \
+ DYNSYM (isl_multi_val_zero); \
+ DYNSYM (isl_options_set_schedule_max_coefficient); \
+ DYNSYM (isl_options_set_tile_scale_tile_loops); \
+ DYNSYM (isl_schedule_copy); \
+ DYNSYM (isl_schedule_get_map); \
+ DYNSYM (isl_schedule_map_schedule_node_bottom_up); \
+ DYNSYM (isl_schedule_node_band_get_permutable); \
+ DYNSYM (isl_schedule_node_band_get_space); \
+ DYNSYM (isl_schedule_node_band_tile); \
+ DYNSYM (isl_schedule_node_child); \
+ DYNSYM (isl_schedule_node_free); \
+ DYNSYM (isl_schedule_node_get_child); \
+ DYNSYM (isl_schedule_node_get_ctx); \
+ DYNSYM (isl_schedule_node_get_type); \
+ DYNSYM (isl_schedule_node_n_children); \
+ DYNSYM (isl_union_map_is_equal); \
+ DYNSYM (isl_union_access_info_compute_flow); \
+ DYNSYM (isl_union_access_info_from_sink); \
+ DYNSYM (isl_union_access_info_set_may_source); \
+ DYNSYM (isl_union_access_info_set_must_source); \
+ DYNSYM (isl_union_access_info_set_schedule); \
+ DYNSYM (isl_union_flow_free); \
+ DYNSYM (isl_union_flow_get_may_dependence); \
+ DYNSYM (isl_union_flow_get_must_dependence); \
+ DYNSYM (isl_aff_var_on_domain); \
+ DYNSYM (isl_multi_aff_from_aff); \
+ DYNSYM (isl_schedule_get_ctx); \
+ DYNSYM (isl_multi_aff_set_tuple_id); \
+ DYNSYM (isl_multi_aff_dim); \
+ DYNSYM (isl_schedule_get_domain); \
+ DYNSYM (isl_union_set_is_empty); \
+ DYNSYM (isl_union_set_get_space); \
+ DYNSYM (isl_union_pw_multi_aff_empty); \
+ DYNSYM (isl_union_set_foreach_set); \
+ DYNSYM (isl_union_set_free); \
+ DYNSYM (isl_multi_union_pw_aff_from_union_pw_multi_aff); \
+ DYNSYM (isl_multi_union_pw_aff_apply_multi_aff); \
+ DYNSYM (isl_schedule_insert_partial_schedule); \
+ DYNSYM (isl_union_pw_multi_aff_free); \
+ DYNSYM (isl_pw_multi_aff_project_out_map); \
+ DYNSYM (isl_union_pw_multi_aff_add_pw_multi_aff); \
+ DYNSYM (isl_schedule_from_domain); \
+ DYNSYM (isl_schedule_sequence); \
+ DYNSYM (isl_ast_build_node_from_schedule); \
+ DYNSYM (isl_ast_node_mark_get_node); \
+ DYNSYM (isl_schedule_node_band_member_get_ast_loop_type); \
+ DYNSYM (isl_schedule_node_band_member_set_ast_loop_type); \
+ DYNSYM (isl_val_n_abs_num_chunks); \
+ DYNSYM (isl_val_get_abs_num_chunks); \
+ DYNSYM (isl_val_int_from_chunks); \
+ DYNSYM (isl_val_is_neg); \
+ DYNSYM (isl_version); \
+ DYNSYM (isl_options_get_on_error); \
+ DYNSYM (isl_ctx_reset_error);
+
+extern struct isl_pointers_s__
+{
+ bool inited;
+ void *h;
+#define DYNSYM(x) __typeof (x) *p_##x
+ DYNSYMS
+#undef DYNSYM
+} isl_pointers__;
+
+#define isl_aff_add_coefficient_si (*isl_pointers__.p_isl_aff_add_coefficient_si)
+#define isl_aff_free (*isl_pointers__.p_isl_aff_free)
+#define isl_aff_get_space (*isl_pointers__.p_isl_aff_get_space)
+#define isl_aff_set_coefficient_si (*isl_pointers__.p_isl_aff_set_coefficient_si)
+#define isl_aff_set_constant_si (*isl_pointers__.p_isl_aff_set_constant_si)
+#define isl_aff_zero_on_domain (*isl_pointers__.p_isl_aff_zero_on_domain)
+#define isl_band_free (*isl_pointers__.p_isl_band_free)
+#define isl_band_get_children (*isl_pointers__.p_isl_band_get_children)
+#define isl_band_get_partial_schedule (*isl_pointers__.p_isl_band_get_partial_schedule)
+#define isl_band_has_children (*isl_pointers__.p_isl_band_has_children)
+#define isl_band_list_free (*isl_pointers__.p_isl_band_list_free)
+#define isl_band_list_get_band (*isl_pointers__.p_isl_band_list_get_band)
+#define isl_band_list_get_ctx (*isl_pointers__.p_isl_band_list_get_ctx)
+#define isl_band_list_n_band (*isl_pointers__.p_isl_band_list_n_band)
+#define isl_band_n_member (*isl_pointers__.p_isl_band_n_member)
+#define isl_basic_map_add_constraint (*isl_pointers__.p_isl_basic_map_add_constraint)
+#define isl_basic_map_project_out (*isl_pointers__.p_isl_basic_map_project_out)
+#define isl_basic_map_universe (*isl_pointers__.p_isl_basic_map_universe)
+#define isl_constraint_set_coefficient_si (*isl_pointers__.p_isl_constraint_set_coefficient_si)
+#define isl_constraint_set_constant_si (*isl_pointers__.p_isl_constraint_set_constant_si)
+#define isl_ctx_alloc (*isl_pointers__.p_isl_ctx_alloc)
+#define isl_ctx_free (*isl_pointers__.p_isl_ctx_free)
+#define isl_equality_alloc (*isl_pointers__.p_isl_equality_alloc)
+#define isl_id_alloc (*isl_pointers__.p_isl_id_alloc)
+#define isl_id_copy (*isl_pointers__.p_isl_id_copy)
+#define isl_id_free (*isl_pointers__.p_isl_id_free)
+#define isl_inequality_alloc (*isl_pointers__.p_isl_inequality_alloc)
+#define isl_local_space_copy (*isl_pointers__.p_isl_local_space_copy)
+#define isl_local_space_free (*isl_pointers__.p_isl_local_space_free)
+#define isl_local_space_from_space (*isl_pointers__.p_isl_local_space_from_space)
+#define isl_local_space_range (*isl_pointers__.p_isl_local_space_range)
+#define isl_map_add_constraint (*isl_pointers__.p_isl_map_add_constraint)
+#define isl_map_add_dims (*isl_pointers__.p_isl_map_add_dims)
+#define isl_map_align_params (*isl_pointers__.p_isl_map_align_params)
+#define isl_map_apply_range (*isl_pointers__.p_isl_map_apply_range)
+#define isl_map_copy (*isl_pointers__.p_isl_map_copy)
+#define isl_map_dim (*isl_pointers__.p_isl_map_dim)
+#define isl_map_dump (*isl_pointers__.p_isl_map_dump)
+#define isl_map_equate (*isl_pointers__.p_isl_map_equate)
+#define isl_map_fix_si (*isl_pointers__.p_isl_map_fix_si)
+#define isl_map_flat_product (*isl_pointers__.p_isl_map_flat_product)
+#define isl_map_flat_range_product (*isl_pointers__.p_isl_map_flat_range_product)
+#define isl_map_free (*isl_pointers__.p_isl_map_free)
+#define isl_map_from_basic_map (*isl_pointers__.p_isl_map_from_basic_map)
+#define isl_map_from_pw_aff (*isl_pointers__.p_isl_map_from_pw_aff)
+#define isl_map_from_union_map (*isl_pointers__.p_isl_map_from_union_map)
+#define isl_map_get_ctx (*isl_pointers__.p_isl_map_get_ctx)
+#define isl_map_get_space (*isl_pointers__.p_isl_map_get_space)
+#define isl_map_get_tuple_id (*isl_pointers__.p_isl_map_get_tuple_id)
+#define isl_map_insert_dims (*isl_pointers__.p_isl_map_insert_dims)
+#define isl_map_intersect (*isl_pointers__.p_isl_map_intersect)
+#define isl_map_intersect_domain (*isl_pointers__.p_isl_map_intersect_domain)
+#define isl_map_intersect_range (*isl_pointers__.p_isl_map_intersect_range)
+#define isl_map_is_empty (*isl_pointers__.p_isl_map_is_empty)
+#define isl_map_lex_ge (*isl_pointers__.p_isl_map_lex_ge)
+#define isl_map_lex_le (*isl_pointers__.p_isl_map_lex_le)
+#define isl_map_n_out (*isl_pointers__.p_isl_map_n_out)
+#define isl_map_range (*isl_pointers__.p_isl_map_range)
+#define isl_map_set_tuple_id (*isl_pointers__.p_isl_map_set_tuple_id)
+#define isl_map_universe (*isl_pointers__.p_isl_map_universe)
+#define isl_options_set_on_error (*isl_pointers__.p_isl_options_set_on_error)
+#define isl_options_set_schedule_serialize_sccs (*isl_pointers__.p_isl_options_set_schedule_serialize_sccs)
+#define isl_printer_set_yaml_style (*isl_pointers__.p_isl_printer_set_yaml_style)
+#define isl_options_set_schedule_max_constant_term (*isl_pointers__.p_isl_options_set_schedule_max_constant_term)
+#define isl_options_set_schedule_maximize_band_depth (*isl_pointers__.p_isl_options_set_schedule_maximize_band_depth)
+#define isl_printer_free (*isl_pointers__.p_isl_printer_free)
+#define isl_printer_print_aff (*isl_pointers__.p_isl_printer_print_aff)
+#define isl_printer_print_constraint (*isl_pointers__.p_isl_printer_print_constraint)
+#define isl_printer_print_map (*isl_pointers__.p_isl_printer_print_map)
+#define isl_printer_print_set (*isl_pointers__.p_isl_printer_print_set)
+#define isl_printer_to_file (*isl_pointers__.p_isl_printer_to_file)
+#define isl_pw_aff_add (*isl_pointers__.p_isl_pw_aff_add)
+#define isl_pw_aff_alloc (*isl_pointers__.p_isl_pw_aff_alloc)
+#define isl_pw_aff_copy (*isl_pointers__.p_isl_pw_aff_copy)
+#define isl_pw_aff_eq_set (*isl_pointers__.p_isl_pw_aff_eq_set)
+#define isl_pw_aff_free (*isl_pointers__.p_isl_pw_aff_free)
+#define isl_pw_aff_from_aff (*isl_pointers__.p_isl_pw_aff_from_aff)
+#define isl_pw_aff_ge_set (*isl_pointers__.p_isl_pw_aff_ge_set)
+#define isl_pw_aff_gt_set (*isl_pointers__.p_isl_pw_aff_gt_set)
+#define isl_pw_aff_is_cst (*isl_pointers__.p_isl_pw_aff_is_cst)
+#define isl_pw_aff_le_set (*isl_pointers__.p_isl_pw_aff_le_set)
+#define isl_pw_aff_lt_set (*isl_pointers__.p_isl_pw_aff_lt_set)
+#define isl_pw_aff_mul (*isl_pointers__.p_isl_pw_aff_mul)
+#define isl_pw_aff_ne_set (*isl_pointers__.p_isl_pw_aff_ne_set)
+#define isl_pw_aff_nonneg_set (*isl_pointers__.p_isl_pw_aff_nonneg_set)
+#define isl_pw_aff_set_tuple_id (*isl_pointers__.p_isl_pw_aff_set_tuple_id)
+#define isl_pw_aff_sub (*isl_pointers__.p_isl_pw_aff_sub)
+#define isl_pw_aff_zero_set (*isl_pointers__.p_isl_pw_aff_zero_set)
+#define isl_schedule_free (*isl_pointers__.p_isl_schedule_free)
+#define isl_schedule_get_band_forest (*isl_pointers__.p_isl_schedule_get_band_forest)
+#define isl_set_add_constraint (*isl_pointers__.p_isl_set_add_constraint)
+#define isl_set_add_dims (*isl_pointers__.p_isl_set_add_dims)
+#define isl_set_apply (*isl_pointers__.p_isl_set_apply)
+#define isl_set_coalesce (*isl_pointers__.p_isl_set_coalesce)
+#define isl_set_copy (*isl_pointers__.p_isl_set_copy)
+#define isl_set_dim (*isl_pointers__.p_isl_set_dim)
+#define isl_set_fix_si (*isl_pointers__.p_isl_set_fix_si)
+#define isl_set_free (*isl_pointers__.p_isl_set_free)
+#define isl_set_get_space (*isl_pointers__.p_isl_set_get_space)
+#define isl_set_get_tuple_id (*isl_pointers__.p_isl_set_get_tuple_id)
+#define isl_set_intersect (*isl_pointers__.p_isl_set_intersect)
+#define isl_set_is_empty (*isl_pointers__.p_isl_set_is_empty)
+#define isl_set_n_dim (*isl_pointers__.p_isl_set_n_dim)
+#define isl_set_nat_universe (*isl_pointers__.p_isl_set_nat_universe)
+#define isl_set_project_out (*isl_pointers__.p_isl_set_project_out)
+#define isl_set_set_tuple_id (*isl_pointers__.p_isl_set_set_tuple_id)
+#define isl_set_universe (*isl_pointers__.p_isl_set_universe)
+#define isl_space_add_dims (*isl_pointers__.p_isl_space_add_dims)
+#define isl_space_alloc (*isl_pointers__.p_isl_space_alloc)
+#define isl_space_copy (*isl_pointers__.p_isl_space_copy)
+#define isl_space_dim (*isl_pointers__.p_isl_space_dim)
+#define isl_space_domain (*isl_pointers__.p_isl_space_domain)
+#define isl_space_find_dim_by_id (*isl_pointers__.p_isl_space_find_dim_by_id)
+#define isl_space_free (*isl_pointers__.p_isl_space_free)
+#define isl_space_from_domain (*isl_pointers__.p_isl_space_from_domain)
+#define isl_space_get_tuple_id (*isl_pointers__.p_isl_space_get_tuple_id)
+#define isl_space_params_alloc (*isl_pointers__.p_isl_space_params_alloc)
+#define isl_space_range (*isl_pointers__.p_isl_space_range)
+#define isl_space_set_alloc (*isl_pointers__.p_isl_space_set_alloc)
+#define isl_space_set_dim_id (*isl_pointers__.p_isl_space_set_dim_id)
+#define isl_space_set_tuple_id (*isl_pointers__.p_isl_space_set_tuple_id)
+#define isl_union_map_add_map (*isl_pointers__.p_isl_union_map_add_map)
+#define isl_union_map_align_params (*isl_pointers__.p_isl_union_map_align_params)
+#define isl_union_map_apply_domain (*isl_pointers__.p_isl_union_map_apply_domain)
+#define isl_union_map_apply_range (*isl_pointers__.p_isl_union_map_apply_range)
+#define isl_union_map_compute_flow (*isl_pointers__.p_isl_union_map_compute_flow)
+#define isl_union_map_copy (*isl_pointers__.p_isl_union_map_copy)
+#define isl_union_map_empty (*isl_pointers__.p_isl_union_map_empty)
+#define isl_union_map_flat_range_product (*isl_pointers__.p_isl_union_map_flat_range_product)
+#define isl_union_map_foreach_map (*isl_pointers__.p_isl_union_map_foreach_map)
+#define isl_union_map_free (*isl_pointers__.p_isl_union_map_free)
+#define isl_union_map_from_map (*isl_pointers__.p_isl_union_map_from_map)
+#define isl_union_map_get_ctx (*isl_pointers__.p_isl_union_map_get_ctx)
+#define isl_union_map_get_space (*isl_pointers__.p_isl_union_map_get_space)
+#define isl_union_map_gist_domain (*isl_pointers__.p_isl_union_map_gist_domain)
+#define isl_union_map_gist_range (*isl_pointers__.p_isl_union_map_gist_range)
+#define isl_union_map_intersect_domain (*isl_pointers__.p_isl_union_map_intersect_domain)
+#define isl_union_map_is_empty (*isl_pointers__.p_isl_union_map_is_empty)
+#define isl_union_map_subtract (*isl_pointers__.p_isl_union_map_subtract)
+#define isl_union_map_union (*isl_pointers__.p_isl_union_map_union)
+#define isl_union_set_add_set (*isl_pointers__.p_isl_union_set_add_set)
+#define isl_union_set_compute_schedule (*isl_pointers__.p_isl_union_set_compute_schedule)
+#define isl_union_set_copy (*isl_pointers__.p_isl_union_set_copy)
+#define isl_union_set_empty (*isl_pointers__.p_isl_union_set_empty)
+#define isl_union_set_from_set (*isl_pointers__.p_isl_union_set_from_set)
+#define isl_aff_add_constant_val (*isl_pointers__.p_isl_aff_add_constant_val)
+#define isl_aff_get_coefficient_val (*isl_pointers__.p_isl_aff_get_coefficient_val)
+#define isl_aff_get_ctx (*isl_pointers__.p_isl_aff_get_ctx)
+#define isl_aff_mod_val (*isl_pointers__.p_isl_aff_mod_val)
+#define isl_ast_build_ast_from_schedule (*isl_pointers__.p_isl_ast_build_ast_from_schedule)
+#define isl_ast_build_free (*isl_pointers__.p_isl_ast_build_free)
+#define isl_ast_build_from_context (*isl_pointers__.p_isl_ast_build_from_context)
+#define isl_ast_build_get_ctx (*isl_pointers__.p_isl_ast_build_get_ctx)
+#define isl_ast_build_get_schedule (*isl_pointers__.p_isl_ast_build_get_schedule)
+#define isl_ast_build_get_schedule_space (*isl_pointers__.p_isl_ast_build_get_schedule_space)
+#define isl_ast_build_set_before_each_for (*isl_pointers__.p_isl_ast_build_set_before_each_for)
+#define isl_ast_build_set_options (*isl_pointers__.p_isl_ast_build_set_options)
+#define isl_ast_expr_free (*isl_pointers__.p_isl_ast_expr_free)
+#define isl_ast_expr_from_val (*isl_pointers__.p_isl_ast_expr_from_val)
+#define isl_ast_expr_get_ctx (*isl_pointers__.p_isl_ast_expr_get_ctx)
+#define isl_ast_expr_get_id (*isl_pointers__.p_isl_ast_expr_get_id)
+#define isl_ast_expr_get_op_arg (*isl_pointers__.p_isl_ast_expr_get_op_arg)
+#define isl_ast_expr_get_op_n_arg (*isl_pointers__.p_isl_ast_expr_get_op_n_arg)
+#define isl_ast_expr_get_op_type (*isl_pointers__.p_isl_ast_expr_get_op_type)
+#define isl_ast_expr_get_type (*isl_pointers__.p_isl_ast_expr_get_type)
+#define isl_ast_expr_get_val (*isl_pointers__.p_isl_ast_expr_get_val)
+#define isl_ast_expr_sub (*isl_pointers__.p_isl_ast_expr_sub)
+#define isl_ast_node_block_get_children (*isl_pointers__.p_isl_ast_node_block_get_children)
+#define isl_ast_node_for_get_body (*isl_pointers__.p_isl_ast_node_for_get_body)
+#define isl_ast_node_for_get_cond (*isl_pointers__.p_isl_ast_node_for_get_cond)
+#define isl_ast_node_for_get_inc (*isl_pointers__.p_isl_ast_node_for_get_inc)
+#define isl_ast_node_for_get_init (*isl_pointers__.p_isl_ast_node_for_get_init)
+#define isl_ast_node_for_get_iterator (*isl_pointers__.p_isl_ast_node_for_get_iterator)
+#define isl_ast_node_free (*isl_pointers__.p_isl_ast_node_free)
+#define isl_ast_node_get_annotation (*isl_pointers__.p_isl_ast_node_get_annotation)
+#define isl_ast_node_get_type (*isl_pointers__.p_isl_ast_node_get_type)
+#define isl_ast_node_if_get_cond (*isl_pointers__.p_isl_ast_node_if_get_cond)
+#define isl_ast_node_if_get_else (*isl_pointers__.p_isl_ast_node_if_get_else)
+#define isl_ast_node_if_get_then (*isl_pointers__.p_isl_ast_node_if_get_then)
+#define isl_ast_node_list_free (*isl_pointers__.p_isl_ast_node_list_free)
+#define isl_ast_node_list_get_ast_node (*isl_pointers__.p_isl_ast_node_list_get_ast_node)
+#define isl_ast_node_list_n_ast_node (*isl_pointers__.p_isl_ast_node_list_n_ast_node)
+#define isl_ast_node_user_get_expr (*isl_pointers__.p_isl_ast_node_user_get_expr)
+#define isl_constraint_set_coefficient_val (*isl_pointers__.p_isl_constraint_set_coefficient_val)
+#define isl_constraint_set_constant_val (*isl_pointers__.p_isl_constraint_set_constant_val)
+#define isl_id_get_user (*isl_pointers__.p_isl_id_get_user)
+#define isl_local_space_get_ctx (*isl_pointers__.p_isl_local_space_get_ctx)
+#define isl_map_fix_val (*isl_pointers__.p_isl_map_fix_val)
+#define isl_options_set_ast_build_atomic_upper_bound (*isl_pointers__.p_isl_options_set_ast_build_atomic_upper_bound)
+#define isl_printer_print_ast_node (*isl_pointers__.p_isl_printer_print_ast_node)
+#define isl_printer_print_str (*isl_pointers__.p_isl_printer_print_str)
+#define isl_printer_set_output_format (*isl_pointers__.p_isl_printer_set_output_format)
+#define isl_pw_aff_mod_val (*isl_pointers__.p_isl_pw_aff_mod_val)
+#define isl_schedule_constraints_compute_schedule (*isl_pointers__.p_isl_schedule_constraints_compute_schedule)
+#define isl_schedule_constraints_on_domain (*isl_pointers__.p_isl_schedule_constraints_on_domain)
+#define isl_schedule_constraints_set_coincidence (*isl_pointers__.p_isl_schedule_constraints_set_coincidence)
+#define isl_schedule_constraints_set_proximity (*isl_pointers__.p_isl_schedule_constraints_set_proximity)
+#define isl_schedule_constraints_set_validity (*isl_pointers__.p_isl_schedule_constraints_set_validity)
+#define isl_set_get_dim_id (*isl_pointers__.p_isl_set_get_dim_id)
+#define isl_set_max_val (*isl_pointers__.p_isl_set_max_val)
+#define isl_set_min_val (*isl_pointers__.p_isl_set_min_val)
+#define isl_set_params (*isl_pointers__.p_isl_set_params)
+#define isl_space_align_params (*isl_pointers__.p_isl_space_align_params)
+#define isl_space_map_from_domain_and_range (*isl_pointers__.p_isl_space_map_from_domain_and_range)
+#define isl_space_set_tuple_name (*isl_pointers__.p_isl_space_set_tuple_name)
+#define isl_space_wrap (*isl_pointers__.p_isl_space_wrap)
+#define isl_union_map_from_domain_and_range (*isl_pointers__.p_isl_union_map_from_domain_and_range)
+#define isl_union_map_range (*isl_pointers__.p_isl_union_map_range)
+#define isl_union_set_union (*isl_pointers__.p_isl_union_set_union)
+#define isl_union_set_universe (*isl_pointers__.p_isl_union_set_universe)
+#define isl_val_2exp (*isl_pointers__.p_isl_val_2exp)
+#define isl_val_add_ui (*isl_pointers__.p_isl_val_add_ui)
+#define isl_val_copy (*isl_pointers__.p_isl_val_copy)
+#define isl_val_free (*isl_pointers__.p_isl_val_free)
+#define isl_val_int_from_si (*isl_pointers__.p_isl_val_int_from_si)
+#define isl_val_int_from_ui (*isl_pointers__.p_isl_val_int_from_ui)
+#define isl_val_mul (*isl_pointers__.p_isl_val_mul)
+#define isl_val_neg (*isl_pointers__.p_isl_val_neg)
+#define isl_val_sub (*isl_pointers__.p_isl_val_sub)
+#define isl_printer_print_union_map (*isl_pointers__.p_isl_printer_print_union_map)
+#define isl_pw_aff_get_ctx (*isl_pointers__.p_isl_pw_aff_get_ctx)
+#define isl_val_is_int (*isl_pointers__.p_isl_val_is_int)
+#define isl_ctx_get_max_operations (*isl_pointers__.p_isl_ctx_get_max_operations)
+#define isl_ctx_set_max_operations (*isl_pointers__.p_isl_ctx_set_max_operations)
+#define isl_ctx_last_error (*isl_pointers__.p_isl_ctx_last_error)
+#define isl_ctx_reset_operations (*isl_pointers__.p_isl_ctx_reset_operations)
+#define isl_map_coalesce (*isl_pointers__.p_isl_map_coalesce)
+#define isl_printer_print_schedule (*isl_pointers__.p_isl_printer_print_schedule)
+#define isl_set_set_dim_id (*isl_pointers__.p_isl_set_set_dim_id)
+#define isl_union_map_coalesce (*isl_pointers__.p_isl_union_map_coalesce)
+#define isl_multi_val_set_val (*isl_pointers__.p_isl_multi_val_set_val)
+#define isl_multi_val_zero (*isl_pointers__.p_isl_multi_val_zero)
+#define isl_options_set_schedule_max_coefficient (*isl_pointers__.p_isl_options_set_schedule_max_coefficient)
+#define isl_options_set_tile_scale_tile_loops (*isl_pointers__.p_isl_options_set_tile_scale_tile_loops)
+#define isl_schedule_copy (*isl_pointers__.p_isl_schedule_copy)
+#define isl_schedule_get_map (*isl_pointers__.p_isl_schedule_get_map)
+#define isl_schedule_map_schedule_node_bottom_up (*isl_pointers__.p_isl_schedule_map_schedule_node_bottom_up)
+#define isl_schedule_node_band_get_permutable (*isl_pointers__.p_isl_schedule_node_band_get_permutable)
+#define isl_schedule_node_band_get_space (*isl_pointers__.p_isl_schedule_node_band_get_space)
+#define isl_schedule_node_band_tile (*isl_pointers__.p_isl_schedule_node_band_tile)
+#define isl_schedule_node_child (*isl_pointers__.p_isl_schedule_node_child)
+#define isl_schedule_node_free (*isl_pointers__.p_isl_schedule_node_free)
+#define isl_schedule_node_get_child (*isl_pointers__.p_isl_schedule_node_get_child)
+#define isl_schedule_node_get_ctx (*isl_pointers__.p_isl_schedule_node_get_ctx)
+#define isl_schedule_node_get_type (*isl_pointers__.p_isl_schedule_node_get_type)
+#define isl_schedule_node_n_children (*isl_pointers__.p_isl_schedule_node_n_children)
+#define isl_union_map_is_equal (*isl_pointers__.p_isl_union_map_is_equal)
+#define isl_union_access_info_compute_flow (*isl_pointers__.p_isl_union_access_info_compute_flow)
+#define isl_union_access_info_from_sink (*isl_pointers__.p_isl_union_access_info_from_sink)
+#define isl_union_access_info_set_may_source (*isl_pointers__.p_isl_union_access_info_set_may_source)
+#define isl_union_access_info_set_must_source (*isl_pointers__.p_isl_union_access_info_set_must_source)
+#define isl_union_access_info_set_schedule (*isl_pointers__.p_isl_union_access_info_set_schedule)
+#define isl_union_flow_free (*isl_pointers__.p_isl_union_flow_free)
+#define isl_union_flow_get_may_dependence (*isl_pointers__.p_isl_union_flow_get_may_dependence)
+#define isl_union_flow_get_must_dependence (*isl_pointers__.p_isl_union_flow_get_must_dependence)
+#define isl_aff_var_on_domain (*isl_pointers__.p_isl_aff_var_on_domain)
+#define isl_multi_aff_from_aff (*isl_pointers__.p_isl_multi_aff_from_aff)
+#define isl_schedule_get_ctx (*isl_pointers__.p_isl_schedule_get_ctx)
+#define isl_multi_aff_set_tuple_id (*isl_pointers__.p_isl_multi_aff_set_tuple_id)
+#define isl_multi_aff_dim (*isl_pointers__.p_isl_multi_aff_dim)
+#define isl_schedule_get_domain (*isl_pointers__.p_isl_schedule_get_domain)
+#define isl_union_set_is_empty (*isl_pointers__.p_isl_union_set_is_empty)
+#define isl_union_set_get_space (*isl_pointers__.p_isl_union_set_get_space)
+#define isl_union_pw_multi_aff_empty (*isl_pointers__.p_isl_union_pw_multi_aff_empty)
+#define isl_union_set_foreach_set (*isl_pointers__.p_isl_union_set_foreach_set)
+#define isl_union_set_free (*isl_pointers__.p_isl_union_set_free)
+#define isl_multi_union_pw_aff_from_union_pw_multi_aff (*isl_pointers__.p_isl_multi_union_pw_aff_from_union_pw_multi_aff)
+#define isl_multi_union_pw_aff_apply_multi_aff (*isl_pointers__.p_isl_multi_union_pw_aff_apply_multi_aff)
+#define isl_schedule_insert_partial_schedule (*isl_pointers__.p_isl_schedule_insert_partial_schedule)
+#define isl_union_pw_multi_aff_free (*isl_pointers__.p_isl_union_pw_multi_aff_free)
+#define isl_pw_multi_aff_project_out_map (*isl_pointers__.p_isl_pw_multi_aff_project_out_map)
+#define isl_union_pw_multi_aff_add_pw_multi_aff (*isl_pointers__.p_isl_union_pw_multi_aff_add_pw_multi_aff)
+#define isl_schedule_from_domain (*isl_pointers__.p_isl_schedule_from_domain)
+#define isl_schedule_sequence (*isl_pointers__.p_isl_schedule_sequence)
+#define isl_ast_build_node_from_schedule (*isl_pointers__.p_isl_ast_build_node_from_schedule)
+#define isl_ast_node_mark_get_node (*isl_pointers__.p_isl_ast_node_mark_get_node)
+#define isl_schedule_node_band_member_get_ast_loop_type (*isl_pointers__.p_isl_schedule_node_band_member_get_ast_loop_type)
+#define isl_schedule_node_band_member_set_ast_loop_type (*isl_pointers__.p_isl_schedule_node_band_member_set_ast_loop_type)
+#define isl_val_n_abs_num_chunks (*isl_pointers__.p_isl_val_n_abs_num_chunks)
+#define isl_val_get_abs_num_chunks (*isl_pointers__.p_isl_val_get_abs_num_chunks)
+#define isl_val_int_from_chunks (*isl_pointers__.p_isl_val_int_from_chunks)
+#define isl_val_is_neg (*isl_pointers__.p_isl_val_is_neg)
+#define isl_version (*isl_pointers__.p_isl_version)
+#define isl_options_get_on_error (*isl_pointers__.p_isl_options_get_on_error)
+#define isl_ctx_reset_error (*isl_pointers__.p_isl_ctx_reset_error)
typedef struct poly_dr *poly_dr_p;
@@ -461,5 +1045,6 @@ extern void build_scops (vec<scop_p> *);
extern void dot_all_sese (FILE *, vec<sese_l> &);
extern void dot_sese (sese_l &);
extern void dot_cfg ();
+extern const char *get_isl_version (bool);
#endif
--- gcc/graphite.c.jj 2015-11-04 14:15:32.000000000 +0100
+++ gcc/graphite.c 2015-11-04 14:56:02.645536409 +0100
@@ -60,6 +60,35 @@ along with GCC; see the file COPYING3.
#include "tree-into-ssa.h"
#include "graphite.h"
+__typeof (isl_pointers__) isl_pointers__;
+
+static bool
+init_isl_pointers (void)
+{
+ void *h;
+
+ if (isl_pointers__.inited)
+ return isl_pointers__.h != NULL;
+ h = dlopen ("libisl.so.15", RTLD_LAZY);
+ isl_pointers__.h = h;
+ if (h == NULL)
+ return false;
+#define DYNSYM(x) \
+ do \
+ { \
+ union { __typeof (isl_pointers__.p_##x) p; void *q; } u; \
+ u.q = dlsym (h, #x); \
+ if (u.q == NULL) \
+ return false; \
+ isl_pointers__.p_##x = u.p; \
+ } \
+ while (0)
+ DYNSYMS
+#undef DYNSYM
+ isl_pointers__.inited = true;
+ return true;
+}
+
/* Print global statistics to FILE. */
static void
@@ -365,6 +394,15 @@ graphite_transform_loops (void)
if (parallelized_function_p (cfun->decl))
return;
+ if (number_of_loops (cfun) <= 1)
+ return;
+
+ if (!init_isl_pointers ())
+ {
+ sorry ("Graphite loop optimizations cannot be used");
+ return;
+ }
+
calculate_dominance_info (CDI_DOMINATORS);
/* We rely on post-dominators during merging of SESE regions so those
@@ -455,6 +493,14 @@ graphite_transform_loops (void)
}
}
+const char *
+get_isl_version (bool force)
+{
+ if (force)
+ init_isl_pointers ();
+ return (isl_pointers__.inited && isl_version) ? isl_version () : "none";
+}
+
#else /* If isl is not available: #ifndef HAVE_isl. */
static void
--- gcc/toplev.c.jj 2017-02-19 13:02:31.000000000 +0100
+++ gcc/toplev.c 2017-02-19 16:50:25.536301350 +0100
@@ -94,6 +94,7 @@ along with GCC; see the file COPYING3.
#ifdef HAVE_isl
#include <isl/version.h>
+extern const char *get_isl_version (bool);
#endif
static void general_init (const char *, bool);
@@ -683,7 +684,7 @@ print_version (FILE *file, const char *i
#ifndef HAVE_isl
"none"
#else
- isl_version ()
+ get_isl_version (*indent == 0)
#endif
);
if (strcmp (GCC_GMP_STRINGIFY_VERSION, gmp_version))

View File

@ -1,24 +0,0 @@
--- libstdc++-v3/doc/html/index.html.jj 2011-01-03 12:53:21.282829010 +0100
+++ libstdc++-v3/doc/html/index.html 2011-01-04 18:06:28.999851145 +0100
@@ -5,6 +5,8 @@
<a class="link" href="https://www.fsf.org" target="_top">FSF
</a>
</p><p>
+ Release 10.0.1
+ </p><p>
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
License, Version 1.2 or any later version published by the
--- libstdc++-v3/doc/html/api.html.jj 2011-01-03 12:53:21.000000000 +0100
+++ libstdc++-v3/doc/html/api.html 2011-01-04 18:12:01.672757784 +0100
@@ -20,7 +20,9 @@
member functions for the library classes, finding out what is in a
particular include file, looking at inheritance diagrams, etc.
</p><p>
- The API documentation, rendered into HTML, can be viewed online
+ The API documentation, rendered into HTML, can be viewed locally
+ <a class="link" href="api/index.html" target="_top">for the 10.0.1 release</a>,
+ online
<a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
and
<a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">

View File

@ -1,37 +0,0 @@
2010-02-08 Roland McGrath <roland@redhat.com>
* config/gnu-user.h (LINK_EH_SPEC): Pass --no-add-needed to the linker.
* config/alpha/elf.h (LINK_EH_SPEC): Likewise.
* config/ia64/linux.h (LINK_EH_SPEC): Likewise.
--- gcc/config/alpha/elf.h.jj 2011-01-03 12:52:31.118056764 +0100
+++ gcc/config/alpha/elf.h 2011-01-04 18:14:10.931874160 +0100
@@ -168,5 +168,5 @@ 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|static-pie:--eh-frame-hdr} "
+#define LINK_EH_SPEC "--no-add-needed %{!static|static-pie:--eh-frame-hdr} "
#endif
--- gcc/config/ia64/linux.h.jj 2011-01-03 13:02:11.462994522 +0100
+++ gcc/config/ia64/linux.h 2011-01-04 18:14:10.931874160 +0100
@@ -76,7 +76,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 "--no-add-needed "
#undef TARGET_INIT_LIBFUNCS
#define TARGET_INIT_LIBFUNCS ia64_soft_fp_init_libfuncs
--- gcc/config/gnu-user.h.jj 2011-01-03 12:53:03.739057299 +0100
+++ gcc/config/gnu-user.h 2011-01-04 18:14:10.932814884 +0100
@@ -106,7 +106,7 @@ see the files COPYING3 and COPYING.RUNTI
#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
#if defined(HAVE_LD_EH_FRAME_HDR)
-#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
+#define LINK_EH_SPEC "--no-add-needed %{!static|static-pie:--eh-frame-hdr} "
#endif
#define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \

View File

@ -1,30 +0,0 @@
crt files and statically linked libgcc objects cause false positives
in annobin coverage, so we add the assembler flag to generate notes
for them.
The patch also adds notes to libgcc_s.so, but this is harmless because
these notes only confer that there is no other annobin markup.
2018-07-25 Florian Weimer <fweimer@redhat.com>
* Makefile.in (LIBGCC2_CFLAGS, CRTSTUFF_CFLAGS): Add
-Wa,--generate-missing-build-notes=yes.
--- libgcc/Makefile.in 2018-01-13 13:05:41.000000000 +0100
+++ libgcc/Makefile.in 2018-07-25 13:15:02.036226940 +0200
@@ -246,6 +246,7 @@ LIBGCC2_DEBUG_CFLAGS = -g
LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \
$(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \
-fbuilding-libgcc -fno-stack-protector \
+ -Wa,--generate-missing-build-notes=yes \
$(INHIBIT_LIBC_CFLAGS)
# Additional options to use when compiling libgcc2.a.
@@ -301,6 +302,7 @@ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(IN
$(NO_PIE_CFLAGS) -finhibit-size-directive -fno-inline -fno-exceptions \
-fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
-fbuilding-libgcc -fno-stack-protector $(FORCE_EXPLICIT_EH_REGISTRY) \
+ -Wa,--generate-missing-build-notes=yes \
$(INHIBIT_LIBC_CFLAGS) $(USE_TM_CLONE_REGISTRY)
# Extra flags to use when compiling crt{begin,end}.o.

View File

@ -1,40 +0,0 @@
--- gcc/config.gcc.jj 2008-04-24 15:42:46.000000000 -0500
+++ gcc/config.gcc 2008-04-24 15:44:51.000000000 -0500
@@ -2790,7 +2790,7 @@ sparc-*-rtems*)
tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
;;
-sparc-*-linux*)
+sparc-*-linux* | sparcv9-*-linux*)
tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
extra_options="${extra_options} sparc/long-double-switch.opt"
case ${target} in
@@ -2844,7 +2844,7 @@ sparc64-*-rtems*)
extra_options="${extra_options}"
tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
;;
-sparc64-*-linux*)
+sparc64*-*-linux*)
tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h"
extra_options="${extra_options} sparc/long-double-switch.opt"
tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
--- libgcc/config.host.jj 2008-04-24 15:46:19.000000000 -0500
+++ libgcc/config.host 2008-04-24 15:46:49.000000000 -0500
@@ -1002,7 +1002,7 @@ sparc-*-elf*)
tmake_file="${tmake_file} t-fdpbit t-crtfm"
extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
;;
-sparc-*-linux*) # SPARC's running GNU/Linux, libc6
+sparc-*-linux* | sparcv9-*-linux*) # SPARC's running GNU/Linux, libc6
tmake_file="${tmake_file} t-crtfm"
if test "${host_address}" = 64; then
tmake_file="$tmake_file sparc/t-linux64"
@@ -1050,7 +1050,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
tmake_file="$tmake_file t-crtfm"
extra_parts="$extra_parts crtfastmath.o"
;;
-sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
+sparc64*-*-linux*) # 64-bit SPARC's running GNU/Linux
extra_parts="$extra_parts crtfastmath.o"
tmake_file="${tmake_file} t-crtfm sparc/t-linux"
if test "${host_address}" = 64; then

View File

@ -0,0 +1,102 @@
2007-10-02 Jakub Jelinek <jakub@redhat.com>
* decl.c (duplicate_decls): When redeclaring a builtin function,
keep the merged decl builtin whenever types match, even if new
decl defines a function.
* gcc.dg/builtins-85.c: New test.
* g++.dg/ext/builtin30.C: New test.
--- gcc/cp/decl.c.jj 2007-10-01 22:11:09.000000000 +0200
+++ gcc/cp/decl.c 2007-10-02 11:39:46.000000000 +0200
@@ -2001,23 +2001,21 @@ duplicate_decls (tree newdecl, tree oldd
DECL_ARGUMENTS (olddecl) = DECL_ARGUMENTS (newdecl);
DECL_RESULT (olddecl) = DECL_RESULT (newdecl);
}
+ /* If redeclaring a builtin function, it stays built in. */
+ if (types_match && DECL_BUILT_IN (olddecl))
+ {
+ DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl);
+ DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl);
+ /* If we're keeping the built-in definition, keep the rtl,
+ regardless of declaration matches. */
+ COPY_DECL_RTL (olddecl, newdecl);
+ }
if (new_defines_function)
/* If defining a function declared with other language
linkage, use the previously declared language linkage. */
SET_DECL_LANGUAGE (newdecl, DECL_LANGUAGE (olddecl));
else if (types_match)
{
- /* If redeclaring a builtin function, and not a definition,
- it stays built in. */
- if (DECL_BUILT_IN (olddecl))
- {
- DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl);
- DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl);
- /* If we're keeping the built-in definition, keep the rtl,
- regardless of declaration matches. */
- COPY_DECL_RTL (olddecl, newdecl);
- }
-
DECL_RESULT (newdecl) = DECL_RESULT (olddecl);
/* Don't clear out the arguments if we're just redeclaring a
function. */
--- gcc/testsuite/gcc.dg/builtins-85.c.jj 2007-10-02 11:23:51.000000000 +0200
+++ gcc/testsuite/gcc.dg/builtins-85.c 2007-10-02 11:24:12.000000000 +0200
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+typedef __SIZE_TYPE__ size_t;
+extern void __chk_fail (void);
+extern int snprintf (char *, size_t, const char *, ...);
+extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...)
+{
+ if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b)
+ __chk_fail ();
+ return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ());
+}
+extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf");
+
+char buf[10];
+
+int
+main (void)
+{
+ snprintf (buf, 10, "%d%d\n", 10, 10);
+ return 0;
+}
+
+/* { dg-final { scan-assembler "mysnprintf" } } */
+/* { dg-final { scan-assembler-not "__chk_fail" } } */
--- gcc/testsuite/g++.dg/ext/builtin30.C.jj 2007-10-02 11:19:45.000000000 +0200
+++ gcc/testsuite/g++.dg/ext/builtin30.C 2007-10-02 11:23:26.000000000 +0200
@@ -0,0 +1,27 @@
+// { dg-do compile }
+// { dg-options "-O2" }
+
+typedef __SIZE_TYPE__ size_t;
+extern "C" {
+extern void __chk_fail (void);
+extern int snprintf (char *, size_t, const char *, ...);
+extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...)
+{
+ if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b)
+ __chk_fail ();
+ return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ());
+}
+extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf");
+}
+
+char buf[10];
+
+int
+main (void)
+{
+ snprintf (buf, 10, "%d%d\n", 10, 10);
+ return 0;
+}
+
+// { dg-final { scan-assembler "mysnprintf" } }
+// { dg-final { scan-assembler-not "__chk_fail" } }

459
gcc46-cloog-dl.patch Normal file
View File

@ -0,0 +1,459 @@
2011-01-04 Jakub Jelinek <jakub@redhat.com>
* Makefile.in (BACKENDLIBS): Link against -ldl instead of
-lcloog -lppl.
(graphite.o, graphite%.o): Force -O, remove -fkeep-inline-functions.
(GRAPHITE_CLOOG_UTIL_H, GRAPHITE_POLY_H): New.
(graphite*.o): Adjust dependencies.
* graphite-cloog-compat.h: Include <dlfcn.h>. Reference libcloog and
libppl symbols through pointers in cloog_pointers__ variable.
* graphite.c (init_cloog_pointers): New function.
(graphite_transform_loops): Call init_cloog_pointers.
* graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Rename
stmt_for argument to stmt_fora.
* graphite-poly.h: Include graphite-cloog-util.h.
--- gcc/Makefile.in.jj 2011-01-03 13:44:14.163900902 +0100
+++ gcc/Makefile.in 2011-01-04 17:48:53.588775911 +0100
@@ -984,6 +984,8 @@ GCC_PLUGIN_H = gcc-plugin.h highlev-plug
PLUGIN_H = plugin.h $(GCC_PLUGIN_H)
PLUGIN_VERSION_H = plugin-version.h configargs.h
LIBFUNCS_H = libfuncs.h $(HASHTAB_H)
+GRAPHITE_CLOOG_UTIL_H = graphite-cloog-util.h graphite-cloog-compat.h
+GRAPHITE_POLY_H = graphite-poly.h $(GRAPHITE_CLOOG_UTIL_H)
#
# Now figure out from those variables how to compile and link.
@@ -1037,7 +1039,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
# and the system's installed libraries.
LIBS = @LIBS@ $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(LIBDECNUMBER) \
$(HOST_LIBS)
-BACKENDLIBS = $(CLOOGLIBS) $(PPLLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
+BACKENDLIBS = $(GMPLIBS) $(if $(CLOOGLIBS),-ldl) $(PLUGINLIBS) $(HOST_LIBS) \
$(ZLIB)
# Any system libraries needed just for GNAT.
SYSLIBS = @GNAT_LIBEXC@
@@ -2668,40 +2670,40 @@ sese.o : sese.c sese.h $(CONFIG_H) $(SYS
$(TREE_FLOW_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) tree-pass.h value-prof.h
graphite.o : graphite.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(DIAGNOSTIC_CORE_H) \
$(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h \
- $(DBGCNT_H) graphite-ppl.h graphite-poly.h graphite-scop-detection.h \
+ $(DBGCNT_H) graphite-ppl.h $(GRAPHITE_POLY_H) graphite-scop-detection.h \
graphite-clast-to-gimple.h graphite-sese-to-poly.h
graphite-blocking.o : graphite-blocking.c $(CONFIG_H) $(SYSTEM_H) \
coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
- sese.h graphite-ppl.h graphite-poly.h
+ sese.h graphite-ppl.h $(GRAPHITE_POLY_H)
graphite-clast-to-gimple.o : graphite-clast-to-gimple.c $(CONFIG_H) \
$(SYSTEM_H) coretypes.h $(DIAGNOSTIC_CORE_H) $(TREE_FLOW_H) $(TREE_DUMP_H) \
- $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h graphite-cloog-util.h \
- graphite-ppl.h graphite-poly.h graphite-clast-to-gimple.h \
+ $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h $(GRAPHITE_CLOOG_UTIL_H) \
+ graphite-ppl.h $(GRAPHITE_POLY_H) graphite-clast-to-gimple.h \
graphite-dependences.h graphite-cloog-compat.h
graphite-cloog-util.o : graphite-cloog-util.c $(CONFIG_H) $(SYSTEM_H) \
- coretypes.h graphite-cloog-util.h graphite-cloog-compat.h
+ coretypes.h $(GRAPHITE_CLOOG_UTIL_H) graphite-cloog-compat.h
graphite-dependences.o : graphite-dependences.c $(CONFIG_H) $(SYSTEM_H) \
coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
- sese.h graphite-ppl.h graphite-poly.h graphite-dependences.h \
- graphite-cloog-util.h
+ sese.h graphite-ppl.h $(GRAPHITE_POLY_H) graphite-dependences.h \
+ $(GRAPHITE_CLOOG_UTIL_H)
graphite-flattening.o : graphite-flattening.c $(CONFIG_H) $(SYSTEM_H) \
coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
- sese.h graphite-ppl.h graphite-poly.h
+ sese.h graphite-ppl.h $(GRAPHITE_POLY_H)
graphite-interchange.o : graphite-interchange.c $(CONFIG_H) $(SYSTEM_H) \
coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
- sese.h graphite-ppl.h graphite-poly.h
+ sese.h graphite-ppl.h $(GRAPHITE_POLY_H)
graphite-poly.o : graphite-poly.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(DIAGNOSTIC_CORE_H) $(TREE_FLOW_H) $(TREE_DUMP_H) gimple-pretty-print.h \
- $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h graphite-ppl.h graphite-poly.h \
- graphite-dependences.h graphite-cloog-util.h
+ $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h graphite-ppl.h $(GRAPHITE_POLY_H) \
+ graphite-dependences.h $(GRAPHITE_CLOOG_UTIL_H)
graphite-ppl.o : graphite-ppl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
- graphite-cloog-util.h graphite-ppl.h
+ $(GRAPHITE_CLOOG_UTIL_H) graphite-ppl.h
graphite-scop-detection.o : graphite-scop-detection.c $(CONFIG_H) $(SYSTEM_H) \
coretypes.h $(TREE_FLOW_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) $(TREE_PASS_H) \
- sese.h graphite-ppl.h graphite-poly.h graphite-scop-detection.h
+ sese.h graphite-ppl.h $(GRAPHITE_POLY_H) graphite-scop-detection.h
graphite-sese-to-poly.o : graphite-sese-to-poly.c $(CONFIG_H) \
$(SYSTEM_H) coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) \
- $(TREE_DATA_REF_H) domwalk.h sese.h graphite-ppl.h graphite-poly.h \
+ $(TREE_DATA_REF_H) domwalk.h sese.h graphite-ppl.h $(GRAPHITE_POLY_H) \
graphite-sese-to-poly.h
tree-vect-loop.o: tree-vect-loop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(TM_H) $(GGC_H) $(TREE_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) \
@@ -3482,6 +3484,11 @@ $(out_object_file): $(out_file) $(CONFIG
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
$(out_file) $(OUTPUT_OPTION)
+graphite%.o : \
+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
+graphite.o : \
+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
+
# Build auxiliary files that support ecoff format.
mips-tfile: mips-tfile.o version.o $(LIBDEPS)
$(LINKER) $(LINKERFLAGS) $(LDFLAGS) -o $@ \
--- gcc/graphite-cloog-compat.h.jj 2011-01-03 12:53:05.000000000 +0100
+++ gcc/graphite-cloog-compat.h 2011-01-04 17:34:09.857757544 +0100
@@ -272,4 +272,277 @@ static inline int cloog_matrix_nrows (Cl
return m->NbRows;
}
#endif /* CLOOG_ORG */
+
+#include <dlfcn.h>
+#if PPL_VERSION_MAJOR == 0 && PPL_VERSION_MINOR < 11
+#define DYNSYMS_PPL11
+#else
+#define DYNSYMS_PPL11 \
+ DYNSYM (ppl_new_PIP_Problem_from_constraints); \
+ DYNSYM (ppl_PIP_Problem_is_satisfiable); \
+ DYNSYM (ppl_delete_PIP_Problem);
+#endif
+#define DYNSYMS \
+ DYNSYM (cloog_block_alloc); \
+ DYNSYM (cloog_block_list_free); \
+ DYNSYM (cloog_block_list_malloc); \
+ DYNSYM (cloog_clast_create); \
+ DYNSYM (cloog_clast_free); \
+ DYNSYM (cloog_domain_free); \
+ DYNSYM (cloog_domain_matrix2domain); \
+ DYNSYM (cloog_initialize); \
+ DYNSYM (cloog_loop_malloc); \
+ DYNSYM (cloog_matrix_alloc); \
+ DYNSYM (cloog_matrix_copy); \
+ DYNSYM (cloog_matrix_free); \
+ DYNSYM (cloog_matrix_print); \
+ DYNSYM (cloog_names_malloc); \
+ DYNSYM (cloog_names_scalarize); \
+ DYNSYM (cloog_options_free); \
+ DYNSYM (cloog_options_malloc); \
+ DYNSYM (cloog_program_dump_cloog); \
+ DYNSYM (cloog_program_extract_scalars); \
+ DYNSYM (cloog_program_free); \
+ DYNSYM (cloog_program_generate); \
+ DYNSYM (cloog_program_malloc); \
+ DYNSYM (cloog_program_print); \
+ DYNSYM (cloog_program_scatter); \
+ DYNSYM (cloog_statement_alloc); \
+ DYNSYM (cloog_domain_union); \
+ DYNSYM (cloog_matrix_read); \
+ DYNSYM (cloog_new_pol); \
+ DYNSYM (cloog_vector_gcd); \
+ DYNSYM (ppl_finalize); \
+ DYNSYM (ppl_assign_Coefficient_from_mpz_t); \
+ DYNSYM (ppl_assign_Linear_Expression_from_Linear_Expression); \
+ DYNSYM (ppl_Coefficient_to_mpz_t); \
+ DYNSYM (ppl_Constraint_coefficient); \
+ DYNSYM (ppl_Constraint_inhomogeneous_term); \
+ DYNSYM (ppl_Constraint_space_dimension); \
+ DYNSYM (ppl_Constraint_System_begin); \
+ DYNSYM (ppl_Constraint_System_const_iterator_dereference); \
+ DYNSYM (ppl_Constraint_System_const_iterator_equal_test); \
+ DYNSYM (ppl_Constraint_System_const_iterator_increment); \
+ DYNSYM (ppl_Constraint_System_end); \
+ DYNSYM (ppl_Constraint_System_insert_Constraint); \
+ DYNSYM (ppl_Constraint_System_space_dimension); \
+ DYNSYM (ppl_Constraint_type); \
+ DYNSYM (ppl_delete_Coefficient); \
+ DYNSYM (ppl_delete_Constraint); \
+ DYNSYM (ppl_delete_Constraint_System_const_iterator); \
+ DYNSYM (ppl_delete_Linear_Expression); \
+ DYNSYM (ppl_delete_Pointset_Powerset_C_Polyhedron); \
+ DYNSYM (ppl_delete_Pointset_Powerset_C_Polyhedron_iterator); \
+ DYNSYM (ppl_delete_Polyhedron); \
+ DYNSYM (ppl_Linear_Expression_add_to_coefficient); \
+ DYNSYM (ppl_Linear_Expression_add_to_inhomogeneous); \
+ DYNSYM (ppl_Linear_Expression_coefficient); \
+ DYNSYM (ppl_Linear_Expression_inhomogeneous_term); \
+ DYNSYM (ppl_Linear_Expression_space_dimension); \
+ DYNSYM (ppl_new_Coefficient); \
+ DYNSYM (ppl_new_Coefficient_from_mpz_t); \
+ DYNSYM (ppl_new_Constraint); \
+ DYNSYM (ppl_new_Constraint_System); \
+ DYNSYM (ppl_new_Constraint_System_const_iterator); \
+ DYNSYM (ppl_new_C_Polyhedron_from_C_Polyhedron); \
+ DYNSYM (ppl_new_C_Polyhedron_from_space_dimension); \
+ DYNSYM (ppl_new_C_Polyhedron_recycle_Constraint_System); \
+ DYNSYM (ppl_new_Linear_Expression); \
+ DYNSYM (ppl_new_Linear_Expression_from_Constraint); \
+ DYNSYM (ppl_new_Linear_Expression_from_Linear_Expression); \
+ DYNSYM (ppl_new_Linear_Expression_with_dimension); \
+ DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron); \
+ DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron); \
+ DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension); \
+ DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_iterator); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_add_constraint); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_difference_assign); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_intersection_assign); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_is_empty); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_begin); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_end); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_increment); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_maximize); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_minimize); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_size); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_space_dimension); \
+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign); \
+ DYNSYM (ppl_Polyhedron_add_constraint); \
+ DYNSYM (ppl_Polyhedron_add_constraints); \
+ DYNSYM (ppl_Polyhedron_add_space_dimensions_and_embed); \
+ DYNSYM (ppl_Polyhedron_get_constraints); \
+ DYNSYM (ppl_Polyhedron_map_space_dimensions); \
+ DYNSYM (ppl_Polyhedron_remove_space_dimensions); \
+ DYNSYM (ppl_Polyhedron_space_dimension); \
+ DYNSYM (ppl_subtract_Linear_Expression_from_Linear_Expression); \
+ DYNSYM (pprint); \
+ DYNSYM (stmt_block); \
+ DYNSYM (stmt_for); \
+ DYNSYM (stmt_guard); \
+ DYNSYM (stmt_root); \
+ DYNSYM (stmt_user); \
+ DYNSYM (ppl_delete_Constraint_System); \
+ DYNSYM (ppl_initialize); \
+ DYNSYM (ppl_new_Constraint_System_from_Constraint); \
+ DYNSYM (ppl_new_C_Polyhedron_from_Constraint_System); \
+ DYNSYM (ppl_Polyhedron_affine_image); \
+ DYNSYM (ppl_io_fprint_Pointset_Powerset_C_Polyhedron); \
+ DYNSYMS_PPL11
+extern struct
+{
+ bool inited;
+ void *h;
+#define DYNSYM(x) __typeof (x) *p_##x
+ DYNSYMS
+#undef DYNSYM
+} cloog_pointers__;
+
+#define cloog_block_alloc (*cloog_pointers__.p_cloog_block_alloc)
+#define cloog_block_list_free (*cloog_pointers__.p_cloog_block_list_free)
+#define cloog_block_list_malloc (*cloog_pointers__.p_cloog_block_list_malloc)
+#define cloog_clast_create (*cloog_pointers__.p_cloog_clast_create)
+#define cloog_clast_free (*cloog_pointers__.p_cloog_clast_free)
+#define cloog_domain_free (*cloog_pointers__.p_cloog_domain_free)
+#define cloog_domain_matrix2domain (*cloog_pointers__.p_cloog_domain_matrix2domain)
+#define cloog_initialize (*cloog_pointers__.p_cloog_initialize)
+#ifndef CLOOG_ORG
+#undef cloog_loop_malloc
+#define cloog_loop_malloc(STATE) (*cloog_pointers__.p_cloog_loop_malloc) ()
+#else
+#define cloog_loop_malloc (*cloog_pointers__.p_cloog_loop_malloc)
+#endif
+#define cloog_matrix_alloc (*cloog_pointers__.p_cloog_matrix_alloc)
+#define cloog_matrix_copy (*cloog_pointers__.p_cloog_matrix_copy)
+#define cloog_matrix_free (*cloog_pointers__.p_cloog_matrix_free)
+#define cloog_matrix_print (*cloog_pointers__.p_cloog_matrix_print)
+#define cloog_names_malloc (*cloog_pointers__.p_cloog_names_malloc)
+#define cloog_names_scalarize (*cloog_pointers__.p_cloog_names_scalarize)
+#define cloog_options_free (*cloog_pointers__.p_cloog_options_free)
+#ifndef CLOOG_ORG
+#undef cloog_options_malloc
+#define cloog_options_malloc(STATE) (*cloog_pointers__.p_cloog_options_malloc) ()
+#undef cloog_program_dump_cloog
+#define cloog_program_dump_cloog(DUMPFILE, PROGRAM, SCATTERINGLIST) \
+ (*cloog_pointers__.p_cloog_program_dump_cloog) (DUMPFILE, PROGRAM)
+#undef cloog_program_extract_scalars
+#define cloog_program_extract_scalars(PROG, SCATT, OPT) \
+ (*cloog_pointers__.p_cloog_program_extract_scalars) (PROG, SCATT)
+#else
+#define cloog_options_malloc (*cloog_pointers__.p_cloog_options_malloc)
+#define cloog_program_dump_cloog (*cloog_pointers__.p_cloog_program_dump_cloog)
+#define cloog_program_extract_scalars (*cloog_pointers__.p_cloog_program_extract_scalars)
+#endif
+#define cloog_program_free (*cloog_pointers__.p_cloog_program_free)
+#define cloog_program_generate (*cloog_pointers__.p_cloog_program_generate)
+#define cloog_program_malloc (*cloog_pointers__.p_cloog_program_malloc)
+#define cloog_program_print (*cloog_pointers__.p_cloog_program_print)
+#ifndef CLOOG_ORG
+#undef cloog_program_scatter
+#define cloog_program_scatter(PROG, SCATT, OPT) \
+ (*cloog_pointers__.p_cloog_program_scatter) (PROG, SCATT)
+#undef cloog_statement_alloc
+#define cloog_statement_alloc(STATE, INDEX) \
+ (*cloog_pointers__.p_cloog_statement_alloc) (INDEX)
+#else
+#define cloog_program_scatter (*cloog_pointers__.p_cloog_program_scatter)
+#define cloog_statement_alloc (*cloog_pointers__.p_cloog_statement_alloc)
+#endif
+#define cloog_domain_union (*cloog_pointers__.p_cloog_domain_union)
+#define cloog_matrix_read (*cloog_pointers__.p_cloog_matrix_read)
+#define cloog_new_pol (*cloog_pointers__.p_cloog_new_pol)
+#define cloog_vector_gcd (*cloog_pointers__.p_cloog_vector_gcd)
+#define ppl_finalize (*cloog_pointers__.p_ppl_finalize)
+#define ppl_assign_Coefficient_from_mpz_t (*cloog_pointers__.p_ppl_assign_Coefficient_from_mpz_t)
+#define ppl_assign_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_assign_Linear_Expression_from_Linear_Expression)
+#define ppl_Coefficient_to_mpz_t (*cloog_pointers__.p_ppl_Coefficient_to_mpz_t)
+#define ppl_Constraint_coefficient (*cloog_pointers__.p_ppl_Constraint_coefficient)
+#define ppl_Constraint_inhomogeneous_term (*cloog_pointers__.p_ppl_Constraint_inhomogeneous_term)
+#define ppl_Constraint_space_dimension (*cloog_pointers__.p_ppl_Constraint_space_dimension)
+#define ppl_Constraint_System_begin (*cloog_pointers__.p_ppl_Constraint_System_begin)
+#define ppl_Constraint_System_const_iterator_dereference (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_dereference)
+#define ppl_Constraint_System_const_iterator_equal_test (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_equal_test)
+#define ppl_Constraint_System_const_iterator_increment (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_increment)
+#define ppl_Constraint_System_end (*cloog_pointers__.p_ppl_Constraint_System_end)
+#define ppl_Constraint_System_insert_Constraint (*cloog_pointers__.p_ppl_Constraint_System_insert_Constraint)
+#define ppl_Constraint_System_space_dimension (*cloog_pointers__.p_ppl_Constraint_System_space_dimension)
+#define ppl_Constraint_type (*cloog_pointers__.p_ppl_Constraint_type)
+#define ppl_delete_Coefficient (*cloog_pointers__.p_ppl_delete_Coefficient)
+#define ppl_delete_Constraint (*cloog_pointers__.p_ppl_delete_Constraint)
+#define ppl_delete_Constraint_System_const_iterator (*cloog_pointers__.p_ppl_delete_Constraint_System_const_iterator)
+#define ppl_delete_Linear_Expression (*cloog_pointers__.p_ppl_delete_Linear_Expression)
+#define ppl_delete_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_delete_Pointset_Powerset_C_Polyhedron)
+#define ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (*cloog_pointers__.p_ppl_delete_Pointset_Powerset_C_Polyhedron_iterator)
+#define ppl_delete_Polyhedron (*cloog_pointers__.p_ppl_delete_Polyhedron)
+#define ppl_Linear_Expression_add_to_coefficient (*cloog_pointers__.p_ppl_Linear_Expression_add_to_coefficient)
+#define ppl_Linear_Expression_add_to_inhomogeneous (*cloog_pointers__.p_ppl_Linear_Expression_add_to_inhomogeneous)
+#define ppl_Linear_Expression_coefficient (*cloog_pointers__.p_ppl_Linear_Expression_coefficient)
+#define ppl_Linear_Expression_inhomogeneous_term (*cloog_pointers__.p_ppl_Linear_Expression_inhomogeneous_term)
+#define ppl_Linear_Expression_space_dimension (*cloog_pointers__.p_ppl_Linear_Expression_space_dimension)
+#define ppl_new_Coefficient (*cloog_pointers__.p_ppl_new_Coefficient)
+#define ppl_new_Coefficient_from_mpz_t (*cloog_pointers__.p_ppl_new_Coefficient_from_mpz_t)
+#define ppl_new_Constraint (*cloog_pointers__.p_ppl_new_Constraint)
+#define ppl_new_Constraint_System (*cloog_pointers__.p_ppl_new_Constraint_System)
+#define ppl_new_Constraint_System_const_iterator (*cloog_pointers__.p_ppl_new_Constraint_System_const_iterator)
+#define ppl_new_C_Polyhedron_from_C_Polyhedron (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_C_Polyhedron)
+#define ppl_new_C_Polyhedron_from_space_dimension (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_space_dimension)
+#define ppl_new_C_Polyhedron_recycle_Constraint_System (*cloog_pointers__.p_ppl_new_C_Polyhedron_recycle_Constraint_System)
+#define ppl_new_Linear_Expression (*cloog_pointers__.p_ppl_new_Linear_Expression)
+#define ppl_new_Linear_Expression_from_Constraint (*cloog_pointers__.p_ppl_new_Linear_Expression_from_Constraint)
+#define ppl_new_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_new_Linear_Expression_from_Linear_Expression)
+#define ppl_new_Linear_Expression_with_dimension (*cloog_pointers__.p_ppl_new_Linear_Expression_with_dimension)
+#define ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron)
+#define ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron)
+#define ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension)
+#define ppl_new_Pointset_Powerset_C_Polyhedron_iterator (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_iterator)
+#define ppl_Pointset_Powerset_C_Polyhedron_add_constraint (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_add_constraint)
+#define ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed)
+#define ppl_Pointset_Powerset_C_Polyhedron_difference_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_difference_assign)
+#define ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_intersection_assign)
+#define ppl_Pointset_Powerset_C_Polyhedron_is_empty (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_is_empty)
+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_begin (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_begin)
+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference)
+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_end (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_end)
+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test)
+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_increment (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_increment)
+#define ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions)
+#define ppl_Pointset_Powerset_C_Polyhedron_maximize (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_maximize)
+#define ppl_Pointset_Powerset_C_Polyhedron_minimize (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_minimize)
+#define ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions)
+#define ppl_Pointset_Powerset_C_Polyhedron_size (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_size)
+#define ppl_Pointset_Powerset_C_Polyhedron_space_dimension (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_space_dimension)
+#define ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign)
+#define ppl_Polyhedron_add_constraint (*cloog_pointers__.p_ppl_Polyhedron_add_constraint)
+#define ppl_Polyhedron_add_constraints (*cloog_pointers__.p_ppl_Polyhedron_add_constraints)
+#define ppl_Polyhedron_add_space_dimensions_and_embed (*cloog_pointers__.p_ppl_Polyhedron_add_space_dimensions_and_embed)
+#define ppl_Polyhedron_get_constraints (*cloog_pointers__.p_ppl_Polyhedron_get_constraints)
+#define ppl_Polyhedron_map_space_dimensions (*cloog_pointers__.p_ppl_Polyhedron_map_space_dimensions)
+#define ppl_Polyhedron_remove_space_dimensions (*cloog_pointers__.p_ppl_Polyhedron_remove_space_dimensions)
+#define ppl_Polyhedron_space_dimension (*cloog_pointers__.p_ppl_Polyhedron_space_dimension)
+#define ppl_subtract_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_subtract_Linear_Expression_from_Linear_Expression)
+#define pprint (*cloog_pointers__.p_pprint)
+#define stmt_block (*cloog_pointers__.p_stmt_block)
+#define stmt_for (*cloog_pointers__.p_stmt_for)
+#define stmt_guard (*cloog_pointers__.p_stmt_guard)
+#define stmt_root (*cloog_pointers__.p_stmt_root)
+#define stmt_user (*cloog_pointers__.p_stmt_user)
+#define ppl_delete_Constraint_System (*cloog_pointers__.p_ppl_delete_Constraint_System)
+#define ppl_initialize (*cloog_pointers__.p_ppl_initialize)
+#define ppl_new_Constraint_System_from_Constraint (*cloog_pointers__.p_ppl_new_Constraint_System_from_Constraint)
+#define ppl_new_C_Polyhedron_from_Constraint_System (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_Constraint_System)
+#define ppl_Polyhedron_affine_image (*cloog_pointers__.p_ppl_Polyhedron_affine_image)
+#define ppl_io_fprint_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_io_fprint_Pointset_Powerset_C_Polyhedron)
+#if !(PPL_VERSION_MAJOR == 0 && PPL_VERSION_MINOR < 11)
+#define ppl_new_PIP_Problem_from_constraints (*cloog_pointers__.p_ppl_new_PIP_Problem_from_constraints)
+#define ppl_PIP_Problem_is_satisfiable (*cloog_pointers__.p_ppl_PIP_Problem_is_satisfiable)
+#define ppl_delete_PIP_Problem (*cloog_pointers__.p_ppl_delete_PIP_Problem)
+#endif
+
+#define cloog_finalize (*cloog_pointers__.p_ppl_finalize)
+
+
#endif /* GRAPHITE_CLOOG_COMPAT_H */
--- gcc/graphite.c.jj 2011-01-03 12:53:05.194056513 +0100
+++ gcc/graphite.c 2011-01-04 16:18:32.385007767 +0100
@@ -56,6 +56,35 @@ along with GCC; see the file COPYING3.
CloogState *cloog_state;
+__typeof (cloog_pointers__) cloog_pointers__;
+
+static bool
+init_cloog_pointers (void)
+{
+ void *h;
+
+ if (cloog_pointers__.inited)
+ return cloog_pointers__.h != NULL;
+ h = dlopen ("libcloog.so.0", RTLD_LAZY);
+ cloog_pointers__.h = h;
+ if (h == NULL)
+ return false;
+#define DYNSYM(x) \
+ do \
+ { \
+ union { __typeof (cloog_pointers__.p_##x) p; void *q; } u; \
+ u.q = dlsym (h, #x); \
+ if (u.q == NULL) \
+ return false; \
+ cloog_pointers__.p_##x = u.p; \
+ } \
+ while (0)
+ DYNSYMS
+#undef DYNSYM
+ return true;
+}
+
+
/* Print global statistics to FILE. */
static void
@@ -201,6 +230,12 @@ graphite_initialize (void)
return false;
}
+ if (!init_cloog_pointers ())
+ {
+ sorry ("Graphite loop optimizations cannot be used");
+ return false;
+ }
+
scev_reset ();
recompute_all_dominators ();
initialize_original_copy_tables ();
--- gcc/graphite-clast-to-gimple.c.jj 2011-01-03 12:53:05.000000000 +0100
+++ gcc/graphite-clast-to-gimple.c 2011-01-04 16:29:55.738007463 +0100
@@ -738,10 +738,10 @@ clast_get_body_of_loop (struct clast_stm
from STMT_FOR. */
static tree
-gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_for, int level,
+gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_fora, int level,
tree lb_type, tree ub_type)
{
- struct clast_stmt *stmt = (struct clast_stmt *) stmt_for;
+ struct clast_stmt *stmt = (struct clast_stmt *) stmt_fora;
struct clast_user_stmt *body = clast_get_body_of_loop (stmt);
CloogStatement *cs = body->statement;
poly_bb_p pbb = (poly_bb_p) cloog_statement_usr (cs);
--- gcc/graphite-poly.h.jj 2011-01-03 12:53:05.000000000 +0100
+++ gcc/graphite-poly.h 2011-01-04 17:35:53.308788629 +0100
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3.
#ifndef GCC_GRAPHITE_POLY_H
#define GCC_GRAPHITE_POLY_H
+#include "graphite-cloog-util.h"
+
typedef struct poly_dr *poly_dr_p;
DEF_VEC_P(poly_dr_p);
DEF_VEC_ALLOC_P (poly_dr_p, heap);

114
gcc46-hack.patch Normal file
View File

@ -0,0 +1,114 @@
--- libada/Makefile.in.jj 2009-01-14 12:07:35.000000000 +0100
+++ libada/Makefile.in 2009-01-15 14:25:33.000000000 +0100
@@ -72,18 +72,40 @@ libsubdir := $(libdir)/gcc/$(target_nonc
ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
ADA_RTS_SUBDIR=./rts$(subst /,_,$(MULTISUBDIR))
+DEFAULTMULTIFLAGS :=
+ifeq ($(MULTISUBDIR),)
+targ:=$(subst -, ,$(target))
+arch:=$(word 1,$(targ))
+ifeq ($(words $(targ)),2)
+osys:=$(word 2,$(targ))
+else
+osys:=$(word 3,$(targ))
+endif
+ifeq ($(strip $(filter-out i%86 x86_64 powerpc% ppc% s390% sparc% linux%, $(arch) $(osys))),)
+ifeq ($(shell $(CC) $(CFLAGS) -print-multi-os-directory),../lib64)
+DEFAULTMULTIFLAGS := -m64
+else
+ifeq ($(strip $(filter-out s390%, $(arch))),)
+DEFAULTMULTIFLAGS := -m31
+else
+DEFAULTMULTIFLAGS := -m32
+endif
+endif
+endif
+endif
+
# exeext should not be used because it's the *host* exeext. We're building
# a *target* library, aren't we?!? Likewise for CC. Still, provide bogus
# definitions just in case something slips through the safety net provided
# by recursive make invocations in gcc/ada/Makefile.in
LIBADA_FLAGS_TO_PASS = \
"MAKEOVERRIDES=" \
- "LDFLAGS=$(LDFLAGS)" \
+ "LDFLAGS=$(strip $(LDFLAGS) $(DEFAULTMULTIFLAGS))" \
"LN_S=$(LN_S)" \
"SHELL=$(SHELL)" \
- "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \
- "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
- "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
+ "GNATLIBFLAGS=$(strip $(GNATLIBFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS))" \
+ "GNATLIBCFLAGS=$(strip $(GNATLIBCFLAGS) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS))" \
+ "GNATLIBCFLAGS_FOR_C=$(strip $(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS) $(DEFAULTMULTIFLAGS))" \
"TARGET_LIBGCC2_CFLAGS=$(TARGET_LIBGCC2_CFLAGS)" \
"THREAD_KIND=$(THREAD_KIND)" \
"TRACE=$(TRACE)" \
@@ -94,7 +116,7 @@ LIBADA_FLAGS_TO_PASS = \
"exeext=.exeext.should.not.be.used " \
'CC=the.host.compiler.should.not.be.needed' \
"GCC_FOR_TARGET=$(CC)" \
- "CFLAGS=$(CFLAGS) $(WARN_CFLAGS)"
+ "CFLAGS=$(strip $(CFLAGS) $(DEFAULTMULTIFLAGS) $(WARN_CFLAGS))"
# Rules to build gnatlib.
.PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared osconstool
--- gcc/ada/sem_util.adb (revision 161677)
+++ gcc/ada/sem_util.adb (working copy)
@@ -2246,7 +2246,11 @@
end if;
elsif Is_Entity_Name (A2) then
+
+ -- Triggered by -Wall
+ pragma Warnings (Off);
return Denotes_Same_Prefix (A2, A1);
+ pragma Warnings (On);
elsif Nkind_In (A1, N_Selected_Component, N_Indexed_Component, N_Slice)
and then
@@ -4694,7 +4698,7 @@
Exp : Node_Id;
Assn : Node_Id;
Choice : Node_Id;
- Comp_Type : Entity_Id;
+ Comp_Type : Entity_Id := Empty;
Is_Array_Aggr : Boolean;
begin
--- config-ml.in.jj 2010-06-30 09:50:44.000000000 +0200
+++ config-ml.in 2010-07-02 21:24:17.994211151 +0200
@@ -516,6 +516,8 @@ multi-do:
ADAFLAGS="$(ADAFLAGS) $${flags}" \
prefix="$(prefix)" \
exec_prefix="$(exec_prefix)" \
+ mandir="$(mandir)" \
+ infodir="$(infodir)" \
GCJFLAGS="$(GCJFLAGS) $${flags}" \
GOCFLAGS="$(GOCFLAGS) $${flags}" \
CXXFLAGS="$(CXXFLAGS) $${flags}" \
--- libjava/Makefile.am.jj 2010-07-09 11:17:33.729604090 +0200
+++ libjava/Makefile.am 2010-07-09 13:16:41.894375641 +0200
@@ -710,7 +710,8 @@ if USE_LIBGCJ_BC
## later.
@echo Installing dummy lib libgcj_bc.so.1.0.0; \
rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
- mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
+ $(INSTALL) $(INSTALL_STRIP_FLAG) $(here)/.libs/libgcj_bc.so $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
+ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0; \
$(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
-o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
--- libjava/Makefile.in.jj 2010-07-09 11:17:34.000000000 +0200
+++ libjava/Makefile.in 2010-07-09 13:18:07.542572270 +0200
@@ -12665,7 +12665,8 @@ install-exec-hook: install-binPROGRAMS i
install-libexecsubPROGRAMS
@USE_LIBGCJ_BC_TRUE@ @echo Installing dummy lib libgcj_bc.so.1.0.0; \
@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
-@USE_LIBGCJ_BC_TRUE@ mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
+@USE_LIBGCJ_BC_TRUE@ $(INSTALL) $(INSTALL_STRIP_FLAG) $(here)/.libs/libgcj_bc.so $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
+@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0; \
@USE_LIBGCJ_BC_TRUE@ $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
@USE_LIBGCJ_BC_TRUE@ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \

61
gcc46-i386-libgomp.patch Normal file
View File

@ -0,0 +1,61 @@
Build i386.rpm libgomp and libsupc++.a(guard.o) as i486+, pre-i486
hardware isn't supported because NPTL doesn't support it anyway.
--- libgomp/configure.tgt.jj 2008-01-10 20:53:48.000000000 +0100
+++ libgomp/configure.tgt 2008-03-27 12:44:51.000000000 +0100
@@ -44,14 +44,14 @@ if test $enable_linux_futex = yes; then
;;
# Note that bare i386 is not included here. We need cmpxchg.
- i[456]86-*-linux*)
+ i[3456]86-*-linux*)
config_path="linux/x86 linux posix"
case " ${CC} ${CFLAGS} " in
*" -m64 "*)
;;
*)
if test -z "$with_arch"; then
- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
fi
esac
;;
@@ -63,7 +63,7 @@ if test $enable_linux_futex = yes; then
config_path="linux/x86 linux posix"
case " ${CC} ${CFLAGS} " in
*" -m32 "*)
- XCFLAGS="${XCFLAGS} -march=i486 -mtune=i686"
+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
;;
esac
;;
--- libstdc++-v3/libsupc++/guard.cc.jj 2008-03-01 00:58:24.000000000 +0100
+++ libstdc++-v3/libsupc++/guard.cc 2008-03-27 14:08:44.000000000 +0100
@@ -35,6 +35,27 @@
#include <new>
#include <ext/atomicity.h>
#include <ext/concurrence.h>
+#if defined __i386__ && !defined _GLIBCXX_ATOMIC_BUILTINS_4
+# define _GLIBCXX_ATOMIC_BUILTINS_4 1
+# define __sync_val_compare_and_swap(a, b, c) \
+ ({ \
+ typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1]; \
+ int sltas; \
+ __asm __volatile ("lock; cmpxchgl %3, (%1)" \
+ : "=a" (sltas) \
+ : "r" (a), "0" (b), "r" (c) : "memory"); \
+ sltas; \
+ })
+# define __sync_lock_test_and_set(a, b) \
+ ({ \
+ typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1]; \
+ int sltas; \
+ __asm __volatile ("xchgl (%1), %0" \
+ : "=r" (sltas) \
+ : "r" (a), "0" (b) : "memory"); \
+ sltas; \
+ })
+#endif
#if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \
&& defined(_GLIBCXX_ATOMIC_BUILTINS_4) && defined(_GLIBCXX_HAVE_LINUX_FUTEX)
# include <climits>

44
gcc46-java-nomulti.patch Normal file
View File

@ -0,0 +1,44 @@
--- 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
@@ -1021,6 +1021,8 @@ Optional Features:
default=yes
--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
@@ -1973,6 +1975,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.

View File

@ -0,0 +1,36 @@
--- libstdc++-v3/doc/html/index.html.jj 2011-01-03 12:53:21.282829010 +0100
+++ libstdc++-v3/doc/html/index.html 2011-01-04 18:06:28.999851145 +0100
@@ -12,7 +12,8 @@
<div>
<h1>The GNU C++ Library Documentation</h1>
-<p>Copyright 2008, 2009 FSF</p>
+<p>Release 4.6.0</p>
+<p>Copyright 2008, 2009, 2010, 2011 FSF</p>
<p>
Permission is granted to copy, distribute and/or modify this
--- libstdc++-v3/doc/html/api.html.jj 2011-01-03 12:53:21.000000000 +0100
+++ libstdc++-v3/doc/html/api.html 2011-01-04 18:12:01.672757784 +0100
@@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>The GNU C++ Library API Reference</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><link rel="home" href="spine.html" title="The GNU C++ Library"/><link rel="up" href="bk02.html" title=""/><link rel="prev" href="bk02.html" title=""/><link rel="next" href="bk03.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library API Reference</th></tr><tr><td align="left"><a accesskey="p" href="bk02.html">Prev</a> </td><th width="60%" align="center"/><td align="right"> <a accesskey="n" href="bk03.html">Next</a></td></tr></table><hr/></div><div class="article" title="The GNU C++ Library API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="api"/>The GNU C++ Library API Reference</h2></div><div><p class="copyright">Copyright ©
2008
,
- 2010
+ 2010, 2011
<a class="link" href="http://www.fsf.org/">FSF
</a>
@@ -19,8 +19,11 @@
member functions for the library classes, finding out what is in a
particular include file, looking at inheritance diagrams, etc.
</p><p>
- The API documentation, rendered into HTML, can be viewed online:
+ The API documentation, rendered into HTML, can be viewed here:
</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>
+ <a class="ulink" href="api/index.html">for the 4.6 release, local
+ </a>
+ </p></li><li class="listitem"><p>
<a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/index.html">for the 3.4 release
</a>
</p></li><li class="listitem"><p>

52
gcc46-no-add-needed.patch Normal file
View File

@ -0,0 +1,52 @@
2010-02-08 Roland McGrath <roland@redhat.com>
* config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the
linker.
* config/gnu-user.h (LINK_EH_SPEC): Likewise.
* config/alpha/elf.h (LINK_EH_SPEC): Likewise.
* config/ia64/linux.h (LINK_EH_SPEC): Likewise.
--- gcc/config/alpha/elf.h.jj 2011-01-03 12:52:31.118056764 +0100
+++ gcc/config/alpha/elf.h 2011-01-04 18:14:10.931874160 +0100
@@ -438,7 +438,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 "--no-add-needed %{!static:--eh-frame-hdr} "
#endif
/* A C statement (sans semicolon) to output to the stdio stream STREAM
--- gcc/config/ia64/linux.h.jj 2011-01-03 13:02:11.462994522 +0100
+++ gcc/config/ia64/linux.h 2011-01-04 18:14:10.931874160 +0100
@@ -82,7 +82,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 "--no-add-needed "
#define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
--- gcc/config/gnu-user.h.jj 2011-01-03 12:53:03.739057299 +0100
+++ gcc/config/gnu-user.h 2011-01-04 18:14:10.932814884 +0100
@@ -82,7 +82,7 @@ see the files COPYING3 and COPYING.RUNTI
#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
#if defined(HAVE_LD_EH_FRAME_HDR)
-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
+#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
#endif
#undef LINK_GCC_C_SEQUENCE_SPEC
--- gcc/config/rs6000/sysv4.h.jj 2011-01-03 13:02:18.255994215 +0100
+++ gcc/config/rs6000/sysv4.h 2011-01-04 18:14:10.933888871 +0100
@@ -869,7 +869,7 @@ extern int fixuplabelno;
-dynamic-linker " LINUX_DYNAMIC_LINKER "}}"
#if defined(HAVE_LD_EH_FRAME_HDR)
-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
+# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
#endif
#define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \

86
gcc46-ppc32-retaddr.patch Normal file
View File

@ -0,0 +1,86 @@
2005-11-28 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/rs6000.c (rs6000_return_addr): If COUNT == 0,
read word RETURN_ADDRESS_OFFSET bytes above arg_pointer_rtx
instead of doing an extran indirection from frame_pointer_rtx.
* gcc.dg/20051128-1.c: New test.
--- gcc/config/rs6000/rs6000.c.jj 2005-11-26 14:38:01.000000000 +0100
+++ gcc/config/rs6000/rs6000.c 2005-11-28 20:32:18.000000000 +0100
@@ -13166,17 +13166,22 @@ rs6000_return_addr (int count, rtx frame
don't try to be too clever here. */
if (count != 0 || (DEFAULT_ABI != ABI_AIX && flag_pic))
{
+ rtx x;
cfun->machine->ra_needs_full_frame = 1;
- return
- gen_rtx_MEM
- (Pmode,
- memory_address
- (Pmode,
- plus_constant (copy_to_reg
- (gen_rtx_MEM (Pmode,
- memory_address (Pmode, frame))),
- RETURN_ADDRESS_OFFSET)));
+ if (count == 0)
+ {
+ gcc_assert (frame == frame_pointer_rtx);
+ x = arg_pointer_rtx;
+ }
+ else
+ {
+ x = memory_address (Pmode, frame);
+ x = copy_to_reg (gen_rtx_MEM (Pmode, x));
+ }
+
+ x = plus_constant (x, RETURN_ADDRESS_OFFSET);
+ return gen_rtx_MEM (Pmode, memory_address (Pmode, x));
}
cfun->machine->ra_need_lr = 1;
--- gcc/testsuite/gcc.dg/20051128-1.c.jj 2005-10-10 11:21:41.096999000 +0200
+++ gcc/testsuite/gcc.dg/20051128-1.c 2005-11-28 12:30:57.000000000 +0100
@@ -0,0 +1,41 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -fpic" } */
+
+extern void exit (int);
+extern void abort (void);
+
+int b;
+
+struct A
+{
+ void *pad[147];
+ void *ra, *h;
+ long o;
+};
+
+void
+__attribute__((noinline))
+foo (struct A *a, void *x)
+{
+ __builtin_memset (a, 0, sizeof (a));
+ if (!b)
+ exit (0);
+}
+
+void
+__attribute__((noinline))
+bar (void)
+{
+ struct A a;
+
+ __builtin_unwind_init ();
+ foo (&a, __builtin_return_address (0));
+}
+
+int
+main (void)
+{
+ bar ();
+ abort ();
+ return 0;
+}

121
gcc46-ppl-0.10.patch Normal file
View File

@ -0,0 +1,121 @@
2011-01-28 Jakub Jelinek <jakub@redhat.com>
Revert:
2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
* configure: Regenerated.
* configure.ac: Check for version 0.11 (or later revision) of PPL.
gcc/
* doc/install.texi: Update the expected version number of PPL to 0.11.
* graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
#if PPL_VERSION_MINOR < 11.
--- gcc/doc/install.texi (revision 169207)
+++ gcc/doc/install.texi (revision 169206)
@@ -332,7 +332,7 @@ and @option{--with-mpc-include}. Altern
distribution is found in a subdirectory of your GCC sources named
@file{mpc}, it will be built together with GCC@.
-@item Parma Polyhedra Library (PPL) version 0.11
+@item Parma Polyhedra Library (PPL) version 0.10
Necessary to build GCC with the Graphite loop optimizations.
It can be downloaded from @uref{http://www.cs.unipr.it/ppl/Download/}.
--- gcc/graphite-ppl.c (revision 169207)
+++ gcc/graphite-ppl.c (revision 169206)
@@ -521,6 +521,15 @@ debug_gmp_value (mpz_t val)
bool
ppl_powerset_is_empty (ppl_Pointset_Powerset_C_Polyhedron_t ps)
{
+#if PPL_VERSION_MAJOR == 0 && PPL_VERSION_MINOR < 11
+ /* On PPL 0.10,
+ ppl_Pointset_Powerset_C_Polyhedron_contains_integer_point (ps)
+ takes too long on some cases and so we call _is_empty instead. */
+ return ppl_Pointset_Powerset_C_Polyhedron_is_empty (ps);
+
+#else
+ /* On PPL 0.11 or later, we can check for integer feasibility using
+ the PIP solver. */
ppl_PIP_Problem_t pip;
ppl_dimension_type d;
ppl_const_Constraint_System_t pcs;
@@ -561,6 +570,7 @@ ppl_powerset_is_empty (ppl_Pointset_Powe
ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (end);
return !has_integer_solutions;
+#endif
}
#endif
--- configure.ac (revision 169207)
+++ configure.ac (revision 169206)
@@ -1688,9 +1688,9 @@ if test "x$with_ppl" != xno; then
if test "$enable_ppl_version_check" != no; then
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $pplinc $gmpinc"
- AC_MSG_CHECKING([for version 0.11 (revision 0 or later) of PPL])
+ AC_MSG_CHECKING([for version 0.10 (revision 0 or later) of PPL])
AC_TRY_COMPILE([#include "ppl_c.h"],[
- #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
+ #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 10
choke me
#endif
], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ; with_ppl=no ])
--- configure (revision 169207)
+++ configure (revision 169206)
@@ -5775,8 +5775,8 @@ fi
if test "$enable_ppl_version_check" != no; then
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $pplinc $gmpinc"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.11 (revision 0 or later) of PPL" >&5
-$as_echo_n "checking for version 0.11 (revision 0 or later) of PPL... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.10 (revision 0 or later) of PPL" >&5
+$as_echo_n "checking for version 0.10 (revision 0 or later) of PPL... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include "ppl_c.h"
@@ -5784,7 +5784,7 @@ int
main ()
{
- #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
+ #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 10
choke me
#endif
--- gcc/testsuite/gcc.dg/graphite/interchange-11.c.jj 2011-01-28 09:38:11.000000000 +0100
+++ gcc/testsuite/gcc.dg/graphite/interchange-11.c 2011-01-28 11:06:56.461429848 +0100
@@ -46,5 +46,5 @@ main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
+/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */
/* { dg-final { cleanup-tree-dump "graphite" } } */
--- gcc/testsuite/gcc.dg/graphite/interchange-13.c.jj 2011-01-28 09:38:12.000000000 +0100
+++ gcc/testsuite/gcc.dg/graphite/interchange-13.c 2011-01-28 11:07:08.182429223 +0100
@@ -50,5 +50,5 @@ main (void)
}
-/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
+/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */
/* { dg-final { cleanup-tree-dump "graphite" } } */
--- gcc/testsuite/gcc.dg/graphite/interchange-1.c.jj 2011-01-28 09:38:13.000000000 +0100
+++ gcc/testsuite/gcc.dg/graphite/interchange-1.c 2011-01-28 11:06:42.160429193 +0100
@@ -49,5 +49,5 @@ main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } } */
+/* { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } } */
/* { dg-final { cleanup-tree-dump "graphite" } } */
--- gcc/testsuite/gfortran.dg/graphite/interchange-3.f90.jj 2011-01-28 09:38:05.000000000 +0100
+++ gcc/testsuite/gfortran.dg/graphite/interchange-3.f90 2011-01-28 11:07:46.313420441 +0100
@@ -24,5 +24,5 @@ Program FOO
end Program FOO
-! { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" } }
+! { dg-final { scan-tree-dump-times "will be interchanged" 1 "graphite" { xfail *-*-* } } }
! { dg-final { cleanup-tree-dump "graphite" } }

153
gcc46-pr33763.patch Normal file
View File

@ -0,0 +1,153 @@
2007-11-06 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/33763
* gcc.dg/pr33763.c: New test.
* g++.dg/opt/inline13.C: New test.
2007-11-06 Jan Hubicka <jh@suse.cz>
PR tree-optimization/33763
* tree-inline.c (expand_call_inline): Silently ignore always_inline
attribute for redefined extern inline functions.
--- gcc/tree-inline.c.jj 2007-11-06 09:29:04.000000000 +0100
+++ gcc/tree-inline.c 2007-11-06 16:19:12.000000000 +0100
@@ -3157,6 +3157,12 @@ expand_call_inline (basic_block bb, gimp
goto egress;
if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn))
+ /* For extern inline functions that get redefined we always
+ silently ignored alway_inline flag. Better behaviour would
+ be to be able to keep both bodies and use extern inline body
+ for inlining, but we can't do that because frontends overwrite
+ the body. */
+ && !cg_edge->callee->local.redefined_extern_inline
/* Avoid warnings during early inline pass. */
&& cgraph_global_info_ready)
{
--- gcc/testsuite/gcc.dg/pr33763.c.jj 2007-11-06 16:19:12.000000000 +0100
+++ gcc/testsuite/gcc.dg/pr33763.c 2007-11-06 16:19:12.000000000 +0100
@@ -0,0 +1,60 @@
+/* PR tree-optimization/33763 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+typedef struct
+{
+ void *a;
+ void *b;
+} T;
+extern void *foo (const char *, const char *);
+extern void *bar (void *, const char *, T);
+extern int baz (const char *, int);
+
+extern inline __attribute__ ((always_inline, gnu_inline)) int
+baz (const char *x, int y)
+{
+ return 2;
+}
+
+int
+baz (const char *x, int y)
+{
+ return 1;
+}
+
+int xa, xb;
+
+static void *
+inl (const char *x, const char *y)
+{
+ T t = { &xa, &xb };
+ int *f = (int *) __builtin_malloc (sizeof (int));
+ const char *z;
+ int o = 0;
+ void *r = 0;
+
+ for (z = y; *z; z++)
+ {
+ if (*z == 'r')
+ o |= 1;
+ if (*z == 'w')
+ o |= 2;
+ }
+ if (o == 1)
+ *f = baz (x, 0);
+ if (o == 2)
+ *f = baz (x, 1);
+ if (o == 3)
+ *f = baz (x, 2);
+
+ if (o && *f > 0)
+ r = bar (f, "w", t);
+ return r;
+}
+
+void *
+foo (const char *x, const char *y)
+{
+ return inl (x, y);
+}
--- gcc/testsuite/g++.dg/opt/inline13.C.jj 2007-11-06 16:20:20.000000000 +0100
+++ gcc/testsuite/g++.dg/opt/inline13.C 2007-11-06 16:21:30.000000000 +0100
@@ -0,0 +1,60 @@
+// PR tree-optimization/33763
+// { dg-do compile }
+// { dg-options "-O2" }
+
+typedef struct
+{
+ void *a;
+ void *b;
+} T;
+extern void *foo (const char *, const char *);
+extern void *bar (void *, const char *, T);
+extern int baz (const char *, int);
+
+extern inline __attribute__ ((always_inline, gnu_inline)) int
+baz (const char *x, int y)
+{
+ return 2;
+}
+
+int
+baz (const char *x, int y)
+{
+ return 1;
+}
+
+int xa, xb;
+
+static void *
+inl (const char *x, const char *y)
+{
+ T t = { &xa, &xb };
+ int *f = (int *) __builtin_malloc (sizeof (int));
+ const char *z;
+ int o = 0;
+ void *r = 0;
+
+ for (z = y; *z; z++)
+ {
+ if (*z == 'r')
+ o |= 1;
+ if (*z == 'w')
+ o |= 2;
+ }
+ if (o == 1)
+ *f = baz (x, 0);
+ if (o == 2)
+ *f = baz (x, 1);
+ if (o == 3)
+ *f = baz (x, 2);
+
+ if (o && *f > 0)
+ r = bar (f, "w", t);
+ return r;
+}
+
+void *
+foo (const char *x, const char *y)
+{
+ return inl (x, y);
+}

105
gcc46-pr38757.patch Normal file
View File

@ -0,0 +1,105 @@
2009-03-18 Jakub Jelinek <jakub@redhat.com>
PR debug/38757
* langhooks.h (struct lang_hooks): Add source_language langhook.
* langhooks-def.h (LANG_HOOKS_SOURCE_LANGUAGE): Define to NULL.
(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_SOURCE_LANGUAGE.
* c-lang.c (c_source_language): New function.
(LANG_HOOKS_SOURCE_LANGUAGE): Define.
* dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
also for DW_LANG_{C,C99,ObjC}.
(gen_compile_unit_die): Use lang_hooks.source_language () to
determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
--- gcc/langhooks.h.jj 2011-01-03 12:53:05.125745450 +0100
+++ gcc/langhooks.h 2011-01-04 17:59:43.166744926 +0100
@@ -467,6 +467,10 @@ struct lang_hooks
gimplification. */
bool deep_unsharing;
+ /* Return year of the source language standard version if the FE supports
+ multiple versions of the standard. */
+ int (*source_language) (void);
+
/* Whenever you add entries here, make sure you adjust langhooks-def.h
and langhooks.c accordingly. */
};
--- gcc/langhooks-def.h.jj 2011-01-03 12:53:05.000000000 +0100
+++ gcc/langhooks-def.h 2011-01-04 18:00:44.858851030 +0100
@@ -118,6 +118,7 @@ extern void lhd_omp_firstprivatize_type_
#define LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS NULL
#define LANG_HOOKS_EH_USE_CXA_END_CLEANUP false
#define LANG_HOOKS_DEEP_UNSHARING false
+#define LANG_HOOKS_SOURCE_LANGUAGE NULL
/* Attribute hooks. */
#define LANG_HOOKS_ATTRIBUTE_TABLE NULL
@@ -307,7 +308,8 @@ extern void lhd_end_section (void);
LANG_HOOKS_EH_RUNTIME_TYPE, \
LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS, \
LANG_HOOKS_EH_USE_CXA_END_CLEANUP, \
- LANG_HOOKS_DEEP_UNSHARING \
+ LANG_HOOKS_DEEP_UNSHARING, \
+ LANG_HOOKS_SOURCE_LANGUAGE \
}
#endif /* GCC_LANG_HOOKS_DEF_H */
--- gcc/c-lang.c.jj 2011-01-03 12:53:05.376056936 +0100
+++ gcc/c-lang.c 2011-01-04 17:59:43.167743798 +0100
@@ -36,6 +36,12 @@ along with GCC; see the file COPYING3.
enum c_language_kind c_language = clk_c;
+static int
+c_source_language (void)
+{
+ return flag_isoc99 ? 1999 : 1989;
+}
+
/* Lang hooks common to C and ObjC are declared in c-objc-common.h;
consequently, there should be very few hooks below. */
@@ -43,6 +49,8 @@ enum c_language_kind c_language = clk_c;
#define LANG_HOOKS_NAME "GNU C"
#undef LANG_HOOKS_INIT
#define LANG_HOOKS_INIT c_objc_common_init
+#undef LANG_HOOKS_SOURCE_LANGUAGE
+#define LANG_HOOKS_SOURCE_LANGUAGE c_source_language
/* Each front end provides its own lang hook initializer. */
struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
--- gcc/dwarf2out.c.jj 2011-01-03 12:53:05.102056475 +0100
+++ gcc/dwarf2out.c 2011-01-04 18:03:14.534151763 +0100
@@ -17650,9 +17650,18 @@ add_bit_size_attribute (dw_die_ref die,
static inline void
add_prototyped_attribute (dw_die_ref die, tree func_type)
{
- if (get_AT_unsigned (comp_unit_die (), DW_AT_language) == DW_LANG_C89
- && prototype_p (func_type))
- add_AT_flag (die, DW_AT_prototyped, 1);
+ switch (get_AT_unsigned (comp_unit_die (), DW_AT_language))
+ {
+ case DW_LANG_C:
+ case DW_LANG_C89:
+ case DW_LANG_C99:
+ case DW_LANG_ObjC:
+ if (prototype_p (func_type) != NULL)
+ add_AT_flag (die, DW_AT_prototyped, 1);
+ break;
+ default:
+ break;
+ }
}
/* Add an 'abstract_origin' attribute below a given DIE. The DIE is found
@@ -19875,6 +19884,10 @@ gen_compile_unit_die (const char *filena
language = DW_LANG_ObjC;
else if (strcmp (language_string, "GNU Objective-C++") == 0)
language = DW_LANG_ObjC_plus_plus;
+ else if (strcmp (language_string, "GNU C") == 0
+ && lang_hooks.source_language
+ && lang_hooks.source_language () >= 1999)
+ language = DW_LANG_C99;
}
add_AT_unsigned (die, DW_AT_language, language);

23
gcc46-pr47858.patch Normal file
View File

@ -0,0 +1,23 @@
2011-03-01 Jakub Jelinek <jakub@redhat.com>
PR debug/47858
* opts.c (default_options_table): Enable -fipa-sra by default
only for -O3, not for -O2 and -Os.
--- gcc/opts.c.jj 2011-02-20 08:36:59.888390890 +0100
+++ gcc/opts.c 2011-03-01 12:04:38.680558351 +0100
@@ -487,13 +487,13 @@ static const struct default_options defa
{ OPT_LEVELS_2_PLUS, OPT_ftree_switch_conversion, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_fipa_cp, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_fdevirtualize, NULL, 1 },
- { OPT_LEVELS_2_PLUS, OPT_fipa_sra, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_falign_loops, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_falign_jumps, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_falign_labels, NULL, 1 },
{ OPT_LEVELS_2_PLUS, OPT_falign_functions, NULL, 1 },
/* -O3 optimizations. */
+ { OPT_LEVELS_3_PLUS, OPT_fipa_sra, NULL, 1 },
{ OPT_LEVELS_3_PLUS, OPT_ftree_loop_distribute_patterns, NULL, 1 },
{ OPT_LEVELS_3_PLUS, OPT_fpredictive_commoning, NULL, 1 },
/* Inlining of functions reducing size is a good idea with -Os

155
gcc46-pr50299.patch Normal file
View File

@ -0,0 +1,155 @@
2011-09-06 Jakub Jelinek <jakub@redhat.com>
PR debug/50299
* calls.c (load_register_parameters): Use use_reg_mode instead
of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
entry.
(expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
for stack CALL_INSN_FUNCTION_USAGE uses.
* expr.h (use_reg_mode): New prototype.
(use_reg): Changed into inline around use_reg_mode.
* expr.c (use_reg): Renamed to...
(use_reg_mode): ... this. Added MODE argument, set EXPR_LIST
mode to that mode instead of VOIDmode.
* var-tracking.c (prepare_call_arguments): Don't track parameters
whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
to it using lowpart_subreg. Convert VALUE and REG/MEM to the
EXPR_LIST mode.
--- gcc/calls.c.jj 2011-08-22 08:17:07.000000000 +0200
+++ gcc/calls.c 2011-09-05 19:47:47.000000000 +0200
@@ -1756,7 +1756,8 @@ load_register_parameters (struct arg_dat
if (GET_CODE (reg) == PARALLEL)
use_group_regs (call_fusage, reg);
else if (nregs == -1)
- use_reg (call_fusage, reg);
+ use_reg_mode (call_fusage, reg,
+ TYPE_MODE (TREE_TYPE (args[i].tree_value)));
else if (nregs > 0)
use_regs (call_fusage, REGNO (reg), nregs);
}
@@ -2815,10 +2816,10 @@ expand_call (tree exp, rtx target, int i
}
if (args[i].stack)
- call_fusage = gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_USE (VOIDmode,
- args[i].stack),
- call_fusage);
+ call_fusage
+ = gen_rtx_EXPR_LIST (TYPE_MODE (TREE_TYPE (args[i].tree_value)),
+ gen_rtx_USE (VOIDmode, args[i].stack),
+ call_fusage);
}
/* If we have a parm that is passed in registers but not in memory
--- gcc/expr.h.jj 2011-07-27 23:25:36.000000000 +0200
+++ gcc/expr.h 2011-09-05 18:05:31.000000000 +0200
@@ -321,8 +321,16 @@ extern void emit_group_store (rtx, rtx,
/* Copy BLKmode object from a set of registers. */
extern rtx copy_blkmode_from_reg (rtx, rtx, tree);
+/* Mark REG as holding a parameter for the next CALL_INSN.
+ Mode is TYPE_MODE of the non-promoted parameter, or VOIDmode. */
+extern void use_reg_mode (rtx *, rtx, enum machine_mode);
+
/* Mark REG as holding a parameter for the next CALL_INSN. */
-extern void use_reg (rtx *, rtx);
+static inline void
+use_reg (rtx *fusage, rtx reg)
+{
+ use_reg_mode (fusage, reg, VOIDmode);
+}
/* Mark NREGS consecutive regs, starting at REGNO, as holding parameters
for the next CALL_INSN. */
--- gcc/expr.c.jj 2011-09-02 16:29:39.000000000 +0200
+++ gcc/expr.c 2011-09-05 19:47:32.000000000 +0200
@@ -2184,13 +2184,12 @@ copy_blkmode_from_reg (rtx tgtblk, rtx s
to by CALL_FUSAGE. REG must denote a hard register. */
void
-use_reg (rtx *call_fusage, rtx reg)
+use_reg_mode (rtx *call_fusage, rtx reg, enum machine_mode mode)
{
gcc_assert (REG_P (reg) && REGNO (reg) < FIRST_PSEUDO_REGISTER);
*call_fusage
- = gen_rtx_EXPR_LIST (VOIDmode,
- gen_rtx_USE (VOIDmode, reg), *call_fusage);
+ = gen_rtx_EXPR_LIST (mode, gen_rtx_USE (VOIDmode, reg), *call_fusage);
}
/* Add USE expressions to *CALL_FUSAGE for each of NREGS consecutive regs,
--- gcc/var-tracking.c.jj 2011-08-30 10:52:41.000000000 +0200
+++ gcc/var-tracking.c 2011-09-05 19:48:10.000000000 +0200
@@ -5730,11 +5730,18 @@ prepare_call_arguments (basic_block bb,
{
rtx item = NULL_RTX;
x = XEXP (XEXP (link, 0), 0);
- if (REG_P (x))
+ if (GET_MODE (link) == VOIDmode
+ || GET_MODE (link) == BLKmode
+ || (GET_MODE (link) != GET_MODE (x)
+ && (GET_MODE_CLASS (GET_MODE (link)) != MODE_INT
+ || GET_MODE_CLASS (GET_MODE (x)) != MODE_INT)))
+ /* Can't do anything for these, if the original type mode
+ isn't known or can't be converted. */;
+ else if (REG_P (x))
{
cselib_val *val = cselib_lookup (x, GET_MODE (x), 0, VOIDmode);
if (val && cselib_preserved_value_p (val))
- item = gen_rtx_CONCAT (GET_MODE (x), x, val->val_rtx);
+ item = val->val_rtx;
else if (GET_MODE_CLASS (GET_MODE (x)) == MODE_INT)
{
enum machine_mode mode = GET_MODE (x);
@@ -5749,10 +5756,7 @@ prepare_call_arguments (basic_block bb,
val = cselib_lookup (reg, mode, 0, VOIDmode);
if (val && cselib_preserved_value_p (val))
{
- item = gen_rtx_CONCAT (GET_MODE (x), x,
- lowpart_subreg (GET_MODE (x),
- val->val_rtx,
- mode));
+ item = val->val_rtx;
break;
}
}
@@ -5776,7 +5780,7 @@ prepare_call_arguments (basic_block bb,
}
val = cselib_lookup (mem, GET_MODE (mem), 0, VOIDmode);
if (val && cselib_preserved_value_p (val))
- item = gen_rtx_CONCAT (GET_MODE (x), copy_rtx (x), val->val_rtx);
+ item = val->val_rtx;
else if (GET_MODE_CLASS (GET_MODE (mem)) != MODE_INT)
{
/* For non-integer stack argument see also if they weren't
@@ -5787,15 +5791,22 @@ prepare_call_arguments (basic_block bb,
val = cselib_lookup (adjust_address_nv (mem, imode, 0),
imode, 0, VOIDmode);
if (val && cselib_preserved_value_p (val))
- item = gen_rtx_CONCAT (GET_MODE (x), copy_rtx (x),
- lowpart_subreg (GET_MODE (x),
- val->val_rtx,
- imode));
+ item = lowpart_subreg (GET_MODE (x), val->val_rtx,
+ imode);
}
}
}
if (item)
- call_arguments = gen_rtx_EXPR_LIST (VOIDmode, item, call_arguments);
+ {
+ rtx x2 = x;
+ if (GET_MODE (item) != GET_MODE (link))
+ item = lowpart_subreg (GET_MODE (link), item, GET_MODE (item));
+ if (GET_MODE (x2) != GET_MODE (link))
+ x2 = lowpart_subreg (GET_MODE (link), x2, GET_MODE (x2));
+ item = gen_rtx_CONCAT (GET_MODE (link), x2, item);
+ call_arguments
+ = gen_rtx_EXPR_LIST (VOIDmode, item, call_arguments);
+ }
if (t && t != void_list_node)
{
tree argtype = TREE_VALUE (t);

27
gcc46-rh330771.patch Normal file
View File

@ -0,0 +1,27 @@
2007-10-16 Jakub Jelinek <jakub@redhat.com>
* Makefile.am (libgcj_tools_la_LIBADD): Add.
* Makefile.in: Regenerated.
--- libjava/Makefile.am.jj 2009-05-06 08:14:50.000000000 +0200
+++ libjava/Makefile.am 2009-05-06 10:26:43.000000000 +0200
@@ -550,7 +550,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toole
$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) \
$(LIBJAVA_LDFLAGS_LIBMATH)
-libgcj_tools_la_LIBADD = libgcj.la
+libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \
$(libgcj_tools_la_version_dep)
if BUILD_SUBLIBS
--- libjava/Makefile.in.jj 2009-05-06 08:14:49.000000000 +0200
+++ libjava/Makefile.in 2009-05-06 10:27:18.000000000 +0200
@@ -1110,7 +1110,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toole
$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) \
$(LIBJAVA_LDFLAGS_LIBMATH)
-libgcj_tools_la_LIBADD = libgcj.la
+libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \
$(libgcj_tools_la_version_dep) $(am__append_19)
libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS) \

View File

@ -0,0 +1,40 @@
--- gcc/config.gcc.jj 2008-04-24 15:42:46.000000000 -0500
+++ gcc/config.gcc 2008-04-24 15:44:51.000000000 -0500
@@ -2530,7 +2530,7 @@ sparc-*-rtems*)
tmake_file="sparc/t-elf sparc/t-crtin sparc/t-crtfm t-rtems"
extra_parts="crtbegin.o crtend.o"
;;
-sparc-*-linux*)
+sparc-*-linux* | sparcv9-*-linux*)
tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h"
extra_options="${extra_options} sparc/long-double-switch.opt"
case ${target} in
@@ -2624,7 +2624,7 @@ sparc64-*-rtems*)
tmake_file="${tmake_file} sparc/t-crtin sparc/t-crtfm t-rtems"
extra_parts="crtbegin.o crtend.o"
;;
-sparc64-*-linux*)
+sparc64*-*-linux*)
tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.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
+++ libgcc/config.host 2008-04-24 15:46:49.000000000 -0500
@@ -572,7 +572,7 @@ sparc64-*-openbsd*)
;;
sparc-*-elf*)
;;
-sparc-*-linux*) # SPARC's running GNU/Linux, libc6
+sparc-*-linux* | sparcv9*-*-linux*) # SPARC's running GNU/Linux, libc6
extra_parts="$extra_parts crtfastmath.o"
tmake_file="${tmake_file} sparc/t-crtfm"
;;
@@ -590,7 +590,7 @@ sparc-wrs-vxworks)
;;
sparc64-*-freebsd*|ultrasparc-*-freebsd*)
;;
-sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
+sparc64*-*-linux*) # 64-bit SPARC's running GNU/Linux
extra_parts="$extra_parts crtfastmath.o"
tmake_file="${tmake_file} sparc/t-crtfm"
;;

View File

@ -1,3 +1,2 @@
SHA512 (gcc-10.0.1-20200216.tar.xz) = 56507e273b00e85ed4145e80df65d9b4e4791f23e7cb5d931f85b9420cbf3a7125ba49978dc73c2987c0a6101f741dc5a60a08cb3346d4c5082400cbcfcdd008
SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 9ceea0b883185fe489724d54a7e909bb6ed4785fcadf80162033dc6a133e2657337175601278e4155d1f8fac275ff9c8a02572aea876166c608774c809f832e9
SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
f9c7ca38fda4721cc78d4453237da1be gcc-4.6.3-20120306.tar.bz2

View File

@ -1,7 +0,0 @@
#!/bin/sh
[ -d gcc-dir.tmp ] && echo gcc-dir.tmp already exists && exit 1
git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin $1
d=`date --iso | sed 's/-//g'`
git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-10.0.1-$d/ $1 | xz -9e > gcc-10.0.1-$d.tar.xz
rm -rf gcc-dir.tmp