Compare commits
326 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
891cef7d9b | ||
|
9bce8e2449 | ||
|
55f9b2f336 | ||
|
f8b6352429 | ||
|
5e141990fb | ||
|
912e74c756 | ||
|
b84725ac52 | ||
|
7de85a2603 | ||
|
576d41c1c6 | ||
|
562d27c22f | ||
|
57a884df51 | ||
|
04dfce99db | ||
|
b05570344e | ||
|
52eb664223 | ||
|
0d8c061e19 | ||
|
56772a9401 | ||
|
4110c03341 | ||
|
4c8c128cd0 | ||
|
f684732e50 | ||
|
4562ca924e | ||
|
90028182f3 | ||
|
6919aa138f | ||
|
672c273c6d | ||
|
94498d7104 | ||
|
28742415b7 | ||
|
f2dc6d80c8 | ||
|
b2a5d6a477 | ||
|
fd99b9378d | ||
|
a3fcce8f5b | ||
|
84af04ddb6 | ||
|
b6b1340286 | ||
|
84ce3f0d05 | ||
|
5c04074052 | ||
|
4d0e748417 | ||
|
1d6c11d8df | ||
|
843493ecf7 | ||
|
bad9bc25a4 | ||
|
f790525bec | ||
|
fc147e70c0 | ||
|
8ccdd26200 | ||
|
d1c6bd89f3 | ||
|
e0c920a406 | ||
|
d228ee264c | ||
|
e6073613ef | ||
|
f147a68289 | ||
|
7ee3a099fa | ||
|
fe09f8496b | ||
|
16bcddd9d4 | ||
|
7545ecb969 | ||
|
a6c3c8f082 | ||
|
d895623061 | ||
|
a71fb3364e | ||
|
db0aca6b64 | ||
|
215844b31b | ||
|
80dc8803df | ||
|
3759f6f554 | ||
|
adee8bcb39 | ||
|
cee0dddd34 | ||
|
da335fc250 | ||
|
bcdeb85901 | ||
|
1321d9a8de | ||
|
3694befabb | ||
|
2a22f8c83a | ||
|
866b034132 | ||
|
17d43f4d58 | ||
|
b627ff6a1c | ||
|
98b4937fcb | ||
|
858f1e25fb | ||
|
e66bcabdd3 | ||
|
a2239731d4 | ||
|
c05efdcd33 | ||
|
6e4a12be24 | ||
|
7df147abdd | ||
|
2edf51cd28 | ||
|
3deee803bf | ||
|
8602ede777 | ||
|
8fb0e5b0d3 | ||
|
7ad4cfb1f2 | ||
|
c01972f342 | ||
|
b1fe12b88a | ||
|
0aaf98d346 | ||
|
c0d3a20ab3 | ||
|
4b90559c50 | ||
|
e0b3768e1a | ||
|
391f8204b0 | ||
|
b7ec01b44a | ||
|
db4105af40 | ||
|
eb398c7fb1 | ||
|
0d6e9e6a5b | ||
|
3ae68fd84a | ||
|
9647f3f8db | ||
|
0e0506dd37 | ||
|
1bfe0e3c3b | ||
|
83dbb2847c | ||
|
86d615d880 | ||
|
b182d5ff6b | ||
|
2a24f771d1 | ||
|
f445959efa | ||
|
16819750d2 | ||
|
d301a3c7b8 | ||
|
ff5dc29cd1 | ||
|
7d69d114a8 | ||
|
497de73bd7 | ||
|
c0ae016cb4 | ||
|
7c58fda150 | ||
|
313e678076 | ||
|
08f661c823 | ||
|
d40df5fcf2 | ||
|
e6bd153753 | ||
|
cc9b5fa3ba | ||
|
47b8ada335 | ||
|
ca8c0f7dc6 | ||
|
fa22fac534 | ||
|
216b951886 | ||
|
7a1512fd56 | ||
|
3139eaf997 | ||
|
da33ffbe57 | ||
|
b147991d7c | ||
|
e400728936 | ||
|
6af92eba78 | ||
|
e90615843b | ||
|
a6ea9c4518 | ||
|
402f1e9204 | ||
|
f36e50eab5 | ||
|
8f4badaa38 | ||
|
d69736566d | ||
|
544398b502 | ||
|
2cf19e11cb | ||
|
e987aff0a2 | ||
|
553b93f777 | ||
|
82e3c0071b | ||
|
6e856a1b72 | ||
|
ff60308ab9 | ||
|
9b6d8e7c01 | ||
|
23f4b29ddd | ||
|
42139e4c56 | ||
|
28eca72fa2 | ||
|
dc54e4f153 | ||
|
e3161c6575 | ||
|
5e51bccff0 | ||
|
ac2a849717 | ||
|
f5843a4192 | ||
|
7d28ff24f9 | ||
|
e8e4643647 | ||
|
e7ba2ccc61 | ||
|
dcf86feb99 | ||
|
7a880b1a75 | ||
|
fe7fce2ad1 | ||
|
45a2f253fb | ||
|
015c95afae | ||
|
0ec4e456b8 | ||
|
ecfa641ec4 | ||
|
3e19e07261 | ||
|
61f26fa336 | ||
|
5e173247a4 | ||
|
066310e826 | ||
|
6c2cfcacd9 | ||
|
88ff65fe51 | ||
|
4708d93f41 | ||
|
cc580afc17 | ||
|
9c103286cf | ||
|
f9528196b2 | ||
|
1c8b31bfd3 | ||
|
a15b5bd3a0 | ||
|
d4df112f70 | ||
|
03d47e4b9f | ||
|
9e5fffaae3 | ||
|
398cd1e186 | ||
|
4d72b19d1c | ||
|
3d5e14ec38 | ||
|
6ed6e5a4c3 | ||
|
98a12cbd71 | ||
|
4c8d27c4d6 | ||
|
557c86d25c | ||
|
16c6a8852b | ||
|
4839e4255b | ||
|
a3b64e0868 | ||
|
010b19f294 | ||
|
a96763b324 | ||
|
dcf3c8d360 | ||
|
8e4a3f2d33 | ||
|
50fa9e4ee3 | ||
|
31e7eb359b | ||
|
4f5892b0e1 | ||
|
39e0659a62 | ||
|
0ccb8bbebc | ||
|
f77ea1a1aa | ||
|
aece5e1599 | ||
|
fd1cb09e79 | ||
|
b66b3a4e1c | ||
|
bef1492459 | ||
|
ed49338072 | ||
|
47e7711955 | ||
|
34ff97e734 | ||
|
8297b8b107 | ||
|
aed55db9d5 | ||
|
005db08c91 | ||
|
f027054e0f | ||
|
773cefac2c | ||
|
8a240523f5 | ||
|
d9e1ca5983 | ||
|
89e370f159 | ||
|
ec74b26ecd | ||
|
cde96063b7 | ||
|
f7b06a7726 | ||
|
395869404d | ||
|
97475d9eac | ||
|
348f6fd9c9 | ||
|
2d005021d3 | ||
|
885401bf7e | ||
|
4be70d1ef3 | ||
|
314efdbb41 | ||
|
bd1b81e9ec | ||
|
d85626def8 | ||
|
cc2a83d686 | ||
|
9ac4480c60 | ||
|
9cda1c00f1 | ||
|
42a3075cdf | ||
|
a04a33c99f | ||
|
04e43e85d1 | ||
|
3af662e237 | ||
|
7469a333bd | ||
|
c2a1e7ae5d | ||
|
9e75c715be | ||
|
cd907e635a | ||
|
265c57ff22 | ||
|
9fb8c87d6b | ||
|
df1d6ea021 | ||
|
6534eed5ef | ||
|
c148037b80 | ||
|
274d6185bd | ||
|
99f1530af5 | ||
|
9d66f2aa7e | ||
|
1a6fe020a9 | ||
|
f0234e9c6f | ||
|
0bb9c97686 | ||
|
b5d17a9ac5 | ||
|
f3095e1332 | ||
|
7a229a5888 | ||
|
133d0a0f64 | ||
|
652db2243e | ||
|
19ca4dcbaa | ||
|
91c7bec969 | ||
|
7fcf30a7ea | ||
|
0bc6460875 | ||
|
addcbcb750 | ||
|
d752cf184d | ||
|
8ea1c62843 | ||
|
e6685fa969 | ||
|
8b4ef1c4cf | ||
|
5b794eb004 | ||
|
3f4ac1c552 | ||
|
e22880b36d | ||
|
305029d3ec | ||
|
a2ef59f731 | ||
|
19b59d9a23 | ||
|
6d4716823e | ||
|
d76b340928 | ||
|
8654925ece | ||
|
0215eb2e85 | ||
|
cf944628eb | ||
|
c728afb1bb | ||
|
83ca86ca70 | ||
|
314add3fda | ||
|
765b1cc36a | ||
|
ff74606e8e | ||
|
274be4f351 | ||
|
a6d3dcaca6 | ||
|
2f08a3f6d8 | ||
|
ff411575cc | ||
|
b8d50582fb | ||
|
7f99993652 | ||
|
06398e8981 | ||
|
b75648d9b2 | ||
|
79c442fecf | ||
|
4ac68e8f20 | ||
|
e3e00ff5dd | ||
|
b30271576a | ||
|
79ac3cdb38 | ||
|
f5f8bc6087 | ||
|
3438bcad98 | ||
|
4fa57fa088 | ||
|
a593d741ef | ||
|
8036281669 | ||
|
24eca83ae3 | ||
|
69d0fcbc90 | ||
|
0806d93e69 | ||
|
d048d4b08d | ||
|
af3b5a8175 | ||
|
69c89853de | ||
|
cc74938640 | ||
|
5a434b44d3 | ||
|
4503e5ecde | ||
|
c204df3143 | ||
|
b63748e323 | ||
|
a365d3e4eb | ||
|
17446a0ad9 | ||
|
78557d4f6e | ||
|
3e2f90cd29 | ||
|
4c9c56bc02 | ||
|
7e9585f371 | ||
|
4ec33619df | ||
|
8c3f968e67 | ||
|
593c3952f8 | ||
|
4d58f0308a | ||
|
b446c2e737 | ||
|
5a75d1ef76 | ||
|
fd8fd40120 | ||
|
033def827b | ||
|
99dddb3746 | ||
|
6d24375c60 | ||
|
d43d3d6446 | ||
|
d495ed6f81 | ||
|
83a8e4c260 | ||
|
58525d3c9e | ||
|
991ab254f2 | ||
|
594ac2c7d7 | ||
|
bd92d74066 | ||
|
14fee31c28 | ||
|
8e4bdb38f2 | ||
|
848872f40b | ||
|
c3342eaf1c | ||
|
a079048eee | ||
|
2a555c3cf9 | ||
|
7d55b59b7e | ||
|
8d0243eb05 |
101
.gitignore
vendored
101
.gitignore
vendored
@ -1,93 +1,8 @@
|
|||||||
/fastjar-0.97.tar.gz
|
/gcc-10.0.1-20200118.tar.xz
|
||||||
/gcc-4.6.0-20110128.tar.bz2
|
/newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz
|
||||||
/gcc-4.6.0-20110205.tar.bz2
|
/nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz
|
||||||
/gcc-4.6.0-20110525.tar.bz2
|
/gcc-10.0.1-20200121.tar.xz
|
||||||
/gcc-4.6.0-20110530.tar.bz2
|
/gcc-10.0.1-20200123.tar.xz
|
||||||
/gcc-4.6.0-20110603.tar.bz2
|
/gcc-10.0.1-20200126.tar.xz
|
||||||
/gcc-4.6.1-20110627.tar.bz2
|
/gcc-10.0.1-20200130.tar.xz
|
||||||
/gcc-4.6.1-20110708.tar.bz2
|
/gcc-10.0.1-20200216.tar.xz
|
||||||
/gcc-4.6.1-20110715.tar.bz2
|
|
||||||
/gcc-4.7.0-20120103.tar.bz2
|
|
||||||
/gcc-4.7.0-20120104.tar.bz2
|
|
||||||
/gcc-4.7.0-20120105.tar.bz2
|
|
||||||
/gcc-4.7.0-20120106.tar.bz2
|
|
||||||
/gcc-4.7.0-20120112.tar.bz2
|
|
||||||
/gcc-4.7.0-20120117.tar.bz2
|
|
||||||
/gcc-4.7.0-20120119.tar.bz2
|
|
||||||
/gcc-4.7.0-20120123.tar.bz2
|
|
||||||
/gcc-4.7.0-20120126.tar.bz2
|
|
||||||
/gcc-4.7.0-20120206.tar.bz2
|
|
||||||
/gcc-4.7.0-20120208.tar.bz2
|
|
||||||
/gcc-4.7.0-20120216.tar.bz2
|
|
||||||
/gcc-4.7.0-20120221.tar.bz2
|
|
||||||
/gcc-4.7.0-20120223.tar.bz2
|
|
||||||
/gcc-4.7.0-20120224.tar.bz2
|
|
||||||
/gcc-4.7.0-20120227.tar.bz2
|
|
||||||
/gcc-4.7.0-20120229.tar.bz2
|
|
||||||
/gcc-4.7.0-20120308.tar.bz2
|
|
||||||
/gcc-4.7.0-20120315.tar.bz2
|
|
||||||
/gcc-4.7.0-20120322.tar.bz2
|
|
||||||
/gcc-4.7.0-20120416.tar.bz2
|
|
||||||
/gcc-4.7.0-20120502.tar.bz2
|
|
||||||
/gcc-4.7.0-20120504.tar.bz2
|
|
||||||
/gcc-4.7.0-20120507.tar.bz2
|
|
||||||
/gcc-4.7.0-20120525.tar.bz2
|
|
||||||
/gcc-4.7.0-20120604.tar.bz2
|
|
||||||
/gcc-4.7.1-20120629.tar.bz2
|
|
||||||
/gcc-4.7.1-20120716.tar.bz2
|
|
||||||
/gcc-4.7.1-20120718.tar.bz2
|
|
||||||
/gcc-4.7.1-20120720.tar.bz2
|
|
||||||
/gcc-4.7.1-20120810.tar.bz2
|
|
||||||
/gcc-4.7.1-20120813.tar.bz2
|
|
||||||
/gcc-4.7.1-20120913.tar.bz2
|
|
||||||
/gcc-4.7.2-20120920.tar.bz2
|
|
||||||
/gcc-4.7.2-20120921.tar.bz2
|
|
||||||
/gcc-4.7.2-20121001.tar.bz2
|
|
||||||
/gcc-4.7.2-20121009.tar.bz2
|
|
||||||
/gcc-4.7.2-20121015.tar.bz2
|
|
||||||
/gcc-4.7.2-20121105.tar.bz2
|
|
||||||
/gcc-4.7.2-20121109.tar.bz2
|
|
||||||
/cloog-0.17.0.tar.gz
|
|
||||||
/isl-0.10.tar.bz2
|
|
||||||
/gcc-4.8.0-20130106.tar.bz2
|
|
||||||
/gcc-4.8.0-20130121.tar.bz2
|
|
||||||
/cloog-0.18.0.tar.gz
|
|
||||||
/isl-0.11.1.tar.bz2
|
|
||||||
/gcc-4.8.0-20130122.tar.bz2
|
|
||||||
/gcc-4.8.0-20130124.tar.bz2
|
|
||||||
/gcc-4.8.0-20130129.tar.bz2
|
|
||||||
/gcc-4.8.0-20130131.tar.bz2
|
|
||||||
/gcc-4.8.0-20130206.tar.bz2
|
|
||||||
/gcc-4.8.0-20130208.tar.bz2
|
|
||||||
/gcc-4.8.0-20130211.tar.bz2
|
|
||||||
/gcc-4.8.0-20130213.tar.bz2
|
|
||||||
/gcc-4.8.0-20130215.tar.bz2
|
|
||||||
/gcc-4.8.0-20130220.tar.bz2
|
|
||||||
/gcc-4.8.0-20130304.tar.bz2
|
|
||||||
/gcc-4.8.0-20130307.tar.bz2
|
|
||||||
/gcc-4.8.0-20130316.tar.bz2
|
|
||||||
/gcc-4.8.0-20130320.tar.bz2
|
|
||||||
/gcc-4.8.0-20130322.tar.bz2
|
|
||||||
/gcc-4.8.0-20130412.tar.bz2
|
|
||||||
/gcc-4.8.0-20130419.tar.bz2
|
|
||||||
/gcc-4.8.0-20130507.tar.bz2
|
|
||||||
/gcc-4.8.0-20130510.tar.bz2
|
|
||||||
/gcc-4.8.0-20130517.tar.bz2
|
|
||||||
/gcc-4.8.0-20130524.tar.bz2
|
|
||||||
/gcc-4.8.0-20130526.tar.bz2
|
|
||||||
/gcc-4.8.1-20130603.tar.bz2
|
|
||||||
/gcc-4.8.1-20130612.tar.bz2
|
|
||||||
/gcc-4.8.1-20130628.tar.bz2
|
|
||||||
/gcc-4.8.1-20130715.tar.bz2
|
|
||||||
/gcc-4.8.1-20130717.tar.bz2
|
|
||||||
/gcc-4.8.1-20130814.tar.bz2
|
|
||||||
/gcc-4.8.1-20130829.tar.bz2
|
|
||||||
/gcc-4.8.1-20130909.tar.bz2
|
|
||||||
/gcc-4.8.1-20130915.tar.bz2
|
|
||||||
/gcc-4.8.1-20130920.tar.bz2
|
|
||||||
/gcc-4.8.2-20131017.tar.bz2
|
|
||||||
/gcc-4.8.2-20131111.tar.bz2
|
|
||||||
/gcc-4.8.2-20131209.tar.bz2
|
|
||||||
/gcc-4.8.2-20131212.tar.bz2
|
|
||||||
/gcc-4.8.2-20140115.tar.bz2
|
|
||||||
/gcc-4.8.2-20140120.tar.bz2
|
|
||||||
|
35
STAGE1-gcc
Normal file
35
STAGE1-gcc
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
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}/
|
48
STAGE1-gcc-host
Normal file
48
STAGE1-gcc-host
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
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
|
34
STAGE1-gcc-libgcc
Normal file
34
STAGE1-gcc-libgcc
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
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
Normal file
28
STAGE1-t-gcc
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
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}
|
File diff suppressed because it is too large
Load Diff
@ -1,14 +0,0 @@
|
|||||||
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)
|
|
@ -1,16 +0,0 @@
|
|||||||
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){
|
|
@ -1,29 +0,0 @@
|
|||||||
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);
|
|
@ -1,102 +0,0 @@
|
|||||||
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",
|
|
@ -1,27 +0,0 @@
|
|||||||
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
|
|
27
gcc10-Wno-format-security.patch
Normal file
27
gcc10-Wno-format-security.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
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
|
20
gcc10-d-shared-libphobos.patch
Normal file
20
gcc10-d-shared-libphobos.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
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)
|
122
gcc10-foffload-default.patch
Normal file
122
gcc10-foffload-default.patch
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
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
Normal file
126
gcc10-hack.patch
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
--- 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;
|
@ -9,12 +9,3 @@
|
|||||||
fi
|
fi
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
@@ -79,7 +79,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
|
|
||||||
;;
|
|
715
gcc10-isl-dl.patch
Normal file
715
gcc10-isl-dl.patch
Normal file
@ -0,0 +1,715 @@
|
|||||||
|
--- 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,26 +1,24 @@
|
|||||||
--- libstdc++-v3/doc/html/index.html.jj 2011-01-03 12:53:21.282829010 +0100
|
--- 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
|
+++ libstdc++-v3/doc/html/index.html 2011-01-04 18:06:28.999851145 +0100
|
||||||
@@ -5,6 +5,8 @@
|
@@ -5,6 +5,8 @@
|
||||||
<a class="link" href="http://www.fsf.org/" target="_top">FSF
|
<a class="link" href="https://www.fsf.org" target="_top">FSF
|
||||||
</a>
|
</a>
|
||||||
</p><p>
|
</p><p>
|
||||||
+ Release 4.8.1
|
+ Release 10.0.1
|
||||||
+ </p><p>
|
+ </p><p>
|
||||||
Permission is granted to copy, distribute and/or modify this
|
Permission is granted to copy, distribute and/or modify this
|
||||||
document under the terms of the GNU Free Documentation
|
document under the terms of the GNU Free Documentation
|
||||||
License, Version 1.2 or any later version published by the
|
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.jj 2011-01-03 12:53:21.000000000 +0100
|
||||||
+++ libstdc++-v3/doc/html/api.html 2011-01-04 18:12:01.672757784 +0100
|
+++ libstdc++-v3/doc/html/api.html 2011-01-04 18:12:01.672757784 +0100
|
||||||
@@ -18,8 +18,11 @@
|
@@ -20,7 +20,9 @@
|
||||||
member functions for the library classes, finding out what is in a
|
member functions for the library classes, finding out what is in a
|
||||||
particular include file, looking at inheritance diagrams, etc.
|
particular include file, looking at inheritance diagrams, etc.
|
||||||
</p><p>
|
</p><p>
|
||||||
- The API documentation, rendered into HTML, can be viewed online:
|
- The API documentation, rendered into HTML, can be viewed online
|
||||||
+ The API documentation, rendered into HTML, can be viewed here:
|
+ The API documentation, rendered into HTML, can be viewed locally
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
|
+ <a class="link" href="api/index.html" target="_top">for the 10.0.1 release</a>,
|
||||||
+ <a class="link" href="api/index.html" target="_top">for the 4.8.1 release, local
|
+ online
|
||||||
+ </a>
|
<a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
|
||||||
+ </p></li><li class="listitem"><p>
|
and
|
||||||
<a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/index.html" target="_top">for the 3.4 release
|
<a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">
|
||||||
</a>
|
|
||||||
</p></li><li class="listitem"><p>
|
|
37
gcc10-no-add-needed.patch
Normal file
37
gcc10-no-add-needed.patch
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
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 \
|
30
gcc10-rh1574936.patch
Normal file
30
gcc10-rh1574936.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
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,21 +1,21 @@
|
|||||||
--- gcc/config.gcc.jj 2008-04-24 15:42:46.000000000 -0500
|
--- gcc/config.gcc.jj 2008-04-24 15:42:46.000000000 -0500
|
||||||
+++ gcc/config.gcc 2008-04-24 15:44:51.000000000 -0500
|
+++ gcc/config.gcc 2008-04-24 15:44:51.000000000 -0500
|
||||||
@@ -2421,7 +2421,7 @@ sparc-*-rtems*)
|
@@ -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"
|
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="sparc/t-sparc sparc/t-elf sparc/t-rtems t-rtems"
|
tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
|
||||||
;;
|
;;
|
||||||
-sparc-*-linux*)
|
-sparc-*-linux*)
|
||||||
+sparc-*-linux* | sparcv9-*-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"
|
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"
|
extra_options="${extra_options} sparc/long-double-switch.opt"
|
||||||
case ${target} in
|
case ${target} in
|
||||||
@@ -2474,7 +2474,7 @@ sparc64-*-rtems*)
|
@@ -2844,7 +2844,7 @@ sparc64-*-rtems*)
|
||||||
extra_options="${extra_options}"
|
extra_options="${extra_options}"
|
||||||
tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64 t-rtems"
|
tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
|
||||||
;;
|
;;
|
||||||
-sparc64-*-linux*)
|
-sparc64-*-linux*)
|
||||||
+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/default-64.h sparc/linux64.h sparc/tso.h"
|
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"
|
extra_options="${extra_options} sparc/long-double-switch.opt"
|
||||||
tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
|
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.jj 2008-04-24 15:46:19.000000000 -0500
|
@ -1,474 +0,0 @@
|
|||||||
--- gcc/Makefile.in.jj 2012-12-13 17:09:20.000000000 +0100
|
|
||||||
+++ gcc/Makefile.in 2012-12-14 11:45:22.585670055 +0100
|
|
||||||
@@ -1022,7 +1022,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
|
|
||||||
# and the system's installed libraries.
|
|
||||||
LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \
|
|
||||||
$(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS)
|
|
||||||
-BACKENDLIBS = $(CLOOGLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
|
|
||||||
+BACKENDLIBS = $(if $(CLOOGLIBS),-ldl) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
|
|
||||||
$(ZLIB)
|
|
||||||
# Any system libraries needed just for GNAT.
|
|
||||||
SYSLIBS = @GNAT_LIBEXC@
|
|
||||||
@@ -3442,6 +3442,15 @@ $(common_out_object_file): $(common_out_
|
|
||||||
$(DIAGNOSTIC_CORE_H) $(FLAGS_H) $(OPTS_H) $(TM_H) $(TM_P_H) $(MACHMODE_H)
|
|
||||||
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
|
|
||||||
$< $(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))
|
|
||||||
+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-poly.h.jj 2012-12-13 11:31:27.000000000 +0100
|
|
||||||
+++ gcc/graphite-poly.h 2012-12-14 13:41:41.970800726 +0100
|
|
||||||
@@ -22,6 +22,369 @@ along with GCC; see the file COPYING3.
|
|
||||||
#ifndef GCC_GRAPHITE_POLY_H
|
|
||||||
#define GCC_GRAPHITE_POLY_H
|
|
||||||
|
|
||||||
+#include <isl/aff.h>
|
|
||||||
+#include <isl/schedule.h>
|
|
||||||
+#include <isl/ilp.h>
|
|
||||||
+#include <isl/flow.h>
|
|
||||||
+#include <isl/options.h>
|
|
||||||
+#include <cloog/isl/cloog.h>
|
|
||||||
+#include <dlfcn.h>
|
|
||||||
+#define DYNSYMS \
|
|
||||||
+ DYNSYM (clast_pprint); \
|
|
||||||
+ DYNSYM (cloog_clast_create_from_input); \
|
|
||||||
+ DYNSYM (cloog_clast_free); \
|
|
||||||
+ DYNSYM (cloog_domain_from_isl_set); \
|
|
||||||
+ DYNSYM (cloog_input_alloc); \
|
|
||||||
+ DYNSYM (cloog_isl_state_malloc); \
|
|
||||||
+ DYNSYM (cloog_options_free); \
|
|
||||||
+ DYNSYM (cloog_options_malloc); \
|
|
||||||
+ DYNSYM (cloog_scattering_from_isl_map); \
|
|
||||||
+ DYNSYM (cloog_state_free); \
|
|
||||||
+ DYNSYM (cloog_union_domain_add_domain); \
|
|
||||||
+ DYNSYM (cloog_union_domain_alloc); \
|
|
||||||
+ DYNSYM (cloog_union_domain_set_name); \
|
|
||||||
+ DYNSYM (isl_aff_add_coefficient_si); \
|
|
||||||
+ DYNSYM (isl_aff_add_constant); \
|
|
||||||
+ DYNSYM (isl_aff_free); \
|
|
||||||
+ DYNSYM (isl_aff_get_coefficient); \
|
|
||||||
+ DYNSYM (isl_aff_get_space); \
|
|
||||||
+ DYNSYM (isl_aff_mod); \
|
|
||||||
+ 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_member_is_zero_distance); \
|
|
||||||
+ 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); \
|
|
||||||
+ DYNSYM (isl_constraint_set_coefficient_si); \
|
|
||||||
+ DYNSYM (isl_constraint_set_constant); \
|
|
||||||
+ 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_fuse); \
|
|
||||||
+ 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_mod); \
|
|
||||||
+ 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_from_cloog_domain); \
|
|
||||||
+ DYNSYM (isl_set_get_space); \
|
|
||||||
+ DYNSYM (isl_set_get_tuple_id); \
|
|
||||||
+ DYNSYM (isl_set_intersect); \
|
|
||||||
+ DYNSYM (isl_set_is_empty); \
|
|
||||||
+ DYNSYM (isl_set_max); \
|
|
||||||
+ DYNSYM (isl_set_min); \
|
|
||||||
+ 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 (stmt_ass); \
|
|
||||||
+ DYNSYM (stmt_block); \
|
|
||||||
+ DYNSYM (stmt_for); \
|
|
||||||
+ DYNSYM (stmt_guard); \
|
|
||||||
+ DYNSYM (stmt_root); \
|
|
||||||
+ DYNSYM (stmt_user);
|
|
||||||
+extern struct cloog_pointers_s__
|
|
||||||
+{
|
|
||||||
+ 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 clast_pprint (*cloog_pointers__.p_clast_pprint)
|
|
||||||
+#define cloog_clast_create_from_input (*cloog_pointers__.p_cloog_clast_create_from_input)
|
|
||||||
+#define cloog_clast_free (*cloog_pointers__.p_cloog_clast_free)
|
|
||||||
+#define cloog_domain_from_isl_set (*cloog_pointers__.p_cloog_domain_from_isl_set)
|
|
||||||
+#define cloog_input_alloc (*cloog_pointers__.p_cloog_input_alloc)
|
|
||||||
+#define cloog_isl_state_malloc (*cloog_pointers__.p_cloog_isl_state_malloc)
|
|
||||||
+#define cloog_options_free (*cloog_pointers__.p_cloog_options_free)
|
|
||||||
+#define cloog_options_malloc (*cloog_pointers__.p_cloog_options_malloc)
|
|
||||||
+#define cloog_scattering_from_isl_map (*cloog_pointers__.p_cloog_scattering_from_isl_map)
|
|
||||||
+#define cloog_state_free (*cloog_pointers__.p_cloog_state_free)
|
|
||||||
+#define cloog_union_domain_add_domain (*cloog_pointers__.p_cloog_union_domain_add_domain)
|
|
||||||
+#define cloog_union_domain_alloc (*cloog_pointers__.p_cloog_union_domain_alloc)
|
|
||||||
+#define cloog_union_domain_set_name (*cloog_pointers__.p_cloog_union_domain_set_name)
|
|
||||||
+#define isl_aff_add_coefficient_si (*cloog_pointers__.p_isl_aff_add_coefficient_si)
|
|
||||||
+#define isl_aff_add_constant (*cloog_pointers__.p_isl_aff_add_constant)
|
|
||||||
+#define isl_aff_free (*cloog_pointers__.p_isl_aff_free)
|
|
||||||
+#define isl_aff_get_coefficient (*cloog_pointers__.p_isl_aff_get_coefficient)
|
|
||||||
+#define isl_aff_get_space (*cloog_pointers__.p_isl_aff_get_space)
|
|
||||||
+#define isl_aff_mod (*cloog_pointers__.p_isl_aff_mod)
|
|
||||||
+#define isl_aff_set_coefficient_si (*cloog_pointers__.p_isl_aff_set_coefficient_si)
|
|
||||||
+#define isl_aff_set_constant_si (*cloog_pointers__.p_isl_aff_set_constant_si)
|
|
||||||
+#define isl_aff_zero_on_domain (*cloog_pointers__.p_isl_aff_zero_on_domain)
|
|
||||||
+#define isl_band_free (*cloog_pointers__.p_isl_band_free)
|
|
||||||
+#define isl_band_get_children (*cloog_pointers__.p_isl_band_get_children)
|
|
||||||
+#define isl_band_get_partial_schedule (*cloog_pointers__.p_isl_band_get_partial_schedule)
|
|
||||||
+#define isl_band_has_children (*cloog_pointers__.p_isl_band_has_children)
|
|
||||||
+#define isl_band_list_free (*cloog_pointers__.p_isl_band_list_free)
|
|
||||||
+#define isl_band_list_get_band (*cloog_pointers__.p_isl_band_list_get_band)
|
|
||||||
+#define isl_band_list_get_ctx (*cloog_pointers__.p_isl_band_list_get_ctx)
|
|
||||||
+#define isl_band_list_n_band (*cloog_pointers__.p_isl_band_list_n_band)
|
|
||||||
+#define isl_band_member_is_zero_distance (*cloog_pointers__.p_isl_band_member_is_zero_distance)
|
|
||||||
+#define isl_band_n_member (*cloog_pointers__.p_isl_band_n_member)
|
|
||||||
+#define isl_basic_map_add_constraint (*cloog_pointers__.p_isl_basic_map_add_constraint)
|
|
||||||
+#define isl_basic_map_project_out (*cloog_pointers__.p_isl_basic_map_project_out)
|
|
||||||
+#define isl_basic_map_universe (*cloog_pointers__.p_isl_basic_map_universe)
|
|
||||||
+#define isl_constraint_set_coefficient (*cloog_pointers__.p_isl_constraint_set_coefficient)
|
|
||||||
+#define isl_constraint_set_coefficient_si (*cloog_pointers__.p_isl_constraint_set_coefficient_si)
|
|
||||||
+#define isl_constraint_set_constant (*cloog_pointers__.p_isl_constraint_set_constant)
|
|
||||||
+#define isl_constraint_set_constant_si (*cloog_pointers__.p_isl_constraint_set_constant_si)
|
|
||||||
+#define isl_ctx_alloc (*cloog_pointers__.p_isl_ctx_alloc)
|
|
||||||
+#define isl_ctx_free (*cloog_pointers__.p_isl_ctx_free)
|
|
||||||
+#define isl_equality_alloc (*cloog_pointers__.p_isl_equality_alloc)
|
|
||||||
+#define isl_id_alloc (*cloog_pointers__.p_isl_id_alloc)
|
|
||||||
+#define isl_id_copy (*cloog_pointers__.p_isl_id_copy)
|
|
||||||
+#define isl_id_free (*cloog_pointers__.p_isl_id_free)
|
|
||||||
+#define isl_inequality_alloc (*cloog_pointers__.p_isl_inequality_alloc)
|
|
||||||
+#define isl_local_space_copy (*cloog_pointers__.p_isl_local_space_copy)
|
|
||||||
+#define isl_local_space_free (*cloog_pointers__.p_isl_local_space_free)
|
|
||||||
+#define isl_local_space_from_space (*cloog_pointers__.p_isl_local_space_from_space)
|
|
||||||
+#define isl_local_space_range (*cloog_pointers__.p_isl_local_space_range)
|
|
||||||
+#define isl_map_add_constraint (*cloog_pointers__.p_isl_map_add_constraint)
|
|
||||||
+#define isl_map_add_dims (*cloog_pointers__.p_isl_map_add_dims)
|
|
||||||
+#define isl_map_align_params (*cloog_pointers__.p_isl_map_align_params)
|
|
||||||
+#define isl_map_apply_range (*cloog_pointers__.p_isl_map_apply_range)
|
|
||||||
+#define isl_map_copy (*cloog_pointers__.p_isl_map_copy)
|
|
||||||
+#define isl_map_dim (*cloog_pointers__.p_isl_map_dim)
|
|
||||||
+#define isl_map_dump (*cloog_pointers__.p_isl_map_dump)
|
|
||||||
+#define isl_map_equate (*cloog_pointers__.p_isl_map_equate)
|
|
||||||
+#define isl_map_fix_si (*cloog_pointers__.p_isl_map_fix_si)
|
|
||||||
+#define isl_map_flat_product (*cloog_pointers__.p_isl_map_flat_product)
|
|
||||||
+#define isl_map_flat_range_product (*cloog_pointers__.p_isl_map_flat_range_product)
|
|
||||||
+#define isl_map_free (*cloog_pointers__.p_isl_map_free)
|
|
||||||
+#define isl_map_from_basic_map (*cloog_pointers__.p_isl_map_from_basic_map)
|
|
||||||
+#define isl_map_from_pw_aff (*cloog_pointers__.p_isl_map_from_pw_aff)
|
|
||||||
+#define isl_map_from_union_map (*cloog_pointers__.p_isl_map_from_union_map)
|
|
||||||
+#define isl_map_get_ctx (*cloog_pointers__.p_isl_map_get_ctx)
|
|
||||||
+#define isl_map_get_space (*cloog_pointers__.p_isl_map_get_space)
|
|
||||||
+#define isl_map_get_tuple_id (*cloog_pointers__.p_isl_map_get_tuple_id)
|
|
||||||
+#define isl_map_insert_dims (*cloog_pointers__.p_isl_map_insert_dims)
|
|
||||||
+#define isl_map_intersect (*cloog_pointers__.p_isl_map_intersect)
|
|
||||||
+#define isl_map_intersect_domain (*cloog_pointers__.p_isl_map_intersect_domain)
|
|
||||||
+#define isl_map_intersect_range (*cloog_pointers__.p_isl_map_intersect_range)
|
|
||||||
+#define isl_map_is_empty (*cloog_pointers__.p_isl_map_is_empty)
|
|
||||||
+#define isl_map_lex_ge (*cloog_pointers__.p_isl_map_lex_ge)
|
|
||||||
+#define isl_map_lex_le (*cloog_pointers__.p_isl_map_lex_le)
|
|
||||||
+#define isl_map_n_out (*cloog_pointers__.p_isl_map_n_out)
|
|
||||||
+#define isl_map_range (*cloog_pointers__.p_isl_map_range)
|
|
||||||
+#define isl_map_set_tuple_id (*cloog_pointers__.p_isl_map_set_tuple_id)
|
|
||||||
+#define isl_map_universe (*cloog_pointers__.p_isl_map_universe)
|
|
||||||
+#define isl_options_set_on_error (*cloog_pointers__.p_isl_options_set_on_error)
|
|
||||||
+#define isl_options_set_schedule_fuse (*cloog_pointers__.p_isl_options_set_schedule_fuse)
|
|
||||||
+#define isl_options_set_schedule_max_constant_term (*cloog_pointers__.p_isl_options_set_schedule_max_constant_term)
|
|
||||||
+#define isl_options_set_schedule_maximize_band_depth (*cloog_pointers__.p_isl_options_set_schedule_maximize_band_depth)
|
|
||||||
+#define isl_printer_free (*cloog_pointers__.p_isl_printer_free)
|
|
||||||
+#define isl_printer_print_aff (*cloog_pointers__.p_isl_printer_print_aff)
|
|
||||||
+#define isl_printer_print_constraint (*cloog_pointers__.p_isl_printer_print_constraint)
|
|
||||||
+#define isl_printer_print_map (*cloog_pointers__.p_isl_printer_print_map)
|
|
||||||
+#define isl_printer_print_set (*cloog_pointers__.p_isl_printer_print_set)
|
|
||||||
+#define isl_printer_to_file (*cloog_pointers__.p_isl_printer_to_file)
|
|
||||||
+#define isl_pw_aff_add (*cloog_pointers__.p_isl_pw_aff_add)
|
|
||||||
+#define isl_pw_aff_alloc (*cloog_pointers__.p_isl_pw_aff_alloc)
|
|
||||||
+#define isl_pw_aff_copy (*cloog_pointers__.p_isl_pw_aff_copy)
|
|
||||||
+#define isl_pw_aff_eq_set (*cloog_pointers__.p_isl_pw_aff_eq_set)
|
|
||||||
+#define isl_pw_aff_free (*cloog_pointers__.p_isl_pw_aff_free)
|
|
||||||
+#define isl_pw_aff_from_aff (*cloog_pointers__.p_isl_pw_aff_from_aff)
|
|
||||||
+#define isl_pw_aff_ge_set (*cloog_pointers__.p_isl_pw_aff_ge_set)
|
|
||||||
+#define isl_pw_aff_gt_set (*cloog_pointers__.p_isl_pw_aff_gt_set)
|
|
||||||
+#define isl_pw_aff_is_cst (*cloog_pointers__.p_isl_pw_aff_is_cst)
|
|
||||||
+#define isl_pw_aff_le_set (*cloog_pointers__.p_isl_pw_aff_le_set)
|
|
||||||
+#define isl_pw_aff_lt_set (*cloog_pointers__.p_isl_pw_aff_lt_set)
|
|
||||||
+#define isl_pw_aff_mod (*cloog_pointers__.p_isl_pw_aff_mod)
|
|
||||||
+#define isl_pw_aff_mul (*cloog_pointers__.p_isl_pw_aff_mul)
|
|
||||||
+#define isl_pw_aff_ne_set (*cloog_pointers__.p_isl_pw_aff_ne_set)
|
|
||||||
+#define isl_pw_aff_nonneg_set (*cloog_pointers__.p_isl_pw_aff_nonneg_set)
|
|
||||||
+#define isl_pw_aff_set_tuple_id (*cloog_pointers__.p_isl_pw_aff_set_tuple_id)
|
|
||||||
+#define isl_pw_aff_sub (*cloog_pointers__.p_isl_pw_aff_sub)
|
|
||||||
+#define isl_pw_aff_zero_set (*cloog_pointers__.p_isl_pw_aff_zero_set)
|
|
||||||
+#define isl_schedule_free (*cloog_pointers__.p_isl_schedule_free)
|
|
||||||
+#define isl_schedule_get_band_forest (*cloog_pointers__.p_isl_schedule_get_band_forest)
|
|
||||||
+#define isl_set_add_constraint (*cloog_pointers__.p_isl_set_add_constraint)
|
|
||||||
+#define isl_set_add_dims (*cloog_pointers__.p_isl_set_add_dims)
|
|
||||||
+#define isl_set_apply (*cloog_pointers__.p_isl_set_apply)
|
|
||||||
+#define isl_set_coalesce (*cloog_pointers__.p_isl_set_coalesce)
|
|
||||||
+#define isl_set_copy (*cloog_pointers__.p_isl_set_copy)
|
|
||||||
+#define isl_set_dim (*cloog_pointers__.p_isl_set_dim)
|
|
||||||
+#define isl_set_fix_si (*cloog_pointers__.p_isl_set_fix_si)
|
|
||||||
+#define isl_set_free (*cloog_pointers__.p_isl_set_free)
|
|
||||||
+#define isl_set_from_cloog_domain (*cloog_pointers__.p_isl_set_from_cloog_domain)
|
|
||||||
+#define isl_set_get_space (*cloog_pointers__.p_isl_set_get_space)
|
|
||||||
+#define isl_set_get_tuple_id (*cloog_pointers__.p_isl_set_get_tuple_id)
|
|
||||||
+#define isl_set_intersect (*cloog_pointers__.p_isl_set_intersect)
|
|
||||||
+#define isl_set_is_empty (*cloog_pointers__.p_isl_set_is_empty)
|
|
||||||
+#define isl_set_max (*cloog_pointers__.p_isl_set_max)
|
|
||||||
+#define isl_set_min (*cloog_pointers__.p_isl_set_min)
|
|
||||||
+#define isl_set_nat_universe (*cloog_pointers__.p_isl_set_nat_universe)
|
|
||||||
+#define isl_set_project_out (*cloog_pointers__.p_isl_set_project_out)
|
|
||||||
+#define isl_set_set_tuple_id (*cloog_pointers__.p_isl_set_set_tuple_id)
|
|
||||||
+#define isl_set_universe (*cloog_pointers__.p_isl_set_universe)
|
|
||||||
+#define isl_space_add_dims (*cloog_pointers__.p_isl_space_add_dims)
|
|
||||||
+#define isl_space_alloc (*cloog_pointers__.p_isl_space_alloc)
|
|
||||||
+#define isl_space_copy (*cloog_pointers__.p_isl_space_copy)
|
|
||||||
+#define isl_space_dim (*cloog_pointers__.p_isl_space_dim)
|
|
||||||
+#define isl_space_domain (*cloog_pointers__.p_isl_space_domain)
|
|
||||||
+#define isl_space_find_dim_by_id (*cloog_pointers__.p_isl_space_find_dim_by_id)
|
|
||||||
+#define isl_space_free (*cloog_pointers__.p_isl_space_free)
|
|
||||||
+#define isl_space_from_domain (*cloog_pointers__.p_isl_space_from_domain)
|
|
||||||
+#define isl_space_get_tuple_id (*cloog_pointers__.p_isl_space_get_tuple_id)
|
|
||||||
+#define isl_space_params_alloc (*cloog_pointers__.p_isl_space_params_alloc)
|
|
||||||
+#define isl_space_range (*cloog_pointers__.p_isl_space_range)
|
|
||||||
+#define isl_space_set_alloc (*cloog_pointers__.p_isl_space_set_alloc)
|
|
||||||
+#define isl_space_set_dim_id (*cloog_pointers__.p_isl_space_set_dim_id)
|
|
||||||
+#define isl_space_set_tuple_id (*cloog_pointers__.p_isl_space_set_tuple_id)
|
|
||||||
+#define isl_union_map_add_map (*cloog_pointers__.p_isl_union_map_add_map)
|
|
||||||
+#define isl_union_map_align_params (*cloog_pointers__.p_isl_union_map_align_params)
|
|
||||||
+#define isl_union_map_apply_domain (*cloog_pointers__.p_isl_union_map_apply_domain)
|
|
||||||
+#define isl_union_map_apply_range (*cloog_pointers__.p_isl_union_map_apply_range)
|
|
||||||
+#define isl_union_map_compute_flow (*cloog_pointers__.p_isl_union_map_compute_flow)
|
|
||||||
+#define isl_union_map_copy (*cloog_pointers__.p_isl_union_map_copy)
|
|
||||||
+#define isl_union_map_empty (*cloog_pointers__.p_isl_union_map_empty)
|
|
||||||
+#define isl_union_map_flat_range_product (*cloog_pointers__.p_isl_union_map_flat_range_product)
|
|
||||||
+#define isl_union_map_foreach_map (*cloog_pointers__.p_isl_union_map_foreach_map)
|
|
||||||
+#define isl_union_map_free (*cloog_pointers__.p_isl_union_map_free)
|
|
||||||
+#define isl_union_map_from_map (*cloog_pointers__.p_isl_union_map_from_map)
|
|
||||||
+#define isl_union_map_get_ctx (*cloog_pointers__.p_isl_union_map_get_ctx)
|
|
||||||
+#define isl_union_map_get_space (*cloog_pointers__.p_isl_union_map_get_space)
|
|
||||||
+#define isl_union_map_gist_domain (*cloog_pointers__.p_isl_union_map_gist_domain)
|
|
||||||
+#define isl_union_map_gist_range (*cloog_pointers__.p_isl_union_map_gist_range)
|
|
||||||
+#define isl_union_map_intersect_domain (*cloog_pointers__.p_isl_union_map_intersect_domain)
|
|
||||||
+#define isl_union_map_is_empty (*cloog_pointers__.p_isl_union_map_is_empty)
|
|
||||||
+#define isl_union_map_subtract (*cloog_pointers__.p_isl_union_map_subtract)
|
|
||||||
+#define isl_union_map_union (*cloog_pointers__.p_isl_union_map_union)
|
|
||||||
+#define isl_union_set_add_set (*cloog_pointers__.p_isl_union_set_add_set)
|
|
||||||
+#define isl_union_set_compute_schedule (*cloog_pointers__.p_isl_union_set_compute_schedule)
|
|
||||||
+#define isl_union_set_copy (*cloog_pointers__.p_isl_union_set_copy)
|
|
||||||
+#define isl_union_set_empty (*cloog_pointers__.p_isl_union_set_empty)
|
|
||||||
+#define isl_union_set_from_set (*cloog_pointers__.p_isl_union_set_from_set)
|
|
||||||
+#define stmt_ass (*cloog_pointers__.p_stmt_ass)
|
|
||||||
+#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)
|
|
||||||
+
|
|
||||||
typedef struct poly_dr *poly_dr_p;
|
|
||||||
|
|
||||||
typedef struct poly_bb *poly_bb_p;
|
|
||||||
--- gcc/graphite.c.jj 2012-12-13 11:31:00.000000000 +0100
|
|
||||||
+++ gcc/graphite.c 2012-12-14 13:40:44.155136961 +0100
|
|
||||||
@@ -66,6 +66,34 @@ along with GCC; see the file COPYING3.
|
|
||||||
|
|
||||||
CloogState *cloog_state;
|
|
||||||
|
|
||||||
+__typeof (cloog_pointers__) cloog_pointers__;
|
|
||||||
+
|
|
||||||
+static bool
|
|
||||||
+init_cloog_pointers (void)
|
|
||||||
+{
|
|
||||||
+ void *h;
|
|
||||||
+
|
|
||||||
+ if (cloog_pointers__.inited)
|
|
||||||
+ return cloog_pointers__.h != NULL;
|
|
||||||
+ h = dlopen ("libcloog-isl.so.4", 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
|
|
||||||
@@ -264,6 +292,15 @@ graphite_transform_loops (void)
|
|
||||||
if (parallelized_function_p (cfun->decl))
|
|
||||||
return;
|
|
||||||
|
|
||||||
+ if (number_of_loops () <= 1)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ if (!init_cloog_pointers ())
|
|
||||||
+ {
|
|
||||||
+ sorry ("Graphite loop optimizations cannot be used");
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
ctx = isl_ctx_alloc ();
|
|
||||||
isl_options_set_on_error(ctx, ISL_ON_ERROR_ABORT);
|
|
||||||
if (!graphite_initialize (ctx))
|
|
||||||
--- gcc/graphite-clast-to-gimple.c.jj 2012-12-13 11:31:27.000000000 +0100
|
|
||||||
+++ gcc/graphite-clast-to-gimple.c 2012-12-14 13:27:47.196519858 +0100
|
|
||||||
@@ -910,7 +910,7 @@ compute_bounds_for_loop (struct clast_fo
|
|
||||||
from STMT_FOR. */
|
|
||||||
|
|
||||||
static tree
|
|
||||||
-type_for_clast_for (struct clast_for *stmt_for, ivs_params_p ip)
|
|
||||||
+type_for_clast_for (struct clast_for *stmt_fora, ivs_params_p ip)
|
|
||||||
{
|
|
||||||
mpz_t bound_one, bound_two;
|
|
||||||
tree lb_type, ub_type;
|
|
||||||
@@ -918,8 +918,8 @@ type_for_clast_for (struct clast_for *st
|
|
||||||
mpz_init (bound_one);
|
|
||||||
mpz_init (bound_two);
|
|
||||||
|
|
||||||
- lb_type = type_for_clast_expr (stmt_for->LB, ip, bound_one, bound_two);
|
|
||||||
- ub_type = type_for_clast_expr (stmt_for->UB, ip, bound_one, bound_two);
|
|
||||||
+ lb_type = type_for_clast_expr (stmt_fora->LB, ip, bound_one, bound_two);
|
|
||||||
+ ub_type = type_for_clast_expr (stmt_fora->UB, ip, bound_one, bound_two);
|
|
||||||
|
|
||||||
mpz_clear (bound_one);
|
|
||||||
mpz_clear (bound_two);
|
|
@ -1,74 +0,0 @@
|
|||||||
2011-04-04 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
* toplev.c (toplev_main_argv): New variable.
|
|
||||||
(toplev_main): Initialize it.
|
|
||||||
* graphite.c (init_cloog_pointers): Load libcloog-isl.so.4 from gcc's private
|
|
||||||
directory.
|
|
||||||
|
|
||||||
--- gcc/toplev.c.jj 2008-12-09 23:59:10.000000000 +0100
|
|
||||||
+++ gcc/toplev.c 2009-01-27 14:33:52.000000000 +0100
|
|
||||||
@@ -107,6 +107,8 @@ static bool no_backend;
|
|
||||||
/* Length of line when printing switch values. */
|
|
||||||
#define MAX_LINE 75
|
|
||||||
|
|
||||||
+const char **toplev_main_argv;
|
|
||||||
+
|
|
||||||
/* Decoded options, and number of such options. */
|
|
||||||
struct cl_decoded_option *save_decoded_options;
|
|
||||||
unsigned int save_decoded_options_count;
|
|
||||||
@@ -1909,6 +1911,8 @@ toplev_main (int argc, char **argv)
|
|
||||||
|
|
||||||
expandargv (&argc, &argv);
|
|
||||||
|
|
||||||
+ toplev_main_argv = CONST_CAST2 (const char **, char **, argv);
|
|
||||||
+
|
|
||||||
/* Initialization of GCC's environment, and diagnostics. */
|
|
||||||
general_init (argv[0]);
|
|
||||||
|
|
||||||
--- gcc/graphite.c.jj 2010-12-01 10:24:32.000000000 -0500
|
|
||||||
+++ gcc/graphite.c 2010-12-01 11:46:07.832118193 -0500
|
|
||||||
@@ -72,11 +72,39 @@ __typeof (cloog_pointers__) cloog_pointe
|
|
||||||
static bool
|
|
||||||
init_cloog_pointers (void)
|
|
||||||
{
|
|
||||||
- void *h;
|
|
||||||
-
|
|
||||||
- if (cloog_pointers__.inited)
|
|
||||||
- return cloog_pointers__.h != NULL;
|
|
||||||
- h = dlopen ("libcloog-isl.so.4", RTLD_LAZY);
|
|
||||||
+ void *h = NULL;
|
|
||||||
+ extern const char **toplev_main_argv;
|
|
||||||
+ char *buf, *p;
|
|
||||||
+ size_t len;
|
|
||||||
+
|
|
||||||
+ if (cloog_pointers__.inited)
|
|
||||||
+ return cloog_pointers__.h != NULL;
|
|
||||||
+ len = progname - toplev_main_argv[0];
|
|
||||||
+ buf = XALLOCAVAR (char, len + sizeof "libcloog-isl.so.4");
|
|
||||||
+ memcpy (buf, toplev_main_argv[0], len);
|
|
||||||
+ strcpy (buf + len, "libcloog-isl.so.4");
|
|
||||||
+ len += sizeof "libcloog-isl.so.4";
|
|
||||||
+ p = strstr (buf, "/libexec/");
|
|
||||||
+ if (p != NULL)
|
|
||||||
+ {
|
|
||||||
+ while (1)
|
|
||||||
+ {
|
|
||||||
+ char *q = strstr (p + 8, "/libexec/");
|
|
||||||
+ if (q == NULL)
|
|
||||||
+ break;
|
|
||||||
+ p = q;
|
|
||||||
+ }
|
|
||||||
+ memmove (p + 4, p + 8, len - (p + 8 - buf));
|
|
||||||
+ h = dlopen (buf, RTLD_LAZY);
|
|
||||||
+ if (h == NULL)
|
|
||||||
+ {
|
|
||||||
+ len = progname - toplev_main_argv[0];
|
|
||||||
+ memcpy (buf, toplev_main_argv[0], len);
|
|
||||||
+ strcpy (buf + len, "libcloog-isl.so.4");
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ if (h == NULL)
|
|
||||||
+ h = dlopen (buf, RTLD_LAZY);
|
|
||||||
cloog_pointers__.h = h;
|
|
||||||
if (h == NULL)
|
|
||||||
return false;
|
|
@ -1,46 +0,0 @@
|
|||||||
2013-09-20 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
* common.opt (-fdiagnostics-color=): Default to auto.
|
|
||||||
* toplev.c (process_options): Always default to
|
|
||||||
-fdiagnostics-color=auto if no -f{,no-}diagnostics-color*.
|
|
||||||
* doc/invoke.texi (-fdiagnostics-color*): Adjust documentation
|
|
||||||
of the default.
|
|
||||||
|
|
||||||
--- gcc/common.opt.jj 2013-09-18 12:06:53.000000000 +0200
|
|
||||||
+++ gcc/common.opt 2013-09-20 10:00:00.935823900 +0200
|
|
||||||
@@ -1037,7 +1037,7 @@ Common Alias(fdiagnostics-color=,always,
|
|
||||||
;
|
|
||||||
|
|
||||||
fdiagnostics-color=
|
|
||||||
-Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
|
|
||||||
+Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_AUTO)
|
|
||||||
-fdiagnostics-color=[never|always|auto] Colorize diagnostics
|
|
||||||
|
|
||||||
; Required for these enum values.
|
|
||||||
--- gcc/toplev.c.jj 2013-09-09 11:32:39.000000000 +0200
|
|
||||||
+++ gcc/toplev.c 2013-09-20 10:10:08.198721005 +0200
|
|
||||||
@@ -1229,10 +1229,8 @@ process_options (void)
|
|
||||||
|
|
||||||
maximum_field_alignment = initial_max_fld_align * BITS_PER_UNIT;
|
|
||||||
|
|
||||||
- /* Default to -fdiagnostics-color=auto if GCC_COLORS is in the environment,
|
|
||||||
- otherwise default to -fdiagnostics-color=never. */
|
|
||||||
- if (!global_options_set.x_flag_diagnostics_show_color
|
|
||||||
- && getenv ("GCC_COLORS"))
|
|
||||||
+ /* Default to -fdiagnostics-color=auto. */
|
|
||||||
+ if (!global_options_set.x_flag_diagnostics_show_color)
|
|
||||||
pp_show_color (global_dc->printer)
|
|
||||||
= colorize_init (DIAGNOSTICS_COLOR_AUTO);
|
|
||||||
|
|
||||||
--- gcc/doc/invoke.texi.jj 2013-09-18 12:06:50.000000000 +0200
|
|
||||||
+++ gcc/doc/invoke.texi 2013-09-20 10:09:29.079904455 +0200
|
|
||||||
@@ -3046,8 +3046,7 @@ a message which is too long to fit on a
|
|
||||||
@cindex highlight, color, colour
|
|
||||||
@vindex GCC_COLORS @r{environment variable}
|
|
||||||
Use color in diagnostics. @var{WHEN} is @samp{never}, @samp{always},
|
|
||||||
-or @samp{auto}. The default is @samp{never} if @env{GCC_COLORS} environment
|
|
||||||
-variable isn't present in the environment, and @samp{auto} otherwise.
|
|
||||||
+or @samp{auto}. The default is @samp{auto}.
|
|
||||||
@samp{auto} means to use color only when the standard error is a terminal.
|
|
||||||
The forms @option{-fdiagnostics-color} and @option{-fno-diagnostics-color} are
|
|
||||||
aliases for @option{-fdiagnostics-color=always} and
|
|
102
gcc48-hack.patch
102
gcc48-hack.patch
@ -1,102 +0,0 @@
|
|||||||
--- libada/Makefile.in.jj 2009-01-14 12:07:35.000000000 +0100
|
|
||||||
+++ libada/Makefile.in 2009-01-15 14:25:33.000000000 +0100
|
|
||||||
@@ -66,18 +66,40 @@ libsubdir := $(libdir)/gcc/$(target_nonc
|
|
||||||
ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
|
|
||||||
ADA_RTS_SUBDIR=./rts$(subst /,_,$(MULTISUBDIR))
|
|
||||||
|
|
||||||
+DEFAULTMULTIFLAGS :=
|
|
||||||
+ifeq ($(MULTISUBDIR),)
|
|
||||||
+targ:=$(subst -, ,$(target))
|
|
||||||
+arch:=$(word 1,$(targ))
|
|
||||||
+ifeq ($(words $(targ)),2)
|
|
||||||
+osys:=$(word 2,$(targ))
|
|
||||||
+else
|
|
||||||
+osys:=$(word 3,$(targ))
|
|
||||||
+endif
|
|
||||||
+ifeq ($(strip $(filter-out i%86 x86_64 powerpc% ppc% s390% sparc% linux%, $(arch) $(osys))),)
|
|
||||||
+ifeq ($(shell $(CC) $(CFLAGS) -print-multi-os-directory),../lib64)
|
|
||||||
+DEFAULTMULTIFLAGS := -m64
|
|
||||||
+else
|
|
||||||
+ifeq ($(strip $(filter-out s390%, $(arch))),)
|
|
||||||
+DEFAULTMULTIFLAGS := -m31
|
|
||||||
+else
|
|
||||||
+DEFAULTMULTIFLAGS := -m32
|
|
||||||
+endif
|
|
||||||
+endif
|
|
||||||
+endif
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
# exeext should not be used because it's the *host* exeext. We're building
|
|
||||||
# a *target* library, aren't we?!? Likewise for CC. Still, provide bogus
|
|
||||||
# definitions just in case something slips through the safety net provided
|
|
||||||
# by recursive make invocations in gcc/ada/Makefile.in
|
|
||||||
LIBADA_FLAGS_TO_PASS = \
|
|
||||||
"MAKEOVERRIDES=" \
|
|
||||||
- "LDFLAGS=$(LDFLAGS)" \
|
|
||||||
+ "LDFLAGS=$(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)" \
|
|
||||||
@@ -88,7 +110,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)"
|
|
||||||
|
|
||||||
# Rules to build gnatlib.
|
|
||||||
.PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared osconstool
|
|
||||||
--- gcc/ada/sem_util.adb (revision 161677)
|
|
||||||
+++ gcc/ada/sem_util.adb (working copy)
|
|
||||||
@@ -5487,7 +5487,7 @@ package body Sem_Util is
|
|
||||||
Exp : Node_Id;
|
|
||||||
Assn : Node_Id;
|
|
||||||
Choice : Node_Id;
|
|
||||||
- Comp_Type : Entity_Id;
|
|
||||||
+ Comp_Type : Entity_Id := Empty;
|
|
||||||
Is_Array_Aggr : Boolean;
|
|
||||||
|
|
||||||
begin
|
|
||||||
--- config-ml.in.jj 2010-06-30 09:50:44.000000000 +0200
|
|
||||||
+++ config-ml.in 2010-07-02 21:24:17.994211151 +0200
|
|
||||||
@@ -516,6 +516,8 @@ multi-do:
|
|
||||||
ADAFLAGS="$(ADAFLAGS) $${flags}" \
|
|
||||||
prefix="$(prefix)" \
|
|
||||||
exec_prefix="$(exec_prefix)" \
|
|
||||||
+ mandir="$(mandir)" \
|
|
||||||
+ infodir="$(infodir)" \
|
|
||||||
GCJFLAGS="$(GCJFLAGS) $${flags}" \
|
|
||||||
GOCFLAGS="$(GOCFLAGS) $${flags}" \
|
|
||||||
CXXFLAGS="$(CXXFLAGS) $${flags}" \
|
|
||||||
--- libjava/Makefile.am.jj 2010-07-09 11:17:33.729604090 +0200
|
|
||||||
+++ libjava/Makefile.am 2010-07-09 13:16:41.894375641 +0200
|
|
||||||
@@ -710,7 +710,8 @@ if USE_LIBGCJ_BC
|
|
||||||
## later.
|
|
||||||
@echo Installing dummy lib libgcj_bc.so.1.0.0; \
|
|
||||||
rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
|
|
||||||
- mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
|
|
||||||
+ $(INSTALL) $(INSTALL_STRIP_FLAG) $(here)/.libs/libgcj_bc.so $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
|
|
||||||
+ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0; \
|
|
||||||
$(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
|
|
||||||
-o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
|
|
||||||
rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
|
|
||||||
--- libjava/Makefile.in.jj 2010-07-09 11:17:34.000000000 +0200
|
|
||||||
+++ libjava/Makefile.in 2010-07-09 13:18:07.542572270 +0200
|
|
||||||
@@ -12665,7 +12665,8 @@ install-exec-hook: install-binPROGRAMS i
|
|
||||||
install-libexecsubPROGRAMS
|
|
||||||
@USE_LIBGCJ_BC_TRUE@ @echo Installing dummy lib libgcj_bc.so.1.0.0; \
|
|
||||||
@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
|
|
||||||
-@USE_LIBGCJ_BC_TRUE@ mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
|
|
||||||
+@USE_LIBGCJ_BC_TRUE@ $(INSTALL) $(INSTALL_STRIP_FLAG) $(here)/.libs/libgcj_bc.so $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
|
|
||||||
+@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0; \
|
|
||||||
@USE_LIBGCJ_BC_TRUE@ $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
|
|
||||||
@USE_LIBGCJ_BC_TRUE@ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
|
|
||||||
@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
|
|
@ -1,44 +0,0 @@
|
|||||||
--- 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.
|
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,50 +0,0 @@
|
|||||||
2010-02-08 Roland McGrath <roland@redhat.com>
|
|
||||||
|
|
||||||
* config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the
|
|
||||||
linker.
|
|
||||||
* config/gnu-user.h (LINK_EH_SPEC): Likewise.
|
|
||||||
* config/alpha/elf.h (LINK_EH_SPEC): Likewise.
|
|
||||||
* config/ia64/linux.h (LINK_EH_SPEC): Likewise.
|
|
||||||
|
|
||||||
--- gcc/config/alpha/elf.h.jj 2011-01-03 12:52:31.118056764 +0100
|
|
||||||
+++ gcc/config/alpha/elf.h 2011-01-04 18:14:10.931874160 +0100
|
|
||||||
@@ -165,5 +165,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:--eh-frame-hdr} "
|
|
||||||
+#define LINK_EH_SPEC "--no-add-needed %{!static:--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
|
|
||||||
@@ -77,7 +77,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 "
|
|
||||||
|
|
||||||
/* Put all *tf routines in libgcc. */
|
|
||||||
#undef LIBGCC2_HAS_TF_MODE
|
|
||||||
--- gcc/config/gnu-user.h.jj 2011-01-03 12:53:03.739057299 +0100
|
|
||||||
+++ gcc/config/gnu-user.h 2011-01-04 18:14:10.932814884 +0100
|
|
||||||
@@ -82,7 +82,7 @@ see the files COPYING3 and COPYING.RUNTI
|
|
||||||
#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
|
|
||||||
|
|
||||||
#if defined(HAVE_LD_EH_FRAME_HDR)
|
|
||||||
-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
|
|
||||||
+#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef LINK_GCC_C_SEQUENCE_SPEC
|
|
||||||
--- gcc/config/rs6000/sysv4.h.jj 2011-01-03 13:02:18.255994215 +0100
|
|
||||||
+++ gcc/config/rs6000/sysv4.h 2011-01-04 18:14:10.933888871 +0100
|
|
||||||
@@ -820,7 +820,7 @@ extern int fixuplabelno;
|
|
||||||
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
|
|
||||||
|
|
||||||
#if defined(HAVE_LD_EH_FRAME_HDR)
|
|
||||||
-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
|
|
||||||
+# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
|
|
@ -1,87 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -18325,18 +18325,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 (Pmode,
|
|
||||||
- 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 (Pmode, 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;
|
|
||||||
+}
|
|
@ -1,190 +0,0 @@
|
|||||||
2014-01-16 Nick Clifton <nickc@redhat.com>
|
|
||||||
|
|
||||||
PR middle-end/28865
|
|
||||||
* varasm.c (output_constant): Return the number of bytes actually
|
|
||||||
emitted.
|
|
||||||
(output_constructor_array_range): Update the field size with the
|
|
||||||
number of bytes emitted by output_constant.
|
|
||||||
(output_constructor_regular_field): Likewise. Also do not
|
|
||||||
complain if the total number of bytes emitted is now greater
|
|
||||||
than the expected fieldpos.
|
|
||||||
* output.h (output_constant): Update prototype and descriptive
|
|
||||||
comment.
|
|
||||||
|
|
||||||
* gcc.c-torture/compile/pr28865.c: New.
|
|
||||||
* gcc.c-torture/execute/pr28865.c: New.
|
|
||||||
|
|
||||||
--- gcc/varasm.c (revision 206660)
|
|
||||||
+++ gcc/varasm.c (revision 206661)
|
|
||||||
@@ -4474,8 +4474,10 @@ static unsigned HOST_WIDE_INT
|
|
||||||
This includes the pseudo-op such as ".int" or ".byte", and a newline.
|
|
||||||
Assumes output_addressed_constants has been done on EXP already.
|
|
||||||
|
|
||||||
- Generate exactly SIZE bytes of assembler data, padding at the end
|
|
||||||
- with zeros if necessary. SIZE must always be specified.
|
|
||||||
+ Generate at least SIZE bytes of assembler data, padding at the end
|
|
||||||
+ with zeros if necessary. SIZE must always be specified. The returned
|
|
||||||
+ value is the actual number of bytes of assembler data generated, which
|
|
||||||
+ may be bigger than SIZE if the object contains a variable length field.
|
|
||||||
|
|
||||||
SIZE is important for structure constructors,
|
|
||||||
since trailing members may have been omitted from the constructor.
|
|
||||||
@@ -4490,14 +4492,14 @@ static unsigned HOST_WIDE_INT
|
|
||||||
|
|
||||||
ALIGN is the alignment of the data in bits. */
|
|
||||||
|
|
||||||
-void
|
|
||||||
+unsigned HOST_WIDE_INT
|
|
||||||
output_constant (tree exp, unsigned HOST_WIDE_INT size, unsigned int align)
|
|
||||||
{
|
|
||||||
enum tree_code code;
|
|
||||||
unsigned HOST_WIDE_INT thissize;
|
|
||||||
|
|
||||||
if (size == 0 || flag_syntax_only)
|
|
||||||
- return;
|
|
||||||
+ return size;
|
|
||||||
|
|
||||||
/* See if we're trying to initialize a pointer in a non-default mode
|
|
||||||
to the address of some declaration somewhere. If the target says
|
|
||||||
@@ -4562,7 +4564,7 @@ output_constant (tree exp, unsigned HOST
|
|
||||||
&& vec_safe_is_empty (CONSTRUCTOR_ELTS (exp)))
|
|
||||||
{
|
|
||||||
assemble_zeros (size);
|
|
||||||
- return;
|
|
||||||
+ return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TREE_CODE (exp) == FDESC_EXPR)
|
|
||||||
@@ -4574,7 +4576,7 @@ output_constant (tree exp, unsigned HOST
|
|
||||||
#else
|
|
||||||
gcc_unreachable ();
|
|
||||||
#endif
|
|
||||||
- return;
|
|
||||||
+ return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Now output the underlying data. If we've handling the padding, return.
|
|
||||||
@@ -4612,8 +4614,7 @@ output_constant (tree exp, unsigned HOST
|
|
||||||
switch (TREE_CODE (exp))
|
|
||||||
{
|
|
||||||
case CONSTRUCTOR:
|
|
||||||
- output_constructor (exp, size, align, NULL);
|
|
||||||
- return;
|
|
||||||
+ return output_constructor (exp, size, align, NULL);
|
|
||||||
case STRING_CST:
|
|
||||||
thissize = MIN ((unsigned HOST_WIDE_INT)TREE_STRING_LENGTH (exp),
|
|
||||||
size);
|
|
||||||
@@ -4648,11 +4649,10 @@ output_constant (tree exp, unsigned HOST
|
|
||||||
case RECORD_TYPE:
|
|
||||||
case UNION_TYPE:
|
|
||||||
gcc_assert (TREE_CODE (exp) == CONSTRUCTOR);
|
|
||||||
- output_constructor (exp, size, align, NULL);
|
|
||||||
- return;
|
|
||||||
+ return output_constructor (exp, size, align, NULL);
|
|
||||||
|
|
||||||
case ERROR_MARK:
|
|
||||||
- return;
|
|
||||||
+ return 0;
|
|
||||||
|
|
||||||
default:
|
|
||||||
gcc_unreachable ();
|
|
||||||
@@ -4660,6 +4660,8 @@ output_constant (tree exp, unsigned HOST
|
|
||||||
|
|
||||||
if (size > thissize)
|
|
||||||
assemble_zeros (size - thissize);
|
|
||||||
+
|
|
||||||
+ return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -4759,7 +4761,7 @@ output_constructor_array_range (oc_local
|
|
||||||
if (local->val == NULL_TREE)
|
|
||||||
assemble_zeros (fieldsize);
|
|
||||||
else
|
|
||||||
- output_constant (local->val, fieldsize, align2);
|
|
||||||
+ fieldsize = output_constant (local->val, fieldsize, align2);
|
|
||||||
|
|
||||||
/* Count its size. */
|
|
||||||
local->total_bytes += fieldsize;
|
|
||||||
@@ -4808,9 +4810,8 @@ output_constructor_regular_field (oc_loc
|
|
||||||
Note no alignment needed in an array, since that is guaranteed
|
|
||||||
if each element has the proper size. */
|
|
||||||
if ((local->field != NULL_TREE || local->index != NULL_TREE)
|
|
||||||
- && fieldpos != local->total_bytes)
|
|
||||||
+ && fieldpos > local->total_bytes)
|
|
||||||
{
|
|
||||||
- gcc_assert (fieldpos >= local->total_bytes);
|
|
||||||
assemble_zeros (fieldpos - local->total_bytes);
|
|
||||||
local->total_bytes = fieldpos;
|
|
||||||
}
|
|
||||||
@@ -4847,7 +4848,7 @@ output_constructor_regular_field (oc_loc
|
|
||||||
if (local->val == NULL_TREE)
|
|
||||||
assemble_zeros (fieldsize);
|
|
||||||
else
|
|
||||||
- output_constant (local->val, fieldsize, align2);
|
|
||||||
+ fieldsize = output_constant (local->val, fieldsize, align2);
|
|
||||||
|
|
||||||
/* Count its size. */
|
|
||||||
local->total_bytes += fieldsize;
|
|
||||||
--- gcc/output.h (revision 206660)
|
|
||||||
+++ gcc/output.h (revision 206661)
|
|
||||||
@@ -294,11 +294,13 @@ extern void output_quoted_string (FILE *
|
|
||||||
This includes the pseudo-op such as ".int" or ".byte", and a newline.
|
|
||||||
Assumes output_addressed_constants has been done on EXP already.
|
|
||||||
|
|
||||||
- Generate exactly SIZE bytes of assembler data, padding at the end
|
|
||||||
- with zeros if necessary. SIZE must always be specified.
|
|
||||||
+ Generate at least SIZE bytes of assembler data, padding at the end
|
|
||||||
+ with zeros if necessary. SIZE must always be specified. The returned
|
|
||||||
+ value is the actual number of bytes of assembler data generated, which
|
|
||||||
+ may be bigger than SIZE if the object contains a variable length field.
|
|
||||||
|
|
||||||
ALIGN is the alignment in bits that may be assumed for the data. */
|
|
||||||
-extern void output_constant (tree, unsigned HOST_WIDE_INT, unsigned int);
|
|
||||||
+extern unsigned HOST_WIDE_INT output_constant (tree, unsigned HOST_WIDE_INT, unsigned int);
|
|
||||||
|
|
||||||
/* When outputting delayed branch sequences, this rtx holds the
|
|
||||||
sequence being output. It is null when no delayed branch
|
|
||||||
--- gcc/testsuite/gcc.c-torture/execute/pr28865.c (revision 0)
|
|
||||||
+++ gcc/testsuite/gcc.c-torture/execute/pr28865.c (revision 206661)
|
|
||||||
@@ -0,0 +1,21 @@
|
|
||||||
+struct A { int a; char b[]; };
|
|
||||||
+union B { struct A a; char b[sizeof (struct A) + 31]; };
|
|
||||||
+union B b = { { 1, "123456789012345678901234567890" } };
|
|
||||||
+union B c = { { 2, "123456789012345678901234567890" } };
|
|
||||||
+
|
|
||||||
+__attribute__((noinline, noclone)) void
|
|
||||||
+foo (int *x[2])
|
|
||||||
+{
|
|
||||||
+ x[0] = &b.a.a;
|
|
||||||
+ x[1] = &c.a.a;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+main ()
|
|
||||||
+{
|
|
||||||
+ int *x[2];
|
|
||||||
+ foo (x);
|
|
||||||
+ if (*x[0] != 1 || *x[1] != 2)
|
|
||||||
+ __builtin_abort ();
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
--- gcc/testsuite/gcc.c-torture/compile/pr28865.c (revision 0)
|
|
||||||
+++ gcc/testsuite/gcc.c-torture/compile/pr28865.c (revision 206661)
|
|
||||||
@@ -0,0 +1,16 @@
|
|
||||||
+struct var_len
|
|
||||||
+{
|
|
||||||
+ int field1;
|
|
||||||
+ const char field2[];
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/* Note - strictly speaking this array declaration is illegal
|
|
||||||
+ since each element has a variable length. GCC allows it
|
|
||||||
+ (for the moment) because it is used in existing code, such
|
|
||||||
+ as glibc. */
|
|
||||||
+static const struct var_len var_array[] =
|
|
||||||
+{
|
|
||||||
+ { 1, "Long exposure noise reduction" },
|
|
||||||
+ { 2, "Shutter/AE lock buttons" },
|
|
||||||
+ { 3, "Mirror lockup" }
|
|
||||||
+};
|
|
@ -1,106 +0,0 @@
|
|||||||
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.
|
|
||||||
* 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.
|
|
||||||
c/
|
|
||||||
* c-lang.c (c_source_language): New function.
|
|
||||||
(LANG_HOOKS_SOURCE_LANGUAGE): Define.
|
|
||||||
|
|
||||||
--- gcc/langhooks.h.jj 2011-01-03 12:53:05.125745450 +0100
|
|
||||||
+++ gcc/langhooks.h 2011-01-04 17:59:43.166744926 +0100
|
|
||||||
@@ -467,6 +467,10 @@ struct lang_hooks
|
|
||||||
gimplification. */
|
|
||||||
bool deep_unsharing;
|
|
||||||
|
|
||||||
+ /* Return year of the source language standard version if the FE supports
|
|
||||||
+ multiple versions of the standard. */
|
|
||||||
+ int (*source_language) (void);
|
|
||||||
+
|
|
||||||
/* Whenever you add entries here, make sure you adjust langhooks-def.h
|
|
||||||
and langhooks.c accordingly. */
|
|
||||||
};
|
|
||||||
--- gcc/langhooks-def.h.jj 2011-01-03 12:53:05.000000000 +0100
|
|
||||||
+++ gcc/langhooks-def.h 2011-01-04 18:00:44.858851030 +0100
|
|
||||||
@@ -118,6 +118,7 @@ extern void lhd_omp_firstprivatize_type_
|
|
||||||
#define LANG_HOOKS_BLOCK_MAY_FALLTHRU hook_bool_const_tree_true
|
|
||||||
#define LANG_HOOKS_EH_USE_CXA_END_CLEANUP false
|
|
||||||
#define LANG_HOOKS_DEEP_UNSHARING false
|
|
||||||
+#define LANG_HOOKS_SOURCE_LANGUAGE NULL
|
|
||||||
|
|
||||||
/* Attribute hooks. */
|
|
||||||
#define LANG_HOOKS_ATTRIBUTE_TABLE NULL
|
|
||||||
@@ -303,7 +304,8 @@ extern void lhd_end_section (void);
|
|
||||||
LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS, \
|
|
||||||
LANG_HOOKS_BLOCK_MAY_FALLTHRU, \
|
|
||||||
LANG_HOOKS_EH_USE_CXA_END_CLEANUP, \
|
|
||||||
- LANG_HOOKS_DEEP_UNSHARING \
|
|
||||||
+ LANG_HOOKS_DEEP_UNSHARING, \
|
|
||||||
+ LANG_HOOKS_SOURCE_LANGUAGE \
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* GCC_LANG_HOOKS_DEF_H */
|
|
||||||
--- gcc/c/c-lang.c.jj 2011-01-03 12:53:05.376056936 +0100
|
|
||||||
+++ gcc/c/c-lang.c 2011-01-04 17:59:43.167743798 +0100
|
|
||||||
@@ -36,6 +36,12 @@ along with GCC; see the file COPYING3.
|
|
||||||
|
|
||||||
enum c_language_kind c_language = clk_c;
|
|
||||||
|
|
||||||
+static int
|
|
||||||
+c_source_language (void)
|
|
||||||
+{
|
|
||||||
+ return flag_isoc99 ? 1999 : 1989;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* Lang hooks common to C and ObjC are declared in c-objc-common.h;
|
|
||||||
consequently, there should be very few hooks below. */
|
|
||||||
|
|
||||||
@@ -45,6 +51,8 @@ enum c_language_kind c_language = clk_c;
|
|
||||||
#define LANG_HOOKS_INIT c_objc_common_init
|
|
||||||
#undef LANG_HOOKS_INIT_TS
|
|
||||||
#define LANG_HOOKS_INIT_TS c_common_init_ts
|
|
||||||
+#undef LANG_HOOKS_SOURCE_LANGUAGE
|
|
||||||
+#define LANG_HOOKS_SOURCE_LANGUAGE c_source_language
|
|
||||||
|
|
||||||
/* Each front end provides its own lang hook initializer. */
|
|
||||||
struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
|
|
||||||
--- gcc/dwarf2out.c.jj 2011-01-03 12:53:05.102056475 +0100
|
|
||||||
+++ gcc/dwarf2out.c 2011-01-04 18:03:14.534151763 +0100
|
|
||||||
@@ -16109,9 +16109,18 @@ add_bit_size_attribute (dw_die_ref die,
|
|
||||||
static inline void
|
|
||||||
add_prototyped_attribute (dw_die_ref die, tree func_type)
|
|
||||||
{
|
|
||||||
- if (get_AT_unsigned (comp_unit_die (), DW_AT_language) == DW_LANG_C89
|
|
||||||
- && prototype_p (func_type))
|
|
||||||
- add_AT_flag (die, DW_AT_prototyped, 1);
|
|
||||||
+ switch (get_AT_unsigned (comp_unit_die (), DW_AT_language))
|
|
||||||
+ {
|
|
||||||
+ case DW_LANG_C:
|
|
||||||
+ case DW_LANG_C89:
|
|
||||||
+ case DW_LANG_C99:
|
|
||||||
+ case DW_LANG_ObjC:
|
|
||||||
+ if (prototype_p (func_type))
|
|
||||||
+ add_AT_flag (die, DW_AT_prototyped, 1);
|
|
||||||
+ break;
|
|
||||||
+ default:
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add an 'abstract_origin' attribute below a given DIE. The DIE is found
|
|
||||||
@@ -18915,6 +18924,10 @@ gen_compile_unit_die (const char *filena
|
|
||||||
if (strcmp (language_string, "GNU Go") == 0)
|
|
||||||
language = DW_LANG_Go;
|
|
||||||
}
|
|
||||||
+ else if (strcmp (language_string, "GNU C") == 0
|
|
||||||
+ && lang_hooks.source_language
|
|
||||||
+ && lang_hooks.source_language () >= 1999)
|
|
||||||
+ language = DW_LANG_C99;
|
|
||||||
}
|
|
||||||
/* Use a degraded Fortran setting in strict DWARF2 so is_fortran works. */
|
|
||||||
else if (strcmp (language_string, "GNU Fortran") == 0)
|
|
@ -1,76 +0,0 @@
|
|||||||
2013-06-17 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
PR c++/56493
|
|
||||||
* convert.c (convert_to_real, convert_to_expr, convert_to_complex):
|
|
||||||
Handle COMPOUND_EXPR.
|
|
||||||
|
|
||||||
* c-c++-common/pr56493.c: New test.
|
|
||||||
|
|
||||||
--- gcc/convert.c.jj 2013-05-13 09:44:53.000000000 +0200
|
|
||||||
+++ gcc/convert.c 2013-06-16 12:16:13.754108523 +0200
|
|
||||||
@@ -95,6 +95,15 @@ convert_to_real (tree type, tree expr)
|
|
||||||
enum built_in_function fcode = builtin_mathfn_code (expr);
|
|
||||||
tree itype = TREE_TYPE (expr);
|
|
||||||
|
|
||||||
+ if (TREE_CODE (expr) == COMPOUND_EXPR)
|
|
||||||
+ {
|
|
||||||
+ tree t = convert_to_real (type, TREE_OPERAND (expr, 1));
|
|
||||||
+ if (t == TREE_OPERAND (expr, 1))
|
|
||||||
+ return expr;
|
|
||||||
+ return build2_loc (EXPR_LOCATION (expr), COMPOUND_EXPR, TREE_TYPE (t),
|
|
||||||
+ TREE_OPERAND (expr, 0), t);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* Disable until we figure out how to decide whether the functions are
|
|
||||||
present in runtime. */
|
|
||||||
/* Convert (float)sqrt((double)x) where x is float into sqrtf(x) */
|
|
||||||
@@ -366,6 +375,15 @@ convert_to_integer (tree type, tree expr
|
|
||||||
return error_mark_node;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (ex_form == COMPOUND_EXPR)
|
|
||||||
+ {
|
|
||||||
+ tree t = convert_to_integer (type, TREE_OPERAND (expr, 1));
|
|
||||||
+ if (t == TREE_OPERAND (expr, 1))
|
|
||||||
+ return expr;
|
|
||||||
+ return build2_loc (EXPR_LOCATION (expr), COMPOUND_EXPR, TREE_TYPE (t),
|
|
||||||
+ TREE_OPERAND (expr, 0), t);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* Convert e.g. (long)round(d) -> lround(d). */
|
|
||||||
/* If we're converting to char, we may encounter differing behavior
|
|
||||||
between converting from double->char vs double->long->char.
|
|
||||||
@@ -854,6 +872,14 @@ convert_to_complex (tree type, tree expr
|
|
||||||
|
|
||||||
if (TYPE_MAIN_VARIANT (elt_type) == TYPE_MAIN_VARIANT (subtype))
|
|
||||||
return expr;
|
|
||||||
+ else if (TREE_CODE (expr) == COMPOUND_EXPR)
|
|
||||||
+ {
|
|
||||||
+ tree t = convert_to_complex (type, TREE_OPERAND (expr, 1));
|
|
||||||
+ if (t == TREE_OPERAND (expr, 1))
|
|
||||||
+ return expr;
|
|
||||||
+ return build2_loc (EXPR_LOCATION (expr), COMPOUND_EXPR,
|
|
||||||
+ TREE_TYPE (t), TREE_OPERAND (expr, 0), t);
|
|
||||||
+ }
|
|
||||||
else if (TREE_CODE (expr) == COMPLEX_EXPR)
|
|
||||||
return fold_build2 (COMPLEX_EXPR, type,
|
|
||||||
convert (subtype, TREE_OPERAND (expr, 0)),
|
|
||||||
--- gcc/testsuite/c-c++-common/pr56493.c.jj 2013-06-17 10:24:36.891659600 +0200
|
|
||||||
+++ gcc/testsuite/c-c++-common/pr56493.c 2013-06-17 10:24:33.164720149 +0200
|
|
||||||
@@ -0,0 +1,16 @@
|
|
||||||
+/* PR c++/56493 */
|
|
||||||
+/* { dg-do compile } */
|
|
||||||
+/* { dg-options "-O2 -fdump-tree-gimple" } */
|
|
||||||
+
|
|
||||||
+unsigned long long bar (void);
|
|
||||||
+int x;
|
|
||||||
+
|
|
||||||
+void
|
|
||||||
+foo (void)
|
|
||||||
+{
|
|
||||||
+ x += bar ();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Verify we narrow the addition from unsigned long long to unsigned int type. */
|
|
||||||
+/* { dg-final { scan-tree-dump " (\[a-zA-Z._0-9]*) = \\(unsigned int\\) \[^;\n\r]*;.* (\[a-zA-Z._0-9]*) = \\(unsigned int\\) \[^;\n\r]*;.* = \\1 \\+ \\2;" "gimple" { target { ilp32 || lp64 } } } } */
|
|
||||||
+/* { dg-final { cleanup-tree-dump "gimple" } } */
|
|
@ -1,654 +0,0 @@
|
|||||||
2013-06-19 Igor Zamyatin <igor.zamyatin@intel.com>
|
|
||||||
|
|
||||||
* gcc.dg/tree-ssa/loop-19.c: Add -fno-common.
|
|
||||||
|
|
||||||
2013-06-12 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
PR target/56564
|
|
||||||
* varasm.c (decl_binds_to_current_def_p): Call binds_local_p
|
|
||||||
target hook even for !TREE_PUBLIC decls. If no resolution info
|
|
||||||
is available, return false for common and external decls.
|
|
||||||
|
|
||||||
* gcc.target/i386/pr56564-1.c: Skip on darwin, mingw and cygwin.
|
|
||||||
* gcc.target/i386/pr56564-3.c: Likewise.
|
|
||||||
|
|
||||||
2013-06-11 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
PR target/56564
|
|
||||||
* varasm.c (get_variable_align): Move #endif to the right place.
|
|
||||||
|
|
||||||
2013-06-10 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
PR target/56564
|
|
||||||
* varasm.c (align_variable): Don't use DATA_ALIGNMENT or
|
|
||||||
CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
|
|
||||||
Use DATA_ABI_ALIGNMENT for that case instead if defined.
|
|
||||||
(get_variable_align): New function.
|
|
||||||
(get_variable_section, emit_bss, emit_common,
|
|
||||||
assemble_variable_contents, place_block_symbol): Use
|
|
||||||
get_variable_align instead of DECL_ALIGN.
|
|
||||||
(assemble_noswitch_variable): Add align argument, use it
|
|
||||||
instead of DECL_ALIGN.
|
|
||||||
(assemble_variable): Adjust caller. Use get_variable_align
|
|
||||||
instead of DECL_ALIGN.
|
|
||||||
* config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
|
|
||||||
caller.
|
|
||||||
(DATA_ABI_ALIGNMENT): Define.
|
|
||||||
* config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
|
|
||||||
* config/i386/i386.c (x86_data_alignment): Add opt argument. If
|
|
||||||
opt is false, only return the psABI mandated alignment increase.
|
|
||||||
* config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
|
|
||||||
(DATA_ABI_ALIGNMENT): ... this.
|
|
||||||
* config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
|
|
||||||
(DATA_ABI_ALIGNMENT): ... this.
|
|
||||||
* config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
|
|
||||||
* config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
|
|
||||||
(DATA_ABI_ALIGNMENT): ... this.
|
|
||||||
* doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
|
|
||||||
* doc/tm.texi: Regenerated.
|
|
||||||
|
|
||||||
* gcc.target/i386/pr56564-1.c: New test.
|
|
||||||
* gcc.target/i386/pr56564-2.c: New test.
|
|
||||||
* gcc.target/i386/pr56564-3.c: New test.
|
|
||||||
* gcc.target/i386/pr56564-4.c: New test.
|
|
||||||
* gcc.target/i386/avx256-unaligned-load-4.c: Add -fno-common.
|
|
||||||
* gcc.target/i386/avx256-unaligned-store-1.c: Likewise.
|
|
||||||
* gcc.target/i386/avx256-unaligned-store-3.c: Likewise.
|
|
||||||
* gcc.target/i386/avx256-unaligned-store-4.c: Likewise.
|
|
||||||
* gcc.target/i386/vect-sizes-1.c: Likewise.
|
|
||||||
* gcc.target/i386/memcpy-1.c: Likewise.
|
|
||||||
* gcc.dg/vect/costmodel/i386/costmodel-vect-31.c (tmp): Initialize.
|
|
||||||
* gcc.dg/vect/costmodel/x86_64/costmodel-vect-31.c (tmp): Likewise.
|
|
||||||
|
|
||||||
--- gcc/doc/tm.texi.in (revision 199897)
|
|
||||||
+++ gcc/doc/tm.texi.in (revision 199898)
|
|
||||||
@@ -1062,6 +1062,15 @@ arrays to be word-aligned so that @code{
|
|
||||||
constants to character arrays can be done inline.
|
|
||||||
@end defmac
|
|
||||||
|
|
||||||
+@defmac DATA_ABI_ALIGNMENT (@var{type}, @var{basic-align})
|
|
||||||
+Similar to @code{DATA_ALIGNMENT}, but for the cases where the ABI mandates
|
|
||||||
+some alignment increase, instead of optimization only purposes. E.g.@
|
|
||||||
+AMD x86-64 psABI says that variables with array type larger than 15 bytes
|
|
||||||
+must be aligned to 16 byte boundaries.
|
|
||||||
+
|
|
||||||
+If this macro is not defined, then @var{basic-align} is used.
|
|
||||||
+@end defmac
|
|
||||||
+
|
|
||||||
@defmac CONSTANT_ALIGNMENT (@var{constant}, @var{basic-align})
|
|
||||||
If defined, a C expression to compute the alignment given to a constant
|
|
||||||
that is being placed in memory. @var{constant} is the constant and
|
|
||||||
--- gcc/doc/tm.texi (revision 199897)
|
|
||||||
+++ gcc/doc/tm.texi (revision 199898)
|
|
||||||
@@ -1078,6 +1078,15 @@ arrays to be word-aligned so that @code{
|
|
||||||
constants to character arrays can be done inline.
|
|
||||||
@end defmac
|
|
||||||
|
|
||||||
+@defmac DATA_ABI_ALIGNMENT (@var{type}, @var{basic-align})
|
|
||||||
+Similar to @code{DATA_ALIGNMENT}, but for the cases where the ABI mandates
|
|
||||||
+some alignment increase, instead of optimization only purposes. E.g.@
|
|
||||||
+AMD x86-64 psABI says that variables with array type larger than 15 bytes
|
|
||||||
+must be aligned to 16 byte boundaries.
|
|
||||||
+
|
|
||||||
+If this macro is not defined, then @var{basic-align} is used.
|
|
||||||
+@end defmac
|
|
||||||
+
|
|
||||||
@defmac CONSTANT_ALIGNMENT (@var{constant}, @var{basic-align})
|
|
||||||
If defined, a C expression to compute the alignment given to a constant
|
|
||||||
that is being placed in memory. @var{constant} is the constant and
|
|
||||||
--- gcc/varasm.c (revision 199897)
|
|
||||||
+++ gcc/varasm.c (revision 199984)
|
|
||||||
@@ -966,13 +966,80 @@ align_variable (tree decl, bool dont_out
|
|
||||||
align = MAX_OFILE_ALIGNMENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* On some machines, it is good to increase alignment sometimes. */
|
|
||||||
if (! DECL_USER_ALIGN (decl))
|
|
||||||
{
|
|
||||||
+#ifdef DATA_ABI_ALIGNMENT
|
|
||||||
+ unsigned int data_abi_align
|
|
||||||
+ = DATA_ABI_ALIGNMENT (TREE_TYPE (decl), align);
|
|
||||||
+ /* For backwards compatibility, don't assume the ABI alignment for
|
|
||||||
+ TLS variables. */
|
|
||||||
+ if (! DECL_THREAD_LOCAL_P (decl) || data_abi_align <= BITS_PER_WORD)
|
|
||||||
+ align = data_abi_align;
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ /* On some machines, it is good to increase alignment sometimes.
|
|
||||||
+ But as DECL_ALIGN is used both for actually emitting the variable
|
|
||||||
+ and for code accessing the variable as guaranteed alignment, we
|
|
||||||
+ can only increase the alignment if it is a performance optimization
|
|
||||||
+ if the references to it must bind to the current definition. */
|
|
||||||
+ if (decl_binds_to_current_def_p (decl))
|
|
||||||
+ {
|
|
||||||
+#ifdef DATA_ALIGNMENT
|
|
||||||
+ unsigned int data_align = DATA_ALIGNMENT (TREE_TYPE (decl), align);
|
|
||||||
+ /* Don't increase alignment too much for TLS variables - TLS space
|
|
||||||
+ is too precious. */
|
|
||||||
+ if (! DECL_THREAD_LOCAL_P (decl) || data_align <= BITS_PER_WORD)
|
|
||||||
+ align = data_align;
|
|
||||||
+#endif
|
|
||||||
+#ifdef CONSTANT_ALIGNMENT
|
|
||||||
+ if (DECL_INITIAL (decl) != 0
|
|
||||||
+ && DECL_INITIAL (decl) != error_mark_node)
|
|
||||||
+ {
|
|
||||||
+ unsigned int const_align
|
|
||||||
+ = CONSTANT_ALIGNMENT (DECL_INITIAL (decl), align);
|
|
||||||
+ /* Don't increase alignment too much for TLS variables - TLS
|
|
||||||
+ space is too precious. */
|
|
||||||
+ if (! DECL_THREAD_LOCAL_P (decl) || const_align <= BITS_PER_WORD)
|
|
||||||
+ align = const_align;
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Reset the alignment in case we have made it tighter, so we can benefit
|
|
||||||
+ from it in get_pointer_alignment. */
|
|
||||||
+ DECL_ALIGN (decl) = align;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Return DECL_ALIGN (decl), possibly increased for optimization purposes
|
|
||||||
+ beyond what align_variable returned. */
|
|
||||||
+
|
|
||||||
+static unsigned int
|
|
||||||
+get_variable_align (tree decl)
|
|
||||||
+{
|
|
||||||
+ unsigned int align = DECL_ALIGN (decl);
|
|
||||||
+
|
|
||||||
+ /* For user aligned vars or static vars align_variable already did
|
|
||||||
+ everything. */
|
|
||||||
+ if (DECL_USER_ALIGN (decl) || !TREE_PUBLIC (decl))
|
|
||||||
+ return align;
|
|
||||||
+
|
|
||||||
+#ifdef DATA_ABI_ALIGNMENT
|
|
||||||
+ if (DECL_THREAD_LOCAL_P (decl))
|
|
||||||
+ align = DATA_ABI_ALIGNMENT (TREE_TYPE (decl), align);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ /* For decls that bind to the current definition, align_variable
|
|
||||||
+ did also everything, except for not assuming ABI required alignment
|
|
||||||
+ of TLS variables. For other vars, increase the alignment here
|
|
||||||
+ as an optimization. */
|
|
||||||
+ if (!decl_binds_to_current_def_p (decl))
|
|
||||||
+ {
|
|
||||||
+ /* On some machines, it is good to increase alignment sometimes. */
|
|
||||||
#ifdef DATA_ALIGNMENT
|
|
||||||
unsigned int data_align = DATA_ALIGNMENT (TREE_TYPE (decl), align);
|
|
||||||
/* Don't increase alignment too much for TLS variables - TLS space
|
|
||||||
- is too precious. */
|
|
||||||
+ is too precious. */
|
|
||||||
if (! DECL_THREAD_LOCAL_P (decl) || data_align <= BITS_PER_WORD)
|
|
||||||
align = data_align;
|
|
||||||
#endif
|
|
||||||
@@ -989,9 +1056,7 @@ align_variable (tree decl, bool dont_out
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* Reset the alignment in case we have made it tighter, so we can benefit
|
|
||||||
- from it in get_pointer_alignment. */
|
|
||||||
- DECL_ALIGN (decl) = align;
|
|
||||||
+ return align;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return the section into which the given VAR_DECL or CONST_DECL
|
|
||||||
@@ -1043,7 +1108,8 @@ get_variable_section (tree decl, bool pr
|
|
||||||
return bss_noswitch_section;
|
|
||||||
}
|
|
||||||
|
|
||||||
- return targetm.asm_out.select_section (decl, reloc, DECL_ALIGN (decl));
|
|
||||||
+ return targetm.asm_out.select_section (decl, reloc,
|
|
||||||
+ get_variable_align (decl));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return the block into which object_block DECL should be placed. */
|
|
||||||
@@ -1780,7 +1846,8 @@ emit_bss (tree decl ATTRIBUTE_UNUSED,
|
|
||||||
unsigned HOST_WIDE_INT rounded ATTRIBUTE_UNUSED)
|
|
||||||
{
|
|
||||||
#if defined ASM_OUTPUT_ALIGNED_BSS
|
|
||||||
- ASM_OUTPUT_ALIGNED_BSS (asm_out_file, decl, name, size, DECL_ALIGN (decl));
|
|
||||||
+ ASM_OUTPUT_ALIGNED_BSS (asm_out_file, decl, name, size,
|
|
||||||
+ get_variable_align (decl));
|
|
||||||
return true;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
@@ -1796,10 +1863,11 @@ emit_common (tree decl ATTRIBUTE_UNUSED,
|
|
||||||
{
|
|
||||||
#if defined ASM_OUTPUT_ALIGNED_DECL_COMMON
|
|
||||||
ASM_OUTPUT_ALIGNED_DECL_COMMON (asm_out_file, decl, name,
|
|
||||||
- size, DECL_ALIGN (decl));
|
|
||||||
+ size, get_variable_align (decl));
|
|
||||||
return true;
|
|
||||||
#elif defined ASM_OUTPUT_ALIGNED_COMMON
|
|
||||||
- ASM_OUTPUT_ALIGNED_COMMON (asm_out_file, name, size, DECL_ALIGN (decl));
|
|
||||||
+ ASM_OUTPUT_ALIGNED_COMMON (asm_out_file, name, size,
|
|
||||||
+ get_variable_align (decl));
|
|
||||||
return true;
|
|
||||||
#else
|
|
||||||
ASM_OUTPUT_COMMON (asm_out_file, name, size, rounded);
|
|
||||||
@@ -1828,7 +1896,8 @@ emit_tls_common (tree decl ATTRIBUTE_UNU
|
|
||||||
NAME is the name of DECL's SYMBOL_REF. */
|
|
||||||
|
|
||||||
static void
|
|
||||||
-assemble_noswitch_variable (tree decl, const char *name, section *sect)
|
|
||||||
+assemble_noswitch_variable (tree decl, const char *name, section *sect,
|
|
||||||
+ unsigned int align)
|
|
||||||
{
|
|
||||||
unsigned HOST_WIDE_INT size, rounded;
|
|
||||||
|
|
||||||
@@ -1850,7 +1919,7 @@ assemble_noswitch_variable (tree decl, c
|
|
||||||
* (BIGGEST_ALIGNMENT / BITS_PER_UNIT));
|
|
||||||
|
|
||||||
if (!sect->noswitch.callback (decl, name, size, rounded)
|
|
||||||
- && (unsigned HOST_WIDE_INT) DECL_ALIGN_UNIT (decl) > rounded)
|
|
||||||
+ && (unsigned HOST_WIDE_INT) (align / BITS_PER_UNIT) > rounded)
|
|
||||||
warning (0, "requested alignment for %q+D is greater than "
|
|
||||||
"implemented alignment of %wu", decl, rounded);
|
|
||||||
}
|
|
||||||
@@ -1880,7 +1949,7 @@ assemble_variable_contents (tree decl, c
|
|
||||||
/* Output the actual data. */
|
|
||||||
output_constant (DECL_INITIAL (decl),
|
|
||||||
tree_low_cst (DECL_SIZE_UNIT (decl), 1),
|
|
||||||
- DECL_ALIGN (decl));
|
|
||||||
+ get_variable_align (decl));
|
|
||||||
else
|
|
||||||
/* Leave space for it. */
|
|
||||||
assemble_zeros (tree_low_cst (DECL_SIZE_UNIT (decl), 1));
|
|
||||||
@@ -1904,6 +1973,7 @@ assemble_variable (tree decl, int top_le
|
|
||||||
const char *name;
|
|
||||||
rtx decl_rtl, symbol;
|
|
||||||
section *sect;
|
|
||||||
+ unsigned int align;
|
|
||||||
bool asan_protected = false;
|
|
||||||
|
|
||||||
/* This function is supposed to handle VARIABLES. Ensure we have one. */
|
|
||||||
@@ -2003,6 +2073,8 @@ assemble_variable (tree decl, int top_le
|
|
||||||
|
|
||||||
set_mem_align (decl_rtl, DECL_ALIGN (decl));
|
|
||||||
|
|
||||||
+ align = get_variable_align (decl);
|
|
||||||
+
|
|
||||||
if (TREE_PUBLIC (decl))
|
|
||||||
maybe_assemble_visibility (decl);
|
|
||||||
|
|
||||||
@@ -2032,12 +2104,12 @@ assemble_variable (tree decl, int top_le
|
|
||||||
place_block_symbol (symbol);
|
|
||||||
}
|
|
||||||
else if (SECTION_STYLE (sect) == SECTION_NOSWITCH)
|
|
||||||
- assemble_noswitch_variable (decl, name, sect);
|
|
||||||
+ assemble_noswitch_variable (decl, name, sect, align);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
switch_to_section (sect);
|
|
||||||
- if (DECL_ALIGN (decl) > BITS_PER_UNIT)
|
|
||||||
- ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (DECL_ALIGN_UNIT (decl)));
|
|
||||||
+ if (align > BITS_PER_UNIT)
|
|
||||||
+ ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (align / BITS_PER_UNIT));
|
|
||||||
assemble_variable_contents (decl, name, dont_output_data);
|
|
||||||
if (asan_protected)
|
|
||||||
{
|
|
||||||
@@ -6709,10 +6781,10 @@ bool
|
|
||||||
decl_binds_to_current_def_p (tree decl)
|
|
||||||
{
|
|
||||||
gcc_assert (DECL_P (decl));
|
|
||||||
- if (!TREE_PUBLIC (decl))
|
|
||||||
- return true;
|
|
||||||
if (!targetm.binds_local_p (decl))
|
|
||||||
return false;
|
|
||||||
+ if (!TREE_PUBLIC (decl))
|
|
||||||
+ return true;
|
|
||||||
/* When resolution is available, just use it. */
|
|
||||||
if (TREE_CODE (decl) == VAR_DECL
|
|
||||||
&& (TREE_STATIC (decl) || DECL_EXTERNAL (decl)))
|
|
||||||
@@ -6730,10 +6802,20 @@ decl_binds_to_current_def_p (tree decl)
|
|
||||||
return resolution_to_local_definition_p (node->symbol.resolution);
|
|
||||||
}
|
|
||||||
/* Otherwise we have to assume the worst for DECL_WEAK (hidden weaks
|
|
||||||
- binds locally but still can be overwritten).
|
|
||||||
+ binds locally but still can be overwritten), DECL_COMMON (can be merged
|
|
||||||
+ with a non-common definition somewhere in the same module) or
|
|
||||||
+ DECL_EXTERNAL.
|
|
||||||
This rely on fact that binds_local_p behave as decl_replaceable_p
|
|
||||||
for all other declaration types. */
|
|
||||||
- return !DECL_WEAK (decl);
|
|
||||||
+ if (DECL_WEAK (decl))
|
|
||||||
+ return false;
|
|
||||||
+ if (DECL_COMMON (decl)
|
|
||||||
+ && (DECL_INITIAL (decl) == NULL
|
|
||||||
+ || DECL_INITIAL (decl) == error_mark_node))
|
|
||||||
+ return false;
|
|
||||||
+ if (DECL_EXTERNAL (decl))
|
|
||||||
+ return false;
|
|
||||||
+ return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* A replaceable function or variable is one which may be replaced
|
|
||||||
@@ -6959,7 +7041,7 @@ place_block_symbol (rtx symbol)
|
|
||||||
else
|
|
||||||
{
|
|
||||||
decl = SYMBOL_REF_DECL (symbol);
|
|
||||||
- alignment = DECL_ALIGN (decl);
|
|
||||||
+ alignment = get_variable_align (decl);
|
|
||||||
size = tree_low_cst (DECL_SIZE_UNIT (decl), 1);
|
|
||||||
if (flag_asan && asan_protect_global (decl))
|
|
||||||
{
|
|
||||||
--- gcc/config/s390/s390.h (revision 199897)
|
|
||||||
+++ gcc/config/s390/s390.h (revision 199898)
|
|
||||||
@@ -221,7 +221,7 @@ enum processor_flags
|
|
||||||
|
|
||||||
/* Alignment on even addresses for LARL instruction. */
|
|
||||||
#define CONSTANT_ALIGNMENT(EXP, ALIGN) (ALIGN) < 16 ? 16 : (ALIGN)
|
|
||||||
-#define DATA_ALIGNMENT(TYPE, ALIGN) (ALIGN) < 16 ? 16 : (ALIGN)
|
|
||||||
+#define DATA_ABI_ALIGNMENT(TYPE, ALIGN) (ALIGN) < 16 ? 16 : (ALIGN)
|
|
||||||
|
|
||||||
/* Alignment is not required by the hardware. */
|
|
||||||
#define STRICT_ALIGNMENT 0
|
|
||||||
--- gcc/config/i386/i386.h (revision 199897)
|
|
||||||
+++ gcc/config/i386/i386.h (revision 199898)
|
|
||||||
@@ -859,7 +859,18 @@ enum target_cpu_default
|
|
||||||
cause character arrays to be word-aligned so that `strcpy' calls
|
|
||||||
that copy constants to character arrays can be done inline. */
|
|
||||||
|
|
||||||
-#define DATA_ALIGNMENT(TYPE, ALIGN) ix86_data_alignment ((TYPE), (ALIGN))
|
|
||||||
+#define DATA_ALIGNMENT(TYPE, ALIGN) \
|
|
||||||
+ ix86_data_alignment ((TYPE), (ALIGN), true)
|
|
||||||
+
|
|
||||||
+/* Similar to DATA_ALIGNMENT, but for the cases where the ABI mandates
|
|
||||||
+ some alignment increase, instead of optimization only purposes. E.g.
|
|
||||||
+ AMD x86-64 psABI says that variables with array type larger than 15 bytes
|
|
||||||
+ must be aligned to 16 byte boundaries.
|
|
||||||
+
|
|
||||||
+ If this macro is not defined, then ALIGN is used. */
|
|
||||||
+
|
|
||||||
+#define DATA_ABI_ALIGNMENT(TYPE, ALIGN) \
|
|
||||||
+ ix86_data_alignment ((TYPE), (ALIGN), false)
|
|
||||||
|
|
||||||
/* If defined, a C expression to compute the alignment for a local
|
|
||||||
variable. TYPE is the data type, and ALIGN is the alignment that
|
|
||||||
--- gcc/config/i386/i386-protos.h (revision 199897)
|
|
||||||
+++ gcc/config/i386/i386-protos.h (revision 199898)
|
|
||||||
@@ -207,7 +207,7 @@ extern void init_cumulative_args (CUMULA
|
|
||||||
#endif /* RTX_CODE */
|
|
||||||
|
|
||||||
#ifdef TREE_CODE
|
|
||||||
-extern int ix86_data_alignment (tree, int);
|
|
||||||
+extern int ix86_data_alignment (tree, int, bool);
|
|
||||||
extern unsigned int ix86_local_alignment (tree, enum machine_mode,
|
|
||||||
unsigned int);
|
|
||||||
extern unsigned int ix86_minimum_alignment (tree, enum machine_mode,
|
|
||||||
--- gcc/config/i386/i386.c (revision 199897)
|
|
||||||
+++ gcc/config/i386/i386.c (revision 199898)
|
|
||||||
@@ -25292,12 +25292,13 @@ ix86_constant_alignment (tree exp, int a
|
|
||||||
instead of that alignment to align the object. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-ix86_data_alignment (tree type, int align)
|
|
||||||
+ix86_data_alignment (tree type, int align, bool opt)
|
|
||||||
{
|
|
||||||
int max_align
|
|
||||||
= optimize_size ? BITS_PER_WORD : MIN (256, MAX_OFILE_ALIGNMENT);
|
|
||||||
|
|
||||||
- if (AGGREGATE_TYPE_P (type)
|
|
||||||
+ if (opt
|
|
||||||
+ && AGGREGATE_TYPE_P (type)
|
|
||||||
&& TYPE_SIZE (type)
|
|
||||||
&& TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST
|
|
||||||
&& (TREE_INT_CST_LOW (TYPE_SIZE (type)) >= (unsigned) max_align
|
|
||||||
@@ -25309,14 +25310,17 @@ ix86_data_alignment (tree type, int alig
|
|
||||||
to 16byte boundary. */
|
|
||||||
if (TARGET_64BIT)
|
|
||||||
{
|
|
||||||
- if (AGGREGATE_TYPE_P (type)
|
|
||||||
- && TYPE_SIZE (type)
|
|
||||||
- && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST
|
|
||||||
- && (TREE_INT_CST_LOW (TYPE_SIZE (type)) >= 128
|
|
||||||
- || TREE_INT_CST_HIGH (TYPE_SIZE (type))) && align < 128)
|
|
||||||
+ if ((opt ? AGGREGATE_TYPE_P (type) : TREE_CODE (type) == ARRAY_TYPE)
|
|
||||||
+ && TYPE_SIZE (type)
|
|
||||||
+ && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST
|
|
||||||
+ && (TREE_INT_CST_LOW (TYPE_SIZE (type)) >= 128
|
|
||||||
+ || TREE_INT_CST_HIGH (TYPE_SIZE (type))) && align < 128)
|
|
||||||
return 128;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (!opt)
|
|
||||||
+ return align;
|
|
||||||
+
|
|
||||||
if (TREE_CODE (type) == ARRAY_TYPE)
|
|
||||||
{
|
|
||||||
if (TYPE_MODE (TREE_TYPE (type)) == DFmode && align < 64)
|
|
||||||
--- gcc/config/c6x/c6x.h (revision 199897)
|
|
||||||
+++ gcc/config/c6x/c6x.h (revision 199898)
|
|
||||||
@@ -134,7 +134,7 @@ extern c6x_cpu_t c6x_arch;
|
|
||||||
Really only externally visible arrays must be aligned this way, as
|
|
||||||
only those are directly visible from another compilation unit. But
|
|
||||||
we don't have that information available here. */
|
|
||||||
-#define DATA_ALIGNMENT(TYPE, ALIGN) \
|
|
||||||
+#define DATA_ABI_ALIGNMENT(TYPE, ALIGN) \
|
|
||||||
(((ALIGN) < BITS_PER_UNIT * 8 && TREE_CODE (TYPE) == ARRAY_TYPE) \
|
|
||||||
? BITS_PER_UNIT * 8 : (ALIGN))
|
|
||||||
|
|
||||||
--- gcc/config/mmix/mmix.h (revision 199897)
|
|
||||||
+++ gcc/config/mmix/mmix.h (revision 199898)
|
|
||||||
@@ -164,7 +164,7 @@ struct GTY(()) machine_function
|
|
||||||
/* Copied from elfos.h. */
|
|
||||||
#define MAX_OFILE_ALIGNMENT (32768 * 8)
|
|
||||||
|
|
||||||
-#define DATA_ALIGNMENT(TYPE, BASIC_ALIGN) \
|
|
||||||
+#define DATA_ABI_ALIGNMENT(TYPE, BASIC_ALIGN) \
|
|
||||||
mmix_data_alignment (TYPE, BASIC_ALIGN)
|
|
||||||
|
|
||||||
#define CONSTANT_ALIGNMENT(CONSTANT, BASIC_ALIGN) \
|
|
||||||
--- gcc/config/mmix/mmix.c (revision 199897)
|
|
||||||
+++ gcc/config/mmix/mmix.c (revision 199898)
|
|
||||||
@@ -313,7 +313,7 @@ mmix_init_machine_status (void)
|
|
||||||
return ggc_alloc_cleared_machine_function ();
|
|
||||||
}
|
|
||||||
|
|
||||||
-/* DATA_ALIGNMENT.
|
|
||||||
+/* DATA_ABI_ALIGNMENT.
|
|
||||||
We have trouble getting the address of stuff that is located at other
|
|
||||||
than 32-bit alignments (GETA requirements), so try to give everything
|
|
||||||
at least 32-bit alignment. */
|
|
||||||
--- gcc/testsuite/gcc.target/i386/memcpy-1.c (revision 199897)
|
|
||||||
+++ gcc/testsuite/gcc.target/i386/memcpy-1.c (revision 199898)
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
/* { dg-do compile } */
|
|
||||||
/* { dg-require-effective-target ia32 } */
|
|
||||||
-/* { dg-options "-O2 -march=pentiumpro -minline-all-stringops" } */
|
|
||||||
+/* { dg-options "-O2 -march=pentiumpro -minline-all-stringops -fno-common" } */
|
|
||||||
/* { dg-final { scan-assembler "rep" } } */
|
|
||||||
/* { dg-final { scan-assembler "movs" } } */
|
|
||||||
/* { dg-final { scan-assembler-not "test" } } */
|
|
||||||
--- gcc/testsuite/gcc.target/i386/vect-sizes-1.c (revision 199897)
|
|
||||||
+++ gcc/testsuite/gcc.target/i386/vect-sizes-1.c (revision 199898)
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
/* { dg-do compile } */
|
|
||||||
-/* { dg-options "-O3 -ffast-math -mavx -mtune=generic" } */
|
|
||||||
+/* { dg-options "-O3 -ffast-math -mavx -mtune=generic -fno-common" } */
|
|
||||||
|
|
||||||
double a[1024];
|
|
||||||
|
|
||||||
--- gcc/testsuite/gcc.target/i386/avx256-unaligned-load-4.c (revision 199897)
|
|
||||||
+++ gcc/testsuite/gcc.target/i386/avx256-unaligned-load-4.c (revision 199898)
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
/* { dg-do compile } */
|
|
||||||
-/* { dg-options "-O3 -dp -mavx -mno-avx256-split-unaligned-load -mno-avx256-split-unaligned-store" } */
|
|
||||||
+/* { dg-options "-O3 -dp -mavx -mno-avx256-split-unaligned-load -mno-avx256-split-unaligned-store -fno-common" } */
|
|
||||||
|
|
||||||
#define N 1024
|
|
||||||
|
|
||||||
--- gcc/testsuite/gcc.target/i386/avx256-unaligned-store-1.c (revision 199897)
|
|
||||||
+++ gcc/testsuite/gcc.target/i386/avx256-unaligned-store-1.c (revision 199898)
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
/* { dg-do compile } */
|
|
||||||
-/* { dg-options "-O3 -dp -mavx -mavx256-split-unaligned-store" } */
|
|
||||||
+/* { dg-options "-O3 -dp -mavx -mavx256-split-unaligned-store -fno-common" } */
|
|
||||||
|
|
||||||
#define N 1024
|
|
||||||
|
|
||||||
--- gcc/testsuite/gcc.target/i386/avx256-unaligned-store-3.c (revision 199897)
|
|
||||||
+++ gcc/testsuite/gcc.target/i386/avx256-unaligned-store-3.c (revision 199898)
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
/* { dg-do compile } */
|
|
||||||
-/* { dg-options "-O3 -dp -mavx -mavx256-split-unaligned-store -mtune=generic" } */
|
|
||||||
+/* { dg-options "-O3 -dp -mavx -mavx256-split-unaligned-store -mtune=generic -fno-common" } */
|
|
||||||
|
|
||||||
#define N 1024
|
|
||||||
|
|
||||||
--- gcc/testsuite/gcc.target/i386/avx256-unaligned-store-4.c (revision 199897)
|
|
||||||
+++ gcc/testsuite/gcc.target/i386/avx256-unaligned-store-4.c (revision 199898)
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
/* { dg-do compile } */
|
|
||||||
-/* { dg-options "-O3 -dp -mavx -mno-avx256-split-unaligned-load -mno-avx256-split-unaligned-store" } */
|
|
||||||
+/* { dg-options "-O3 -dp -mavx -mno-avx256-split-unaligned-load -mno-avx256-split-unaligned-store -fno-common" } */
|
|
||||||
|
|
||||||
#define N 1024
|
|
||||||
|
|
||||||
--- gcc/testsuite/gcc.target/i386/pr56564-1.c (revision 0)
|
|
||||||
+++ gcc/testsuite/gcc.target/i386/pr56564-1.c (revision 199985)
|
|
||||||
@@ -0,0 +1,26 @@
|
|
||||||
+/* PR target/56564 */
|
|
||||||
+/* { dg-do compile { target { fpic && lp64 } } } */
|
|
||||||
+/* { dg-skip-if "No symbol interposition for PIC" { *-*-mingw* *-*-cygwin* *-*-darwin* } } */
|
|
||||||
+/* { dg-options "-O3 -fpic -fdump-tree-optimized" } */
|
|
||||||
+
|
|
||||||
+struct S { long a, b; } s = { 5, 6 };
|
|
||||||
+char t[16] = { 7 };
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+foo (void)
|
|
||||||
+{
|
|
||||||
+ return ((__UINTPTR_TYPE__) &s) & 15;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+bar (void)
|
|
||||||
+{
|
|
||||||
+ return ((__UINTPTR_TYPE__) &t[0]) & 15;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* { dg-final { scan-tree-dump-times "&s" 1 "optimized" } } */
|
|
||||||
+/* { dg-final { scan-tree-dump-times "&t" 0 "optimized" } } */
|
|
||||||
+/* { dg-final { scan-tree-dump-times "return 0" 1 "optimized" } } */
|
|
||||||
+/* { dg-final { scan-assembler ".align\[ \t]*16\[^:]*\[\n\r]s:" { target { *-*-linux* } } } } */
|
|
||||||
+/* { dg-final { scan-assembler ".align\[ \t]*16\[^:]*\[\n\r]t:" { target { *-*-linux* } } } } */
|
|
||||||
+/* { dg-final { cleanup-tree-dump "optimized" } } */
|
|
||||||
--- gcc/testsuite/gcc.target/i386/pr56564-2.c (revision 0)
|
|
||||||
+++ gcc/testsuite/gcc.target/i386/pr56564-2.c (revision 199898)
|
|
||||||
@@ -0,0 +1,25 @@
|
|
||||||
+/* PR target/56564 */
|
|
||||||
+/* { dg-do compile { target { *-*-linux* && lp64 } } } */
|
|
||||||
+/* { dg-options "-O3 -fno-pic -fdump-tree-optimized" } */
|
|
||||||
+
|
|
||||||
+struct S { long a, b; } s = { 5, 6 };
|
|
||||||
+char t[16] = { 7 };
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+foo (void)
|
|
||||||
+{
|
|
||||||
+ return ((__UINTPTR_TYPE__) &s) & 15;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+bar (void)
|
|
||||||
+{
|
|
||||||
+ return ((__UINTPTR_TYPE__) &t[0]) & 15;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* { dg-final { scan-tree-dump-times "&s" 0 "optimized" } } */
|
|
||||||
+/* { dg-final { scan-tree-dump-times "&t" 0 "optimized" } } */
|
|
||||||
+/* { dg-final { scan-tree-dump-times "return 0" 2 "optimized" } } */
|
|
||||||
+/* { dg-final { scan-assembler ".align\[ \t]*16\[^:]*\[\n\r]s:" { target { *-*-linux* } } } } */
|
|
||||||
+/* { dg-final { scan-assembler ".align\[ \t]*16\[^:]*\[\n\r]t:" { target { *-*-linux* } } } } */
|
|
||||||
+/* { dg-final { cleanup-tree-dump "optimized" } } */
|
|
||||||
--- gcc/testsuite/gcc.target/i386/pr56564-3.c (revision 0)
|
|
||||||
+++ gcc/testsuite/gcc.target/i386/pr56564-3.c (revision 199985)
|
|
||||||
@@ -0,0 +1,29 @@
|
|
||||||
+/* PR target/56564 */
|
|
||||||
+/* { dg-do compile { target { fpic && lp64 } } } */
|
|
||||||
+/* { dg-skip-if "No symbol interposition for PIC" { *-*-mingw* *-*-cygwin* *-*-darwin* } } */
|
|
||||||
+/* { dg-options "-O3 -fpic -fdump-tree-optimized" } */
|
|
||||||
+
|
|
||||||
+__thread struct S { long a, b; } s = { 5, 6 };
|
|
||||||
+__thread char t[16] = { 7 };
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+foo (void)
|
|
||||||
+{
|
|
||||||
+ return ((__UINTPTR_TYPE__) &s) & 15;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* For backwards compatibility we don't assume that t must
|
|
||||||
+ be aligned to 16 bytes, but align it anyway. */
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+bar (void)
|
|
||||||
+{
|
|
||||||
+ return ((__UINTPTR_TYPE__) &t[0]) & 15;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* { dg-final { scan-tree-dump-times "&s" 1 "optimized" } } */
|
|
||||||
+/* { dg-final { scan-tree-dump-times "&t" 1 "optimized" } } */
|
|
||||||
+/* { dg-final { scan-tree-dump-times "return 0" 0 "optimized" } } */
|
|
||||||
+/* { dg-final { scan-assembler-not ".align\[ \t]*16\[^:]*\[\n\r]s:" { target { *-*-linux* } } } } */
|
|
||||||
+/* { dg-final { scan-assembler ".align\[ \t]*16\[^:]*\[\n\r]t:" { target { *-*-linux* } } } } */
|
|
||||||
+/* { dg-final { cleanup-tree-dump "optimized" } } */
|
|
||||||
--- gcc/testsuite/gcc.target/i386/pr56564-4.c (revision 0)
|
|
||||||
+++ gcc/testsuite/gcc.target/i386/pr56564-4.c (revision 199898)
|
|
||||||
@@ -0,0 +1,22 @@
|
|
||||||
+/* PR target/56564 */
|
|
||||||
+/* { dg-do compile { target { *-*-linux* && lp64 } } } */
|
|
||||||
+/* { dg-options "-O3 -fno-pic -fdump-tree-optimized" } */
|
|
||||||
+
|
|
||||||
+__thread struct S { long a, b; } s = { 5, 6 };
|
|
||||||
+__thread char t[16] = { 7 };
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+foo (void)
|
|
||||||
+{
|
|
||||||
+ return ((__UINTPTR_TYPE__) &s) & 15;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+bar (void)
|
|
||||||
+{
|
|
||||||
+ return ((__UINTPTR_TYPE__) &t[0]) & 15;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* { dg-final { scan-assembler-not ".align\[ \t]*16\[^:]*\[\n\r]s:" { target { *-*-linux* } } } } */
|
|
||||||
+/* { dg-final { scan-assembler ".align\[ \t]*16\[^:]*\[\n\r]t:" { target { *-*-linux* } } } } */
|
|
||||||
+/* { dg-final { cleanup-tree-dump "optimized" } } */
|
|
||||||
--- gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-31.c (revision 199897)
|
|
||||||
+++ gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-31.c (revision 199898)
|
|
||||||
@@ -18,7 +18,7 @@ struct s{
|
|
||||||
struct t e; /* unaligned (offset 2N+4N+4 B) */
|
|
||||||
};
|
|
||||||
|
|
||||||
-struct s tmp;
|
|
||||||
+struct s tmp = { 1 };
|
|
||||||
|
|
||||||
int main1 ()
|
|
||||||
{
|
|
||||||
--- gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-31.c (revision 199897)
|
|
||||||
+++ gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-31.c (revision 199898)
|
|
||||||
@@ -18,7 +18,7 @@ struct s{
|
|
||||||
struct t e; /* unaligned (offset 2N+4N+4 B) */
|
|
||||||
};
|
|
||||||
|
|
||||||
-struct s tmp;
|
|
||||||
+struct s tmp = { 1 };
|
|
||||||
|
|
||||||
int main1 ()
|
|
||||||
{
|
|
||||||
--- gcc/testsuite/gcc.dg/tree-ssa/loop-19.c (revision 200212)
|
|
||||||
+++ gcc/testsuite/gcc.dg/tree-ssa/loop-19.c (revision 200213)
|
|
||||||
@@ -6,7 +6,7 @@
|
|
||||||
|
|
||||||
/* { dg-do compile { target { i?86-*-* || { x86_64-*-* || powerpc_hard_double } } } } */
|
|
||||||
/* { dg-require-effective-target nonpic } */
|
|
||||||
-/* { dg-options "-O3 -fno-tree-loop-distribute-patterns -fno-prefetch-loop-arrays -fdump-tree-optimized" } */
|
|
||||||
+/* { dg-options "-O3 -fno-tree-loop-distribute-patterns -fno-prefetch-loop-arrays -fdump-tree-optimized -fno-common" } */
|
|
||||||
|
|
||||||
# define N 2000000
|
|
||||||
double a[N],c[N];
|
|
@ -1,16 +0,0 @@
|
|||||||
2014-02-14 Kyle McMartin <kyle@redhat.com>
|
|
||||||
|
|
||||||
PR pch/60010
|
|
||||||
* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
|
|
||||||
|
|
||||||
--- gcc/config/host-linux.c (revision 207784)
|
|
||||||
+++ gcc/config/host-linux.c (revision 207785)
|
|
||||||
@@ -86,6 +86,8 @@
|
|
||||||
# define TRY_EMPTY_VM_SPACE 0x60000000
|
|
||||||
#elif defined(__mc68000__)
|
|
||||||
# define TRY_EMPTY_VM_SPACE 0x40000000
|
|
||||||
+#elif defined(__aarch64__)
|
|
||||||
+# define TRY_EMPTY_VM_SPACE 0x1000000000
|
|
||||||
#elif defined(__ARM_EABI__)
|
|
||||||
# define TRY_EMPTY_VM_SPACE 0x60000000
|
|
||||||
#elif defined(__mips__) && defined(__LP64__)
|
|
@ -1,43 +0,0 @@
|
|||||||
2014-02-19 Jason Merrill <jason@redhat.com>
|
|
||||||
|
|
||||||
PR c++/60046
|
|
||||||
* pt.c (maybe_instantiate_noexcept): Don't instantiate exception
|
|
||||||
spec from template context.
|
|
||||||
|
|
||||||
--- gcc/cp/pt.c (revision 207920)
|
|
||||||
+++ gcc/cp/pt.c (revision 207921)
|
|
||||||
@@ -18567,6 +18567,10 @@ maybe_instantiate_noexcept (tree fn)
|
|
||||||
{
|
|
||||||
tree fntype, spec, noex, clone;
|
|
||||||
|
|
||||||
+ /* Don't instantiate a noexcept-specification from template context. */
|
|
||||||
+ if (processing_template_decl)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
if (DECL_CLONED_FUNCTION_P (fn))
|
|
||||||
fn = DECL_CLONED_FUNCTION (fn);
|
|
||||||
fntype = TREE_TYPE (fn);
|
|
||||||
--- gcc/testsuite/g++.dg/cpp0x/noexcept22.C (revision 0)
|
|
||||||
+++ gcc/testsuite/g++.dg/cpp0x/noexcept22.C (revision 207921)
|
|
||||||
@@ -0,0 +1,21 @@
|
|
||||||
+// PR c++/60046
|
|
||||||
+// { dg-require-effective-target c++11 }
|
|
||||||
+
|
|
||||||
+constexpr bool foo () { return noexcept (true); }
|
|
||||||
+template <typename T>
|
|
||||||
+struct V
|
|
||||||
+{
|
|
||||||
+ void bar (V &) noexcept (foo ()) {}
|
|
||||||
+};
|
|
||||||
+template <typename T>
|
|
||||||
+struct W : public V <int>
|
|
||||||
+{
|
|
||||||
+ void bar (W &x) { V <int>::bar (x); }
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+main ()
|
|
||||||
+{
|
|
||||||
+ W <int> a, b;
|
|
||||||
+ a.bar (b);
|
|
||||||
+}
|
|
@ -1,46 +0,0 @@
|
|||||||
2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
|
|
||||||
|
|
||||||
PR target/60137
|
|
||||||
* config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
|
|
||||||
for VSX/Altivec vectors that land in GPR registers.
|
|
||||||
|
|
||||||
* gcc.target/powerpc/pr60137.c: New file.
|
|
||||||
|
|
||||||
--- gcc/config/rs6000/rs6000.md (revision 207698)
|
|
||||||
+++ gcc/config/rs6000/rs6000.md (revision 207699)
|
|
||||||
@@ -9963,6 +9963,15 @@ (define_insn_and_split "reload_vsx_from_
|
|
||||||
[(set_attr "length" "12")
|
|
||||||
(set_attr "type" "three")])
|
|
||||||
|
|
||||||
+(define_split
|
|
||||||
+ [(set (match_operand:FMOVE128_GPR 0 "nonimmediate_operand" "")
|
|
||||||
+ (match_operand:FMOVE128_GPR 1 "input_operand" ""))]
|
|
||||||
+ "reload_completed
|
|
||||||
+ && (int_reg_operand (operands[0], <MODE>mode)
|
|
||||||
+ || int_reg_operand (operands[1], <MODE>mode))"
|
|
||||||
+ [(pc)]
|
|
||||||
+{ rs6000_split_multireg_move (operands[0], operands[1]); DONE; })
|
|
||||||
+
|
|
||||||
;; Move SFmode to a VSX from a GPR register. Because scalar floating point
|
|
||||||
;; type is stored internally as double precision in the VSX registers, we have
|
|
||||||
;; to convert it from the vector format.
|
|
||||||
--- gcc/testsuite/gcc.target/powerpc/pr60137.c (revision 0)
|
|
||||||
+++ gcc/testsuite/gcc.target/powerpc/pr60137.c (revision 207699)
|
|
||||||
@@ -0,0 +1,17 @@
|
|
||||||
+/* { dg-do compile { target { powerpc*-*-* } } } */
|
|
||||||
+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
|
|
||||||
+/* { dg-require-effective-target powerpc_p8vector_ok } */
|
|
||||||
+/* { dg-options "-mcpu=power8 -O3 -mno-vsx" } */
|
|
||||||
+
|
|
||||||
+/* target/60137, compiler got a 'could not split insn error'. */
|
|
||||||
+
|
|
||||||
+extern int target_flags;
|
|
||||||
+extern char fixed_regs[53];
|
|
||||||
+extern char call_used_regs[53];
|
|
||||||
+
|
|
||||||
+void init_reg_sets_1(void)
|
|
||||||
+{
|
|
||||||
+ int i;
|
|
||||||
+ for (i = 0; i < 53; i++)
|
|
||||||
+ fixed_regs[i] = call_used_regs[i] = (call_used_regs[i] &((target_flags & 0x02000000) ? 2 : 1)) != 0;
|
|
||||||
+}
|
|
@ -1,27 +0,0 @@
|
|||||||
2007-10-16 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
* Makefile.am (libgcj_tools_la_LIBADD): Add.
|
|
||||||
* Makefile.in: Regenerated.
|
|
||||||
|
|
||||||
--- libjava/Makefile.am.jj 2009-05-06 08:14:50.000000000 +0200
|
|
||||||
+++ libjava/Makefile.am 2009-05-06 10:26:43.000000000 +0200
|
|
||||||
@@ -550,7 +550,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toole
|
|
||||||
$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) \
|
|
||||||
$(LIBJAVA_LDFLAGS_LIBMATH)
|
|
||||||
|
|
||||||
-libgcj_tools_la_LIBADD = libgcj.la
|
|
||||||
+libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
|
|
||||||
libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \
|
|
||||||
$(libgcj_tools_la_version_dep)
|
|
||||||
if BUILD_SUBLIBS
|
|
||||||
--- libjava/Makefile.in.jj 2009-05-06 08:14:49.000000000 +0200
|
|
||||||
+++ libjava/Makefile.in 2009-05-06 10:27:18.000000000 +0200
|
|
||||||
@@ -1110,7 +1110,7 @@ libgcj_tools_la_LDFLAGS = -rpath $(toole
|
|
||||||
$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) \
|
|
||||||
$(LIBJAVA_LDFLAGS_LIBMATH)
|
|
||||||
|
|
||||||
-libgcj_tools_la_LIBADD = libgcj.la
|
|
||||||
+libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
|
|
||||||
libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec \
|
|
||||||
$(libgcj_tools_la_version_dep) $(am__append_19)
|
|
||||||
libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS) \
|
|
@ -1,392 +0,0 @@
|
|||||||
--- isl-0.11.1/config.guess
|
|
||||||
+++ isl-0.11.1/config.guess
|
|
||||||
@@ -2,9 +2,9 @@
|
|
||||||
# Attempt to guess a canonical system name.
|
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
|
||||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
|
||||||
-# 2011 Free Software Foundation, Inc.
|
|
||||||
+# 2011, 2012 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
-timestamp='2011-05-11'
|
|
||||||
+timestamp='2012-06-10'
|
|
||||||
|
|
||||||
# This file is free software; you can redistribute it and/or modify it
|
|
||||||
# under the terms of the GNU General Public License as published by
|
|
||||||
@@ -17,9 +17,7 @@ timestamp='2011-05-11'
|
|
||||||
# General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
-# along with this program; if not, write to the Free Software
|
|
||||||
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
|
||||||
-# 02110-1301, USA.
|
|
||||||
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
|
||||||
# distribute this file as part of a program that contains a
|
|
||||||
@@ -57,8 +55,8 @@ GNU config.guess ($timestamp)
|
|
||||||
|
|
||||||
Originally written by Per Bothner.
|
|
||||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
|
||||||
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
|
|
||||||
-Software Foundation, Inc.
|
|
||||||
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
|
||||||
+Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This is free software; see the source for copying conditions. There is NO
|
|
||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
|
||||||
@@ -145,7 +143,7 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
|
|
||||||
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|
||||||
*:NetBSD:*:*)
|
|
||||||
# NetBSD (nbsd) targets should (where applicable) match one or
|
|
||||||
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
|
|
||||||
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
|
|
||||||
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
|
|
||||||
# switched to ELF, *-*-netbsd* would select the old
|
|
||||||
# object file format. This provides both forward
|
|
||||||
@@ -792,13 +790,12 @@ EOF
|
|
||||||
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
|
|
||||||
exit ;;
|
|
||||||
*:FreeBSD:*:*)
|
|
||||||
- case ${UNAME_MACHINE} in
|
|
||||||
- pc98)
|
|
||||||
- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
|
||||||
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
|
|
||||||
+ case ${UNAME_PROCESSOR} in
|
|
||||||
amd64)
|
|
||||||
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
|
||||||
*)
|
|
||||||
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
|
||||||
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
|
||||||
esac
|
|
||||||
exit ;;
|
|
||||||
i*:CYGWIN*:*)
|
|
||||||
@@ -807,6 +804,9 @@ EOF
|
|
||||||
*:MINGW*:*)
|
|
||||||
echo ${UNAME_MACHINE}-pc-mingw32
|
|
||||||
exit ;;
|
|
||||||
+ i*:MSYS*:*)
|
|
||||||
+ echo ${UNAME_MACHINE}-pc-msys
|
|
||||||
+ exit ;;
|
|
||||||
i*:windows32*:*)
|
|
||||||
# uname -m includes "-pc" on this system.
|
|
||||||
echo ${UNAME_MACHINE}-mingw32
|
|
||||||
@@ -861,6 +861,13 @@ EOF
|
|
||||||
i*86:Minix:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-pc-minix
|
|
||||||
exit ;;
|
|
||||||
+ aarch64:Linux:*:*)
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
+ exit ;;
|
|
||||||
+ aarch64_be:Linux:*:*)
|
|
||||||
+ UNAME_MACHINE=aarch64_be
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
+ exit ;;
|
|
||||||
alpha:Linux:*:*)
|
|
||||||
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
|
||||||
EV5) UNAME_MACHINE=alphaev5 ;;
|
|
||||||
@@ -895,13 +902,16 @@ EOF
|
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
cris:Linux:*:*)
|
|
||||||
- echo cris-axis-linux-gnu
|
|
||||||
+ echo ${UNAME_MACHINE}-axis-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
crisv32:Linux:*:*)
|
|
||||||
- echo crisv32-axis-linux-gnu
|
|
||||||
+ echo ${UNAME_MACHINE}-axis-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
frv:Linux:*:*)
|
|
||||||
- echo frv-unknown-linux-gnu
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
+ exit ;;
|
|
||||||
+ hexagon:Linux:*:*)
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
i*86:Linux:*:*)
|
|
||||||
LIBC=gnu
|
|
||||||
@@ -943,7 +953,7 @@ EOF
|
|
||||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
|
||||||
;;
|
|
||||||
or32:Linux:*:*)
|
|
||||||
- echo or32-unknown-linux-gnu
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
padre:Linux:*:*)
|
|
||||||
echo sparc-unknown-linux-gnu
|
|
||||||
@@ -978,13 +988,13 @@ EOF
|
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
tile*:Linux:*:*)
|
|
||||||
- echo ${UNAME_MACHINE}-tilera-linux-gnu
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
vax:Linux:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-dec-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
x86_64:Linux:*:*)
|
|
||||||
- echo x86_64-unknown-linux-gnu
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
exit ;;
|
|
||||||
xtensa*:Linux:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
||||||
@@ -1246,7 +1256,7 @@ EOF
|
|
||||||
NEO-?:NONSTOP_KERNEL:*:*)
|
|
||||||
echo neo-tandem-nsk${UNAME_RELEASE}
|
|
||||||
exit ;;
|
|
||||||
- NSE-?:NONSTOP_KERNEL:*:*)
|
|
||||||
+ NSE-*:NONSTOP_KERNEL:*:*)
|
|
||||||
echo nse-tandem-nsk${UNAME_RELEASE}
|
|
||||||
exit ;;
|
|
||||||
NSR-?:NONSTOP_KERNEL:*:*)
|
|
||||||
@@ -1315,6 +1325,9 @@ EOF
|
|
||||||
i*86:AROS:*:*)
|
|
||||||
echo ${UNAME_MACHINE}-pc-aros
|
|
||||||
exit ;;
|
|
||||||
+ x86_64:VMkernel:*:*)
|
|
||||||
+ echo ${UNAME_MACHINE}-unknown-esx
|
|
||||||
+ exit ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
#echo '(No uname command or uname output not recognized.)' 1>&2
|
|
||||||
--- isl-0.11.1/config.sub
|
|
||||||
+++ isl-0.11.1/config.sub
|
|
||||||
@@ -2,9 +2,9 @@
|
|
||||||
# Configuration validation subroutine script.
|
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
|
||||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
|
||||||
-# 2011 Free Software Foundation, Inc.
|
|
||||||
+# 2011, 2012 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
-timestamp='2011-03-23'
|
|
||||||
+timestamp='2012-04-18'
|
|
||||||
|
|
||||||
# This file is (in principle) common to ALL GNU software.
|
|
||||||
# The presence of a machine in this file suggests that SOME GNU software
|
|
||||||
@@ -21,9 +21,7 @@ timestamp='2011-03-23'
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
-# along with this program; if not, write to the Free Software
|
|
||||||
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
|
||||||
-# 02110-1301, USA.
|
|
||||||
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
|
||||||
# distribute this file as part of a program that contains a
|
|
||||||
@@ -76,8 +74,8 @@ version="\
|
|
||||||
GNU config.sub ($timestamp)
|
|
||||||
|
|
||||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
|
||||||
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
|
|
||||||
-Software Foundation, Inc.
|
|
||||||
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
|
||||||
+Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This is free software; see the source for copying conditions. There is NO
|
|
||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
|
||||||
@@ -132,6 +130,10 @@ case $maybe_os in
|
|
||||||
os=-$maybe_os
|
|
||||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
|
||||||
;;
|
|
||||||
+ android-linux)
|
|
||||||
+ os=-linux-android
|
|
||||||
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
|
|
||||||
+ ;;
|
|
||||||
*)
|
|
||||||
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
|
|
||||||
if [ $basic_machine != $1 ]
|
|
||||||
@@ -223,6 +225,12 @@ case $os in
|
|
||||||
-isc*)
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
|
||||||
;;
|
|
||||||
+ -lynx*178)
|
|
||||||
+ os=-lynxos178
|
|
||||||
+ ;;
|
|
||||||
+ -lynx*5)
|
|
||||||
+ os=-lynxos5
|
|
||||||
+ ;;
|
|
||||||
-lynx*)
|
|
||||||
os=-lynxos
|
|
||||||
;;
|
|
||||||
@@ -247,17 +255,22 @@ case $basic_machine in
|
|
||||||
# Some are omitted here because they have special meanings below.
|
|
||||||
1750a | 580 \
|
|
||||||
| a29k \
|
|
||||||
+ | aarch64 | aarch64_be \
|
|
||||||
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
|
||||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
|
||||||
| am33_2.0 \
|
|
||||||
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
|
|
||||||
+ | be32 | be64 \
|
|
||||||
| bfin \
|
|
||||||
| c4x | clipper \
|
|
||||||
| d10v | d30v | dlx | dsp16xx \
|
|
||||||
+ | epiphany \
|
|
||||||
| fido | fr30 | frv \
|
|
||||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
|
||||||
+ | hexagon \
|
|
||||||
| i370 | i860 | i960 | ia64 \
|
|
||||||
| ip2k | iq2000 \
|
|
||||||
+ | le32 | le64 \
|
|
||||||
| lm32 \
|
|
||||||
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
|
||||||
| maxq | mb | microblaze | mcore | mep | metag \
|
|
||||||
@@ -291,7 +304,7 @@ case $basic_machine in
|
|
||||||
| pdp10 | pdp11 | pj | pjl \
|
|
||||||
| powerpc | powerpc64 | powerpc64le | powerpcle \
|
|
||||||
| pyramid \
|
|
||||||
- | rx \
|
|
||||||
+ | rl78 | rx \
|
|
||||||
| score \
|
|
||||||
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
|
||||||
| sh64 | sh64le \
|
|
||||||
@@ -300,7 +313,7 @@ case $basic_machine in
|
|
||||||
| spu \
|
|
||||||
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
|
|
||||||
| ubicom32 \
|
|
||||||
- | v850 | v850e \
|
|
||||||
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
|
|
||||||
| we32k \
|
|
||||||
| x86 | xc16x | xstormy16 | xtensa \
|
|
||||||
| z8k | z80)
|
|
||||||
@@ -315,8 +328,7 @@ case $basic_machine in
|
|
||||||
c6x)
|
|
||||||
basic_machine=tic6x-unknown
|
|
||||||
;;
|
|
||||||
- m6811 | m68hc11 | m6812 | m68hc12 | picochip)
|
|
||||||
- # Motorola 68HC11/12.
|
|
||||||
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
|
|
||||||
basic_machine=$basic_machine-unknown
|
|
||||||
os=-none
|
|
||||||
;;
|
|
||||||
@@ -329,7 +341,10 @@ case $basic_machine in
|
|
||||||
strongarm | thumb | xscale)
|
|
||||||
basic_machine=arm-unknown
|
|
||||||
;;
|
|
||||||
-
|
|
||||||
+ xgate)
|
|
||||||
+ basic_machine=$basic_machine-unknown
|
|
||||||
+ os=-none
|
|
||||||
+ ;;
|
|
||||||
xscaleeb)
|
|
||||||
basic_machine=armeb-unknown
|
|
||||||
;;
|
|
||||||
@@ -352,11 +367,13 @@ case $basic_machine in
|
|
||||||
# Recognize the basic CPU types with company name.
|
|
||||||
580-* \
|
|
||||||
| a29k-* \
|
|
||||||
+ | aarch64-* | aarch64_be-* \
|
|
||||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
|
||||||
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
|
||||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
|
||||||
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
|
|
||||||
| avr-* | avr32-* \
|
|
||||||
+ | be32-* | be64-* \
|
|
||||||
| bfin-* | bs2000-* \
|
|
||||||
| c[123]* | c30-* | [cjt]90-* | c4x-* \
|
|
||||||
| clipper-* | craynv-* | cydra-* \
|
|
||||||
@@ -365,8 +382,10 @@ case $basic_machine in
|
|
||||||
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
|
|
||||||
| h8300-* | h8500-* \
|
|
||||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
|
||||||
+ | hexagon-* \
|
|
||||||
| i*86-* | i860-* | i960-* | ia64-* \
|
|
||||||
| ip2k-* | iq2000-* \
|
|
||||||
+ | le32-* | le64-* \
|
|
||||||
| lm32-* \
|
|
||||||
| m32c-* | m32r-* | m32rle-* \
|
|
||||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
|
||||||
@@ -400,7 +419,7 @@ case $basic_machine in
|
|
||||||
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
|
||||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
|
|
||||||
| pyramid-* \
|
|
||||||
- | romp-* | rs6000-* | rx-* \
|
|
||||||
+ | rl78-* | romp-* | rs6000-* | rx-* \
|
|
||||||
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
|
||||||
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
|
||||||
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
|
||||||
@@ -408,10 +427,11 @@ case $basic_machine in
|
|
||||||
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
|
|
||||||
| tahoe-* \
|
|
||||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
|
||||||
- | tile-* | tilegx-* \
|
|
||||||
+ | tile*-* \
|
|
||||||
| tron-* \
|
|
||||||
| ubicom32-* \
|
|
||||||
- | v850-* | v850e-* | vax-* \
|
|
||||||
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
|
|
||||||
+ | vax-* \
|
|
||||||
| we32k-* \
|
|
||||||
| x86-* | x86_64-* | xc16x-* | xps100-* \
|
|
||||||
| xstormy16-* | xtensa*-* \
|
|
||||||
@@ -711,7 +731,6 @@ case $basic_machine in
|
|
||||||
i370-ibm* | ibm*)
|
|
||||||
basic_machine=i370-ibm
|
|
||||||
;;
|
|
||||||
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
|
|
||||||
i*86v32)
|
|
||||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
|
||||||
os=-sysv32
|
|
||||||
@@ -808,10 +827,18 @@ case $basic_machine in
|
|
||||||
ms1-*)
|
|
||||||
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
|
||||||
;;
|
|
||||||
+ msys)
|
|
||||||
+ basic_machine=i386-pc
|
|
||||||
+ os=-msys
|
|
||||||
+ ;;
|
|
||||||
mvs)
|
|
||||||
basic_machine=i370-ibm
|
|
||||||
os=-mvs
|
|
||||||
;;
|
|
||||||
+ nacl)
|
|
||||||
+ basic_machine=le32-unknown
|
|
||||||
+ os=-nacl
|
|
||||||
+ ;;
|
|
||||||
ncr3000)
|
|
||||||
basic_machine=i486-ncr
|
|
||||||
os=-sysv4
|
|
||||||
@@ -1120,13 +1147,8 @@ case $basic_machine in
|
|
||||||
basic_machine=t90-cray
|
|
||||||
os=-unicos
|
|
||||||
;;
|
|
||||||
- # This must be matched before tile*.
|
|
||||||
- tilegx*)
|
|
||||||
- basic_machine=tilegx-unknown
|
|
||||||
- os=-linux-gnu
|
|
||||||
- ;;
|
|
||||||
tile*)
|
|
||||||
- basic_machine=tile-unknown
|
|
||||||
+ basic_machine=$basic_machine-unknown
|
|
||||||
os=-linux-gnu
|
|
||||||
;;
|
|
||||||
tx39)
|
|
||||||
@@ -1336,7 +1358,7 @@ case $os in
|
|
||||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
|
||||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
|
||||||
| -chorusos* | -chorusrdb* | -cegcc* \
|
|
||||||
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
|
||||||
+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
|
||||||
| -mingw32* | -linux-gnu* | -linux-android* \
|
|
||||||
| -linux-newlib* | -linux-uclibc* \
|
|
||||||
| -uxpv* | -beos* | -mpeix* | -udk* \
|
|
||||||
@@ -1521,6 +1543,9 @@ case $basic_machine in
|
|
||||||
c4x-* | tic4x-*)
|
|
||||||
os=-coff
|
|
||||||
;;
|
|
||||||
+ hexagon-*)
|
|
||||||
+ os=-elf
|
|
||||||
+ ;;
|
|
||||||
tic54x-*)
|
|
||||||
os=-coff
|
|
||||||
;;
|
|
||||||
@@ -1548,9 +1573,6 @@ case $basic_machine in
|
|
||||||
;;
|
|
||||||
m68000-sun)
|
|
||||||
os=-sunos3
|
|
||||||
- # This also exists in the configure program, but was not the
|
|
||||||
- # default.
|
|
||||||
- # os=-sunos4
|
|
||||||
;;
|
|
||||||
m68*-cisco)
|
|
||||||
os=-aout
|
|
7
sources
7
sources
@ -1,4 +1,3 @@
|
|||||||
be78a47bd82523250eb3e91646db5b3d cloog-0.18.0.tar.gz
|
SHA512 (gcc-10.0.1-20200216.tar.xz) = 56507e273b00e85ed4145e80df65d9b4e4791f23e7cb5d931f85b9420cbf3a7125ba49978dc73c2987c0a6101f741dc5a60a08cb3346d4c5082400cbcfcdd008
|
||||||
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
|
SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 9ceea0b883185fe489724d54a7e909bb6ed4785fcadf80162033dc6a133e2657337175601278e4155d1f8fac275ff9c8a02572aea876166c608774c809f832e9
|
||||||
9f699b42394bd2754d9f77427553d923 gcc-4.8.2-20140120.tar.bz2
|
SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7
|
||||||
bce1586384d8635a76d2f017fb067cd2 isl-0.11.1.tar.bz2
|
|
||||||
|
7
update-gcc.sh
Executable file
7
update-gcc.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/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