# - when adding new subpackages with external libraries (like libffi)
# or having own Version, do not use epoch 6 there, reset them to 0!
#
-# TODO:
-# - revise obsoletes for new libmpx packages!
#
# Conditional build:
# - languages:
%bcond_without python # build without libstdc++ printers for gdb
%bcond_with gcc_libffi # packaging gcc libffi for system usage
# - other:
+%bcond_without apidocs # do not package API docs
%bcond_without bootstrap # omit 3-stage bootstrap
%bcond_with tests # torture gcc
%bcond_with symvers # enable versioned symbols in libstdc++ (WARNING: changes soname from .so.6 to so.7)
%define with_multilib2 1
%endif
%endif
-%ifarch %{ix86} %{x8664} x32 alpha arm ppc ppc64 sh sparc sparcv9 sparc64
+%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
-%ifarch %{ix86} %{x8664} x32 arm ppc ppc64 sparc sparcv9 sparc64
+%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
# check libffi version with libffi/configure.ac
Source3: libffi.pc.in
Source4: branch.sh
-# use branch.sh to update glibc-branch.diff
+# use branch.sh to update gcc-branch.diff
Patch100: %{name}-branch.diff
# Patch100-md5: d9a6ef7cbfd2b7e6800d77560824d59f
Patch0: %{name}-info.patch
BuildRequires: rpm-pythonprov
%endif
BuildRequires: rpmbuild(macros) >= 1.211
+BuildRequires: tar >= 1:1.22
BuildRequires: texinfo >= 4.7
+BuildRequires: xz
BuildRequires: zlib-devel
BuildConflicts: pdksh < 5.2.14-50
Requires: binutils >= 3:2.23
Ten pakiet zawiera skrypty Pythona dla GDB służące do ładnego
wypisywania typów i kontenerów libstdc++.
+%package -n libstdc++-apidocs
+Summary: C++ standard library API documentation
+Summary(pl.UTF-8): Dokumentacja API biblioteki standardowej C++
+License: FDL v1.3 (mainly), GPL v3+ (doxygen generated parts)
+Group: Documentation
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
+%endif
+
+%description -n libstdc++-apidocs
+API and internal documentation for C++ standard library.
+
+%description -n libstdc++-apidocs -l pl.UTF-8
+Dokumentacja API i wewnętrzna biblioteki standardowej C++.
+
%package fortran
Summary: Fortran 95 language support for GCC
Summary(es.UTF-8): Soporte de Fortran 95 para GCC
License: BSD
Group: Libraries
Requires: libstdc++-multilib-32 = %{version}-%{release}
-Obsoletes: libmpx-multilib
%description -n libmpx-multilib-32
This package contains the Memory Protection Extensions C language
Group: Development/Libraries
Requires: libmpx-devel = %{version}-%{release}
Requires: libmpx-multilib-32 = %{version}-%{release}
-Obsoletes: libmpx-multilib-devel
%description -n libmpx-multilib-32-devel
This package contains development files for Memory Protection
License: BSD
Group: Development/Libraries
Requires: libmpx-multilib-32-devel = %{version}-%{release}
-Obsoletes: libmpx-multilib-static
%description -n libmpx-multilib-32-static
This package contains the Memory Protection Extensions C language
%attr(755,root,root) %{_bindir}/gcc-ar
%attr(755,root,root) %{_bindir}/gcc-nm
%attr(755,root,root) %{_bindir}/gcc-ranlib
-#%attr(755,root,root) %{_bindir}/gccbug
%attr(755,root,root) %{_bindir}/gcov
%attr(755,root,root) %{_bindir}/gcov-dump
%attr(755,root,root) %{_bindir}/gcov-tool
%{gcclibdir}/include/sanitizer/common_interface_defs.h
%dir %{gcclibdir}/include/ssp
%{gcclibdir}/include/ssp/*.h
-%{gcclibdir}/include/cet.h
-%{gcclibdir}/include/cetintrin.h
%{gcclibdir}/include/float.h
%{gcclibdir}/include/gcov.h
-%{gcclibdir}/include/gfniintrin.h
%{gcclibdir}/include/iso646.h
%{gcclibdir}/include/limits.h
-%{gcclibdir}/include/movdirintrin.h
-%{gcclibdir}/include/pconfigintrin.h
%{gcclibdir}/include/stdalign.h
%{gcclibdir}/include/stdarg.h
%{gcclibdir}/include/stdatomic.h
%{gcclibdir}/include/syslimits.h
%{gcclibdir}/include/unwind.h
%{gcclibdir}/include/varargs.h
-%{gcclibdir}/include/vaesintrin.h
-%{gcclibdir}/include/vpclmulqdqintrin.h
-%{gcclibdir}/include/wbnoinvdintrin.h
%ifarch %{ix86} %{x8664} x32
%{gcclibdir}/include/adxintrin.h
%{gcclibdir}/include/ammintrin.h
%{gcclibdir}/include/bmi2intrin.h
%{gcclibdir}/include/bmiintrin.h
%{gcclibdir}/include/bmmintrin.h
+%{gcclibdir}/include/cet.h
+%{gcclibdir}/include/cetintrin.h
%{gcclibdir}/include/clflushoptintrin.h
%{gcclibdir}/include/clwbintrin.h
%{gcclibdir}/include/clzerointrin.h
%{gcclibdir}/include/fma4intrin.h
%{gcclibdir}/include/fmaintrin.h
%{gcclibdir}/include/fxsrintrin.h
+%{gcclibdir}/include/gfniintrin.h
%{gcclibdir}/include/ia32intrin.h
%{gcclibdir}/include/immintrin.h
%{gcclibdir}/include/lwpintrin.h
%{gcclibdir}/include/mm3dnow.h
%{gcclibdir}/include/mmintrin.h
%{gcclibdir}/include/mm_malloc.h
+%{gcclibdir}/include/movdirintrin.h
%{gcclibdir}/include/nmmintrin.h
%{gcclibdir}/include/mwaitxintrin.h
+%{gcclibdir}/include/pconfigintrin.h
%{gcclibdir}/include/pkuintrin.h
%{gcclibdir}/include/pmmintrin.h
%{gcclibdir}/include/popcntintrin.h
%{gcclibdir}/include/smmintrin.h
%{gcclibdir}/include/tbmintrin.h
%{gcclibdir}/include/tmmintrin.h
+%{gcclibdir}/include/vaesintrin.h
+%{gcclibdir}/include/vpclmulqdqintrin.h
+%{gcclibdir}/include/wbnoinvdintrin.h
%{gcclibdir}/include/wmmintrin.h
%{gcclibdir}/include/x86intrin.h
%{gcclibdir}/include/xmmintrin.h
%{gcclibdir}/include/xsavesintrin.h
%{gcclibdir}/include/xtestintrin.h
%endif
-%ifarch arm
+%ifarch %{arm}
+%{gcclibdir}/include/arm_acle.h
+%{gcclibdir}/include/arm_cmse.h
+%{gcclibdir}/include/arm_fp16.h
%{gcclibdir}/include/arm_neon.h
%{gcclibdir}/include/mmintrin.h
%endif
+%ifarch aarch64
+%{gcclibdir}/include/arm_acle.h
+%{gcclibdir}/include/arm_fp16.h
+%{gcclibdir}/include/arm_neon.h
+%endif
%ifarch ia64
%{gcclibdir}/include/ia64intrin.h
%endif
%endif
%ifarch mips
%{gcclibdir}/include/loongson.h
+%{gcclibdir}/include/msa.h
%endif
%ifarch powerpc ppc ppc64
%{gcclibdir}/include/altivec.h
+%{gcclibdir}/include/amo.h
+%{gcclibdir}/include/bmiintrin.h
+%{gcclibdir}/include/bmi2intrin.h
+%{gcclibdir}/include/emmintrin.h
+%{gcclibdir}/include/htmintrin.h
+%{gcclibdir}/include/htmxlintrin.h
+%{gcclibdir}/include/mm_malloc.h
+%{gcclibdir}/include/mmintrin.h
%{gcclibdir}/include/paired.h
%{gcclibdir}/include/ppc-asm.h
%{gcclibdir}/include/ppu_intrinsics.h
%{gcclibdir}/include/spe.h
%{gcclibdir}/include/spu2vmx.h
%{gcclibdir}/include/vec_types.h
+%{gcclibdir}/include/x86intrin.h
+%{gcclibdir}/include/xmmintrin.h
+%endif
+%ifarch s390
+%{gcclibdir}/include/htmintrin.h
+%{gcclibdir}/include/htmxlintrin.h
+%{gcclibdir}/include/s390intrin.h
+%{gcclibdir}/include/vecintrin.h
+%endif
+%ifarch sparc sparcv9 sparc64
+%{gcclibdir}/include/visintrin.h
%endif
%{?with_vtv:%{gcclibdir}/include/vtv_*.h}
%endif
%endif
-# see libmpx/configure.tgt for supported architectures
-%ifarch %{x8664} %{ix86}
-%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
-%endif
-
-%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}
-# see libmpx/configure.tgt for supported architectures;
-# no x32 there as of gcc 6.x
-%if "%{multilib2}" != "x32"
-%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
-%attr(755,root,root) %{_libdirm2}/libmpxwrappers.so.*.*.*
-%attr(755,root,root) %ghost %{_libdirm2}/libmpxwrappers.so.2
-
-%files -n libmpx-multilib-%{multilib2}-devel
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdirm2}/libmpx.so
-%attr(755,root,root) %{_libdirm2}/libmpxwrappers.so
-%{_libdirm2}/libmpx.la
-%{_libdirm2}/libmpxwrappers.la
-%{_libdirm2}/libmpx.spec
-
-%files -n libmpx-multilib-%{multilib2}-static
-%defattr(644,root,root,755)
-%{_libdirm2}/libmpx.a
-%{_libdirm2}/libmpxwrappers.a
-%endif
-%endif
-
%if %{with ada}
%files ada
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%{gcclibdir}/32/adalib/libgnarl.a
%{gcclibdir}/32/adalib/libgnat.a
+%ifarch %{x8664}
+# these exist only when host is x86_64???
+%{gcclibdir}/32/adalib/libgnarl_pic.a
+%{gcclibdir}/32/adalib/libgnat_pic.a
+%endif
%endif
%if %{with multilib2}
%defattr(644,root,root,755)
%{gcclibdir}/%{multilib2}/adalib/libgnarl.a
%{gcclibdir}/%{multilib2}/adalib/libgnat.a
+%ifarch %{x8664}
+# these exist only when host is x86_64???
+%{gcclibdir}/%{multilib2}/adalib/libgnarl_pic.a
+%{gcclibdir}/%{multilib2}/adalib/libgnat_pic.a
+%endif
%endif
%endif
%endif
%endif
+%if %{with apidocs}
+%files -n libstdc++-apidocs
+%defattr(644,root,root,755)
+%doc libstdc++-v3/doc/html/*
+%endif
%endif
%if %{with fortran}
%files -n liblsan-multilib-%{multilib2}-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/liblsan.so
+%{_libdirm2}/liblsan_preinit.o
%{_libdirm2}/liblsan.la
# it looks like duplicate of file from liblsan-devel, but actually it isn't:
# these packages are mutually exclusive
%files -n libtsan-multilib-%{multilib2}-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libtsan.so
+%{_libdirm2}/libtsan_preinit.o
%{_libdirm2}/libtsan.la
+# it looks like duplicate of file from libtsan-devel, but actually it isn't:
+# these packages are mutually exclusive
+# (either liblsan-devel.x86_64 or liblsan-multilib-64.x32)
+%{gcclibdir}/include/sanitizer/tsan_interface.h
%files -n libtsan-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%attr(755,root,root) %{gcclibdir}/plugin/libcc1plugin.so
%attr(755,root,root) %{gcclibdir}/plugin/libcp1plugin.la
%attr(755,root,root) %{gcclibdir}/plugin/libcp1plugin.so
+
+# see libmpx/configure.tgt for supported architectures
+%ifarch %{x8664} %{ix86}
+%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
+%endif
+
+%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}
+# see libmpx/configure.tgt for supported architectures;
+# no x32 there as of gcc 6.x
+%if "%{multilib2}" != "x32"
+%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
+%attr(755,root,root) %{_libdirm2}/libmpxwrappers.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libmpxwrappers.so.2
+
+%files -n libmpx-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libmpx.so
+%attr(755,root,root) %{_libdirm2}/libmpxwrappers.so
+%{_libdirm2}/libmpx.la
+%{_libdirm2}/libmpxwrappers.la
+%{_libdirm2}/libmpx.spec
+
+%files -n libmpx-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libmpx.a
+%{_libdirm2}/libmpxwrappers.a
+%endif
+%endif