[packages/gcc] - up to 6.1.0; tested build without multilib

arekm arekm at pld-linux.org
Wed Apr 27 18:23:18 CEST 2016


commit 42ec3c2b5f72d6a796ec6121bd7b8ab11ffed729
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Wed Apr 27 18:23:08 2016 +0200

    - up to 6.1.0; tested build without multilib

 gcc-nodebug.patch |   14 +-
 gcc-pr61164.patch | 1085 -----------------------------------------------------
 gcc.spec          |  271 +++++++++++--
 3 files changed, 246 insertions(+), 1124 deletions(-)
---
diff --git a/gcc.spec b/gcc.spec
index 7b08860..5fa7c0d 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -112,12 +112,12 @@
 %define		with_vtv	1
 %endif
 
-%define		major_ver	5
-%define		minor_ver	3.0
+%define		major_ver	6
+%define		minor_ver	1.0
 %define		major_ecj_ver	4.9
 # class data version seen with file(1) that this jvm is able to load
 %define		_classdataversion 50.0
-%define		gcj_soname_ver	16
+%define		gcj_soname_ver	17
 
 Summary:	GNU Compiler Collection: the C compiler and shared files
 Summary(es.UTF-8):	Colección de compiladores GNU: el compilador C y ficheros compartidos
@@ -125,18 +125,18 @@ Summary(pl.UTF-8):	Kolekcja kompilatorów GNU: kompilator C i pliki współdziel
 Summary(pt_BR.UTF-8):	Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
 Name:		gcc
 Version:	%{major_ver}.%{minor_ver}
-Release:	2
+Release:	0.1
 Epoch:		6
 License:	GPL v3+
 Group:		Development/Languages
 Source0:	https://ftp.gnu.org/pub/gnu/gcc/gcc-%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5:	c9616fd448f980259c31de613e575719
+# Source0-md5:	8fb6cb98b8459f5863328380fbf06bd1
 Source1:	%{name}-optimize-la.pl
 Source2:	ftp://sourceware.org/pub/java/ecj-%{major_ecj_ver}.jar
 # Source2-md5:	7339f199ba11c941890031fd9981d7be
 # check libffi version with libffi/configure.ac
 Source3:	libffi.pc.in
-# svn diff -x --ignore-eol-style --force svn://gcc.gnu.org/svn/gcc/tags/gcc_5_3_0_release svn://gcc.gnu.org/svn/gcc/branches/gcc-5-branch > gcc-branch.diff
+# svn diff -x --ignore-eol-style --force svn://gcc.gnu.org/svn/gcc/tags/gcc_6_1_0_release svn://gcc.gnu.org/svn/gcc/branches/gcc-6-branch > gcc-branch.diff
 Patch100:	%{name}-branch.diff
 # Patch100-md5:	62c886f1e86f7fb3950094ed32caaeaf
 Patch0:		%{name}-info.patch
@@ -144,7 +144,6 @@ Patch2:		%{name}-nodebug.patch
 Patch3:		%{name}-ada-link.patch
 Patch4:		%{name}-ada-x32.patch
 
-Patch6:		%{name}-pr61164.patch
 Patch7:		%{name}-libjava-multilib.patch
 Patch8:		%{name}-enable-java-awt-qt.patch
 Patch10:	%{name}-moresparcs.patch
@@ -288,7 +287,7 @@ BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 # receiving non constant format strings
 %define		Werror_cflags	%{nil}
 
-%define		skip_post_check_so	'.*(libcc1plugin|libgo|libxmlj|lib-gnu-awt-xlib)\.so.*'
+%define		skip_post_check_so	'.*(libcc1plugin|libgo|libxmlj|lib-gnu-awt-xlib|libmpxwrappers)\.so.*'
 
 %description
 A compiler aimed at integrating all the optimizations and features
@@ -691,6 +690,146 @@ library in %{m2_desc} version.
 Ten pakiet zawiera bibliotekę statyczną rozszerzeń Cilk Plus dla
 języków C/C++. W tym pakiecie znajduje się wersja %{m2_desc}.
 
+%package -n libmpx
+Summary:	GCC Memory Protection Extensions language extensions runtime library
+Summary(pl.UTF-8):	Biblioteka uruchomieniowa rozszerzeń Memory Protection Extensions dla GCC
+License:	BSD
+Group:		Libraries
+Requires:	libstdc++ = %{epoch}:%{version}-%{release}
+
+%description -n libmpx
+This package contains the Memory Protection Extensions C language extensions runtime
+library.
+
+%description -n libmpx -l pl.UTF-8
+Ten pakiet zawiera bibliotekę uruchomieniową rozszerzeń Memory Protection Extensions dla
+języka C.
+
+%package -n libmpx-devel
+Summary:	GCC development files for Memory Protection Extensions language extensions
+Summary(pl.UTF-8):	Pliki programistyczne GCC dla rozszerzeń Memory Protection Extensions
+License:	BSD
+Group:		Development/Libraries
+Requires:	libmpx = %{epoch}:%{version}-%{release}
+
+%description -n libmpx-devel
+This package contains development files for Memory Protection Extensions C language
+extensions.
+
+%description -n libmpx-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne rozszerzeń Memory Protection Extensions dla
+języka C.
+
+%package -n libmpx-static
+Summary:	GCC Memory Protection Extensions language extensions static library
+Summary(pl.UTF-8):	Biblioteka statyczna rozszerzeń Memory Protection Extensions dla GCC
+License:	BSD
+Group:		Development/Libraries
+Requires:	libmpx-devel = %{epoch}:%{version}-%{release}
+
+%description -n libmpx-static
+This package contains Memory Protection Extensions C language extensions static
+library.
+
+%description -n libmpx-static -l pl.UTF-8
+Ten pakiet zawiera bibliotekę statyczną rozszerzeń Memory Protection Extensions dla
+języka C.
+
+%package -n libmpx-multilib-32
+Summary:	GCC Memory Protection Extensions language extensions runtime library - 32-bit version
+Summary(pl.UTF-8):	Biblioteka uruchomieniowa rozszerzeń Memory Protection Extensions dla GCC - wersja 32-bitowa
+License:	BSD
+Group:		Libraries
+Requires:	libstdc++-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:	libmpx-multilib
+
+%description -n libmpx-multilib-32
+This package contains the Memory Protection Extensions C language extensions runtime
+library in 32-bit version.
+
+%description -n libmpx-multilib-32 -l pl.UTF-8
+Ten pakiet zawiera bibliotekę uruchomieniową rozszerzeń Memory Protection Extensions dla
+języka C. W tym pakiecie znajduje się wersja 32-bitowa.
+
+%package -n libmpx-multilib-32-devel
+Summary:	GCC development files for Memory Protection Extensions language extensions - 32-bit version
+Summary(pl.UTF-8):	Pliki programistyczne GCC dla rozszerzeń Memory Protection Extensions - wersja 32-bitowa
+License:	BSD
+Group:		Development/Libraries
+Requires:	libmpx-devel = %{epoch}:%{version}-%{release}
+Requires:	libmpx-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:	libmpx-multilib-devel
+
+%description -n libmpx-multilib-32-devel
+This package contains development files for Memory Protection Extensions C language
+extensions in 32-bit version.
+
+%description -n libmpx-multilib-32-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne rozszerzeń Memory Protection Extensions dla
+języka C. W tym pakiecie znajduje się wersja 32-bitowa.
+
+%package -n libmpx-multilib-32-static
+Summary:	GCC Memory Protection Extensions language extensions static library - 32-bit version
+Summary(pl.UTF-8):	Biblioteka statyczna rozszerzeń Memory Protection Extensions dla GCC - wersja 32-bitowa
+License:	BSD
+Group:		Development/Libraries
+Requires:	libmpx-multilib-32-devel = %{epoch}:%{version}-%{release}
+Obsoletes:	libmpx-multilib-static
+
+%description -n libmpx-multilib-32-static
+This package contains the Memory Protection Extensions C language extensions static
+library in 32-bit version.
+
+%description -n libmpx-multilib-32-static -l pl.UTF-8
+Ten pakiet zawiera bibliotekę statyczną rozszerzeń Memory Protection Extensions dla
+języka C. W tym pakiecie znajduje się wersja 32-bitowa.
+
+%package -n libmpx-multilib-%{multilib2}
+Summary:	GCC Memory Protection Extensions language extensions runtime library
+Summary(pl.UTF-8):	Biblioteka uruchomieniowa rozszerzeń Memory Protection Extensions dla GCC
+License:	BSD
+Group:		Libraries
+Requires:	libstdc++-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libmpx-multilib-%{multilib2}
+This package contains the Memory Protection Extensions C language extensions runtime
+library.
+
+%description -n libmpx-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet zawiera bibliotekę uruchomieniową rozszerzeń Memory Protection Extensions dla
+języka C.
+
+%package -n libmpx-multilib-%{multilib2}-devel
+Summary:	GCC development files for Memory Protection Extensions language extensions
+Summary(pl.UTF-8):	Pliki programistyczne GCC dla rozszerzeń Memory Protection Extensions
+License:	BSD
+Group:		Development/Libraries
+Requires:	libmpx-devel = %{epoch}:%{version}-%{release}
+Requires:	libmpx-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libmpx-multilib-%{multilib2}-devel
+This package contains development files for Memory Protection Extensions C language
+extensions.
+
+%description -n libmpx-multilib-%{multilib2}-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne rozszerzeń Memory Protection Extensions dla
+języka C.
+
+%package -n libmpx-multilib-%{multilib2}-static
+Summary:	GCC Memory Protection Extensions language extensions static library
+Summary(pl.UTF-8):	Biblioteka statyczna rozszerzeń Memory Protection Extensions dla GCC
+License:	BSD
+Group:		Development/Libraries
+Requires:	libmpx-multilib-%{multilib2}-devel = %{epoch}:%{version}-%{release}
+
+%description -n libmpx-multilib-%{multilib2}-static
+This package contains the Memory Protection Extensions C language extensions static
+library.
+
+%description -n libmpx-multilib-%{multilib2}-static -l pl.UTF-8
+Ten pakiet zawiera bibliotekę statyczną rozszerzeń Memory Protection Extensions dla
+języka C.
+
 %package ada
 Summary:	Ada language support for GCC
 Summary(es.UTF-8):	Soporte de Ada para GCC
@@ -2800,13 +2939,12 @@ not stable, so plugins must be rebuilt any time GCC is updated.
 
 %prep
 %setup -q
-%patch100 -p0
+#%patch100 -p0
 %patch0 -p1
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
 
-%patch6 -p1
 %patch7 -p0
 %if %{with qt}
 %patch8 -p1
@@ -3023,9 +3161,9 @@ libgomp=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libgomp.so.*.*.*)
 mv $RPM_BUILD_ROOT%{_libdir}/libgomp.so.* $RPM_BUILD_ROOT%{_slibdir}
 ln -sf %{_slibdir}/$libgomp $RPM_BUILD_ROOT%{_libdir}/libgomp.so
 
-libgompplugin=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libgomp-plugin-host_nonshm.so.*.*.*)
-mv $RPM_BUILD_ROOT%{_libdir}/libgomp-plugin-host_nonshm.so.* $RPM_BUILD_ROOT%{_slibdir}
-ln -sf %{_slibdir}/$libgompplugin $RPM_BUILD_ROOT%{_libdir}/libgomp-plugin-host_nonshm.so
+#libgompplugin=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libgomp-plugin-host_nonshm.so.*.*.*)
+#mv $RPM_BUILD_ROOT%{_libdir}/libgomp-plugin-host_nonshm.so.* $RPM_BUILD_ROOT%{_slibdir}
+#ln -sf %{_slibdir}/$libgompplugin $RPM_BUILD_ROOT%{_libdir}/libgomp-plugin-host_nonshm.so
 
 %if %{with multilib}
 libssp=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libssp.so.*.*.*)
@@ -3040,9 +3178,9 @@ libgomp=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libgomp.so.*.*.*)
 mv $RPM_BUILD_ROOT%{_libdir32}/libgomp.so.* $RPM_BUILD_ROOT%{_slibdir32}
 ln -sf %{_slibdir32}/$libgomp $RPM_BUILD_ROOT%{_libdir32}/libgomp.so
 
-libgompplugin=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libgomp-plugin-host_nonshm.so.*.*.*)
-mv $RPM_BUILD_ROOT%{_libdir32}/libgomp-plugin-host_nonshm.so.* $RPM_BUILD_ROOT%{_slibdir32}
-ln -sf %{_slibdir32}/$libgompplugin $RPM_BUILD_ROOT%{_libdir32}/libgomp-plugin-host_nonshm.so
+#libgompplugin=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libgomp-plugin-host_nonshm.so.*.*.*)
+#mv $RPM_BUILD_ROOT%{_libdir32}/libgomp-plugin-host_nonshm.so.* $RPM_BUILD_ROOT%{_slibdir32}
+#ln -sf %{_slibdir32}/$libgompplugin $RPM_BUILD_ROOT%{_libdir32}/libgomp-plugin-host_nonshm.so
 
 %if %{with multilib2}
 libssp=$(cd $RPM_BUILD_ROOT%{_libdirm2}; echo libssp.so.*.*.*)
@@ -3357,6 +3495,12 @@ rm -rf $RPM_BUILD_ROOT
 %postun	-p /sbin/ldconfig -n libffi-multilib-32
 %post	-p /sbin/ldconfig -n libffi-multilib-%{multilib2}
 %postun	-p /sbin/ldconfig -n libffi-multilib-%{multilib2}
+%post	-p /sbin/ldconfig -n libmpx
+%postun	-p /sbin/ldconfig -n libmpx
+%post	-p /sbin/ldconfig -n libmpx-multilib-32
+%postun	-p /sbin/ldconfig -n libmpx-multilib-32
+%post	-p /sbin/ldconfig -n libmpx-multilib-%{multilib2}
+%postun	-p /sbin/ldconfig -n libmpx-multilib-%{multilib2}
 %post	-p /sbin/ldconfig -n libobjc
 %postun	-p /sbin/ldconfig -n libobjc
 %post	-p /sbin/ldconfig -n libobjc-multilib-32
@@ -3503,6 +3647,7 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/include/bmmintrin.h
 %{gcclibdir}/include/clflushoptintrin.h
 %{gcclibdir}/include/clwbintrin.h
+%{gcclibdir}/include/clzerointrin.h
 %{gcclibdir}/include/cpuid.h
 %{gcclibdir}/include/cross-stdarg.h
 %{gcclibdir}/include/emmintrin.h
@@ -3520,6 +3665,7 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/include/nmmintrin.h
 %{gcclibdir}/include/mwaitxintrin.h
 %{gcclibdir}/include/pcommitintrin.h
+%{gcclibdir}/include/pkuintrin.h
 %{gcclibdir}/include/pmmintrin.h
 %{gcclibdir}/include/popcntintrin.h
 %{gcclibdir}/include/prfchwintrin.h
@@ -3639,15 +3785,15 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_slibdir}/libgomp.so.*.*.*
 %attr(755,root,root) %ghost %{_slibdir}/libgomp.so.1
-%attr(755,root,root) %{_slibdir}/libgomp-plugin-host_nonshm.so.*.*.*
-%attr(755,root,root) %ghost %{_slibdir}/libgomp-plugin-host_nonshm.so.1
+#%attr(755,root,root) %{_slibdir}/libgomp-plugin-host_nonshm.so.*.*.*
+#%attr(755,root,root) %ghost %{_slibdir}/libgomp-plugin-host_nonshm.so.1
 
 %files -n libgomp-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libgomp.so
-%attr(755,root,root) %{_libdir}/libgomp-plugin-host_nonshm.so
+#%attr(755,root,root) %{_libdir}/libgomp-plugin-host_nonshm.so
 %{_libdir}/libgomp.la
-%{_libdir}/libgomp-plugin-host_nonshm.la
+#%{_libdir}/libgomp-plugin-host_nonshm.la
 %{_libdir}/libgomp.spec
 %{gcclibdir}/finclude
 %{gcclibdir}/include/omp.h
@@ -3756,6 +3902,66 @@ rm -rf $RPM_BUILD_ROOT
 %endif
 %endif
 
+%files -n libmpx
+%defattr(644,root,root,755)
+%doc libmpx/ChangeLog
+%attr(755,root,root) %{_libdir}/libmpx.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmpx.so.2
+%attr(755,root,root) %{_libdir}/libmpxwrappers.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmpxwrappers.so.2
+
+%files -n libmpx-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libmpx.so
+%attr(755,root,root) %{_libdir}/libmpxwrappers.so
+%{_libdir}/libmpx.la
+%{_libdir}/libmpxwrappers.la
+%{_libdir}/libmpx.spec
+
+%files -n libmpx-static
+%defattr(644,root,root,755)
+%{_libdir}/libmpx.a
+%{_libdir}/libmpxwrappers.a
+
+%if %{with multilib}
+%files -n libmpx-multilib-32
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libmpx.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libmpx.so.2
+%attr(755,root,root) %{_libdir32}/libmpxwrappers.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libmpxwrappers.so.2
+
+%files -n libmpx-multilib-32-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libmpx.so
+%attr(755,root,root) %{_libdir32}/libmpxwrappers.so
+%{_libdir32}/libmpx.la
+%{_libdir32}/libmpxwrappers.la
+%{_libdir32}/libmpx.spec
+
+%files -n libmpx-multilib-32-static
+%defattr(644,root,root,755)
+%{_libdir32}/libmpx.a
+%{_libdir32}/libmpxwrappers.a
+%endif
+
+%if %{with multilib2}
+%files -n libmpx-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libmpx.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libmpx.so.2
+
+%files -n libmpx-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libmpx.so
+%{_libdirm2}/libmpx.la
+%{_libdirm2}/libmpx.spec
+
+%files -n libmpx-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libmpx.a
+%endif
+
 %if %{with ada}
 %files ada
 %defattr(644,root,root,755)
@@ -3891,6 +4097,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libstdc++fs.la
 %dir %{_includedir}/c++
 %{_includedir}/c++/%{version}
+%{_includedir}/expc++.h
 %{_includedir}/extc++.h
 %{_includedir}/stdc++.h
 %{_includedir}/stdtr1c++.h
@@ -3979,8 +4186,8 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libgfortran.la
 %{gcclibdir}/libcaf_single.a
 %{gcclibdir}/libcaf_single.la
-%{gcclibdir}/libgfortranbegin.la
-%{gcclibdir}/libgfortranbegin.a
+#%{gcclibdir}/libgfortranbegin.la
+#%{gcclibdir}/libgfortranbegin.a
 %{_infodir}/gfortran.info*
 %{_mandir}/man1/g95.1*
 %{_mandir}/man1/gfortran.1*
@@ -3993,8 +4200,8 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir32}/libgfortran.la
 %{gcclibdir}/32/libcaf_single.a
 %{gcclibdir}/32/libcaf_single.la
-%{gcclibdir}/32/libgfortranbegin.la
-%{gcclibdir}/32/libgfortranbegin.a
+#%{gcclibdir}/32/libgfortranbegin.la
+#%{gcclibdir}/32/libgfortranbegin.a
 %endif
 
 %if %{with multilib2}
@@ -4005,8 +4212,8 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdirm2}/libgfortran.la
 %{gcclibdir}/%{multilib2}/libcaf_single.a
 %{gcclibdir}/%{multilib2}/libcaf_single.la
-%{gcclibdir}/%{multilib2}/libgfortranbegin.la
-%{gcclibdir}/%{multilib2}/libgfortranbegin.a
+#%{gcclibdir}/%{multilib2}/libgfortranbegin.la
+#%{gcclibdir}/%{multilib2}/libgfortranbegin.a
 %endif
 
 %files -n libgfortran
@@ -4381,7 +4588,7 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %doc libgo/{LICENSE,PATENTS,README}
 %attr(755,root,root) %{_libdir}/libgo.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libgo.so.7
+%attr(755,root,root) %ghost %{_libdir}/libgo.so.9
 
 %files -n libgo-devel
 %defattr(644,root,root,755)
@@ -4399,7 +4606,7 @@ rm -rf $RPM_BUILD_ROOT
 %files -n libgo-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libgo.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libgo.so.7
+%attr(755,root,root) %ghost %{_libdir32}/libgo.so.9
 
 %files -n libgo-multilib-32-devel
 %defattr(644,root,root,755)
@@ -4418,7 +4625,7 @@ rm -rf $RPM_BUILD_ROOT
 %files -n libgo-multilib-%{multilib2}
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdirm2}/libgo.so.*.*.*
-%attr(755,root,root) %ghost %{_libdirm2}/libgo.so.7
+%attr(755,root,root) %ghost %{_libdirm2}/libgo.so.9
 
 %files -n libgo-multilib-%{multilib2}-devel
 %defattr(644,root,root,755)
@@ -4439,7 +4646,7 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %doc libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
 %attr(755,root,root) %{_libdir}/libasan.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libasan.so.2
+%attr(755,root,root) %ghost %{_libdir}/libasan.so.3
 
 %files -n libasan-devel
 %defattr(644,root,root,755)
@@ -4456,7 +4663,7 @@ rm -rf $RPM_BUILD_ROOT
 %files -n libasan-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libasan.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libasan.so.2
+%attr(755,root,root) %ghost %{_libdir32}/libasan.so.3
 
 %files -n libasan-multilib-32-devel
 %defattr(644,root,root,755)
@@ -4473,7 +4680,7 @@ rm -rf $RPM_BUILD_ROOT
 %files -n libasan-multilib-%{multilib2}
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdirm2}/libasan.so.*.*.*
-%attr(755,root,root) %ghost %{_libdirm2}/libasan.so.2
+%attr(755,root,root) %ghost %{_libdirm2}/libasan.so.3
 
 %files -n libasan-multilib-%{multilib2}-devel
 %defattr(644,root,root,755)
diff --git a/gcc-nodebug.patch b/gcc-nodebug.patch
index e3ea8a4..4707f5b 100644
--- a/gcc-nodebug.patch
+++ b/gcc-nodebug.patch
@@ -9,7 +9,7 @@
  BOOT_CFLAGS = -O $(CFLAGS)
  # These exists to be overridden by the t-* files, respectively.
  T_CFLAGS =
-@@ -105,12 +105,12 @@
+@@ -105,12 +105,12 @@ TEXI2PDF = texi2pdf
  GNATBIND_FLAGS = -static -x
  ADA_CFLAGS =
  ADAFLAGS = -W -Wall -gnatpg -gnata
@@ -21,9 +21,9 @@
  GNATLIBFLAGS = -W -Wall -gnatpg -nostdinc
 -GNATLIBCFLAGS = -g -O2
 +GNATLIBCFLAGS = -O2
- PICFLAG_FOR_TARGET = @PICFLAG_FOR_TARGET@
- 
  # Pretend that _Unwind_GetIPInfo is available for the target by default.  This
+ # should be autodetected during the configuration of libada and passed down to
+ # here, but we need something for --disable-libada and hope for the best.
 --- gcc-4.7.1/libada/Makefile.in.orig	2012-06-12 17:12:37.000000000 +0200
 +++ gcc-4.7.1/libada/Makefile.in	2012-07-12 18:27:53.482408144 +0200
 @@ -59,7 +59,7 @@ LDFLAGS=
@@ -48,15 +48,15 @@
  # MSVC, it can link against the debug CRT.
 --- gcc-4.7.1/libffi/Makefile.in.orig	2012-06-14 10:48:08.000000000 +0200
 +++ gcc-4.7.1/libffi/Makefile.in	2012-07-12 18:28:35.029073067 +0200
-@@ -475,7 +475,7 @@
+@@ -486,7 +486,7 @@ libffi_convenience_la_LIBADD = $(libffi_
  libffi_convenience_la_DEPENDENCIES = $(libffi_la_DEPENDENCIES)
  nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
  LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
 -AM_CFLAGS = -Wall -g -fexceptions $(am__append_2)
 +AM_CFLAGS = -Wall -fexceptions $(am__append_2)
- libffi_la_LDFLAGS = -no-undefined -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
- AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
- AM_CCASFLAGS = $(AM_CPPFLAGS)
+ @LIBAT_BUILD_VERSIONED_SHLIB_FALSE at libffi_version_script = 
+ @LIBAT_BUILD_VERSIONED_SHLIB_GNU_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE at libffi_version_script = -Wl,--version-script,libffi.map
+ @LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE at libffi_version_script = -Wl,-M,libffi.map-sun
 --- gcc-4.7.1/libgcc/Makefile.in.orig	2012-05-24 16:59:38.000000000 +0200
 +++ gcc-4.7.1/libgcc/Makefile.in	2012-07-12 18:28:59.042405393 +0200
 @@ -221,7 +221,7 @@
diff --git a/gcc-pr61164.patch b/gcc-pr61164.patch
deleted file mode 100644
index 511820e..0000000
--- a/gcc-pr61164.patch
+++ /dev/null
@@ -1,1085 +0,0 @@
-2014-09-27  Gleb Fotengauer-Malinovskiy  <glebfm at altlinux.org>
-
-libitm/
-
-	PR libitm/61164
-	* local_atomic (__always_inline): Rename to...
-	(__libitm_always_inline): ... this.
----
-
-On Mon, Sep 29, 2014 at 03:38:25PM +0200, Jakub Jelinek wrote:
-> Why do you want to add inline keyword to that?  Some inline keywords
-> are implicit (methods defined inline), so there is no point adding it there.
-
-I just didn't get that redefinition of __always_inline was the source of the problem.
-
- local_atomic | 299 +++++++++++++++++++++++++++++------------------------------
- 1 file changed, 149 insertions(+), 150 deletions(-)
-
-diff --git a/libitm/local_atomic b/libitm/local_atomic
-index c3e079f..552b919 100644
---- a/libitm/local_atomic
-+++ b/libitm/local_atomic
-@@ -41,8 +41,7 @@
- #ifndef _GLIBCXX_ATOMIC
- #define _GLIBCXX_ATOMIC 1
- 
--#undef  __always_inline
--#define __always_inline __attribute__((always_inline))
-+#define __libitm_always_inline __attribute__((always_inline))
- 
- // #pragma GCC system_header
- 
-@@ -74,7 +74,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-       memory_order_seq_cst
-     } memory_order;
- 
--  inline __always_inline memory_order
-+  inline __libitm_always_inline memory_order
-   __calculate_memory_order(memory_order __m) noexcept
-   {
-     const bool __cond1 = __m == memory_order_release;
-@@ -84,13 +84,13 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-     return __mo2;
-   }
- 
--  inline __always_inline void
-+  inline __libitm_always_inline void
-   atomic_thread_fence(memory_order __m) noexcept
-   {
-     __atomic_thread_fence (__m);
-   }
- 
--  inline __always_inline void
-+  inline __libitm_always_inline void
-   atomic_signal_fence(memory_order __m) noexcept
-   {
-     __atomic_thread_fence (__m);
-@@ -280,19 +280,19 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-     // Conversion to ATOMIC_FLAG_INIT.
-     atomic_flag(bool __i) noexcept : __atomic_flag_base({ __i }) { }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     test_and_set(memory_order __m = memory_order_seq_cst) noexcept
-     {
-       return __atomic_test_and_set (&_M_i, __m);
-     }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept
-     {
-       return __atomic_test_and_set (&_M_i, __m);
-     }
- 
--    __always_inline void
-+    __libitm_always_inline void
-     clear(memory_order __m = memory_order_seq_cst) noexcept
-     {
-       // __glibcxx_assert(__m != memory_order_consume);
-@@ -302,7 +302,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-       __atomic_clear (&_M_i, __m);
-     }
- 
--    __always_inline void
-+    __libitm_always_inline void
-     clear(memory_order __m = memory_order_seq_cst) volatile noexcept
-     {
-       // __glibcxx_assert(__m != memory_order_consume);
-@@ -455,7 +455,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-       is_lock_free() const volatile noexcept
-       { return __atomic_is_lock_free (sizeof (_M_i), &_M_i); }
- 
--      __always_inline void
-+      __libitm_always_inline void
-       store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept
-       {
- 	// __glibcxx_assert(__m != memory_order_acquire);
-@@ -465,7 +465,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	__atomic_store_n(&_M_i, __i, __m);
-       }
- 
--      __always_inline void
-+      __libitm_always_inline void
-       store(__int_type __i,
- 	    memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-@@ -476,7 +476,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	__atomic_store_n(&_M_i, __i, __m);
-       }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       load(memory_order __m = memory_order_seq_cst) const noexcept
-       {
- 	// __glibcxx_assert(__m != memory_order_release);
-@@ -485,7 +485,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return __atomic_load_n(&_M_i, __m);
-       }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       load(memory_order __m = memory_order_seq_cst) const volatile noexcept
-       {
- 	// __glibcxx_assert(__m != memory_order_release);
-@@ -494,21 +494,21 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return __atomic_load_n(&_M_i, __m);
-       }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       exchange(__int_type __i,
- 	       memory_order __m = memory_order_seq_cst) noexcept
-       {
- 	return __atomic_exchange_n(&_M_i, __i, __m);
-       }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       exchange(__int_type __i,
- 	       memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
- 	return __atomic_exchange_n(&_M_i, __i, __m);
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__int_type& __i1, __int_type __i2,
- 			    memory_order __m1, memory_order __m2) noexcept
-       {
-@@ -519,7 +519,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2);
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__int_type& __i1, __int_type __i2,
- 			    memory_order __m1,
- 			    memory_order __m2) volatile noexcept
-@@ -531,7 +531,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2);
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__int_type& __i1, __int_type __i2,
- 			    memory_order __m = memory_order_seq_cst) noexcept
-       {
-@@ -539,7 +539,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 				     __calculate_memory_order(__m));
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__int_type& __i1, __int_type __i2,
- 		   memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-@@ -547,7 +547,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 				     __calculate_memory_order(__m));
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__int_type& __i1, __int_type __i2,
- 			      memory_order __m1, memory_order __m2) noexcept
-       {
-@@ -558,7 +558,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__int_type& __i1, __int_type __i2,
- 			      memory_order __m1,
- 			      memory_order __m2) volatile noexcept
-@@ -570,7 +570,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__int_type& __i1, __int_type __i2,
- 			      memory_order __m = memory_order_seq_cst) noexcept
-       {
-@@ -578,7 +578,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 				       __calculate_memory_order(__m));
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__int_type& __i1, __int_type __i2,
- 		 memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-@@ -586,52 +586,52 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 				       __calculate_memory_order(__m));
-       }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_add(__int_type __i,
- 		memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_add(&_M_i, __i, __m); }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_add(__int_type __i,
- 		memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_add(&_M_i, __i, __m); }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_sub(__int_type __i,
- 		memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_sub(&_M_i, __i, __m); }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_sub(__int_type __i,
- 		memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_sub(&_M_i, __i, __m); }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_and(__int_type __i,
- 		memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_and(&_M_i, __i, __m); }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_and(__int_type __i,
- 		memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_and(&_M_i, __i, __m); }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_or(__int_type __i,
- 	       memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_or(&_M_i, __i, __m); }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_or(__int_type __i,
- 	       memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_or(&_M_i, __i, __m); }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_xor(__int_type __i,
- 		memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_xor(&_M_i, __i, __m); }
- 
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_xor(__int_type __i,
- 		memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_xor(&_M_i, __i, __m); }
-@@ -733,7 +733,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-       is_lock_free() const volatile noexcept
-       { return __atomic_is_lock_free (sizeof (_M_p), &_M_p); }
- 
--      __always_inline void
-+      __libitm_always_inline void
-       store(__pointer_type __p,
- 	    memory_order __m = memory_order_seq_cst) noexcept
-       {
-@@ -744,7 +744,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	__atomic_store_n(&_M_p, __p, __m);
-       }
- 
--      __always_inline void
-+      __libitm_always_inline void
-       store(__pointer_type __p,
- 	    memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-@@ -755,7 +755,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	__atomic_store_n(&_M_p, __p, __m);
-       }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       load(memory_order __m = memory_order_seq_cst) const noexcept
-       {
- 	// __glibcxx_assert(__m != memory_order_release);
-@@ -764,7 +764,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return __atomic_load_n(&_M_p, __m);
-       }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       load(memory_order __m = memory_order_seq_cst) const volatile noexcept
-       {
- 	// __glibcxx_assert(__m != memory_order_release);
-@@ -773,21 +773,21 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return __atomic_load_n(&_M_p, __m);
-       }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       exchange(__pointer_type __p,
- 	       memory_order __m = memory_order_seq_cst) noexcept
-       {
- 	return __atomic_exchange_n(&_M_p, __p, __m);
-       }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       exchange(__pointer_type __p,
- 	       memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
- 	return __atomic_exchange_n(&_M_p, __p, __m);
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
- 			      memory_order __m1,
- 			      memory_order __m2) noexcept
-@@ -799,7 +799,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2);
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
- 			      memory_order __m1,
- 			      memory_order __m2) volatile noexcept
-@@ -811,22 +811,22 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2);
-       }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_add(ptrdiff_t __d,
- 		memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_add(&_M_p, __d, __m); }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_add(ptrdiff_t __d,
- 		memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_add(&_M_p, __d, __m); }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_sub(ptrdiff_t __d,
- 		memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_sub(&_M_p, __d, __m); }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_sub(ptrdiff_t __d,
- 		memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_sub(&_M_p, __d, __m); }
-@@ -870,67 +870,67 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-     bool
-     is_lock_free() const volatile noexcept { return _M_base.is_lock_free(); }
- 
--    __always_inline void
-+    __libitm_always_inline void
-     store(bool __i, memory_order __m = memory_order_seq_cst) noexcept
-     { _M_base.store(__i, __m); }
- 
--    __always_inline void
-+    __libitm_always_inline void
-     store(bool __i, memory_order __m = memory_order_seq_cst) volatile noexcept
-     { _M_base.store(__i, __m); }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     load(memory_order __m = memory_order_seq_cst) const noexcept
-     { return _M_base.load(__m); }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     load(memory_order __m = memory_order_seq_cst) const volatile noexcept
-     { return _M_base.load(__m); }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     exchange(bool __i, memory_order __m = memory_order_seq_cst) noexcept
-     { return _M_base.exchange(__i, __m); }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     exchange(bool __i,
- 	     memory_order __m = memory_order_seq_cst) volatile noexcept
-     { return _M_base.exchange(__i, __m); }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1,
- 			  memory_order __m2) noexcept
-     { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1,
- 			  memory_order __m2) volatile noexcept
-     { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_weak(bool& __i1, bool __i2,
- 			  memory_order __m = memory_order_seq_cst) noexcept
-     { return _M_base.compare_exchange_weak(__i1, __i2, __m); }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_weak(bool& __i1, bool __i2,
- 		     memory_order __m = memory_order_seq_cst) volatile noexcept
-     { return _M_base.compare_exchange_weak(__i1, __i2, __m); }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1,
- 			    memory_order __m2) noexcept
-     { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1,
- 			    memory_order __m2) volatile noexcept
-     { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_strong(bool& __i1, bool __i2,
- 			    memory_order __m = memory_order_seq_cst) noexcept
-     { return _M_base.compare_exchange_strong(__i1, __i2, __m); }
- 
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_strong(bool& __i1, bool __i2,
- 		    memory_order __m = memory_order_seq_cst) volatile noexcept
-     { return _M_base.compare_exchange_strong(__i1, __i2, __m); }
-@@ -980,11 +980,11 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-       store(_Tp __i, memory_order _m = memory_order_seq_cst) noexcept
-       { __atomic_store(&_M_i, &__i, _m); }
- 
--      __always_inline void
-+      __libitm_always_inline void
-       store(_Tp __i, memory_order _m = memory_order_seq_cst) volatile noexcept
-       { __atomic_store(&_M_i, &__i, _m); }
- 
--      __always_inline _Tp
-+      __libitm_always_inline _Tp
-       load(memory_order _m = memory_order_seq_cst) const noexcept
-       { 
-         _Tp tmp;
-@@ -992,7 +992,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return tmp;
-       }
- 
--      __always_inline _Tp
-+      __libitm_always_inline _Tp
-       load(memory_order _m = memory_order_seq_cst) const volatile noexcept
-       { 
-         _Tp tmp;
-@@ -1000,7 +1000,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return tmp;
-       }
- 
--      __always_inline _Tp
-+      __libitm_always_inline _Tp
-       exchange(_Tp __i, memory_order _m = memory_order_seq_cst) noexcept
-       { 
-         _Tp tmp;
-@@ -1008,7 +1008,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return tmp;
-       }
- 
--      __always_inline _Tp
-+      __libitm_always_inline _Tp
-       exchange(_Tp __i, 
- 	       memory_order _m = memory_order_seq_cst) volatile noexcept
-       { 
-@@ -1017,50 +1017,50 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 	return tmp;
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 
- 			    memory_order __f) noexcept
-       {
- 	return __atomic_compare_exchange(&_M_i, &__e, &__i, true, __s, __f); 
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 
- 			    memory_order __f) volatile noexcept
-       {
- 	return __atomic_compare_exchange(&_M_i, &__e, &__i, true, __s, __f); 
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(_Tp& __e, _Tp __i,
- 			    memory_order __m = memory_order_seq_cst) noexcept
-       { return compare_exchange_weak(__e, __i, __m, __m); }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(_Tp& __e, _Tp __i,
- 		     memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return compare_exchange_weak(__e, __i, __m, __m); }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 
- 			      memory_order __f) noexcept
-       {
- 	return __atomic_compare_exchange(&_M_i, &__e, &__i, false, __s, __f); 
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 
- 			      memory_order __f) volatile noexcept
-       {
- 	return __atomic_compare_exchange(&_M_i, &__e, &__i, false, __s, __f); 
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(_Tp& __e, _Tp __i,
- 			       memory_order __m = memory_order_seq_cst) noexcept
-       { return compare_exchange_strong(__e, __i, __m, __m); }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(_Tp& __e, _Tp __i,
- 		     memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return compare_exchange_strong(__e, __i, __m, __m); }
-@@ -1153,46 +1153,46 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-       is_lock_free() const volatile noexcept
-       { return _M_b.is_lock_free(); }
- 
--      __always_inline void
-+      __libitm_always_inline void
-       store(__pointer_type __p,
- 	    memory_order __m = memory_order_seq_cst) noexcept
-       { return _M_b.store(__p, __m); }
- 
--      __always_inline void
-+      __libitm_always_inline void
-       store(__pointer_type __p,
- 	    memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return _M_b.store(__p, __m); }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       load(memory_order __m = memory_order_seq_cst) const noexcept
-       { return _M_b.load(__m); }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       load(memory_order __m = memory_order_seq_cst) const volatile noexcept
-       { return _M_b.load(__m); }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       exchange(__pointer_type __p,
- 	       memory_order __m = memory_order_seq_cst) noexcept
-       { return _M_b.exchange(__p, __m); }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       exchange(__pointer_type __p,
- 	       memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return _M_b.exchange(__p, __m); }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
- 			    memory_order __m1, memory_order __m2) noexcept
-       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
- 			    memory_order __m1,
- 			    memory_order __m2) volatile noexcept
-       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
- 			    memory_order __m = memory_order_seq_cst) noexcept
-       {
-@@ -1200,7 +1200,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 				     __calculate_memory_order(__m));
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
- 		    memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-@@ -1208,18 +1208,18 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 				     __calculate_memory_order(__m));
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
- 			      memory_order __m1, memory_order __m2) noexcept
-       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
- 			      memory_order __m1,
- 			      memory_order __m2) volatile noexcept
-       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
- 			      memory_order __m = memory_order_seq_cst) noexcept
-       {
-@@ -1227,7 +1227,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 					    __calculate_memory_order(__m));
-       }
- 
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
- 		    memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-@@ -1235,22 +1235,22 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 					    __calculate_memory_order(__m));
-       }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_add(ptrdiff_t __d,
- 		memory_order __m = memory_order_seq_cst) noexcept
-       { return _M_b.fetch_add(__d, __m); }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_add(ptrdiff_t __d,
- 		memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return _M_b.fetch_add(__d, __m); }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_sub(ptrdiff_t __d,
- 		memory_order __m = memory_order_seq_cst) noexcept
-       { return _M_b.fetch_sub(__d, __m); }
- 
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_sub(ptrdiff_t __d,
- 		memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return _M_b.fetch_sub(__d, __m); }
-@@ -1544,98 +1544,98 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 
- 
-   // Function definitions, atomic_flag operations.
--  inline __always_inline bool
-+  inline __libitm_always_inline bool
-   atomic_flag_test_and_set_explicit(atomic_flag* __a,
- 				    memory_order __m) noexcept
-   { return __a->test_and_set(__m); }
- 
--  inline __always_inline bool
-+  inline __libitm_always_inline bool
-   atomic_flag_test_and_set_explicit(volatile atomic_flag* __a,
- 				    memory_order __m) noexcept
-   { return __a->test_and_set(__m); }
- 
--  inline __always_inline void
-+  inline __libitm_always_inline void
-   atomic_flag_clear_explicit(atomic_flag* __a, memory_order __m) noexcept
-   { __a->clear(__m); }
- 
--  inline __always_inline void
-+  inline __libitm_always_inline void
-   atomic_flag_clear_explicit(volatile atomic_flag* __a,
- 			     memory_order __m) noexcept
-   { __a->clear(__m); }
- 
--  inline __always_inline bool
-+  inline __libitm_always_inline bool
-   atomic_flag_test_and_set(atomic_flag* __a) noexcept
-   { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); }
- 
--  inline __always_inline bool
-+  inline __libitm_always_inline bool
-   atomic_flag_test_and_set(volatile atomic_flag* __a) noexcept
-   { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); }
- 
--  inline __always_inline void
-+  inline __libitm_always_inline void
-   atomic_flag_clear(atomic_flag* __a) noexcept
-   { atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
- 
--  inline __always_inline void
-+  inline __libitm_always_inline void
-   atomic_flag_clear(volatile atomic_flag* __a) noexcept
-   { atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
- 
- 
-   // Function templates generally applicable to atomic types.
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_is_lock_free(const atomic<_ITp>* __a) noexcept
-     { return __a->is_lock_free(); }
- 
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_is_lock_free(const volatile atomic<_ITp>* __a) noexcept
-     { return __a->is_lock_free(); }
- 
-   template<typename _ITp>
--    __always_inline void
-+    __libitm_always_inline void
-     atomic_init(atomic<_ITp>* __a, _ITp __i) noexcept;
- 
-   template<typename _ITp>
--    __always_inline void
-+    __libitm_always_inline void
-     atomic_init(volatile atomic<_ITp>* __a, _ITp __i) noexcept;
- 
-   template<typename _ITp>
--    __always_inline void
-+    __libitm_always_inline void
-     atomic_store_explicit(atomic<_ITp>* __a, _ITp __i,
- 			  memory_order __m) noexcept
-     { __a->store(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline void
-+    __libitm_always_inline void
-     atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i,
- 			  memory_order __m) noexcept
-     { __a->store(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_load_explicit(const atomic<_ITp>* __a, memory_order __m) noexcept
-     { return __a->load(__m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_load_explicit(const volatile atomic<_ITp>* __a,
- 			 memory_order __m) noexcept
-     { return __a->load(__m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_exchange_explicit(atomic<_ITp>* __a, _ITp __i,
- 			     memory_order __m) noexcept
-     { return __a->exchange(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_exchange_explicit(volatile atomic<_ITp>* __a, _ITp __i,
- 			     memory_order __m) noexcept
-     { return __a->exchange(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_weak_explicit(atomic<_ITp>* __a,
- 					  _ITp* __i1, _ITp __i2,
- 					  memory_order __m1,
-@@ -1643,7 +1643,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-     { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); }
- 
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_weak_explicit(volatile atomic<_ITp>* __a,
- 					  _ITp* __i1, _ITp __i2,
- 					  memory_order __m1,
-@@ -1651,7 +1651,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-     { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); }
- 
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_strong_explicit(atomic<_ITp>* __a,
- 					    _ITp* __i1, _ITp __i2,
- 					    memory_order __m1,
-@@ -1659,7 +1659,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-     { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); }
- 
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_strong_explicit(volatile atomic<_ITp>* __a,
- 					    _ITp* __i1, _ITp __i2,
- 					    memory_order __m1,
-@@ -1668,37 +1668,37 @@ namespace std // _GLIBCXX_VISIBILITY(default)
- 
- 
-   template<typename _ITp>
--    __always_inline void
-+    __libitm_always_inline void
-     atomic_store(atomic<_ITp>* __a, _ITp __i) noexcept
-     { atomic_store_explicit(__a, __i, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline void
-+    __libitm_always_inline void
-     atomic_store(volatile atomic<_ITp>* __a, _ITp __i) noexcept
-     { atomic_store_explicit(__a, __i, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_load(const atomic<_ITp>* __a) noexcept
-     { return atomic_load_explicit(__a, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_load(const volatile atomic<_ITp>* __a) noexcept
-     { return atomic_load_explicit(__a, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_exchange(atomic<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_exchange(volatile atomic<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_weak(atomic<_ITp>* __a,
- 				 _ITp* __i1, _ITp __i2) noexcept
-     {
-@@ -1708,7 +1708,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-     }
- 
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_weak(volatile atomic<_ITp>* __a,
- 				 _ITp* __i1, _ITp __i2) noexcept
-     {
-@@ -1718,7 +1718,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-     }
- 
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_strong(atomic<_ITp>* __a,
- 				   _ITp* __i1, _ITp __i2) noexcept
-     {
-@@ -1728,7 +1728,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-     }
- 
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_strong(volatile atomic<_ITp>* __a,
- 				   _ITp* __i1, _ITp __i2) noexcept
-     {
-@@ -1742,158 +1742,158 @@ namespace std // _GLIBCXX_VISIBILITY(default)
-   // intergral types as specified in the standard, excluding address
-   // types.
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_add_explicit(__atomic_base<_ITp>* __a, _ITp __i,
- 			      memory_order __m) noexcept
-     { return __a->fetch_add(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_add_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
- 			      memory_order __m) noexcept
-     { return __a->fetch_add(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_sub_explicit(__atomic_base<_ITp>* __a, _ITp __i,
- 			      memory_order __m) noexcept
-     { return __a->fetch_sub(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_sub_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
- 			      memory_order __m) noexcept
-     { return __a->fetch_sub(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_and_explicit(__atomic_base<_ITp>* __a, _ITp __i,
- 			      memory_order __m) noexcept
-     { return __a->fetch_and(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_and_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
- 			      memory_order __m) noexcept
-     { return __a->fetch_and(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_or_explicit(__atomic_base<_ITp>* __a, _ITp __i,
- 			     memory_order __m) noexcept
-     { return __a->fetch_or(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_or_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
- 			     memory_order __m) noexcept
-     { return __a->fetch_or(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_xor_explicit(__atomic_base<_ITp>* __a, _ITp __i,
- 			      memory_order __m) noexcept
-     { return __a->fetch_xor(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_xor_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
- 			      memory_order __m) noexcept
-     { return __a->fetch_xor(__i, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_add(__atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_add(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_sub(__atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_sub(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_and(__atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_and(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_or(__atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_or(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_xor(__atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); }
- 
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); }
- 
- 
-   // Partial specializations for pointers.
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_add_explicit(atomic<_ITp*>* __a, ptrdiff_t __d,
- 			      memory_order __m) noexcept
-     { return __a->fetch_add(__d, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_add_explicit(volatile atomic<_ITp*>* __a, ptrdiff_t __d,
- 			      memory_order __m) noexcept
-     { return __a->fetch_add(__d, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_add(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
-     { return __a->fetch_add(__d); }
- 
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_add(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
-     { return __a->fetch_add(__d); }
- 
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_sub_explicit(volatile atomic<_ITp*>* __a,
- 			      ptrdiff_t __d, memory_order __m) noexcept
-     { return __a->fetch_sub(__d, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_sub_explicit(atomic<_ITp*>* __a, ptrdiff_t __d,
- 			      memory_order __m) noexcept
-     { return __a->fetch_sub(__d, __m); }
- 
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_sub(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
-     { return __a->fetch_sub(__d); }
- 
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_sub(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
-     { return __a->fetch_sub(__d); }
-   // @} group atomics
-
--- 
-glebfm
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gcc.git/commitdiff/42ec3c2b5f72d6a796ec6121bd7b8ab11ffed729



More information about the pld-cvs-commit mailing list