Hello community,
here is the log from the commit of package gcc43
checked in at Fri Nov 23 01:36:35 CET 2007.
--------
--- gcc43/cross-avr-gcc43.changes 2007-11-12 17:27:42.000000000 +0100
+++ /mounts/work_src_done/STABLE/gcc43/cross-avr-gcc43.changes 2007-11-20 16:17:12.000000000 +0100
@@ -1,0 +2,13 @@
+Tue Nov 20 15:02:54 CET 2007 - rguenther@suse.de
+
+- Update to SVN trunk head (r130276).
+- Revert fix for PR25950.
+- Add patch for PR34148.
+
+-------------------------------------------------------------------
+Tue Nov 13 17:28:08 CET 2007 - rguenther@suse.de
+
+- Change directories used in GCC install to only contain major and
+ minor version, not patchlevel.
+
+-------------------------------------------------------------------
cross-hppa-gcc-icecream-backend.changes: same change
cross-i386-gcc-icecream-backend.changes: same change
cross-ia64-gcc-icecream-backend.changes: same change
cross-ppc64-gcc-icecream-backend.changes: same change
cross-ppc-gcc-icecream-backend.changes: same change
cross-s390-gcc-icecream-backend.changes: same change
cross-s390x-gcc-icecream-backend.changes: same change
cross-spu-gcc.changes: same change
cross-spu-gcc-static.changes: same change
cross-x86_64-gcc-icecream-backend.changes: same change
gcc43.changes: same change
libgcj43.changes: same change
Old:
----
gcc-4.3.0-20071109.tar.bz2
New:
----
gcc-4.3.0-20071118.tar.bz2
gcc-dir-version.patch
pr34148.diff
revert-pr25950.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cross-avr-gcc43.spec ++++++
--- /var/tmp/diff_new_pack.l16788/_old 2007-11-23 01:32:18.000000000 +0100
+++ /var/tmp/diff_new_pack.l16788/_new 2007-11-23 01:32:18.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package cross-avr-gcc43 (Version 4.3.0_20071109)
+# spec file for package cross-avr-gcc43 (Version 4.3.0_20071118)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -54,9 +54,10 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc
Url: http://gcc.gnu.org/
License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later; X11/MIT
-Version: 4.3.0_20071109
+Version: 4.3.0_20071118
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
+%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
%define binsuffix -4.3
# COMMON-END
@@ -71,6 +72,7 @@
Source3: gcc43-rpmlintrc
Source4: ecj.jar
Source5: README.First-for.SuSE.packagers
+Patch1: gcc-dir-version.patch
Patch2: gcc-noalias-warn.diff
Patch5: boehm-gc-strict-aliasing.patch
Patch7: acats-timeout.patch
@@ -79,6 +81,8 @@
Patch23: libjava-no-multilib.diff
Patch24: tls-no-direct.diff
Patch25: pr27880.diff
+Patch27: revert-pr25950.diff
+Patch28: pr34148.diff
# A set of patches from the RH srpm
Patch51: gcc41-ia64-stack-protector.patch
Patch55: gcc41-java-slow_pthread_self.patch
@@ -117,13 +121,14 @@
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
-%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_version}
-%define gxxinclude %{_prefix}/include/c++/%{gcc_version}
+%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
+%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
# COMMON-END
# COMMON-BEGIN
%prep
%setup -q -n gcc-%{gcc_version}%{snapshot_date}
+%patch1
%patch2
%patch5
%patch7
@@ -134,15 +139,20 @@
%patch23
%patch24
%patch25
+%patch27
+%patch28
%patch51
%patch55
%patch57
%build
-# Avoid conflict with commercial libjawt.so
-#sed -i -e 's/libjawt/libgcjawt/g' libjava/Makefile.{am,in}
# Avoid rebuilding of generated files
contrib/gcc_update --touch
+# Split version file into version used for directories (X.Y) and
+# version to report with --version (X.Y.Z).
+# See also gcc-dir-version.patch.
+mv gcc/BASE-VER gcc/FULL-VER
+cat gcc/FULL-VER | cut -d '.' -f 1-2 > gcc/BASE-VER
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
@@ -248,7 +258,7 @@
--libexecdir=%{_libdir} \
--enable-languages=$languages \
$ENABLE_CHECKING \
- --with-gxx-include-dir=/usr/include/c++/%{gcc_version} \
+ --with-gxx-include-dir=/usr/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
--with-bugurl="http://bugs.opensuse.org/" \
@@ -335,6 +345,13 @@
%defattr(-,root,root)
%{_prefix}
%changelog
+* Tue Nov 20 2007 - rguenther@suse.de
+- Update to SVN trunk head (r130276).
+- Revert fix for PR25950.
+- Add patch for PR34148.
+* Tue Nov 13 2007 - rguenther@suse.de
+- Change directories used in GCC install to only contain major and
+ minor version, not patchlevel.
* Fri Nov 09 2007 - rguenther@suse.de
- Update to SVN trunk head (r130038).
- Enable spu and avr cross targets.
++++++ cross-hppa-gcc-icecream-backend.spec ++++++
--- /var/tmp/diff_new_pack.l16788/_old 2007-11-23 01:32:18.000000000 +0100
+++ /var/tmp/diff_new_pack.l16788/_new 2007-11-23 01:32:18.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package cross-hppa-gcc-icecream-backend (Version 4.3.0_20071109)
+# spec file for package cross-hppa-gcc-icecream-backend (Version 4.3.0_20071118)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -33,9 +33,10 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc
Url: http://gcc.gnu.org/
License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later; X11/MIT
-Version: 4.3.0_20071109
+Version: 4.3.0_20071118
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
+%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
%define binsuffix -4.3
# COMMON-END
@@ -50,6 +51,7 @@
Source3: gcc43-rpmlintrc
Source4: ecj.jar
Source5: README.First-for.SuSE.packagers
+Patch1: gcc-dir-version.patch
Patch2: gcc-noalias-warn.diff
Patch5: boehm-gc-strict-aliasing.patch
Patch7: acats-timeout.patch
@@ -58,6 +60,8 @@
Patch23: libjava-no-multilib.diff
Patch24: tls-no-direct.diff
Patch25: pr27880.diff
+Patch27: revert-pr25950.diff
+Patch28: pr34148.diff
# A set of patches from the RH srpm
Patch51: gcc41-ia64-stack-protector.patch
Patch55: gcc41-java-slow_pthread_self.patch
@@ -99,13 +103,14 @@
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
-%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_version}
-%define gxxinclude %{_prefix}/include/c++/%{gcc_version}
+%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
+%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
# COMMON-END
# COMMON-BEGIN
%prep
%setup -q -n gcc-%{gcc_version}%{snapshot_date}
+%patch1
%patch2
%patch5
%patch7
@@ -116,15 +121,20 @@
%patch23
%patch24
%patch25
+%patch27
+%patch28
%patch51
%patch55
%patch57
%build
-# Avoid conflict with commercial libjawt.so
-#sed -i -e 's/libjawt/libgcjawt/g' libjava/Makefile.{am,in}
# Avoid rebuilding of generated files
contrib/gcc_update --touch
+# Split version file into version used for directories (X.Y) and
+# version to report with --version (X.Y.Z).
+# See also gcc-dir-version.patch.
+mv gcc/BASE-VER gcc/FULL-VER
+cat gcc/FULL-VER | cut -d '.' -f 1-2 > gcc/BASE-VER
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
@@ -230,7 +240,7 @@
--libexecdir=%{_libdir} \
--enable-languages=$languages \
$ENABLE_CHECKING \
- --with-gxx-include-dir=/usr/include/c++/%{gcc_version} \
+ --with-gxx-include-dir=/usr/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
--with-bugurl="http://bugs.opensuse.org/" \
@@ -349,7 +359,15 @@
%files
%defattr(-,root,root)
/usr/share/icecream-envs
+
%changelog
+* Tue Nov 20 2007 - rguenther@suse.de
+- Update to SVN trunk head (r130276).
+- Revert fix for PR25950.
+- Add patch for PR34148.
+* Tue Nov 13 2007 - rguenther@suse.de
+- Change directories used in GCC install to only contain major and
+ minor version, not patchlevel.
* Fri Nov 09 2007 - rguenther@suse.de
- Update to SVN trunk head (r130038).
- Enable spu and avr cross targets.
cross-i386-gcc-icecream-backend.spec: same change
cross-ia64-gcc-icecream-backend.spec: same change
cross-ppc64-gcc-icecream-backend.spec: same change
cross-ppc-gcc-icecream-backend.spec: same change
cross-s390-gcc-icecream-backend.spec: same change
cross-s390x-gcc-icecream-backend.spec: same change
++++++ cross-spu-gcc.spec ++++++
--- /var/tmp/diff_new_pack.l16788/_old 2007-11-23 01:32:18.000000000 +0100
+++ /var/tmp/diff_new_pack.l16788/_new 2007-11-23 01:32:18.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package cross-spu-gcc (Version 4.3.0_20071109)
+# spec file for package cross-spu-gcc (Version 4.3.0_20071118)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -44,9 +44,10 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc
Url: http://gcc.gnu.org/
License: GPL v2 or later
-Version: 4.3.0_20071109
+Version: 4.3.0_20071118
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
+%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
%define binsuffix -4.3
# COMMON-END
@@ -61,6 +62,7 @@
Source3: gcc43-rpmlintrc
Source4: ecj.jar
Source5: README.First-for.SuSE.packagers
+Patch1: gcc-dir-version.patch
Patch2: gcc-noalias-warn.diff
Patch5: boehm-gc-strict-aliasing.patch
Patch7: acats-timeout.patch
@@ -69,6 +71,8 @@
Patch23: libjava-no-multilib.diff
Patch24: tls-no-direct.diff
Patch25: pr27880.diff
+Patch27: revert-pr25950.diff
+Patch28: pr34148.diff
# A set of patches from the RH srpm
Patch51: gcc41-ia64-stack-protector.patch
Patch55: gcc41-java-slow_pthread_self.patch
@@ -102,13 +106,14 @@
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
-%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_version}
-%define gxxinclude %{_prefix}/include/c++/%{gcc_version}
+%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
+%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
# COMMON-END
# COMMON-BEGIN
%prep
%setup -q -n gcc-%{gcc_version}%{snapshot_date}
+%patch1
%patch2
%patch5
%patch7
@@ -119,15 +124,20 @@
%patch23
%patch24
%patch25
+%patch27
+%patch28
%patch51
%patch55
%patch57
%build
-# Avoid conflict with commercial libjawt.so
-#sed -i -e 's/libjawt/libgcjawt/g' libjava/Makefile.{am,in}
# Avoid rebuilding of generated files
contrib/gcc_update --touch
+# Split version file into version used for directories (X.Y) and
+# version to report with --version (X.Y.Z).
+# See also gcc-dir-version.patch.
+mv gcc/BASE-VER gcc/FULL-VER
+cat gcc/FULL-VER | cut -d '.' -f 1-2 > gcc/BASE-VER
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
@@ -233,7 +243,7 @@
--libexecdir=%{_libdir} \
--enable-languages=$languages \
$ENABLE_CHECKING \
- --with-gxx-include-dir=/usr/include/c++/%{gcc_version} \
+ --with-gxx-include-dir=/usr/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
--with-bugurl="http://bugs.opensuse.org/" \
@@ -320,6 +330,13 @@
%defattr(-,root,root)
%{_prefix}
%changelog
+* Tue Nov 20 2007 - rguenther@suse.de
+- Update to SVN trunk head (r130276).
+- Revert fix for PR25950.
+- Add patch for PR34148.
+* Tue Nov 13 2007 - rguenther@suse.de
+- Change directories used in GCC install to only contain major and
+ minor version, not patchlevel.
* Fri Nov 09 2007 - rguenther@suse.de
- Update to SVN trunk head (r130038).
- Enable spu and avr cross targets.
cross-spu-gcc-static.spec: same change
++++++ cross-x86_64-gcc-icecream-backend.spec ++++++
--- /var/tmp/diff_new_pack.l16788/_old 2007-11-23 01:32:18.000000000 +0100
+++ /var/tmp/diff_new_pack.l16788/_new 2007-11-23 01:32:18.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package cross-x86_64-gcc-icecream-backend (Version 4.3.0_20071109)
+# spec file for package cross-x86_64-gcc-icecream-backend (Version 4.3.0_20071118)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -33,9 +33,10 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc
Url: http://gcc.gnu.org/
License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later; X11/MIT
-Version: 4.3.0_20071109
+Version: 4.3.0_20071118
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
+%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
%define binsuffix -4.3
# COMMON-END
@@ -50,6 +51,7 @@
Source3: gcc43-rpmlintrc
Source4: ecj.jar
Source5: README.First-for.SuSE.packagers
+Patch1: gcc-dir-version.patch
Patch2: gcc-noalias-warn.diff
Patch5: boehm-gc-strict-aliasing.patch
Patch7: acats-timeout.patch
@@ -58,6 +60,8 @@
Patch23: libjava-no-multilib.diff
Patch24: tls-no-direct.diff
Patch25: pr27880.diff
+Patch27: revert-pr25950.diff
+Patch28: pr34148.diff
# A set of patches from the RH srpm
Patch51: gcc41-ia64-stack-protector.patch
Patch55: gcc41-java-slow_pthread_self.patch
@@ -99,13 +103,14 @@
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
-%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_version}
-%define gxxinclude %{_prefix}/include/c++/%{gcc_version}
+%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
+%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
# COMMON-END
# COMMON-BEGIN
%prep
%setup -q -n gcc-%{gcc_version}%{snapshot_date}
+%patch1
%patch2
%patch5
%patch7
@@ -116,15 +121,20 @@
%patch23
%patch24
%patch25
+%patch27
+%patch28
%patch51
%patch55
%patch57
%build
-# Avoid conflict with commercial libjawt.so
-#sed -i -e 's/libjawt/libgcjawt/g' libjava/Makefile.{am,in}
# Avoid rebuilding of generated files
contrib/gcc_update --touch
+# Split version file into version used for directories (X.Y) and
+# version to report with --version (X.Y.Z).
+# See also gcc-dir-version.patch.
+mv gcc/BASE-VER gcc/FULL-VER
+cat gcc/FULL-VER | cut -d '.' -f 1-2 > gcc/BASE-VER
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
@@ -230,7 +240,7 @@
--libexecdir=%{_libdir} \
--enable-languages=$languages \
$ENABLE_CHECKING \
- --with-gxx-include-dir=/usr/include/c++/%{gcc_version} \
+ --with-gxx-include-dir=/usr/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
--with-bugurl="http://bugs.opensuse.org/" \
@@ -349,7 +359,15 @@
%files
%defattr(-,root,root)
/usr/share/icecream-envs
+
%changelog
+* Tue Nov 20 2007 - rguenther@suse.de
+- Update to SVN trunk head (r130276).
+- Revert fix for PR25950.
+- Add patch for PR34148.
+* Tue Nov 13 2007 - rguenther@suse.de
+- Change directories used in GCC install to only contain major and
+ minor version, not patchlevel.
* Fri Nov 09 2007 - rguenther@suse.de
- Update to SVN trunk head (r130038).
- Enable spu and avr cross targets.
++++++ gcc43.spec ++++++
--- /var/tmp/diff_new_pack.l16788/_old 2007-11-23 01:32:18.000000000 +0100
+++ /var/tmp/diff_new_pack.l16788/_new 2007-11-23 01:32:18.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package gcc43 (Version 4.3.0_20071109)
+# spec file for package gcc43 (Version 4.3.0_20071118)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -101,9 +101,10 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc
Url: http://gcc.gnu.org/
License: GPL v3 or later
-Version: 4.3.0_20071109
+Version: 4.3.0_20071118
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
+%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
%define binsuffix -4.3
# COMMON-END
@@ -125,6 +126,7 @@
Source3: gcc43-rpmlintrc
Source4: ecj.jar
Source5: README.First-for.SuSE.packagers
+Patch1: gcc-dir-version.patch
Patch2: gcc-noalias-warn.diff
Patch5: boehm-gc-strict-aliasing.patch
Patch7: acats-timeout.patch
@@ -133,6 +135,8 @@
Patch23: libjava-no-multilib.diff
Patch24: tls-no-direct.diff
Patch25: pr27880.diff
+Patch27: revert-pr25950.diff
+Patch28: pr34148.diff
# A set of patches from the RH srpm
Patch51: gcc41-ia64-stack-protector.patch
Patch55: gcc41-java-slow_pthread_self.patch
@@ -1101,8 +1105,8 @@
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
-%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_version}
-%define gxxinclude %{_prefix}/include/c++/%{gcc_version}
+%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
+%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
# COMMON-END
# Versionspecific directories
%define versmainlibdir %{libsubdir}
@@ -1234,6 +1238,7 @@
%prep
%setup -q -n gcc-%{gcc_version}%{snapshot_date}
+%patch1
%patch2
%patch5
%patch7
@@ -1244,15 +1249,20 @@
%patch23
%patch24
%patch25
+%patch27
+%patch28
%patch51
%patch55
%patch57
%build
-# Avoid conflict with commercial libjawt.so
-#sed -i -e 's/libjawt/libgcjawt/g' libjava/Makefile.{am,in}
# Avoid rebuilding of generated files
contrib/gcc_update --touch
+# Split version file into version used for directories (X.Y) and
+# version to report with --version (X.Y.Z).
+# See also gcc-dir-version.patch.
+mv gcc/BASE-VER gcc/FULL-VER
+cat gcc/FULL-VER | cut -d '.' -f 1-2 > gcc/BASE-VER
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
@@ -1358,7 +1368,7 @@
--libexecdir=%{_libdir} \
--enable-languages=$languages \
$ENABLE_CHECKING \
- --with-gxx-include-dir=/usr/include/c++/%{gcc_version} \
+ --with-gxx-include-dir=/usr/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
--with-bugurl="http://bugs.opensuse.org/" \
@@ -1500,7 +1510,7 @@
echo "Urgs?"
exit 1
fi
- cat > $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{GCCDIST}/bits/c++config.h < $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_dir_version}/%{GCCDIST}/bits/c++config.h <
@@ -1514,9 +1524,9 @@
break
fi
done
-rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{GCCDIST}/[36]*
+rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_dir_version}/%{GCCDIST}/[36]*
if ! test -z "$dir_ml"; then
- ln -s . $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{GCCDIST}/$dir_ml
+ ln -s . $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_dir_version}/%{GCCDIST}/$dir_ml
fi
%endif
# LIBJAVA-DELETE-END
@@ -2073,13 +2083,13 @@
%files -n libgcj43
%defattr(-,root,root)
-%dir %{_libdir}/gcj-%{gcc_version}-%{gcj_sover}
+%dir %{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}
%dir %{_libdir}/gcc
%dir %{_libdir}/gcc/%{GCCDIST}
%dir %{libsubdir}
-%{_prefix}/share/java/libgcj-%{gcc_version}.jar
-%{_prefix}/share/java/libgcj-tools-%{gcc_version}.jar
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/classmap.db
+%{_prefix}/share/java/libgcj-%{gcc_dir_version}.jar
+%{_prefix}/share/java/libgcj-tools-%{gcc_dir_version}.jar
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/classmap.db
# We usually do not multilib libjava
%if %{biarch_libjava}
%versbiarchlib libgcj.la
@@ -2092,12 +2102,12 @@
%mainlib libgij.so.*
%mainlib libgcj-tools.so.*
%endif
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libgtkpeer.la
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libgtkpeer.so
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libjawt.la
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libjawt.so
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libjvm.la
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libjvm.so
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libgtkpeer.la
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libgtkpeer.so
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjawt.la
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjawt.so
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjvm.la
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjvm.so
%files -n libgcj_bc43
%defattr(-,root,root)
@@ -2153,7 +2163,6 @@
%{_prefix}/bin/jv-convert%{binsuffix}
%{_prefix}/bin/gcj-dbtool%{binsuffix}
%{_prefix}/bin/gij%{binsuffix}
-%{_prefix}/bin/gkeytool%{binsuffix}
%{_prefix}/bin/gjar%{binsuffix}
%{_prefix}/bin/gc-analyze%{binsuffix}
%{_prefix}/bin/gjavah%{binsuffix}
@@ -2210,7 +2219,15 @@
%doc testresults/*.sum
%doc testresults/*.log
%endif
+
%changelog
+* Tue Nov 20 2007 - rguenther@suse.de
+- Update to SVN trunk head (r130276).
+- Revert fix for PR25950.
+- Add patch for PR34148.
+* Tue Nov 13 2007 - rguenther@suse.de
+- Change directories used in GCC install to only contain major and
+ minor version, not patchlevel.
* Fri Nov 09 2007 - rguenther@suse.de
- Update to SVN trunk head (r130038).
- Enable spu and avr cross targets.
++++++ libgcj43.spec ++++++
--- /var/tmp/diff_new_pack.l16788/_old 2007-11-23 01:32:18.000000000 +0100
+++ /var/tmp/diff_new_pack.l16788/_new 2007-11-23 01:32:18.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package libgcj43 (Version 4.3.0_20071109)
+# spec file for package libgcj43 (Version 4.3.0_20071118)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -113,9 +113,10 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc
Url: http://gcc.gnu.org/
License: GPL v2 or later; LGPL v2.1 or later
-Version: 4.3.0_20071109
+Version: 4.3.0_20071118
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
+%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
%define binsuffix -4.3
# COMMON-END
@@ -137,6 +138,7 @@
Source3: gcc43-rpmlintrc
Source4: ecj.jar
Source5: README.First-for.SuSE.packagers
+Patch1: gcc-dir-version.patch
Patch2: gcc-noalias-warn.diff
Patch5: boehm-gc-strict-aliasing.patch
Patch7: acats-timeout.patch
@@ -145,6 +147,8 @@
Patch23: libjava-no-multilib.diff
Patch24: tls-no-direct.diff
Patch25: pr27880.diff
+Patch27: revert-pr25950.diff
+Patch28: pr34148.diff
# A set of patches from the RH srpm
Patch51: gcc41-ia64-stack-protector.patch
Patch55: gcc41-java-slow_pthread_self.patch
@@ -365,8 +369,8 @@
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
-%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_version}
-%define gxxinclude %{_prefix}/include/c++/%{gcc_version}
+%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
+%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
# COMMON-END
# Versionspecific directories
%define versmainlibdir %{libsubdir}
@@ -498,6 +502,7 @@
%prep
%setup -q -n gcc-%{gcc_version}%{snapshot_date}
+%patch1
%patch2
%patch5
%patch7
@@ -508,15 +513,20 @@
%patch23
%patch24
%patch25
+%patch27
+%patch28
%patch51
%patch55
%patch57
%build
-# Avoid conflict with commercial libjawt.so
-#sed -i -e 's/libjawt/libgcjawt/g' libjava/Makefile.{am,in}
# Avoid rebuilding of generated files
contrib/gcc_update --touch
+# Split version file into version used for directories (X.Y) and
+# version to report with --version (X.Y.Z).
+# See also gcc-dir-version.patch.
+mv gcc/BASE-VER gcc/FULL-VER
+cat gcc/FULL-VER | cut -d '.' -f 1-2 > gcc/BASE-VER
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
@@ -622,7 +632,7 @@
--libexecdir=%{_libdir} \
--enable-languages=$languages \
$ENABLE_CHECKING \
- --with-gxx-include-dir=/usr/include/c++/%{gcc_version} \
+ --with-gxx-include-dir=/usr/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
--with-bugurl="http://bugs.opensuse.org/" \
@@ -911,13 +921,13 @@
%files
%defattr(-,root,root)
-%dir %{_libdir}/gcj-%{gcc_version}-%{gcj_sover}
+%dir %{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}
%dir %{_libdir}/gcc
%dir %{_libdir}/gcc/%{GCCDIST}
%dir %{libsubdir}
-%{_prefix}/share/java/libgcj-%{gcc_version}.jar
-%{_prefix}/share/java/libgcj-tools-%{gcc_version}.jar
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/classmap.db
+%{_prefix}/share/java/libgcj-%{gcc_dir_version}.jar
+%{_prefix}/share/java/libgcj-tools-%{gcc_dir_version}.jar
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/classmap.db
# We usually do not multilib libjava
%if %{biarch_libjava}
%versbiarchlib libgcj.la
@@ -930,12 +940,12 @@
%mainlib libgij.so.*
%mainlib libgcj-tools.so.*
%endif
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libgtkpeer.la
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libgtkpeer.so
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libjawt.la
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libjawt.so
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libjvm.la
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libjvm.so
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libgtkpeer.la
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libgtkpeer.so
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjawt.la
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjawt.so
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjvm.la
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjvm.so
%files -n libgcj_bc43
%defattr(-,root,root)
@@ -991,7 +1001,6 @@
%{_prefix}/bin/jv-convert%{binsuffix}
%{_prefix}/bin/gcj-dbtool%{binsuffix}
%{_prefix}/bin/gij%{binsuffix}
-%{_prefix}/bin/gkeytool%{binsuffix}
%{_prefix}/bin/gjar%{binsuffix}
%{_prefix}/bin/gc-analyze%{binsuffix}
%{_prefix}/bin/gjavah%{binsuffix}
@@ -1048,7 +1057,15 @@
%doc testresults/*.sum
%doc testresults/*.log
%endif
+
%changelog
+* Tue Nov 20 2007 - rguenther@suse.de
+- Update to SVN trunk head (r130276).
+- Revert fix for PR25950.
+- Add patch for PR34148.
+* Tue Nov 13 2007 - rguenther@suse.de
+- Change directories used in GCC install to only contain major and
+ minor version, not patchlevel.
* Fri Nov 09 2007 - rguenther@suse.de
- Update to SVN trunk head (r130038).
- Enable spu and avr cross targets.
++++++ gcc-4.3.0-20071109.tar.bz2 -> gcc-4.3.0-20071118.tar.bz2 ++++++
gcc43/gcc-4.3.0-20071109.tar.bz2 /mounts/work_src_done/STABLE/gcc43/gcc-4.3.0-20071118.tar.bz2 differ: byte 11, line 1
++++++ gcc-dir-version.patch ++++++
Index: gcc/Makefile.in
===================================================================
*** gcc/Makefile.in (revision 130135)
--- gcc/Makefile.in (working copy)
*************** GTM_H = tm.h $(tm_file_list)
*** 726,737 ****
TM_H = $(GTM_H) insn-constants.h insn-flags.h options.h
# Variables for version information.
! BASEVER := $(srcdir)/BASE-VER # 4.x.y
DEVPHASE := $(srcdir)/DEV-PHASE # experimental, prerelease, ""
DATESTAMP := $(srcdir)/DATESTAMP # YYYYMMDD or empty
REVISION := $(srcdir)/REVISION # [BRANCH revision XXXXXX]
BASEVER_c := $(shell cat $(BASEVER))
DEVPHASE_c := $(shell cat $(DEVPHASE))
DATESTAMP_c := $(shell cat $(DATESTAMP))
--- 726,739 ----
TM_H = $(GTM_H) insn-constants.h insn-flags.h options.h
# Variables for version information.
! BASEVER := $(srcdir)/BASE-VER # 4.x
! FULLVER := $(srcdir)/FULL-VER # 4.x.y
DEVPHASE := $(srcdir)/DEV-PHASE # experimental, prerelease, ""
DATESTAMP := $(srcdir)/DATESTAMP # YYYYMMDD or empty
REVISION := $(srcdir)/REVISION # [BRANCH revision XXXXXX]
BASEVER_c := $(shell cat $(BASEVER))
+ FULLVER_c := $(shell cat $(FULLVER))
DEVPHASE_c := $(shell cat $(DEVPHASE))
DATESTAMP_c := $(shell cat $(DATESTAMP))
*************** version := $(BASEVER_c)
*** 749,754 ****
--- 751,757 ----
# (i.e. if DEVPHASE_c is empty). The space immediately after the
# comma in the $(if ...) constructs is significant - do not remove it.
BASEVER_s := "\"$(BASEVER_c)\""
+ FULLVER_s := "\"$(FULLVER_c)\""
DEVPHASE_s := "\"$(if $(DEVPHASE_c), ($(DEVPHASE_c)))\""
DATESTAMP_s := "\"$(if $(DEVPHASE_c), $(DATESTAMP_c))\""
PKGVERSION_s:= "\"@PKGVERSION@\""
*************** gcc-options.o: options.c $(CONFIG_H) $(S
*** 1912,1923 ****
dumpvers: dumpvers.c
ifdef REVISION_s
! version.o: version.c version.h $(REVISION) $(DATESTAMP) $(BASEVER) $(DEVPHASE)
else
! version.o: version.c version.h $(DATESTAMP) $(BASEVER) $(DEVPHASE)
endif
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
! -DBASEVER=$(BASEVER_s) -DDATESTAMP=$(DATESTAMP_s) \
-DREVISION=$(REVISION_s) \
-DDEVPHASE=$(DEVPHASE_s) -DPKGVERSION=$(PKGVERSION_s) \
-DBUGURL=$(BUGURL_s) -c $(srcdir)/version.c $(OUTPUT_OPTION)
--- 1915,1926 ----
dumpvers: dumpvers.c
ifdef REVISION_s
! version.o: version.c version.h $(REVISION) $(DATESTAMP) $(FULLVER) $(DEVPHASE)
else
! version.o: version.c version.h $(DATESTAMP) $(FULLVER) $(DEVPHASE)
endif
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
! -DBASEVER=$(FULLVER_s) -DDATESTAMP=$(DATESTAMP_s) \
-DREVISION=$(REVISION_s) \
-DDEVPHASE=$(DEVPHASE_s) -DPKGVERSION=$(PKGVERSION_s) \
-DBUGURL=$(BUGURL_s) -c $(srcdir)/version.c $(OUTPUT_OPTION)
Index: libjava/Makefile.am
===================================================================
*** libjava/Makefile.am (revision 130144)
--- libjava/Makefile.am (working copy)
*************** endif BUILD_ECJ1
*** 473,479 ****
install-data-local:
$(PRE_INSTALL)
## Install the .pc file.
! @pc_version=`echo $(GCJVERSION) | sed -e 's/[.][^.]*$$//'`; \
file="libgcj-$${pc_version}.pc"; \
$(mkinstalldirs) $(DESTDIR)$(pkgconfigdir); \
echo " $(INSTALL_DATA) libgcj.pc $(DESTDIR)$(pkgconfigdir)/$$file"; \
--- 473,479 ----
install-data-local:
$(PRE_INSTALL)
## Install the .pc file.
! @pc_version=`echo $(GCJVERSION)`; \
file="libgcj-$${pc_version}.pc"; \
$(mkinstalldirs) $(DESTDIR)$(pkgconfigdir); \
echo " $(INSTALL_DATA) libgcj.pc $(DESTDIR)$(pkgconfigdir)/$$file"; \
Index: libjava/Makefile.in
===================================================================
*** libjava/Makefile.in (revision 130144)
--- libjava/Makefile.in (working copy)
*************** install-exec-hook: install-toolexeclibLT
*** 11878,11884 ****
install-data-local:
$(PRE_INSTALL)
! @pc_version=`echo $(GCJVERSION) | sed -e 's/[.][^.]*$$//'`; \
file="libgcj-$${pc_version}.pc"; \
$(mkinstalldirs) $(DESTDIR)$(pkgconfigdir); \
echo " $(INSTALL_DATA) libgcj.pc $(DESTDIR)$(pkgconfigdir)/$$file"; \
--- 11878,11884 ----
install-data-local:
$(PRE_INSTALL)
! @pc_version=`echo $(GCJVERSION)`; \
file="libgcj-$${pc_version}.pc"; \
$(mkinstalldirs) $(DESTDIR)$(pkgconfigdir); \
echo " $(INSTALL_DATA) libgcj.pc $(DESTDIR)$(pkgconfigdir)/$$file"; \
++++++ gcc.spec.in ++++++
--- gcc43/gcc.spec.in 2007-11-12 11:56:19.000000000 +0100
+++ /mounts/work_src_done/STABLE/gcc43/gcc.spec.in 2007-11-20 13:59:12.000000000 +0100
@@ -117,9 +117,10 @@
URL: http://gcc.gnu.org/
License: GPL
-Version: 4.3.0_20071109
+Version: 4.3.0_20071118
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
+%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
%define binsuffix -4.3
# COMMON-END
@@ -143,6 +144,7 @@
Source3: gcc43-rpmlintrc
Source4: ecj.jar
Source5: README.First-for.SuSE.packagers
+Patch1: gcc-dir-version.patch
Patch2: gcc-noalias-warn.diff
Patch5: boehm-gc-strict-aliasing.patch
Patch7: acats-timeout.patch
@@ -151,6 +153,8 @@
Patch23: libjava-no-multilib.diff
Patch24: tls-no-direct.diff
Patch25: pr27880.diff
+Patch27: revert-pr25950.diff
+Patch28: pr34148.diff
# A set of patches from the RH srpm
Patch51: gcc41-ia64-stack-protector.patch
Patch55: gcc41-java-slow_pthread_self.patch
@@ -631,8 +635,8 @@
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
-%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_version}
-%define gxxinclude %{_prefix}/include/c++/%{gcc_version}
+%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
+%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
# COMMON-END
@@ -772,6 +776,7 @@
%prep
%setup -q -n gcc-%{gcc_version}%{snapshot_date}
+%patch1
%patch2
%patch5
%patch7
@@ -782,17 +787,22 @@
%patch23
%patch24
%patch25
+%patch27
+%patch28
%patch51
%patch55
%patch57
%build
-# Avoid conflict with commercial libjawt.so
-#sed -i -e 's/libjawt/libgcjawt/g' libjava/Makefile.{am,in}
-
# Avoid rebuilding of generated files
contrib/gcc_update --touch
+# Split version file into version used for directories (X.Y) and
+# version to report with --version (X.Y.Z).
+# See also gcc-dir-version.patch.
+mv gcc/BASE-VER gcc/FULL-VER
+cat gcc/FULL-VER | cut -d '.' -f 1-2 > gcc/BASE-VER
+
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
@@ -906,7 +916,7 @@
--libexecdir=%{_libdir} \
--enable-languages=$languages \
$ENABLE_CHECKING \
- --with-gxx-include-dir=/usr/include/c++/%{gcc_version} \
+ --with-gxx-include-dir=/usr/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
--with-bugurl="http://bugs.opensuse.org/" \
@@ -1054,7 +1064,7 @@
exit 1
fi
- cat > $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{GCCDIST}/bits/c++config.h < $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_dir_version}/%{GCCDIST}/bits/c++config.h <
@@ -1068,9 +1078,9 @@
break
fi
done
-rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{GCCDIST}/[36]*
+rm -rf $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_dir_version}/%{GCCDIST}/[36]*
if ! test -z "$dir_ml"; then
- ln -s . $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{GCCDIST}/$dir_ml
+ ln -s . $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_dir_version}/%{GCCDIST}/$dir_ml
fi
%endif
# LIBJAVA-DELETE-END
@@ -1644,13 +1654,13 @@
%if %{build_libjava}
%files -n libgcj@base_ver@
%defattr(-,root,root)
-%dir %{_libdir}/gcj-%{gcc_version}-%{gcj_sover}
+%dir %{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}
%dir %{_libdir}/gcc
%dir %{_libdir}/gcc/%{GCCDIST}
%dir %{libsubdir}
-%{_prefix}/share/java/libgcj-%{gcc_version}.jar
-%{_prefix}/share/java/libgcj-tools-%{gcc_version}.jar
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/classmap.db
+%{_prefix}/share/java/libgcj-%{gcc_dir_version}.jar
+%{_prefix}/share/java/libgcj-tools-%{gcc_dir_version}.jar
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/classmap.db
# We usually do not multilib libjava
%if %{biarch_libjava}
%versbiarchlib libgcj.la
@@ -1663,12 +1673,12 @@
%mainlib libgij.so.*
%mainlib libgcj-tools.so.*
%endif
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libgtkpeer.la
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libgtkpeer.so
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libjawt.la
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libjawt.so
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libjvm.la
-%{_libdir}/gcj-%{gcc_version}-%{gcj_sover}/libjvm.so
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libgtkpeer.la
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libgtkpeer.so
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjawt.la
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjawt.so
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjvm.la
+%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjvm.so
%files -n libgcj_bc@base_ver@
%defattr(-,root,root)
@@ -1724,7 +1734,6 @@
%{_prefix}/bin/jv-convert%{binsuffix}
%{_prefix}/bin/gcj-dbtool%{binsuffix}
%{_prefix}/bin/gij%{binsuffix}
-%{_prefix}/bin/gkeytool%{binsuffix}
%{_prefix}/bin/gjar%{binsuffix}
%{_prefix}/bin/gc-analyze%{binsuffix}
%{_prefix}/bin/gjavah%{binsuffix}
++++++ pr34148.diff ++++++
2007-11-20 Richard Guenther
PR tree-optimization/34148
* tree-ssa-structalias.c (create_variable_info_for): Do not use
field-sensitive PTA for single-element structures.
* tree-ssa-alias.c (create_overlap_variables_for): Do not create
SFTs for single-element structures.
Index: gcc/tree-ssa-structalias.c
===================================================================
*** gcc/tree-ssa-structalias.c (revision 130288)
--- gcc/tree-ssa-structalias.c (working copy)
*************** create_variable_info_for (tree decl, con
*** 4441,4446 ****
--- 4441,4447 ----
&& !notokay
&& !vi->is_unknown_size_var
&& var_can_have_subvars (decl)
+ && VEC_length (fieldoff_s, fieldstack) > 1
&& VEC_length (fieldoff_s, fieldstack) <= MAX_FIELDS_FOR_FIELD_SENSITIVE)
{
unsigned int newindex = VEC_length (varinfo_t, varmap);
Index: gcc/tree-ssa-alias.c
===================================================================
*** gcc/tree-ssa-alias.c (revision 130288)
--- gcc/tree-ssa-alias.c (working copy)
*************** create_overlap_variables_for (tree var)
*** 3837,3843 ****
TREE_TYPE (var));
/* Make sure to not create SFTs for structs we won't generate variable
infos for. See tree-ssa-structalias.c:create_variable_info_for (). */
! if (VEC_length (fieldoff_s, fieldstack) != 0
&& VEC_length (fieldoff_s, fieldstack) <= MAX_FIELDS_FOR_FIELD_SENSITIVE)
{
subvar_t *subvars;
--- 3837,3843 ----
TREE_TYPE (var));
/* Make sure to not create SFTs for structs we won't generate variable
infos for. See tree-ssa-structalias.c:create_variable_info_for (). */
! if (VEC_length (fieldoff_s, fieldstack) > 1
&& VEC_length (fieldoff_s, fieldstack) <= MAX_FIELDS_FOR_FIELD_SENSITIVE)
{
subvar_t *subvars;
++++++ revert-pr25950.diff ++++++
Index: gcc/cp/call.c
===================================================================
*** gcc/cp/call.c (revision 130276)
--- gcc/cp/call.c (working copy)
*************** struct conversion {
*** 89,94 ****
--- 89,98 ----
temporary should be created to hold the result of the
conversion. */
BOOL_BITFIELD need_temporary_p : 1;
+ /* If KIND is ck_identity or ck_base_conv, true to indicate that the
+ copy constructor must be accessible, even though it is not being
+ used. */
+ BOOL_BITFIELD check_copy_constructor_p : 1;
/* If KIND is ck_ptr or ck_pmem, true to indicate that a conversion
from a pointer-to-derived to pointer-to-base is being performed. */
BOOL_BITFIELD base_p : 1;
*************** static conversion *merge_conversion_sequ
*** 197,202 ****
--- 201,207 ----
static bool magic_varargs_p (tree);
typedef void (*diagnostic_fn_t) (const char *, ...) ATTRIBUTE_GCC_CXXDIAG(1,2);
static tree build_temp (tree, tree, int, diagnostic_fn_t *);
+ static void check_constructor_callable (tree, tree);
/* Returns nonzero iff the destructor name specified in NAME matches BASETYPE.
NAME can take many forms... */
*************** standard_conversion (tree to, tree from,
*** 861,873 ****
else if (fcode == VECTOR_TYPE && tcode == VECTOR_TYPE
&& vector_types_convertible_p (from, to, false))
return build_conv (ck_std, to, conv);
! /* A derived-to-base conversion sequence is a user-defined conversion
! because it involves a constructor call, even though it has the rank of
! a standard conversion, so we don't consider it if we aren't allowing
! user-defined conversions. But if we're binding directly to a
! reference, it's only a pointer conversion. */
! else if ((!(flags & LOOKUP_NO_CONVERSION)
! || (flags & LOOKUP_NO_TEMP_BIND))
&& IS_AGGR_TYPE (to) && IS_AGGR_TYPE (from)
&& is_properly_derived_from (from, to))
{
--- 866,872 ----
else if (fcode == VECTOR_TYPE && tcode == VECTOR_TYPE
&& vector_types_convertible_p (from, to, false))
return build_conv (ck_std, to, conv);
! else if (!(flags & LOOKUP_CONSTRUCTOR_CALLABLE)
&& IS_AGGR_TYPE (to) && IS_AGGR_TYPE (from)
&& is_properly_derived_from (from, to))
{
*************** standard_conversion (tree to, tree from,
*** 877,884 ****
/* The derived-to-base conversion indicates the initialization
of a parameter with base type from an object of a derived
type. A temporary object is created to hold the result of
! the conversion unless we're binding directly to a reference. */
! conv->need_temporary_p = !(flags & LOOKUP_NO_TEMP_BIND);
}
else
return NULL;
--- 876,883 ----
/* The derived-to-base conversion indicates the initialization
of a parameter with base type from an object of a derived
type. A temporary object is created to hold the result of
! the conversion. */
! conv->need_temporary_p = true;
}
else
return NULL;
*************** reference_binding (tree rto, tree rfrom,
*** 1154,1165 ****
compatible_p = reference_compatible_p (to, from);
/* Directly bind reference when target expression's type is compatible with
! the reference and expression is an lvalue. In DR391, the wording in
! [8.5.3/5 dcl.init.ref] is changed to also require direct bindings for
! const and rvalue references to rvalues of compatible class type. */
if (compatible_p
&& (lvalue_p
! || ((CP_TYPE_CONST_NON_VOLATILE_P(to) || TYPE_REF_IS_RVALUE (rto))
&& CLASS_TYPE_P (from))))
{
/* [dcl.init.ref]
--- 1153,1166 ----
compatible_p = reference_compatible_p (to, from);
/* Directly bind reference when target expression's type is compatible with
! the reference and expression is an lvalue. In C++0x, the wording in
! [8.5.3/5 dcl.init.ref] is changed to also allow direct bindings for const
! and rvalue references to rvalues of compatible class type, as part of
! DR391. */
if (compatible_p
&& (lvalue_p
! || ((cxx_dialect != cxx98)
! && (CP_TYPE_CONST_NON_VOLATILE_P(to) || TYPE_REF_IS_RVALUE (rto))
&& CLASS_TYPE_P (from))))
{
/* [dcl.init.ref]
*************** reference_binding (tree rto, tree rfrom,
*** 1170,1183 ****
is reference-compatible with "cv2 T2,"
the reference is bound directly to the initializer expression
! lvalue.
!
! [...]
! If the initializer expression is an rvalue, with T2 a class type,
! and "cv1 T1" is reference-compatible with "cv2 T2", the reference
! is bound to the object represented by the rvalue or to a sub-object
! within that object. */
!
conv = build_identity_conv (from, expr);
conv = direct_reference_binding (rto, conv);
--- 1171,1177 ----
is reference-compatible with "cv2 T2,"
the reference is bound directly to the initializer expression
! lvalue. */
conv = build_identity_conv (from, expr);
conv = direct_reference_binding (rto, conv);
*************** reference_binding (tree rto, tree rfrom,
*** 1257,1262 ****
--- 1251,1282 ----
/* [dcl.init.ref]
+ If the initializer expression is an rvalue, with T2 a class type,
+ and "cv1 T1" is reference-compatible with "cv2 T2", the reference
+ is bound in one of the following ways:
+
+ -- The reference is bound to the object represented by the rvalue
+ or to a sub-object within that object.
+
+ -- ...
+
+ We use the first alternative. The implicit conversion sequence
+ is supposed to be same as we would obtain by generating a
+ temporary. Fortunately, if the types are reference compatible,
+ then this is either an identity conversion or the derived-to-base
+ conversion, just as for direct binding. */
+ if (CLASS_TYPE_P (from) && compatible_p)
+ {
+ conv = build_identity_conv (from, expr);
+ conv = direct_reference_binding (rto, conv);
+ conv->rvaluedness_matches_p = TYPE_REF_IS_RVALUE (rto);
+ if (!(flags & LOOKUP_CONSTRUCTOR_CALLABLE))
+ conv->u.next->check_copy_constructor_p = true;
+ return conv;
+ }
+
+ /* [dcl.init.ref]
+
Otherwise, a temporary of type "cv1 T1" is created and
initialized from the initializer expression using the rules for a
non-reference copy initialization. If T1 is reference-related to
*************** reference_binding (tree rto, tree rfrom,
*** 1265,1275 ****
if (related_p && !at_least_as_qualified_p (to, from))
return NULL;
- /* We're generating a temporary now, but don't bind any more in the
- conversion (specifically, don't slice the temporary returned by a
- conversion operator). */
- flags |= LOOKUP_NO_TEMP_BIND;
-
conv = implicit_conversion (to, from, expr, c_cast_p,
flags);
if (!conv)
--- 1285,1290 ----
*************** implicit_conversion (tree to, tree from,
*** 1314,1323 ****
&& (flags & LOOKUP_NO_CONVERSION) == 0)
{
struct z_candidate *cand;
- int convflags = ((flags & LOOKUP_NO_TEMP_BIND)
- |LOOKUP_ONLYCONVERTING);
! cand = build_user_type_conversion_1 (to, expr, convflags);
if (cand)
conv = cand->second_conv;
--- 1329,1337 ----
&& (flags & LOOKUP_NO_CONVERSION) == 0)
{
struct z_candidate *cand;
! cand = build_user_type_conversion_1
! (to, expr, LOOKUP_ONLYCONVERTING);
if (cand)
conv = cand->second_conv;
*************** build_user_type_conversion_1 (tree totyp
*** 2576,2582 ****
conversion *conv = NULL;
tree args = NULL_TREE;
bool any_viable_p;
- int convflags;
/* We represent conversion within a hierarchy using RVALUE_CONV and
BASE_CONV, as specified by [over.best.ics]; these become plain
--- 2590,2595 ----
*************** build_user_type_conversion_1 (tree totyp
*** 2607,2617 ****
candidates = 0;
flags |= LOOKUP_NO_CONVERSION;
- /* It's OK to bind a temporary for converting constructor arguments, but
- not in converting the return value of a conversion operator. */
- convflags = ((flags & LOOKUP_NO_TEMP_BIND) | LOOKUP_NO_CONVERSION);
- flags &= ~LOOKUP_NO_TEMP_BIND;
-
if (ctors)
{
tree t;
--- 2620,2625 ----
*************** build_user_type_conversion_1 (tree totyp
*** 2656,2661 ****
--- 2664,2670 ----
{
tree fns;
tree conversion_path = TREE_PURPOSE (conv_fns);
+ int convflags = LOOKUP_NO_CONVERSION;
/* If we are called to convert to a reference type, we are trying to
find an lvalue binding, so don't even consider temporaries. If
*************** enforce_access (tree basetype_path, tree
*** 4264,4269 ****
--- 4273,4293 ----
return true;
}
+ /* Check that a callable constructor to initialize a temporary of
+ TYPE from an EXPR exists. */
+
+ static void
+ check_constructor_callable (tree type, tree expr)
+ {
+ build_special_member_call (NULL_TREE,
+ complete_ctor_identifier,
+ build_tree_list (NULL_TREE, expr),
+ type,
+ LOOKUP_NORMAL | LOOKUP_ONLYCONVERTING
+ | LOOKUP_NO_CONVERSION
+ | LOOKUP_CONSTRUCTOR_CALLABLE);
+ }
+
/* Initialize a temporary of type TYPE with EXPR. The FLAGS are a
bitwise or of LOOKUP_* values. If any errors are warnings are
generated, set *DIAGNOSTIC_FN to "error" or "warning",
*************** convert_like_real (conversion *convs, tr
*** 4421,4426 ****
--- 4445,4452 ----
leave it as an lvalue. */
if (inner >= 0)
expr = decl_constant_value (expr);
+ if (convs->check_copy_constructor_p)
+ check_constructor_callable (totype, expr);
return expr;
case ck_ambig:
/* Call build_user_type_conversion again for the error. */
*************** convert_like_real (conversion *convs, tr
*** 4450,4455 ****
--- 4476,4483 ----
{
/* We are going to bind a reference directly to a base-class
subobject of EXPR. */
+ if (convs->check_copy_constructor_p)
+ check_constructor_callable (TREE_TYPE (expr), expr);
/* Build an expression for `*((base*) &expr)'. */
expr = build_unary_op (ADDR_EXPR, expr, 0);
expr = convert_to_base (expr, build_pointer_type (totype),
*************** initialize_reference (tree type, tree ex
*** 6793,6798 ****
--- 6821,6828 ----
remember that the conversion was required. */
if (conv->kind == ck_base)
{
+ if (conv->check_copy_constructor_p)
+ check_constructor_callable (TREE_TYPE (expr), expr);
base_conv_type = conv->type;
conv = conv->u.next;
}
Index: gcc/cp/cp-tree.h
===================================================================
*** gcc/cp/cp-tree.h (revision 130276)
--- gcc/cp/cp-tree.h (working copy)
*************** enum overload_flags { NO_SPECIAL = 0, DT
*** 3698,3707 ****
#define LOOKUP_PREFER_NAMESPACES (1 << 9)
/* Accept types or namespaces. */
#define LOOKUP_PREFER_BOTH (LOOKUP_PREFER_TYPES | LOOKUP_PREFER_NAMESPACES)
/* Return friend declarations and un-declared builtin functions.
(Normally, these entities are registered in the symbol table, but
not found by lookup.) */
! #define LOOKUP_HIDDEN (LOOKUP_PREFER_NAMESPACES << 1)
/* Prefer that the lvalue be treated as an rvalue. */
#define LOOKUP_PREFER_RVALUE (LOOKUP_HIDDEN << 1)
--- 3698,3710 ----
#define LOOKUP_PREFER_NAMESPACES (1 << 9)
/* Accept types or namespaces. */
#define LOOKUP_PREFER_BOTH (LOOKUP_PREFER_TYPES | LOOKUP_PREFER_NAMESPACES)
+ /* We are checking that a constructor can be called -- but we do not
+ actually plan to call it. */
+ #define LOOKUP_CONSTRUCTOR_CALLABLE (1 << 10)
/* Return friend declarations and un-declared builtin functions.
(Normally, these entities are registered in the symbol table, but
not found by lookup.) */
! #define LOOKUP_HIDDEN (LOOKUP_CONSTRUCTOR_CALLABLE << 1)
/* Prefer that the lvalue be treated as an rvalue. */
#define LOOKUP_PREFER_RVALUE (LOOKUP_HIDDEN << 1)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org