%global gmp_version 6.2.0 %global mpc_version 1.3.1 %global mpfr_version 4.2.0 %global isl_version 0.24 %global __strip /bin/true %global cross mips64-elf %global bootstrap 0 Name: gcc-%{cross} Version: 13.2.0 %global cross_binutils_version 2.41 Release: 3%{?dist} Summary: %{cross} gcc License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD URL: http://gcc.gnu.org Source0: https://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.gz Source1: https://ftp.gnu.org/gnu/gmp/gmp-%{gmp_version}.tar.bz2 Source2: https://ftp.gnu.org/gnu/mpc/mpc-%{mpc_version}.tar.gz Source3: https://ftp.gnu.org/gnu/mpfr/mpfr-%{mpfr_version}.tar.gz Source4: https://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.bz2 BuildRequires: gcc BuildRequires: gcc-c++ autoconf %if ! %{bootstrap} BuildRequires: newlib-mips64-elf %endif BuildRequires: glibc-devel >= 2.4.90-13 BuildRequires: elfutils-devel >= 0.147 BuildRequires: elfutils-libelf-devel >= 0.147 BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo, sharutils BuildRequires: binutils-%{cross} >= %{cross_binutils_version} Requires: binutils-%{cross} >= %{cross_binutils_version} %description %{cross} version of gcc %prep %autosetup -c %autosetup -c -T -D -a 1 %autosetup -c -T -D -a 2 %autosetup -c -T -D -a 3 %autosetup -c -T -D -a 4 pushd "gcc-%{version}" ln -s "../gmp-%{gmp_version}" gmp ln -s "../mpc-%{mpc_version}" mpc ln -s "../mpfr-%{mpfr_version}" mpfr ln -s "../isl-%{isl_version}" isl popd %package -n cpp-%{cross} Summary: Cross-build binary utilities for %{cross} Requires: gcc-%{cross} == %{version}-%{release} %description -n cpp-%{cross} %{cross} version of cpp %package -n gcc-c++-%{cross} Summary: Cross-build binary utilities for %{cross} Requires: gcc-%{cross} == %{version}-%{release} %description -n gcc-c++-%{cross} %{cross} version of g++ %build OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-flto=auto//g;s/-flto//g;s/-ffat-lto-objects//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -pipe / /g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -g / -g1 /g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Werror=format-security/-Wformat-security/g'` %define FLAGS \ CC="$CC" \ CXX="$CXX" \ CFLAGS="$OPT_FLAGS" \ CXXFLAGS="$OPT_FLAGS" \ CFLAGS_FOR_TARGET="-g -O2 -Wall -fexceptions" \ AR_FOR_TARGET=%{_bindir}/%{cross}-ar \ AS_FOR_TARGET=%{_bindir}/%{cross}-as \ LD_FOR_TARGET=%{_bindir}/%{cross}-ld \ NM_FOR_TARGET=%{_bindir}/%{cross}-nm \ OBJDUMP_FOR_TARGET=%{_bindir}/%{cross}-objdump \ RANLIB_FOR_TARGET=%{_bindir}/%{cross}-ranlib \ READELF_FOR_TARGET=%{_bindir}/%{cross}-readelf \ STRIP_FOR_TARGET=%{_bindir}/%{cross}-strip \ LDFLAGS='-Wl,-z,relro ' %{FLAGS} ./gcc-%{version}/configure \ --with-arch=vr4300 \ --with-tune=vr4300 \ --bindir=%{_bindir} \ --build=%{_target_platform} \ --datadir=%{_datadir} \ --with-ld=/usr/bin/%{cross}-ld \ --enable-checking=release \ --exec-prefix=%{_exec_prefix} \ --host=%{_target_platform} \ --includedir=%{_includedir} \ --infodir=%{_infodir} \ --libexecdir=%{_libexecdir} \ --localstatedir=%{_localstatedir} \ --mandir=%{_mandir} \ --prefix=%{_prefix} \ --program-prefix=%{cross}- \ --sbindir=%{_sbindir} \ --sharedstatedir=%{_sharedstatedir} \ --sysconfdir=%{_sysconfdir} \ --target=%{cross} \ --with-plugin-ld=%{_bindir}/%{cross}-ld \ --with-sysroot=%{_prefix}/%{cross}/sys-root \ \ --enable-languages=c,c++ \ --without-headers \ --disable-libssp \ --enable-multilib \ --disable-shared \ --with-gcc \ --with-newlib \ --disable-threads \ --disable-win32-registry \ --disable-nls \ --disable-werror \ --with-system-zlib %{FLAGS} make %{_smp_mflags} tooldir=%{_prefix} all-gcc all-target-libgcc %if ! %{bootstrap} %{FLAGS} make %{_smp_mflags} tooldir=%{_prefix} all %endif %install make DESTDIR=%{buildroot} install-gcc install-target-libgcc %if ! %{bootstrap} make DESTDIR=%{buildroot} install all %endif rm -r %{buildroot}%{_infodir} rm -r %{buildroot}%{_mandir}/man7 rm -f %{buildroot}%{_prefix}/lib/libiberty.a rm -f %{buildroot}%{_libdir}/libcc1* ||: rmdir %{buildroot}/usr/%{target}/share/gcc-%{version} ||: rmdir %{buildroot}/usr/%{target}/share ||: rm -r %{buildroot}%{_prefix}/lib*/gcc/%{target}/%{version}/install-tools ||: rm -r %{buildroot}%{_libexecdir}/gcc/%{target}/%{version}/install-tools ||: rm -f %{buildroot}%{_libexecdir}/gcc/%{target}/%{version}/*.la mkdir -p %{buildroot}/usr/%{target}/share/gcc-%{version}/ mv %{buildroot}/%{_datadir}/gcc-%{version}/* %{buildroot}/usr/%{cross}/share/gcc-%{version}/ ||: rm -rf %{buildroot}/%{_datadir}/gcc-%{version} ||: %files %license gcc-%{version}/COPYING %{_bindir}/%{cross}-gcc* %{_bindir}/%{cross}-gcov* %{_bindir}/%{cross}-lto-dump %{_prefix}/lib/gcc/%{cross} %{_libexecdir}/gcc/%{cross} %{_mandir}/man1/%{cross}-*.1.gz %{_prefix}/%{cross}/lib/ %files -n gcc-c++-%{cross} %{_bindir}/%{cross}-c++ %{_bindir}/%{cross}-g++ %{_prefix}/%{cross}/include/c++/%{version}/ %{_mandir}/man1/%{cross}-g++.1.gz %files -n cpp-%{cross} %{_bindir}/%{cross}-cpp %changelog * Sat Oct 28 2023 Jan Drögehoff - 13.2.0-3 - rebuild to complete bootstrap * Sat Oct 28 2023 Jan Drögehoff - 13.2.0-2 - rebuild for libdragon compatibility * Sat Oct 28 2023 Jan Drögehoff - 13.2.0-1 - Update to 13.2.0 * Wed Apr 19 2023 Jan Drögehoff - 12.2.0-1 - Update to 12.2.0 * Wed May 18 2022 Jan Drögehoff - 12.1.0-1 - Update to 12.1.0 * Sun Mar 27 2022 Jan Drögehoff - 11.2.0-2 - rewrite spec * Fri Dec 31 2021 Jan Drögehoff - 11.2.0-1 - Update to 11.2.0 * Sat Aug 22 2020 Jan Drögehoff - 10.2.1-1 - Update to 10.2.1 * Sat Jun 06 2020 Jan Drögehoff - 10.1.0-1 - Initial Release