%bcond_without objcxx # build without Objective-C++ support
# - features:
%bcond_without gomp # build without OpenMP support
-%bcond_without multilib # build without multilib support (it needs glibc[32&64]-devel)
-%bcond_with multilibx32 # build with x32 multilib on x86_64 support (it needs x32 glibc-devel)
+%bcond_without multilib # build without multilib support (which needs glibc[32&64]-devel)
+%bcond_with multilibx32 # build with x32 multilib support on x86_64 (needs x32 glibc-devel)
%bcond_without profiling # build without profiling
%bcond_without python # build without libstdc++ printers for gdb and aot-compile for java
-%bcond_without asan # build without Address Sanitizer library
-%bcond_without lsan # build without Leak Sanitizer library
-%bcond_without tsan # build without Thread Sanitizer library
-%bcond_without atomic # build without library for atomic operations not supported by hardware
%bcond_with gcc_libffi # packaging gcc libffi for system usage
# note: libgcj and libgo always have convenience gcc libffi linked in
# - libgcj options:
%undefine with_qt
%endif
-%ifnarch %{x8664} x32 ppc64 s390x sparc64
-%undefine with_multilib
+%ifarch sparc64
+# used to be broken (to be verified if needed)
+%undefine with_ada
%endif
+%ifnarch %{x8664} x32 aarch64 ppc64 s390x sparc64
+%undefine with_multilib
+%endif
%ifnarch %{x8664}
%undefine with_multilibx32
%endif
-%ifnarch %{ix86} %{x8664} x32 alpha arm ppc ppc64 sh sparc sparcv9 sparc64
-%undefine with_atomic
+# setup internal semi-bconds based on bconds and architecture
+%if %{with multilib} && %{with multilibx32}
+%define with_multilib2 1
%endif
-
-%ifnarch %{ix86} %{x8664} x32 ppc ppc64 sparc sparcv9 sparc64
-%undefine with_asan
+%ifarch %{ix86} %{x8664} x32 alpha arm ppc ppc64 sh sparc sparcv9 sparc64
+# library for atomic operations not supported by hardware
+%define with_atomic 1
%endif
-
-%ifnarch %{x8664}
-%undefine with_tsan
-%undefine with_lsan
+%ifarch %{ix86} %{x8664} x32 arm ppc ppc64 sparc sparcv9 sparc64
+# sanitizer feature (asan and ubsan are common for all supported archs)
+%define with_Xsan 1
%endif
-
-%ifarch sparc64
-%undefine with_ada
+%ifarch %{x8664}
+# lsan and tsan exist only for primary x86_64 ABI
+%define with_lsan_m0 1
+%define with_tsan_m0 1
+%endif
+%ifarch x32
+# lsan and tsan exist only for x86_64 ABI (i.e. our multilib2)
+%define with_lsan_m2 1
+%define with_tsan_m2 1
%endif
%define major_ver 4.9
# Formerly known as gcc(multilib)
BuildRequires: gcc(multilib-32)
%ifarch %{x8664}
-%{?with_multilibx32:BuildRequires: gcc(multilib-x32)}
+%if %{with multilibx32}
+BuildRequires: gcc(multilib-x32)
+BuildRequires: glibc-devel(x32)
+%endif
BuildRequires: glibc-devel(ix86)
-%{?with_multilibx32:BuildRequires: glibc-devel(x32)}
%endif
%ifarch x32
BuildRequires: gcc(multilib-64)
BuildRequires: glibc-devel(ix86)
BuildRequires: glibc-devel(x86_64)
%endif
+%ifarch aarch64
+BuildRequires: glibc-devel(arm)
+%endif
%ifarch ppc64
BuildRequires: glibc-devel(ppc)
%endif
%define _slibdir /%{_lib}
%if %{with multilib}
-# 32-bit environment on x86-64,ppc64,s390x,sparc64
+# 32-bit environment on x86-64,aarch64,ppc64,s390x,sparc64
%define _slibdir32 /lib
%define _libdir32 /usr/lib
%define _pkgconfigdir32 %{_libdir32}/pkgconfig
+%if %{with multilib2}
# x32 environment on x86-64
%ifarch %{x8664}
%define multilib2 x32
%define _pkgconfigdirm2 %{_libdir64}/pkgconfig
%endif
%endif
+%endif
%define gcclibdir %{_libdir}/gcc/%{_target_platform}/%{version}
%define gcjdbexecdir gcj-%{version}-%{gcj_soname_ver}
%package -n liblsan
Summary: The Leak Sanitizer library
-Summary(pl.UTF-8): Biblioteka Leak Sanitizer do kontroli adresów
+Summary(pl.UTF-8): Biblioteka Leak Sanitizer do kontroli wycieków
Group: Libraries
%description -n liblsan
-fsanitize=leak instrumented programs.
%description -n liblsan -l pl.UTF-8
-Ten pakiet zawiera bibliotekę Leak Sanitizer, służącą do
-kontroli adresów w programach kompilowanych z opcją
--fsanitize=leak.
+Ten pakiet zawiera bibliotekę Leak Sanitizer, służącą do kontroli
+wycieków w programach kompilowanych z opcją -fsanitize=leak.
%package -n liblsan-multilib-%{multilib2}
Summary: The Leak Sanitizer library - %{multilib2}-bit version
-Summary(pl.UTF-8): Biblioteka Leak Sanitizer do kontroli adresów - wersja %{multilib2}-bitowa
+Summary(pl.UTF-8): Biblioteka Leak Sanitizer do kontroli wycieków - wersja %{multilib2}-bitowa
Group: Libraries
%description -n liblsan-multilib-%{multilib2}
%description -n liblsan-multilib-%{multilib2} -l pl.UTF-8
Ten pakiet zawiera %{multilib2}-bitową wersję biblioteki Leak Sanitizer,
-służącej do kontroli adresów w programach kompilowanych z opcją
+służącej do kontroli wycieków w programach kompilowanych z opcją
-fsanitize=leak.
%package -n liblsan-devel
--enable-linker-build-id \
--enable-linux-futex \
--enable-long-long \
-%ifarch x32
- --with-abi=x32 \
-%endif
-%ifarch %{x8664}
- %{?with_multilib:--with-multilib-list=m32,m64%{?with_multilibx32:,mx32}} \
-%endif
-%ifarch x32
- %{?with_multilib:--with-multilib-list=m32,m64,mx32} \
-%endif
%{!?with_multilib:--disable-multilib} \
--enable-nls \
--enable-lto \
--enable-shared \
--enable-threads=posix \
--disable-werror \
- --with-cloog \
+%ifarch x32
+ --with-abi=x32 \
+%endif
%ifarch %{x8664} x32
--with-arch-32=x86-64 \
%endif
+ --with-cloog \
%ifarch sparc64
--with-cpu=ultrasparc \
%endif
--with-gnu-ld \
--with-linker-hash-style=gnu \
--with-long-double-128 \
+%if %{with multilib}
+%ifarch %{x8664}
+ --with-multilib-list=m32,m64%{?with_multilibx32:,mx32} \
+%endif
+%ifarch x32
+ --with-multilib-list=m32,m64,mx32 \
+%endif
+%endif
--with-ppl \
--disable-ppl-version-check \
--with-slibdir=%{_slibdir} \
mv $RPM_BUILD_ROOT%{_libdir32}/libgomp.so.* $RPM_BUILD_ROOT%{_slibdir32}
ln -sf %{_slibdir32}/$libgomp $RPM_BUILD_ROOT%{_libdir32}/libgomp.so
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
libssp=$(cd $RPM_BUILD_ROOT%{_libdirm2}; echo libssp.so.*.*.*)
mv $RPM_BUILD_ROOT%{_libdirm2}/libssp.so.* $RPM_BUILD_ROOT%{_slibdirm2}
ln -sf %{_slibdirm2}/$libssp $RPM_BUILD_ROOT%{_libdirm2}/libssp.so
ln -sf libgnat-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir32}/libgnat.so
ln -sf libgnarl-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir32}/libgnarl.so
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
mv -f $RPM_BUILD_ROOT%{gcclibdir}/%{multilib2}/adalib/*.so.1 \
$RPM_BUILD_ROOT%{_libdirm2}
# check if symlink to be made is valid
s,@exec_prefix@,%{_exec_prefix},
s,@libdir@,%{_libdir32},
s,@gcclibdir@,%{gcclibdir},' %{SOURCE3} >$RPM_BUILD_ROOT%{_pkgconfigdir32}/libffi.pc
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
[ ! -f $RPM_BUILD_ROOT%{_pkgconfigdirm2}/libffi.pc ] || exit 1
install -d $RPM_BUILD_ROOT%{_pkgconfigdirm2}
sed -e 's,@prefix@,%{_prefix},
%{?with_cxx:libstdc++.la libsupc++.la} \
%{?with_fortran:libgfortran.la libquadmath.la} \
%{?with_gomp:libgomp.la} \
- %{?with_asan:libasan.la} \
- %{?with_lsan:liblsan.la} \
- %{?with_tsan:libtsan.la} \
- libubsan.la \
+ %{?with_Xsan:libasan.la libubsan.la} \
+ %{?with_lsan_m0:liblsan.la} \
+ %{?with_tsan_m0:libtsan.la} \
%{?with_atomic:libatomic.la} \
%if %{with java}
%{?with_gcc_libffi:libffi.la} \
%{?with_cxx:libstdc++.la libsupc++.la} \
%{?with_fortran:libgfortran.la libquadmath.la} \
%{?with_gomp:libgomp.la} \
- %{?with_asan:libasan.la} \
- libubsan.la \
+ %{?with_Xsan:libasan.la libubsan.la} \
+ %{?with_lsan_m1:liblsan.la} \
+ %{?with_tsan_m1:libtsan.la} \
%{?with_atomic:libatomic.la} \
%{?with_java:%{?with_gcc_libffi:libffi.la}} \
%{?with_objc:libobjc.la};
%{__perl} %{SOURCE1} $RPM_BUILD_ROOT%{_libdir32}/$f %{_libdir32} > $RPM_BUILD_ROOT%{_libdir32}/$f.fixed
mv $RPM_BUILD_ROOT%{_libdir32}/$f{.fixed,}
done
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
for f in libitm.la libssp.la libssp_nonshared.la \
%{?with_cxx:libstdc++.la libsupc++.la} \
%{?with_fortran:libgfortran.la libquadmath.la} \
%{?with_gomp:libgomp.la} \
- %{?with_asan:libasan.la} \
-%ifarch %{x8664}
- liblsan.la \
- libtsan.la \
-%endif
- libubsan.la \
+ %{?with_Xsan:libasan.la libubsan.la} \
+ %{?with_lsan_m2:liblsan.la} \
+ %{?with_tsan_m2:libtsan.la} \
%{?with_atomic:libatomic.la} \
%{?with_java:%{?with_gcc_libffi:libffi.la}} \
%{?with_objc:libobjc.la};
%{__rm} $RPM_BUILD_ROOT%{gcclibdir}/liblto_plugin.la
%if %{with python}
-for LIB in lib lib64 libx32; do
- LIBPATH="$RPM_BUILD_ROOT%{_datadir}/gdb/auto-load%{_prefix}/$LIB"
+for LIBDIR in %{_libdir} %{?with_multilib:%{_libdir32}} %{?with_multilib2:%{_libdirm2}} ; do
+ LIBPATH="$RPM_BUILD_ROOT%{_datadir}/gdb/auto-load$LIBDIR"
install -d $LIBPATH
# basename is being run only for the native (non-biarch) file.
sed -e 's,@pythondir@,%{_datadir}/gdb,' \
- -e 's,@toolexeclibdir@,%{_prefix}/'"$LIB," \
+ -e "s,@toolexeclibdir@,$LIBDIR," \
< libstdc++-v3/python/hook.in \
> $LIBPATH/$(basename $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libstdc++.so.*.*.*)-gdb.py
done
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libstdc++.so.*-gdb.py
%if %{with multilib}
%{__rm} $RPM_BUILD_ROOT%{_libdir32}/libstdc++.so.*-gdb.py
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%{__rm} $RPM_BUILD_ROOT%{_libdirm2}/libstdc++.so.*-gdb.py
%endif
%endif
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libvtv*
%if %{with multilib}
%{__rm} $RPM_BUILD_ROOT%{_libdir32}/libvtv*
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%{__rm} $RPM_BUILD_ROOT%{_libdirm2}/libvtv*
%endif
%endif
%{_libdir32}/libssp_nonshared.la
%{_libdir32}/libssp_nonshared.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_slibdirm2}/libgcc_s.so
%attr(755,root,root) %ghost %{_slibdir32}/libssp.so.0
%attr(755,root,root) %ghost %{_slibdir32}/libitm.so.1
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libgcc-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_slibdirm2}/libgcc_s.so.1
%attr(755,root,root) %{_slibdir32}/libgomp.so.*.*.*
%attr(755,root,root) %ghost %{_slibdir32}/libgomp.so.1
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libgomp-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_slibdirm2}/libgomp.so.*.*.*
%{_libdir32}/libgomp.la
%{_libdir32}/libgomp.spec
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libgomp-multilib-%{multilib2}-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libgomp.so
%defattr(644,root,root,755)
%{_libdir32}/libgomp.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libgomp-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%{_libdirm2}/libgomp.a
%files -n libcilkrts
%defattr(644,root,root,755)
+%doc libcilkrts/{ChangeLog,README}
%attr(755,root,root) %{_libdir}/libcilkrts.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libcilkrts.so.5
%attr(755,root,root) %{_libdir32}/libcilkrts.so.*.*.*
%attr(755,root,root) %ghost %{_libdir32}/libcilkrts.so.5
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libcilkrts-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libcilkrts.so.*.*.*
%{_libdir32}/libcilkrts.la
%{_libdir32}/libcilkrts.spec
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libcilkrts-multilib-%{multilib2}-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libcilkrts.so
%defattr(644,root,root,755)
%{_libdir32}/libcilkrts.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libcilkrts-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%{_libdirm2}/libcilkrts.a
%{gcclibdir}/32/adalib/libgmem.a
%endif
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files ada-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libgnarl-*.so
%attr(755,root,root) %{_libdir32}/libgnat-*.so.1
%attr(755,root,root) %{_libdir32}/libgnat.so.1
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libgnat-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libgnarl-*.so.1
%{gcclibdir}/32/adalib/libgnarl.a
%{gcclibdir}/32/adalib/libgnat.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libgnat-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%{gcclibdir}/%{multilib2}/adalib/libgnarl.a
%{_libdir32}/libsupc++.la
%{_libdir32}/libsupc++.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files c++-multilib-%{multilib2}
%defattr(644,root,root,755)
%{_libdirm2}/libsupc++.la
%attr(755,root,root) %{_libdir32}/libstdc++.so.*.*.*
%attr(755,root,root) %ghost %{_libdir32}/libstdc++.so.%{cxx_sover}
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libstdc++-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libstdc++.so.*.*.*
%{py_sitescriptdir}/libstdcxx/*.py[co]
%dir %{py_sitescriptdir}/libstdcxx/v6
%{py_sitescriptdir}/libstdcxx/v6/*.py[co]
-%{_datadir}/gdb/auto-load/usr/%{_lib}/libstdc++.so.%{cxx_sover}.*.*-gdb.py
+%{_datadir}/gdb/auto-load%{_libdir}/libstdc++.so.%{cxx_sover}.*.*-gdb.py
%if %{with multilib}
-%{_datadir}/gdb/auto-load/usr/lib/libstdc++.so.%{cxx_sover}.*.*-gdb.py
-%ifarch %{x8664}
-%{?with_multilibx32:%{_datadir}/gdb/auto-load/usr/libx32/libstdc++.so.%{cxx_sover}.*.*-gdb.py}
-%endif
-%ifarch x32
-%{_datadir}/gdb/auto-load/usr/lib64/libstdc++.so.%{cxx_sover}.*.*-gdb.py
+%{_datadir}/gdb/auto-load%{_libdir32}/libstdc++.so.%{cxx_sover}.*.*-gdb.py
+%if %{with multilib2}
+%{_datadir}/gdb/auto-load%{_libdirm2}/libstdc++.so.%{cxx_sover}.*.*-gdb.py
%endif
%endif
%endif
%attr(755,root,root) %{_libdir32}/libstdc++.so
%{_libdir32}/libstdc++.la
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libstdc++-multilib-%{multilib2}-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libstdc++.so
%defattr(644,root,root,755)
%{_libdir32}/libstdc++.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libstdc++-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%{_libdirm2}/libstdc++.a
%{gcclibdir}/32/libgfortranbegin.la
%{gcclibdir}/32/libgfortranbegin.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files fortran-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libgfortran.so
%attr(755,root,root) %{_libdir32}/libgfortran.so.*.*.*
%attr(755,root,root) %ghost %{_libdir32}/libgfortran.so.3
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libgfortran-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libgfortran.so.*.*.*
%defattr(644,root,root,755)
%{_libdir32}/libgfortran.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libgfortran-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%{_libdirm2}/libgfortran.a
%attr(755,root,root) %{_libdir32}/libquadmath.so.*.*.*
%attr(755,root,root) %ghost %{_libdir32}/libquadmath.so.0
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libquadmath-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libquadmath.so.*.*.*
%attr(755,root,root) %{_libdir32}/libquadmath.so
%{_libdir32}/libquadmath.la
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libquadmath-multilib-%{multilib2}-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libquadmath.so
%defattr(644,root,root,755)
%{_libdir32}/libquadmath.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libquadmath-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%{_libdirm2}/libquadmath.a
%attr(755,root,root) %{_libdir32}/libffi.so.*.*.*
%attr(755,root,root) %ghost %{_libdir32}/libffi.so.4
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libffi-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libffi.so.*.*.*
%{_libdir32}/libffi.la
%{_pkgconfigdir32}/libffi.pc
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libffi-multilib-%{multilib2}-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libffi.so
%defattr(644,root,root,755)
%{_libdir32}/libffi.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libffi-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%{_libdirm2}/libffi.a
%attr(755,root,root) %{_libdir32}/libobjc.so
%{_libdir32}/libobjc.la
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files objc-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libobjc.so
%attr(755,root,root) %{_libdir32}/libobjc.so.*.*.*
%attr(755,root,root) %ghost %{_libdir32}/libobjc.so.4
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libobjc-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libobjc.so.*.*.*
%defattr(644,root,root,755)
%{_libdir32}/libobjc.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libobjc-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%{_libdirm2}/libobjc.a
%dir %{_libdir32}/go
%{_libdir32}/go/%{version}
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files go-multilib-%{multilib2}
%defattr(644,root,root,755)
%dir %{_libdirm2}/go
%attr(755,root,root) %{_libdir32}/libgo.so.*.*.*
%attr(755,root,root) %ghost %{_libdir32}/libgo.so.5
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libgo-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libgo.so.*.*.*
%{_libdir32}/libgo.la
%{_libdir32}/libgobegin.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libgo-multilib-%{multilib2}-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libgo.so
%defattr(644,root,root,755)
%{_libdir32}/libgo.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libgo-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%{_libdirm2}/libgo.a
%endif
%endif
-%if %{with asan}
+%if %{with Xsan}
%files -n libasan
%defattr(644,root,root,755)
%doc libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
%attr(755,root,root) %{_libdir32}/libasan.so.*.*.*
%attr(755,root,root) %ghost %{_libdir32}/libasan.so.1
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libasan-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libasan.so.*.*.*
%{_libdir32}/libasan_preinit.o
%{_libdir32}/libasan.la
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libasan-multilib-%{multilib2}-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libasan.so
%defattr(644,root,root,755)
%{_libdir32}/libasan.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libasan-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%{_libdirm2}/libasan.a
%endif
%endif
-%if %{with lsan}
+%if %{with lsan_m0}
%files -n liblsan
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/liblsan.so.*.*.*
%{_libdir}/liblsan.a
%endif
-%if %{with multilib}
-%ifarch x32
+%if %{with multilib2} && %{with lsan_m2}
%files -n liblsan-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/liblsan.so.*.*.*
%defattr(644,root,root,755)
%{_libdirm2}/liblsan.a
%endif
-%endif
-%if %{with tsan}
+%if %{with tsan_m0}
%files -n libtsan
%defattr(644,root,root,755)
%doc libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
%{_libdir}/libtsan.a
%endif
-%if %{with multilib}
-%ifarch x32
+%if %{with multilib2} && %{with tsan_m2}
%files -n libtsan-multilib-%{multilib2}
%defattr(644,root,root,755)
%doc libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
%defattr(644,root,root,755)
%{_libdirm2}/libtsan.a
%endif
-%endif
+%if %{with Xsan}
%files -n libubsan
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libubsan.so.*.*.*
%attr(755,root,root) %{_libdir32}/libubsan.so.*.*.*
%attr(755,root,root) %ghost %{_libdir32}/libubsan.so.0
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libubsan-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libubsan.so.*.*.*
%attr(755,root,root) %{_libdir32}/libubsan.so
%{_libdir32}/libubsan.la
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libubsan-multilib-%{multilib2}-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libubsan.so
%defattr(644,root,root,755)
%{_libdir32}/libubsan.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libubsan-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%{_libdirm2}/libubsan.a
%endif
%endif
+%endif
%if %{with atomic}
%files -n libatomic
%attr(755,root,root) %{_libdir32}/libatomic.so.*.*.*
%attr(755,root,root) %ghost %{_libdir32}/libatomic.so.1
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libatomic-multilib-%{multilib2}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libatomic.so.*.*.*
%attr(755,root,root) %{_libdir32}/libatomic.so
%{_libdir32}/libatomic.la
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libatomic-multilib-%{multilib2}-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libatomic.so
%defattr(644,root,root,755)
%{_libdir32}/libatomic.a
-%ifarch %{?with_multilibx32:%{x8664}} x32
+%if %{with multilib2}
%files -n libatomic-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%{_libdirm2}/libatomic.a