Compare commits
No commits in common. "master" and "gcc-4_5_0-1_fc14" have entirely different histories.
master
...
gcc-4_5_0-
2
.cvsignore
Normal file
2
.cvsignore
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fastjar-0.97.tar.gz
|
||||||
|
gcc-4.5.0-20100707.tar.bz2
|
8
.gitignore
vendored
8
.gitignore
vendored
@ -1,8 +0,0 @@
|
|||||||
/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
|
|
21
Makefile
Normal file
21
Makefile
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Makefile for source rpm: gcc
|
||||||
|
# $Id: Makefile,v 1.2 2007/10/15 18:46:35 notting Exp $
|
||||||
|
NAME := gcc
|
||||||
|
SPECFILE = $(firstword $(wildcard *.spec))
|
||||||
|
|
||||||
|
define find-makefile-common
|
||||||
|
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
||||||
|
endef
|
||||||
|
|
||||||
|
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
||||||
|
|
||||||
|
ifeq ($(MAKEFILE_COMMON),)
|
||||||
|
# attempt a checkout
|
||||||
|
define checkout-makefile-common
|
||||||
|
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
||||||
|
endef
|
||||||
|
|
||||||
|
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
||||||
|
endif
|
||||||
|
|
||||||
|
include $(MAKEFILE_COMMON)
|
35
STAGE1-gcc
35
STAGE1-gcc
@ -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}/
|
|
@ -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
|
|
@ -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
|
|
28
STAGE1-t-gcc
28
STAGE1-t-gcc
@ -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}
|
|
14
fastjar-0.97-filename0.patch
Normal file
14
fastjar-0.97-filename0.patch
Normal 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
16
fastjar-0.97-len1.patch
Normal 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){
|
29
fastjar-0.97-segfault.patch
Normal file
29
fastjar-0.97-segfault.patch
Normal 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(¤t_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
102
fastjar-CVE-2010-0831.patch
Normal 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
27
fastjar-man.patch
Normal 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
|
@ -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
|
|
@ -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)
|
|
@ -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,
|
|
126
gcc10-hack.patch
126
gcc10-hack.patch
@ -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;
|
|
@ -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
|
|
||||||
;;
|
|
@ -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))
|
|
@ -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">
|
|
@ -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 \
|
|
@ -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.
|
|
@ -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
|
|
52
gcc45-build-id.patch
Normal file
52
gcc45-build-id.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
2007-07-22 Roland McGrath <roland@redhat.com>
|
||||||
|
|
||||||
|
* config/rs6000/sysv4.h (LINK_EH_SPEC): Add --build-id for
|
||||||
|
non-relocatable link.
|
||||||
|
* config/linux.h (LINK_EH_SPEC): Likewise.
|
||||||
|
* config/alpha/elf.h (LINK_EH_SPEC): Likewise.
|
||||||
|
* config/ia64/linux.h (LINK_EH_SPEC): Likewise.
|
||||||
|
|
||||||
|
--- gcc/config/rs6000/sysv4.h.~1~
|
||||||
|
+++ gcc/config/rs6000/sysv4.h
|
||||||
|
@@ -906,7 +906,7 @@ extern int fixuplabelno;
|
||||||
|
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
|
||||||
|
|
||||||
|
#if defined(HAVE_LD_EH_FRAME_HDR)
|
||||||
|
-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
|
||||||
|
+# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
|
||||||
|
--- gcc/config/linux.h.~1~
|
||||||
|
+++ gcc/config/linux.h
|
||||||
|
@@ -85,7 +85,7 @@ Boston, MA 02110-1301, USA. */
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#if defined(HAVE_LD_EH_FRAME_HDR)
|
||||||
|
-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
|
||||||
|
+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define this so we can compile MS code for use with WINE. */
|
||||||
|
--- gcc/config/alpha/elf.h.~1~
|
||||||
|
+++ gcc/config/alpha/elf.h
|
||||||
|
@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu
|
||||||
|
I imagine that other systems will catch up. In the meantime, it
|
||||||
|
doesn't harm to make sure that the data exists to be used later. */
|
||||||
|
#if defined(HAVE_LD_EH_FRAME_HDR)
|
||||||
|
-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
|
||||||
|
+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* A C statement (sans semicolon) to output to the stdio stream STREAM
|
||||||
|
--- gcc/config/ia64/linux.h.~1~
|
||||||
|
+++ gcc/config/ia64/linux.h
|
||||||
|
@@ -56,7 +56,7 @@ do { \
|
||||||
|
Signalize that because we have fde-glibc, we don't need all C shared libs
|
||||||
|
linked against -lgcc_s. */
|
||||||
|
#undef LINK_EH_SPEC
|
||||||
|
-#define LINK_EH_SPEC ""
|
||||||
|
+#define LINK_EH_SPEC "%{!r:--build-id} "
|
||||||
|
|
||||||
|
#define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
|
||||||
|
|
102
gcc45-c++-builtin-redecl.patch
Normal file
102
gcc45-c++-builtin-redecl.patch
Normal 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-65.c: New test.
|
||||||
|
* g++.dg/ext/builtin10.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-65.c.jj 2007-10-02 11:23:51.000000000 +0200
|
||||||
|
+++ gcc/testsuite/gcc.dg/builtins-65.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/builtin10.C.jj 2007-10-02 11:19:45.000000000 +0200
|
||||||
|
+++ gcc/testsuite/g++.dg/ext/builtin10.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" } }
|
350
gcc45-cloog-dl.patch
Normal file
350
gcc45-cloog-dl.patch
Normal file
@ -0,0 +1,350 @@
|
|||||||
|
2010-07-01 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-ppl.o): Depend on graphite.h.
|
||||||
|
* graphite.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-ppl.c: Include graphite.h.
|
||||||
|
|
||||||
|
--- gcc/graphite.c.jj 2010-06-30 09:48:30.000000000 +0200
|
||||||
|
+++ gcc/graphite.c 2010-07-01 16:57:48.248523237 +0200
|
||||||
|
@@ -67,6 +67,35 @@ along with GCC; see the file COPYING3.
|
||||||
|
#include "graphite-clast-to-gimple.h"
|
||||||
|
#include "graphite-sese-to-poly.h"
|
||||||
|
|
||||||
|
+__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
|
||||||
|
@@ -210,6 +239,12 @@ graphite_initialize (void)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (!init_cloog_pointers ())
|
||||||
|
+ {
|
||||||
|
+ sorry ("Graphite loop optimizations cannot be used");
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
recompute_all_dominators ();
|
||||||
|
initialize_original_copy_tables ();
|
||||||
|
cloog_initialize ();
|
||||||
|
--- gcc/graphite.h.jj 2010-06-30 09:48:30.000000000 +0200
|
||||||
|
+++ gcc/graphite.h 2010-07-01 17:29:37.225491850 +0200
|
||||||
|
@@ -21,4 +21,224 @@ along with GCC; see the file COPYING3.
|
||||||
|
#ifndef GCC_GRAPHITE_H
|
||||||
|
#define GCC_GRAPHITE_H
|
||||||
|
|
||||||
|
+#include <dlfcn.h>
|
||||||
|
+#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);
|
||||||
|
+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)
|
||||||
|
+#define cloog_loop_malloc (*cloog_pointers__.p_cloog_loop_malloc)
|
||||||
|
+#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)
|
||||||
|
+#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)
|
||||||
|
+#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)
|
||||||
|
+#define cloog_program_scatter (*cloog_pointers__.p_cloog_program_scatter)
|
||||||
|
+#define cloog_statement_alloc (*cloog_pointers__.p_cloog_statement_alloc)
|
||||||
|
+#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 cloog_finalize (*cloog_pointers__.p_ppl_finalize)
|
||||||
|
+
|
||||||
|
#endif /* GCC_GRAPHITE_H */
|
||||||
|
--- gcc/Makefile.in.jj 2010-06-30 21:23:29.000000000 +0200
|
||||||
|
+++ gcc/Makefile.in 2010-07-01 17:33:11.016479963 +0200
|
||||||
|
@@ -1011,7 +1011,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) $(LIBELFLIBS)
|
||||||
|
# Any system libraries needed just for GNAT.
|
||||||
|
SYSLIBS = @GNAT_LIBEXC@
|
||||||
|
@@ -2607,7 +2607,7 @@ graphite-poly.o: graphite-poly.c $(CONFI
|
||||||
|
$(TREE_DATA_REF_H) tree-pass.h domwalk.h graphite.h graphite-dependences.h \
|
||||||
|
pointer-set.h value-prof.h graphite-ppl.h sese.h output.h graphite-poly.h
|
||||||
|
graphite-ppl.o: graphite-ppl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
|
||||||
|
- $(GGC_H) graphite-ppl.h
|
||||||
|
+ $(GGC_H) graphite-ppl.h graphite.h
|
||||||
|
graphite-scop-detection.o: graphite-scop-detection.c $(CONFIG_H) $(SYSTEM_H) \
|
||||||
|
$(GGC_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TOPLEV_H) \
|
||||||
|
$(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) $(GIMPLE_H) \
|
||||||
|
@@ -3359,6 +3359,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-ppl.c.jj 2010-06-30 09:48:30.000000000 +0200
|
||||||
|
+++ gcc/graphite-ppl.c 2010-07-01 17:08:14.161335642 +0200
|
||||||
|
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3.
|
||||||
|
#include "ppl_c.h"
|
||||||
|
#include "cloog/cloog.h"
|
||||||
|
#include "graphite-ppl.h"
|
||||||
|
+#include "graphite.h"
|
||||||
|
|
||||||
|
/* Translates row ROW of the CloogMatrix MATRIX to a PPL Constraint. */
|
||||||
|
|
||||||
|
--- gcc/graphite-clast-to-gimple.c.jj 2010-06-30 09:48:30.000000000 +0200
|
||||||
|
+++ gcc/graphite-clast-to-gimple.c 2010-07-01 16:50:15.812485671 +0200
|
||||||
|
@@ -613,11 +613,11 @@ gcc_type_for_cloog_iv (const char *cloog
|
||||||
|
STMT. */
|
||||||
|
|
||||||
|
static tree
|
||||||
|
-gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_for)
|
||||||
|
+gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_fora)
|
||||||
|
{
|
||||||
|
- 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);
|
||||||
|
- const char *cloog_iv = stmt_for->iterator;
|
||||||
|
+ const char *cloog_iv = stmt_fora->iterator;
|
||||||
|
CloogStatement *cs = body->statement;
|
||||||
|
poly_bb_p pbb = (poly_bb_p) cloog_statement_usr (cs);
|
||||||
|
|
99
gcc45-hack.patch
Normal file
99
gcc45-hack.patch
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
--- libada/Makefile.in.jj 2009-01-14 12:07:35.000000000 +0100
|
||||||
|
+++ libada/Makefile.in 2009-01-15 14:25:33.000000000 +0100
|
||||||
|
@@ -69,18 +69,40 @@ version := $(shell cat $(srcdir)/../gcc/
|
||||||
|
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=$(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)" \
|
||||||
|
@@ -91,7 +113,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 oscons
|
||||||
|
--- gcc/ada/make.adb 2008-11-07 23:00:32.000000000 +0100
|
||||||
|
+++ gcc/ada/make.adb 2009-01-16 17:55:02.000000000 +0100
|
||||||
|
@@ -8007,6 +8007,7 @@ package body Make is
|
||||||
|
or else Argv (2 .. Argv'Last) = "pg"
|
||||||
|
or else (Argv (2) = 'm' and then Argv'Last > 2)
|
||||||
|
or else (Argv (2) = 'f' and then Argv'Last > 2)
|
||||||
|
+ or else (Argv'Last >= 8 and then Argv (2 .. 8) = "-param=")
|
||||||
|
then
|
||||||
|
Add_Switch (Argv, Compiler, And_Save => And_Save);
|
||||||
|
Add_Switch (Argv, Linker, And_Save => And_Save);
|
||||||
|
--- 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,7 @@ multi-do:
|
||||||
|
ADAFLAGS="$(ADAFLAGS) $${flags}" \
|
||||||
|
prefix="$(prefix)" \
|
||||||
|
exec_prefix="$(exec_prefix)" \
|
||||||
|
+ mandir="$(mandir)" \
|
||||||
|
GCJFLAGS="$(GCJFLAGS) $${flags}" \
|
||||||
|
CXXFLAGS="$(CXXFLAGS) $${flags}" \
|
||||||
|
LIBCFLAGS="$(LIBCFLAGS) $${flags}" \
|
61
gcc45-i386-libgomp.patch
Normal file
61
gcc45-i386-libgomp.patch
Normal 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
gcc45-java-nomulti.patch
Normal file
44
gcc45-java-nomulti.patch
Normal 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.
|
||||||
|
|
||||||
|
|
47
gcc45-libstdc++-docs.patch
Normal file
47
gcc45-libstdc++-docs.patch
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
--- libstdc++-v3/doc/html/index.html.jj 2010-06-30 09:48:38.000000000 +0200
|
||||||
|
+++ libstdc++-v3/doc/html/index.html 2010-07-01 16:22:25.066491878 +0200
|
||||||
|
@@ -12,7 +12,8 @@
|
||||||
|
<div>
|
||||||
|
<h1>The GNU C++ Library Documentation</h1>
|
||||||
|
|
||||||
|
-<p>Copyright 2008, 2009 FSF</p>
|
||||||
|
+<p>Release 4.5.0</p>
|
||||||
|
+<p>Copyright 2008, 2009, 2010 FSF</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Permission is granted to copy, distribute and/or modify this
|
||||||
|
--- libstdc++-v3/doc/html/api.html.jj 2010-06-30 09:48:38.000000000 +0200
|
||||||
|
+++ libstdc++-v3/doc/html/api.html 2010-07-01 16:24:39.158429410 +0200
|
||||||
|
@@ -17,27 +17,12 @@ useful for examining the signatures of p
|
||||||
|
the library classes, finding out what is in a particular include
|
||||||
|
file, looking at inheritance diagrams, etc.
|
||||||
|
</p><p>
|
||||||
|
-The source-level documentation for the most recent releases can be
|
||||||
|
-viewed online:
|
||||||
|
-</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
||||||
|
- <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/index.html" target="_top">for the 3.4 release
|
||||||
|
+The source-level documentation can be viewed here:
|
||||||
|
+</p>
|
||||||
|
+<div class="itemizedlist"><ul type="disc">
|
||||||
|
+ <li><p>
|
||||||
|
+ <a class="ulink" href="api/index.html" target="_top">for the 4.5 release
|
||||||
|
</a>
|
||||||
|
- </p></li><li class="listitem"><p>
|
||||||
|
- <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.1/index.html" target="_top">for the 4.1 release
|
||||||
|
- </a>
|
||||||
|
- </p></li><li class="listitem"><p>
|
||||||
|
- <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.2/index.html" target="_top">for the 4.2 release
|
||||||
|
- </a>
|
||||||
|
- </p></li><li class="listitem"><p>
|
||||||
|
- <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.3/index.html" target="_top">for the 4.3 release
|
||||||
|
- </a>
|
||||||
|
- </p></li><li class="listitem"><p>
|
||||||
|
- <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.4/index.html" target="_top">for the 4.4 release
|
||||||
|
- </a>
|
||||||
|
- </p></li><li class="listitem"><p>
|
||||||
|
- <a class="ulink" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">"the latest collection"
|
||||||
|
- </a>
|
||||||
|
- (For the main development tree; see the date on the first page.)
|
||||||
|
</p></li></ul></div><p>
|
||||||
|
This generated HTML collection, as above, is also available for download in the libstdc++ snapshots directory at
|
||||||
|
<code class="literal"><URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/></code>.
|
52
gcc45-no-add-needed.patch
Normal file
52
gcc45-no-add-needed.patch
Normal 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/linux.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.~1~
|
||||||
|
+++ gcc/config/alpha/elf.h
|
||||||
|
@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu
|
||||||
|
I imagine that other systems will catch up. In the meantime, it
|
||||||
|
doesn't harm to make sure that the data exists to be used later. */
|
||||||
|
#if defined(HAVE_LD_EH_FRAME_HDR)
|
||||||
|
-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
|
||||||
|
+#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} "
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* A C statement (sans semicolon) to output to the stdio stream STREAM
|
||||||
|
--- gcc/config/ia64/linux.h.~1~
|
||||||
|
+++ gcc/config/ia64/linux.h
|
||||||
|
@@ -58,7 +58,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 "%{!r:--build-id} "
|
||||||
|
+#define LINK_EH_SPEC "--no-add-needed %{!r:--build-id} "
|
||||||
|
|
||||||
|
#define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
|
||||||
|
|
||||||
|
--- gcc/config/linux.h.~1~
|
||||||
|
+++ gcc/config/linux.h
|
||||||
|
@@ -89,7 +89,7 @@ see the files COPYING3 and COPYING.RUNTI
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#if defined(HAVE_LD_EH_FRAME_HDR)
|
||||||
|
-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
|
||||||
|
+#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} "
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define this so we can compile MS code for use with WINE. */
|
||||||
|
--- gcc/config/rs6000/sysv4.h.~1~
|
||||||
|
+++ gcc/config/rs6000/sysv4.h
|
||||||
|
@@ -917,7 +917,7 @@ SVR4_ASM_SPEC \
|
||||||
|
%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
|
||||||
|
|
||||||
|
#if defined(HAVE_LD_EH_FRAME_HDR)
|
||||||
|
-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
|
||||||
|
+# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} "
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
|
86
gcc45-ppc32-retaddr.patch
Normal file
86
gcc45-ppc32-retaddr.patch
Normal 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;
|
||||||
|
+}
|
153
gcc45-pr33763.patch
Normal file
153
gcc45-pr33763.patch
Normal 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);
|
||||||
|
+}
|
118
gcc45-pr38757.patch
Normal file
118
gcc45-pr38757.patch
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
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 2010-06-30 09:48:30.000000000 +0200
|
||||||
|
+++ gcc/langhooks.h 2010-07-01 16:15:22.432616871 +0200
|
||||||
|
@@ -454,6 +454,10 @@ struct lang_hooks
|
||||||
|
is enabled. */
|
||||||
|
bool eh_use_cxa_end_cleanup;
|
||||||
|
|
||||||
|
+ /* 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 2010-06-30 09:48:30.000000000 +0200
|
||||||
|
+++ gcc/langhooks-def.h 2010-07-01 16:16:07.427460761 +0200
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
/* Default macros to initialize the lang_hooks data structure.
|
||||||
|
- Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
|
||||||
|
+ Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||||
|
Free Software Foundation, Inc.
|
||||||
|
Contributed by Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
|
@@ -111,6 +111,7 @@ extern void lhd_omp_firstprivatize_type_
|
||||||
|
#define LANG_HOOKS_EH_PERSONALITY lhd_gcc_personality
|
||||||
|
#define LANG_HOOKS_EH_RUNTIME_TYPE lhd_pass_through_t
|
||||||
|
#define LANG_HOOKS_EH_USE_CXA_END_CLEANUP false
|
||||||
|
+#define LANG_HOOKS_SOURCE_LANGUAGE NULL
|
||||||
|
|
||||||
|
/* Attribute hooks. */
|
||||||
|
#define LANG_HOOKS_ATTRIBUTE_TABLE NULL
|
||||||
|
@@ -301,6 +302,7 @@ extern void lhd_end_section (void);
|
||||||
|
LANG_HOOKS_EH_PERSONALITY, \
|
||||||
|
LANG_HOOKS_EH_RUNTIME_TYPE, \
|
||||||
|
LANG_HOOKS_EH_USE_CXA_END_CLEANUP, \
|
||||||
|
+ LANG_HOOKS_SOURCE_LANGUAGE, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* GCC_LANG_HOOKS_DEF_H */
|
||||||
|
--- gcc/c-lang.c.jj 2010-06-30 09:48:30.000000000 +0200
|
||||||
|
+++ gcc/c-lang.c 2010-07-01 16:14:25.396197804 +0200
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
/* Language-specific hook definitions for C front end.
|
||||||
|
Copyright (C) 1991, 1995, 1997, 1998,
|
||||||
|
- 1999, 2000, 2001, 2003, 2004, 2005, 2007, 2008
|
||||||
|
+ 1999, 2000, 2001, 2003, 2004, 2005, 2007, 2008, 2009
|
||||||
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GCC.
|
||||||
|
@@ -37,6 +37,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. */
|
||||||
|
|
||||||
|
@@ -44,6 +50,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 2010-07-01 14:07:41.000000000 +0200
|
||||||
|
+++ gcc/dwarf2out.c 2010-07-01 16:13:24.597354717 +0200
|
||||||
|
@@ -17150,9 +17150,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
|
||||||
|
- && TYPE_ARG_TYPES (func_type) != NULL)
|
||||||
|
- 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 (TYPE_ARG_TYPES (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
|
||||||
|
@@ -19246,6 +19255,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);
|
49
gcc45-pr44542.patch
Normal file
49
gcc45-pr44542.patch
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
2010-06-17 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR target/44542
|
||||||
|
* cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
|
||||||
|
of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
|
||||||
|
instead of MAX_SUPPORTED_STACK_ALIGNMENT.
|
||||||
|
(expand_one_var): Don't consider DECL_ALIGN for variables for
|
||||||
|
which expand_one_stack_var_at has been already called.
|
||||||
|
|
||||||
|
--- gcc/cfgexpand.c.jj 2010-06-17 17:01:11.964198458 +0200
|
||||||
|
+++ gcc/cfgexpand.c 2010-06-17 18:25:18.940335757 +0200
|
||||||
|
@@ -705,7 +705,7 @@ static void
|
||||||
|
expand_one_stack_var_at (tree decl, HOST_WIDE_INT offset)
|
||||||
|
{
|
||||||
|
/* Alignment is unsigned. */
|
||||||
|
- unsigned HOST_WIDE_INT align;
|
||||||
|
+ unsigned HOST_WIDE_INT align, max_align;
|
||||||
|
rtx x;
|
||||||
|
|
||||||
|
/* If this fails, we've overflowed the stack frame. Error nicely? */
|
||||||
|
@@ -722,10 +722,10 @@ expand_one_stack_var_at (tree decl, HOST
|
||||||
|
offset -= frame_phase;
|
||||||
|
align = offset & -offset;
|
||||||
|
align *= BITS_PER_UNIT;
|
||||||
|
- if (align == 0)
|
||||||
|
- align = STACK_BOUNDARY;
|
||||||
|
- else if (align > MAX_SUPPORTED_STACK_ALIGNMENT)
|
||||||
|
- align = MAX_SUPPORTED_STACK_ALIGNMENT;
|
||||||
|
+ max_align = MAX (crtl->max_used_stack_slot_alignment,
|
||||||
|
+ PREFERRED_STACK_BOUNDARY);
|
||||||
|
+ if (align == 0 || align > max_align)
|
||||||
|
+ align = max_align;
|
||||||
|
|
||||||
|
DECL_ALIGN (decl) = align;
|
||||||
|
DECL_USER_ALIGN (decl) = 0;
|
||||||
|
@@ -930,6 +930,13 @@ expand_one_var (tree var, bool toplevel,
|
||||||
|
align = MINIMUM_ALIGNMENT (TREE_TYPE (var),
|
||||||
|
TYPE_MODE (TREE_TYPE (var)),
|
||||||
|
TYPE_ALIGN (TREE_TYPE (var)));
|
||||||
|
+ else if (DECL_HAS_VALUE_EXPR_P (var)
|
||||||
|
+ || (DECL_RTL_SET_P (var) && MEM_P (DECL_RTL (var))))
|
||||||
|
+ /* Don't consider debug only variables with DECL_HAS_VALUE_EXPR_P set
|
||||||
|
+ or variables which were assigned a stack slot already by
|
||||||
|
+ expand_one_stack_var_at - in the latter case DECL_ALIGN has been
|
||||||
|
+ changed from the offset chosen to it. */
|
||||||
|
+ align = crtl->stack_alignment_estimated;
|
||||||
|
else
|
||||||
|
align = MINIMUM_ALIGNMENT (var, DECL_MODE (var), DECL_ALIGN (var));
|
||||||
|
|
27
gcc45-rh330771.patch
Normal file
27
gcc45-rh330771.patch
Normal 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
|
||||||
|
@@ -510,7 +510,7 @@ libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS
|
||||||
|
libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
|
||||||
|
-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
|
||||||
|
$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF)
|
||||||
|
-libgcj_tools_la_LIBADD = libgcj.la -lm
|
||||||
|
+libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la -lm
|
||||||
|
libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec
|
||||||
|
if BUILD_SUBLIBS
|
||||||
|
libgcj_tools_la_DEPENDENCIES += libgcj-noncore.la
|
||||||
|
--- libjava/Makefile.in.jj 2009-05-06 08:14:49.000000000 +0200
|
||||||
|
+++ libjava/Makefile.in 2009-05-06 10:27:18.000000000 +0200
|
||||||
|
@@ -1190,7 +1190,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toole
|
||||||
|
-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
|
||||||
|
$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF)
|
||||||
|
|
||||||
|
-libgcj_tools_la_LIBADD = libgcj.la -lm
|
||||||
|
+libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la -lm
|
||||||
|
libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec $(am__append_22)
|
||||||
|
libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS)
|
||||||
|
libjvm_la_SOURCES = jni-libjvm.cc
|
40
gcc45-sparc-config-detection.patch
Normal file
40
gcc45-sparc-config-detection.patch
Normal 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
|
||||||
|
@@ -2393,7 +2393,7 @@ sparc-*-elf*)
|
||||||
|
tmake_file="sparc/t-elf sparc/t-crtfm"
|
||||||
|
extra_parts="crti.o crtn.o crtbegin.o crtend.o"
|
||||||
|
;;
|
||||||
|
-sparc-*-linux*) # SPARC's running GNU/Linux, libc6
|
||||||
|
+sparc-*-linux* | sparcv9*-*-linux*) # SPARC's running GNU/Linux, libc6
|
||||||
|
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h glibc-stdint.h"
|
||||||
|
extra_options="${extra_options} sparc/long-double-switch.opt"
|
||||||
|
tmake_file="${tmake_file} sparc/t-linux"
|
||||||
|
@@ -2481,7 +2481,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
|
||||||
|
*) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
-sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
|
||||||
|
+sparc64*-*-linux*) # 64-bit SPARC's running GNU/Linux
|
||||||
|
tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h 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"
|
||||||
|
;;
|
25
import.log
Normal file
25
import.log
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
gcc-4_4_0-0_3:HEAD:gcc-4.4.0-0.3.src.rpm:1232130841
|
||||||
|
gcc-4_4_0-5:HEAD:gcc-4.4.0-5.src.rpm:1242291126
|
||||||
|
gcc-4_4_2-14_fc13:HEAD:gcc-4.4.2-14.fc13.src.rpm:1259930464
|
||||||
|
gcc-4_4_2-20_fc13:HEAD:gcc-4.4.2-20.fc13.src.rpm:1261484502
|
||||||
|
gcc-4_4_2-25_fc13:HEAD:gcc-4.4.2-25.fc13.src.rpm:1263487371
|
||||||
|
gcc-4_4_3-1_fc13:HEAD:gcc-4.4.3-1.fc13.src.rpm:1264094717
|
||||||
|
gcc-4_4_3-4_fc13:HEAD:gcc-4.4.3-4.fc13.src.rpm:1264621537
|
||||||
|
gcc-4_4_3-5_fc13:HEAD:gcc-4.4.3-5.fc13.src.rpm:1265659730
|
||||||
|
gcc-4_4_3-6_fc13:HEAD:gcc-4.4.3-6.fc13.src.rpm:1265925505
|
||||||
|
gcc-4_4_3-13_fc14:HEAD:gcc-4.4.3-13.fc14.src.rpm:1269701430
|
||||||
|
gcc-4_4_3-14_fc14:HEAD:gcc-4.4.3-14.fc14.src.rpm:1270134314
|
||||||
|
gcc-4_4_3-15_fc14:HEAD:gcc-4.4.3-15.fc14.src.rpm:1270645816
|
||||||
|
gcc-4_4_3-16_fc14:HEAD:gcc-4.4.3-16.fc14.src.rpm:1270804085
|
||||||
|
gcc-4_4_3-18_fc14:HEAD:gcc-4.4.3-18.fc14.src.rpm:1271928364
|
||||||
|
gcc-4_4_3-19_fc14:HEAD:gcc-4.4.3-19.fc14.src.rpm:1272396546
|
||||||
|
gcc-4_4_4-1_fc14:HEAD:gcc-4.4.4-1.fc14.src.rpm:1272658058
|
||||||
|
gcc-4_4_4-2_fc14:HEAD:gcc-4.4.4-2.fc14.src.rpm:1272918393
|
||||||
|
gcc-4_4_4-3_fc14:HEAD:gcc-4.4.4-3.fc14.src.rpm:1273873902
|
||||||
|
gcc-4_4_4-4_fc14:HEAD:gcc-4.4.4-4.fc14.src.rpm:1274217418
|
||||||
|
gcc-4_4_4-5_fc14:HEAD:gcc-4.4.4-5.fc14.src.rpm:1274827803
|
||||||
|
gcc-4_4_4-7_fc14:HEAD:gcc-4.4.4-7.fc14.src.rpm:1275991256
|
||||||
|
gcc-4_4_4-8_fc14:HEAD:gcc-4.4.4-8.fc14.src.rpm:1276244517
|
||||||
|
gcc-4_4_4-9_fc14:HEAD:gcc-4.4.4-9.fc14.src.rpm:1277410688
|
||||||
|
gcc-4_4_4-10_fc14:HEAD:gcc-4.4.4-10.fc14.src.rpm:1277882958
|
||||||
|
gcc-4_5_0-1_fc14:HEAD:gcc-4.5.0-1.fc14.src.rpm:1278524061
|
483
libgcc_post_upgrade.c
Normal file
483
libgcc_post_upgrade.c
Normal file
@ -0,0 +1,483 @@
|
|||||||
|
#ifdef __sparc__
|
||||||
|
register void *__thread_self __asm ("g7");
|
||||||
|
#endif
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <syscall.h>
|
||||||
|
|
||||||
|
#if defined __i386__
|
||||||
|
# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
|
||||||
|
# define INTERNAL_SYSCALL(name, err, nr, args...) \
|
||||||
|
({ \
|
||||||
|
register unsigned int resultvar; \
|
||||||
|
asm volatile ( \
|
||||||
|
"movl %1, %%eax\n\t" \
|
||||||
|
"int $0x80\n\t" \
|
||||||
|
: "=a" (resultvar) \
|
||||||
|
: "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc"); \
|
||||||
|
(int) resultvar; })
|
||||||
|
# define INTERNAL_SYSCALL_ERROR_P(val, err) \
|
||||||
|
((unsigned int) (val) >= 0xfffff001u)
|
||||||
|
# define ASMFMT_0()
|
||||||
|
# define ASMFMT_1(arg1) \
|
||||||
|
, "b" (arg1)
|
||||||
|
# define ASMFMT_2(arg1, arg2) \
|
||||||
|
, "b" (arg1), "c" (arg2)
|
||||||
|
# define ASMFMT_3(arg1, arg2, arg3) \
|
||||||
|
, "b" (arg1), "c" (arg2), "d" (arg3)
|
||||||
|
#elif defined __x86_64__
|
||||||
|
# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
|
||||||
|
# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
|
||||||
|
({ \
|
||||||
|
unsigned long resultvar; \
|
||||||
|
LOAD_ARGS_##nr (args) \
|
||||||
|
LOAD_REGS_##nr \
|
||||||
|
asm volatile ( \
|
||||||
|
"syscall\n\t" \
|
||||||
|
: "=a" (resultvar) \
|
||||||
|
: "0" (name) ASM_ARGS_##nr : "memory", "cc", "r11", "cx"); \
|
||||||
|
(long) resultvar; })
|
||||||
|
# define INTERNAL_SYSCALL(name, err, nr, args...) \
|
||||||
|
INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
|
||||||
|
# define INTERNAL_SYSCALL_ERROR_P(val, err) \
|
||||||
|
((unsigned long) (val) >= -4095L)
|
||||||
|
# define LOAD_ARGS_0()
|
||||||
|
# define LOAD_REGS_0
|
||||||
|
# define ASM_ARGS_0
|
||||||
|
# define LOAD_ARGS_1(a1) \
|
||||||
|
long int __arg1 = (long) (a1); \
|
||||||
|
LOAD_ARGS_0 ()
|
||||||
|
# define LOAD_REGS_1 \
|
||||||
|
register long int _a1 asm ("rdi") = __arg1; \
|
||||||
|
LOAD_REGS_0
|
||||||
|
# define ASM_ARGS_1 ASM_ARGS_0, "r" (_a1)
|
||||||
|
# define LOAD_ARGS_2(a1, a2) \
|
||||||
|
long int __arg2 = (long) (a2); \
|
||||||
|
LOAD_ARGS_1 (a1)
|
||||||
|
# define LOAD_REGS_2 \
|
||||||
|
register long int _a2 asm ("rsi") = __arg2; \
|
||||||
|
LOAD_REGS_1
|
||||||
|
# define ASM_ARGS_2 ASM_ARGS_1, "r" (_a2)
|
||||||
|
# define LOAD_ARGS_3(a1, a2, a3) \
|
||||||
|
long int __arg3 = (long) (a3); \
|
||||||
|
LOAD_ARGS_2 (a1, a2)
|
||||||
|
# define LOAD_REGS_3 \
|
||||||
|
register long int _a3 asm ("rdx") = __arg3; \
|
||||||
|
LOAD_REGS_2
|
||||||
|
# define ASM_ARGS_3 ASM_ARGS_2, "r" (_a3)
|
||||||
|
#elif defined __powerpc__
|
||||||
|
# define INTERNAL_SYSCALL_DECL(err) long int err
|
||||||
|
# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
|
||||||
|
({ \
|
||||||
|
register long int r0 __asm__ ("r0"); \
|
||||||
|
register long int r3 __asm__ ("r3"); \
|
||||||
|
register long int r4 __asm__ ("r4"); \
|
||||||
|
register long int r5 __asm__ ("r5"); \
|
||||||
|
register long int r6 __asm__ ("r6"); \
|
||||||
|
register long int r7 __asm__ ("r7"); \
|
||||||
|
register long int r8 __asm__ ("r8"); \
|
||||||
|
LOADARGS_##nr(name, args); \
|
||||||
|
__asm__ __volatile__ \
|
||||||
|
("sc\n\t" \
|
||||||
|
"mfcr %0\n\t" \
|
||||||
|
: "=&r" (r0), \
|
||||||
|
"=&r" (r3), "=&r" (r4), "=&r" (r5), \
|
||||||
|
"=&r" (r6), "=&r" (r7), "=&r" (r8) \
|
||||||
|
: ASM_INPUT_##nr \
|
||||||
|
: "r9", "r10", "r11", "r12", \
|
||||||
|
"cr0", "ctr", "memory"); \
|
||||||
|
err = r0; \
|
||||||
|
(int) r3; \
|
||||||
|
})
|
||||||
|
# define INTERNAL_SYSCALL(name, err, nr, args...) \
|
||||||
|
INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
|
||||||
|
# define INTERNAL_SYSCALL_ERROR_P(val, err) \
|
||||||
|
((void) (val), __builtin_expect ((err) & (1 << 28), 0))
|
||||||
|
# define LOADARGS_0(name, dummy) \
|
||||||
|
r0 = name
|
||||||
|
# define LOADARGS_1(name, __arg1) \
|
||||||
|
long int arg1 = (long int) (__arg1); \
|
||||||
|
LOADARGS_0(name, 0); \
|
||||||
|
r3 = arg1
|
||||||
|
# define LOADARGS_2(name, __arg1, __arg2) \
|
||||||
|
long int arg2 = (long int) (__arg2); \
|
||||||
|
LOADARGS_1(name, __arg1); \
|
||||||
|
r4 = arg2
|
||||||
|
# define LOADARGS_3(name, __arg1, __arg2, __arg3) \
|
||||||
|
long int arg3 = (long int) (__arg3); \
|
||||||
|
LOADARGS_2(name, __arg1, __arg2); \
|
||||||
|
r5 = arg3
|
||||||
|
# define ASM_INPUT_0 "0" (r0)
|
||||||
|
# define ASM_INPUT_1 ASM_INPUT_0, "1" (r3)
|
||||||
|
# define ASM_INPUT_2 ASM_INPUT_1, "2" (r4)
|
||||||
|
# define ASM_INPUT_3 ASM_INPUT_2, "3" (r5)
|
||||||
|
#elif defined __ia64__
|
||||||
|
# define DO_INLINE_SYSCALL_NCS(name, nr, args...) \
|
||||||
|
LOAD_ARGS_##nr (args) \
|
||||||
|
register long _r8 asm ("r8"); \
|
||||||
|
register long _r10 asm ("r10"); \
|
||||||
|
register long _r15 asm ("r15") = name; \
|
||||||
|
long _retval; \
|
||||||
|
LOAD_REGS_##nr \
|
||||||
|
__asm __volatile ("break 0x100000;;" \
|
||||||
|
: "=r" (_r8), "=r" (_r10), "=r" (_r15) \
|
||||||
|
ASM_OUTARGS_##nr \
|
||||||
|
: "2" (_r15) ASM_ARGS_##nr \
|
||||||
|
: "memory" ASM_CLOBBERS_##nr); \
|
||||||
|
_retval = _r8;
|
||||||
|
# define INTERNAL_SYSCALL_DECL(err) long int err
|
||||||
|
# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
|
||||||
|
({ \
|
||||||
|
DO_INLINE_SYSCALL_NCS (name, nr, args) \
|
||||||
|
err = _r10; \
|
||||||
|
_retval; })
|
||||||
|
# define INTERNAL_SYSCALL(name, err, nr, args...) \
|
||||||
|
INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
|
||||||
|
# define INTERNAL_SYSCALL_ERROR_P(val, err) (err == -1)
|
||||||
|
# define LOAD_ARGS_0()
|
||||||
|
# define LOAD_REGS_0
|
||||||
|
# define LOAD_ARGS_1(a1) \
|
||||||
|
long _arg1 = (long) (a1); \
|
||||||
|
LOAD_ARGS_0 ()
|
||||||
|
# define LOAD_REGS_1 \
|
||||||
|
register long _out0 asm ("out0") = _arg1; \
|
||||||
|
LOAD_REGS_0
|
||||||
|
# define LOAD_ARGS_2(a1, a2) \
|
||||||
|
long _arg2 = (long) (a2); \
|
||||||
|
LOAD_ARGS_1 (a1)
|
||||||
|
# define LOAD_REGS_2 \
|
||||||
|
register long _out1 asm ("out1") = _arg2; \
|
||||||
|
LOAD_REGS_1
|
||||||
|
# define LOAD_ARGS_3(a1, a2, a3) \
|
||||||
|
long _arg3 = (long) (a3); \
|
||||||
|
LOAD_ARGS_2 (a1, a2)
|
||||||
|
# define LOAD_REGS_3 \
|
||||||
|
register long _out2 asm ("out2") = _arg3; \
|
||||||
|
LOAD_REGS_2
|
||||||
|
# define ASM_OUTARGS_0
|
||||||
|
# define ASM_OUTARGS_1 ASM_OUTARGS_0, "=r" (_out0)
|
||||||
|
# define ASM_OUTARGS_2 ASM_OUTARGS_1, "=r" (_out1)
|
||||||
|
# define ASM_OUTARGS_3 ASM_OUTARGS_2, "=r" (_out2)
|
||||||
|
# define ASM_ARGS_0
|
||||||
|
# define ASM_ARGS_1 ASM_ARGS_0, "3" (_out0)
|
||||||
|
# define ASM_ARGS_2 ASM_ARGS_1, "4" (_out1)
|
||||||
|
# define ASM_ARGS_3 ASM_ARGS_2, "5" (_out2)
|
||||||
|
# define ASM_CLOBBERS_0 ASM_CLOBBERS_1, "out0"
|
||||||
|
# define ASM_CLOBBERS_1 ASM_CLOBBERS_2, "out1"
|
||||||
|
# define ASM_CLOBBERS_2 ASM_CLOBBERS_3, "out2"
|
||||||
|
# define ASM_CLOBBERS_3 ASM_CLOBBERS_4, "out3"
|
||||||
|
# define ASM_CLOBBERS_4 ASM_CLOBBERS_5, "out4"
|
||||||
|
# define ASM_CLOBBERS_5 ASM_CLOBBERS_6, "out5"
|
||||||
|
# define ASM_CLOBBERS_6_COMMON , "out6", "out7", \
|
||||||
|
/* Non-stacked integer registers, minus r8, r10, r15. */ \
|
||||||
|
"r2", "r3", "r9", "r11", "r12", "r13", "r14", "r16", "r17", "r18", \
|
||||||
|
"r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27", \
|
||||||
|
"r28", "r29", "r30", "r31", \
|
||||||
|
/* Predicate registers. */ \
|
||||||
|
"p6", "p7", "p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15", \
|
||||||
|
/* Non-rotating fp registers. */ \
|
||||||
|
"f6", "f7", "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
|
||||||
|
/* Branch registers. */ \
|
||||||
|
"b6"
|
||||||
|
# define ASM_CLOBBERS_6 ASM_CLOBBERS_6_COMMON , "b7"
|
||||||
|
#elif defined __s390__
|
||||||
|
# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
|
||||||
|
# define INTERNAL_SYSCALL_DIRECT(name, err, nr, args...) \
|
||||||
|
({ \
|
||||||
|
DECLARGS_##nr(args) \
|
||||||
|
register long _ret asm("2"); \
|
||||||
|
asm volatile ( \
|
||||||
|
"svc %b1\n\t" \
|
||||||
|
: "=d" (_ret) \
|
||||||
|
: "i" (__NR_##name) ASMFMT_##nr \
|
||||||
|
: "memory" ); \
|
||||||
|
_ret; })
|
||||||
|
# define INTERNAL_SYSCALL_SVC0(name, err, nr, args...) \
|
||||||
|
({ \
|
||||||
|
DECLARGS_##nr(args) \
|
||||||
|
register unsigned long _nr asm("1") = (unsigned long)(__NR_##name); \
|
||||||
|
register long _ret asm("2"); \
|
||||||
|
asm volatile ( \
|
||||||
|
"svc 0\n\t" \
|
||||||
|
: "=d" (_ret) \
|
||||||
|
: "d" (_nr) ASMFMT_##nr \
|
||||||
|
: "memory" ); \
|
||||||
|
_ret; })
|
||||||
|
# define INTERNAL_SYSCALL(name, err, nr, args...) \
|
||||||
|
(((__NR_##name) < 256) ? \
|
||||||
|
INTERNAL_SYSCALL_DIRECT(name, err, nr, args) : \
|
||||||
|
INTERNAL_SYSCALL_SVC0(name, err,nr, args))
|
||||||
|
# define INTERNAL_SYSCALL_ERROR_P(val, err) \
|
||||||
|
((unsigned long) (val) >= -4095UL)
|
||||||
|
# define DECLARGS_0()
|
||||||
|
# define DECLARGS_1(arg1) \
|
||||||
|
register unsigned long gpr2 asm ("2") = (unsigned long)(arg1);
|
||||||
|
# define DECLARGS_2(arg1, arg2) \
|
||||||
|
DECLARGS_1(arg1) \
|
||||||
|
register unsigned long gpr3 asm ("3") = (unsigned long)(arg2);
|
||||||
|
# define DECLARGS_3(arg1, arg2, arg3) \
|
||||||
|
DECLARGS_2(arg1, arg2) \
|
||||||
|
register unsigned long gpr4 asm ("4") = (unsigned long)(arg3);
|
||||||
|
# define ASMFMT_0
|
||||||
|
# define ASMFMT_1 , "0" (gpr2)
|
||||||
|
# define ASMFMT_2 , "0" (gpr2), "d" (gpr3)
|
||||||
|
# define ASMFMT_3 , "0" (gpr2), "d" (gpr3), "d" (gpr4)
|
||||||
|
#elif defined __sparc__
|
||||||
|
# ifndef __arch64__
|
||||||
|
# define __INTERNAL_SYSCALL_STRING \
|
||||||
|
"ta 0x10;" \
|
||||||
|
"bcs,a 1f;" \
|
||||||
|
" sub %%g0, %%o0, %%o0;" \
|
||||||
|
"1:"
|
||||||
|
# define __SYSCALL_CLOBBERS "g2", "g3", "g4", "g5", "g6", \
|
||||||
|
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
|
||||||
|
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
|
||||||
|
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \
|
||||||
|
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
|
||||||
|
"cc", "memory"
|
||||||
|
# else
|
||||||
|
# define __INTERNAL_SYSCALL_STRING \
|
||||||
|
"ta 0x6d;" \
|
||||||
|
"bcs,a,pt %%xcc, 1f;" \
|
||||||
|
" sub %%g0, %%o0, %%o0;" \
|
||||||
|
"1:"
|
||||||
|
# define __SYSCALL_CLOBBERS "g2", "g3", "g4", "g5", "g6", \
|
||||||
|
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
|
||||||
|
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
|
||||||
|
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \
|
||||||
|
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
|
||||||
|
"f32", "f34", "f36", "f38", "f40", "f42", "f44", "f46", \
|
||||||
|
"f48", "f50", "f52", "f54", "f56", "f58", "f60", "f62", \
|
||||||
|
"cc", "memory"
|
||||||
|
# endif
|
||||||
|
#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
|
||||||
|
#define INTERNAL_SYSCALL(name, err, nr, args...) \
|
||||||
|
inline_syscall##nr(__INTERNAL_SYSCALL_STRING, __NR_##name, args)
|
||||||
|
#define INTERNAL_SYSCALL_ERROR_P(val, err) \
|
||||||
|
((unsigned long) (val) >= -515L)
|
||||||
|
# define inline_syscall0(string,name,dummy...) \
|
||||||
|
({ \
|
||||||
|
register long __o0 __asm__ ("o0"); \
|
||||||
|
register long __g1 __asm__ ("g1") = name; \
|
||||||
|
__asm __volatile (string : "=r" (__g1), "=r" (__o0) : \
|
||||||
|
"0" (__g1) : \
|
||||||
|
__SYSCALL_CLOBBERS); \
|
||||||
|
__o0; \
|
||||||
|
})
|
||||||
|
# define inline_syscall1(string,name,arg1) \
|
||||||
|
({ \
|
||||||
|
register long __o0 __asm__ ("o0") = (long)(arg1); \
|
||||||
|
register long __g1 __asm__ ("g1") = name; \
|
||||||
|
__asm __volatile (string : "=r" (__g1), "=r" (__o0) : \
|
||||||
|
"0" (__g1), "1" (__o0) : \
|
||||||
|
__SYSCALL_CLOBBERS); \
|
||||||
|
__o0; \
|
||||||
|
})
|
||||||
|
# define inline_syscall2(string,name,arg1,arg2) \
|
||||||
|
({ \
|
||||||
|
register long __o0 __asm__ ("o0") = (long)(arg1); \
|
||||||
|
register long __o1 __asm__ ("o1") = (long)(arg2); \
|
||||||
|
register long __g1 __asm__ ("g1") = name; \
|
||||||
|
__asm __volatile (string : "=r" (__g1), "=r" (__o0) : \
|
||||||
|
"0" (__g1), "1" (__o0), "r" (__o1) : \
|
||||||
|
__SYSCALL_CLOBBERS); \
|
||||||
|
__o0; \
|
||||||
|
})
|
||||||
|
# define inline_syscall3(string,name,arg1,arg2,arg3) \
|
||||||
|
({ \
|
||||||
|
register long __o0 __asm__ ("o0") = (long)(arg1); \
|
||||||
|
register long __o1 __asm__ ("o1") = (long)(arg2); \
|
||||||
|
register long __o2 __asm__ ("o2") = (long)(arg3); \
|
||||||
|
register long __g1 __asm__ ("g1") = name; \
|
||||||
|
__asm __volatile (string : "=r" (__g1), "=r" (__o0) : \
|
||||||
|
"0" (__g1), "1" (__o0), "r" (__o1), \
|
||||||
|
"r" (__o2) : \
|
||||||
|
__SYSCALL_CLOBBERS); \
|
||||||
|
__o0; \
|
||||||
|
})
|
||||||
|
#elif defined __alpha__
|
||||||
|
# define INTERNAL_SYSCALL(name, err_out, nr, args...) \
|
||||||
|
INTERNAL_SYSCALL1(name, err_out, nr, args)
|
||||||
|
# define INTERNAL_SYSCALL1(name, err_out, nr, args...) \
|
||||||
|
INTERNAL_SYSCALL_NCS(__NR_##name, err_out, nr, args)
|
||||||
|
# define INTERNAL_SYSCALL_NCS(name, err_out, nr, args...) \
|
||||||
|
({ \
|
||||||
|
long _sc_ret, _sc_err; \
|
||||||
|
inline_syscall##nr(name, args); \
|
||||||
|
err_out = _sc_err; \
|
||||||
|
_sc_ret; \
|
||||||
|
})
|
||||||
|
# define INTERNAL_SYSCALL_DECL(err) long int err
|
||||||
|
# define INTERNAL_SYSCALL_ERROR_P(val, err) err
|
||||||
|
# define inline_syscall_clobbers \
|
||||||
|
"$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8", \
|
||||||
|
"$22", "$23", "$24", "$25", "$27", "$28", "memory"
|
||||||
|
# define inline_syscall_r0_asm
|
||||||
|
# define inline_syscall_r0_out_constraint "=v"
|
||||||
|
# define inline_syscall0(name, args...) \
|
||||||
|
{ \
|
||||||
|
register long _sc_0 inline_syscall_r0_asm; \
|
||||||
|
register long _sc_19 __asm__("$19"); \
|
||||||
|
\
|
||||||
|
_sc_0 = name; \
|
||||||
|
__asm__ __volatile__ \
|
||||||
|
("callsys # %0 %1 <= %2" \
|
||||||
|
: inline_syscall_r0_out_constraint (_sc_0), \
|
||||||
|
"=r"(_sc_19) \
|
||||||
|
: "0"(_sc_0) \
|
||||||
|
: inline_syscall_clobbers, \
|
||||||
|
"$16", "$17", "$18", "$20", "$21"); \
|
||||||
|
_sc_ret = _sc_0, _sc_err = _sc_19; \
|
||||||
|
}
|
||||||
|
# define inline_syscall1(name,arg1) \
|
||||||
|
{ \
|
||||||
|
register long _sc_0 inline_syscall_r0_asm; \
|
||||||
|
register long _sc_16 __asm__("$16"); \
|
||||||
|
register long _sc_19 __asm__("$19"); \
|
||||||
|
\
|
||||||
|
_sc_0 = name; \
|
||||||
|
_sc_16 = (long) (arg1); \
|
||||||
|
__asm__ __volatile__ \
|
||||||
|
("callsys # %0 %1 <= %2 %3" \
|
||||||
|
: inline_syscall_r0_out_constraint (_sc_0), \
|
||||||
|
"=r"(_sc_19), "=r"(_sc_16) \
|
||||||
|
: "0"(_sc_0), "2"(_sc_16) \
|
||||||
|
: inline_syscall_clobbers, \
|
||||||
|
"$17", "$18", "$20", "$21"); \
|
||||||
|
_sc_ret = _sc_0, _sc_err = _sc_19; \
|
||||||
|
}
|
||||||
|
# define inline_syscall2(name,arg1,arg2) \
|
||||||
|
{ \
|
||||||
|
register long _sc_0 inline_syscall_r0_asm; \
|
||||||
|
register long _sc_16 __asm__("$16"); \
|
||||||
|
register long _sc_17 __asm__("$17"); \
|
||||||
|
register long _sc_19 __asm__("$19"); \
|
||||||
|
\
|
||||||
|
_sc_0 = name; \
|
||||||
|
_sc_16 = (long) (arg1); \
|
||||||
|
_sc_17 = (long) (arg2); \
|
||||||
|
__asm__ __volatile__ \
|
||||||
|
("callsys # %0 %1 <= %2 %3 %4" \
|
||||||
|
: inline_syscall_r0_out_constraint (_sc_0), \
|
||||||
|
"=r"(_sc_19), "=r"(_sc_16), "=r"(_sc_17) \
|
||||||
|
: "0"(_sc_0), "2"(_sc_16), "3"(_sc_17) \
|
||||||
|
: inline_syscall_clobbers, \
|
||||||
|
"$18", "$20", "$21"); \
|
||||||
|
_sc_ret = _sc_0, _sc_err = _sc_19; \
|
||||||
|
}
|
||||||
|
# define inline_syscall3(name,arg1,arg2,arg3) \
|
||||||
|
{ \
|
||||||
|
register long _sc_0 inline_syscall_r0_asm; \
|
||||||
|
register long _sc_16 __asm__("$16"); \
|
||||||
|
register long _sc_17 __asm__("$17"); \
|
||||||
|
register long _sc_18 __asm__("$18"); \
|
||||||
|
register long _sc_19 __asm__("$19"); \
|
||||||
|
\
|
||||||
|
_sc_0 = name; \
|
||||||
|
_sc_16 = (long) (arg1); \
|
||||||
|
_sc_17 = (long) (arg2); \
|
||||||
|
_sc_18 = (long) (arg3); \
|
||||||
|
__asm__ __volatile__ \
|
||||||
|
("callsys # %0 %1 <= %2 %3 %4 %5" \
|
||||||
|
: inline_syscall_r0_out_constraint (_sc_0), \
|
||||||
|
"=r"(_sc_19), "=r"(_sc_16), "=r"(_sc_17), \
|
||||||
|
"=r"(_sc_18) \
|
||||||
|
: "0"(_sc_0), "2"(_sc_16), "3"(_sc_17), \
|
||||||
|
"4"(_sc_18) \
|
||||||
|
: inline_syscall_clobbers, "$20", "$21"); \
|
||||||
|
_sc_ret = _sc_0, _sc_err = _sc_19; \
|
||||||
|
}
|
||||||
|
#elif defined __arm__ && defined __ARM_EABI__
|
||||||
|
# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
|
||||||
|
# define INTERNAL_SYSCALL(name, err, nr, args...) \
|
||||||
|
({ \
|
||||||
|
register int _r0 __asm__("r0"); \
|
||||||
|
register int _nr __asm__("r7"); \
|
||||||
|
LOAD_ARGS_##nr(args) \
|
||||||
|
_nr = __NR_##name; \
|
||||||
|
asm volatile ("swi\t0\t@ syscall " #name "\n\t" \
|
||||||
|
: "=r" (_r0) \
|
||||||
|
: "r" (_nr) ASM_ARGS_##nr \
|
||||||
|
: "memory"); \
|
||||||
|
_r0; })
|
||||||
|
# define INTERNAL_SYSCALL_ERROR_P(val, err) \
|
||||||
|
((unsigned int) (val) >= 0xfffff001u)
|
||||||
|
# define ASM_ARGS_0
|
||||||
|
# define ASM_ARGS_1 , "r" (_r0)
|
||||||
|
# define ASM_ARGS_2 , "r" (_r0), "r" (_r1)
|
||||||
|
# define ASM_ARGS_3 , "r" (_r0), "r" (_r1), "r" (_r2)
|
||||||
|
# define LOAD_ARGS_0()
|
||||||
|
# define LOAD_ARGS_1(r0) \
|
||||||
|
_r0 = (int)r0;
|
||||||
|
# define LOAD_ARGS_2(r0, r1) \
|
||||||
|
_r0 = (int)r0; \
|
||||||
|
register int _r1 __asm__("r1") = (int)r1;
|
||||||
|
# define LOAD_ARGS_3(r0, r1, r2) \
|
||||||
|
_r0 = (int)r0; \
|
||||||
|
register int _r1 __asm__("r1") = (int)r1; \
|
||||||
|
register int _r2 __asm__("r2") = (int)r2;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int main (int argc, char **argv)
|
||||||
|
{
|
||||||
|
const char *arg[] = { "/sbin/ldconfig", 0 };
|
||||||
|
long ret;
|
||||||
|
INTERNAL_SYSCALL_DECL (err);
|
||||||
|
ret = INTERNAL_SYSCALL (access, err, 2, arg[0], X_OK);
|
||||||
|
if (INTERNAL_SYSCALL_ERROR_P (ret, err))
|
||||||
|
INTERNAL_SYSCALL (exit, err, 1, 0);
|
||||||
|
INTERNAL_SYSCALL (execve, err, 3, arg[0], arg, &argv[argc + 1]);
|
||||||
|
INTERNAL_SYSCALL (exit, err, 1, 110);
|
||||||
|
return 110;
|
||||||
|
}
|
||||||
|
|
||||||
|
int __libc_multiple_threads __attribute__((nocommon));
|
||||||
|
int __libc_enable_asynccancel (void) { return 0; }
|
||||||
|
void __libc_disable_asynccancel (int x) { }
|
||||||
|
void __libc_csu_init (void) { }
|
||||||
|
void __libc_csu_fini (void) { }
|
||||||
|
pid_t __fork (void) { return -1; }
|
||||||
|
char thr_buf[65536];
|
||||||
|
|
||||||
|
#ifndef __powerpc__
|
||||||
|
int __libc_start_main (int (*main) (int argc, char **argv),
|
||||||
|
int argc, char **argv,
|
||||||
|
void (*init) (void), void (*fini) (void),
|
||||||
|
void (*rtld_fini) (void), void * stack_end)
|
||||||
|
#else
|
||||||
|
struct startup_info
|
||||||
|
{
|
||||||
|
void *sda_base;
|
||||||
|
int (*main) (int, char **, char **, void *);
|
||||||
|
int (*init) (int, char **, char **, void *);
|
||||||
|
void (*fini) (void);
|
||||||
|
};
|
||||||
|
|
||||||
|
int __libc_start_main (int argc, char **argv, char **ev,
|
||||||
|
void *auxvec, void (*rtld_fini) (void),
|
||||||
|
struct startup_info *stinfo,
|
||||||
|
char **stack_on_entry)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#if defined __ia64__ || defined __powerpc64__
|
||||||
|
register void *r13 __asm ("r13") = thr_buf + 32768;
|
||||||
|
__asm ("" : : "r" (r13));
|
||||||
|
#elif defined __sparc__
|
||||||
|
register void *g6 __asm ("g6") = thr_buf + 32768;
|
||||||
|
__thread_self = thr_buf + 32768;
|
||||||
|
__asm ("" : : "r" (g6), "r" (__thread_self));
|
||||||
|
#elif defined __s390__ && !defined __s390x__
|
||||||
|
__asm ("sar %%a0,%0" : : "d" (thr_buf + 32768));
|
||||||
|
#elif defined __s390x__
|
||||||
|
__asm ("sar %%a1,%0; srlg 0,%0,32; sar %%a0,0" : : "d" (thr_buf + 32768) : "0");
|
||||||
|
#elif defined __powerpc__ && !defined __powerpc64__
|
||||||
|
register void *r2 __asm ("r2") = thr_buf + 32768;
|
||||||
|
__asm ("" : : "r" (r2));
|
||||||
|
#endif
|
||||||
|
#ifdef __powerpc__
|
||||||
|
argc = (long)*stack_on_entry;
|
||||||
|
argv = stack_on_entry + 1;
|
||||||
|
#endif
|
||||||
|
main (argc, argv);
|
||||||
|
return 110;
|
||||||
|
}
|
5
sources
5
sources
@ -1,3 +1,2 @@
|
|||||||
SHA512 (gcc-10.0.1-20200216.tar.xz) = 56507e273b00e85ed4145e80df65d9b4e4791f23e7cb5d931f85b9420cbf3a7125ba49978dc73c2987c0a6101f741dc5a60a08cb3346d4c5082400cbcfcdd008
|
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
|
||||||
SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 9ceea0b883185fe489724d54a7e909bb6ed4785fcadf80162033dc6a133e2657337175601278e4155d1f8fac275ff9c8a02572aea876166c608774c809f832e9
|
cba4eec9853841706747987fb1bc58c5 gcc-4.5.0-20100707.tar.bz2
|
||||||
SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7
|
|
||||||
|
@ -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
|
|
Loading…
Reference in New Issue
Block a user