From a1e9c5690dec90f79e2c224c3fd67f8c4effb1a7 Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Sun, 29 Jul 2018 18:31:27 +0200 Subject: [PATCH] - cleaned up directory mess, rel .1 --- crossnacl-gcc.spec | 210 +++++++++++++++++++++++++++------------------ 1 file changed, 126 insertions(+), 84 deletions(-) diff --git a/crossnacl-gcc.spec b/crossnacl-gcc.spec index 2dd13fb..a773107 100644 --- a/crossnacl-gcc.spec +++ b/crossnacl-gcc.spec @@ -1,12 +1,14 @@ # # Conditional build: -%bcond_with bootstrap # build without NaCL newlib package dependency (without c++ package) +%bcond_with bootstrap # build without NaCl newlib package dependency (without c++,objc packages) %define gitver 3960379 +%define rel 1 Summary: Various compilers (C, C++) for NaCl +Summary(pl.UTF-8): Różne kompilatory (C, C++) dla NaCl Name: crossnacl-gcc Version: 4.4.3 -Release: 13.git%{gitver} +Release: 13.git%{gitver}.%{rel} License: GPL v3+ and GPL v3+ with exceptions and GPL v2+ with exceptions Group: Development/Languages Source0: nacl-gcc-%{version}-git%{gitver}.tar.xz @@ -14,13 +16,15 @@ Source0: nacl-gcc-%{version}-git%{gitver}.tar.xz Source1: get-source.sh Patch0: gnu_inline-mismatch.patch URL: http://sourceware.org/gcc/ -BuildRequires: cloog-ppl-devel +BuildRequires: cloog-ppl-devel >= 0.15 BuildRequires: crossnacl-binutils BuildRequires: elfutils-devel -BuildRequires: gmp-c++-devel -BuildRequires: gmp-devel -BuildRequires: mpfr-devel +BuildRequires: gmp-c++-devel >= 4.1 +BuildRequires: gmp-devel >= 4.1 +BuildRequires: libstdc++-devel +BuildRequires: mpfr-devel >= 2.3.2 BuildRequires: perl-tools-pod +BuildRequires: ppl-devel >= 0.10 BuildRequires: tar >= 1:1.22 BuildRequires: xz BuildConflicts: cloog-isl-devel @@ -31,19 +35,26 @@ ExclusiveArch: %{ix86} %{x8664} BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define target x86_64-nacl -%define arch %{_prefix}/%{target} -%define gcc_ver %{version} -%define gcclib %{_libdir}/gcc/%{target}/%{gcc_ver} -%define gccnlib %{_prefix}/lib/gcc/%{target}/%{gcc_ver} +%define archprefix %{_prefix}/%{target} +%define archbindir %{archprefix}/bin +%define archincludedir %{archprefix}/include +%define archlib32dir %{archprefix}/lib32 +%define archlib64dir %{archprefix}/lib64 +%define gccarchdir %{_libdir}/gcc/%{target} +%define gcclibdir %{gccarchdir}/%{version} %define filterout_cpp -D_FORTIFY_SOURCE=[0-9]+ -%define filterout_c -Werror=format-security +%define filterout_c -Werror=format-security %description -The gcc package contains the GNU Compiler Collection version 4.4.3. -You'll need this package in order to compile C code. +The gcc package contains the GNU Compiler Collection. -This provides support for NaCl targets. +This package provides support for NaCl targets. + +%description -l pl.UTF-8 +Pakiet gcc zawiera zestaw kompilatorów GNU Compiler Collection. + +Ten pakiet zapewnia obsługę platformy docelowej NaCl. %package c++ Summary: C++ support for crossnacl-gcc @@ -56,19 +67,19 @@ This package adds C++ support to the GNU Compiler Collection for NaCl targets. %description c++ -l pl.UTF-8 -Ten pakiet dodaje obsługę C++ do kompilatora gcc dla NaCL. +Ten pakiet dodaje obsługę C++ do kompilatora gcc dla NaCl. %package objc -Summary: NaCL binary utility development utilities - objc -Summary(pl.UTF-8): Zestaw narzędzi NaCL - objc +Summary: NaCl binary utility development utilities - objc +Summary(pl.UTF-8): Zestaw narzędzi programistycznych NaCl - objc Group: Development/Languages Requires: %{name} = %{version}-%{release} %description objc -This package contains cross targeted objc compiler. +This package contains objc compiler cross targeted to NaCl. %description objc -l pl.UTF-8 -Ten pakiet zawiera kompilator objc generujący kod pod Win32. +Ten pakiet zawiera kompilator objc generujący kod dla NaCl. %prep %setup -q -n nacl-gcc-%{version}-git%{?gitver} @@ -95,45 +106,47 @@ esac GCC_DEFINES="-Dinhibit_libc -D__gthr_posix_h" ../configure \ + CC="%{__cc}" \ + CFLAGS="$OPT_FLAGS $GCC_DEFINES" \ + CXXFLAGS="$(echo $OPT_FLAGS | sed 's/ -Wall / /g')" \ + XCFLAGS="$OPT_FLAGS" \ + MAKEINFO=/bin/true \ --prefix=%{_prefix} \ --mandir=%{_mandir} \ --infodir=%{_infodir} \ + --libdir=%{_libdir} \ --libexecdir=%{_libdir} \ - --enable-checking=release \ - --with-system-zlib \ --enable-__cxa_atexit \ - --disable-libunwind-exceptions \ - --enable-gnu-unique-object \ + --enable-checking=release \ --disable-decimal-float \ + --enable-gnu-unique-object \ + --disable-libgcj \ --disable-libgomp \ --disable-libmudflap \ --disable-libssp \ --disable-libstdcxx-pch \ + --disable-libunwind-exceptions \ + --disable-ppl-version-check \ --disable-shared \ - --with-ppl --with-cloog \ - MAKEINFO=/bin/true \ - CC="%{__cc}" \ - CFLAGS="$OPT_FLAGS $GCC_DEFINES" \ - CXXFLAGS="$(echo $OPT_FLAGS | sed 's/ -Wall / /g')" \ - XCFLAGS="$OPT_FLAGS" \ + --with-cloog \ + --with-host-libstdcxx="-lstdc++ -lm" \ + --with-ppl \ + --with-system-zlib \ %if %{with bootstrap} - --disable-threads \ - --enable-languages="c" \ - --without-headers \ CFLAGS_FOR_TARGET="-O2 -g" \ CXXFLAGS_FOR_TARGET="-O2 -g" \ + --enable-languages="c" \ + --disable-threads \ + --without-headers \ %else CFLAGS_FOR_TARGET="-O2 -g -mtls-use-call -I/usr/x86_64-nacl/include/" \ CXXFLAGS_FOR_TARGET="-O2 -g -mtls-use-call -I/usr/x86_64-nacl/include/" \ - --enable-threads=nacl \ --enable-languages="c,c++,objc" \ + --enable-threads=nacl \ --enable-tls \ --with-newlib \ %endif - --target=%{target} \ - --with-host-libstdcxx="-lstdc++ -lm" \ - --disable-ppl-version-check \ - --disable-libgcj + --target=%{target} %{__make} \ BOOT_CFLAGS="$OPT_FLAGS" \ @@ -145,8 +158,8 @@ GCC_DEFINES="-Dinhibit_libc -D__gthr_posix_h" %install rm -rf $RPM_BUILD_ROOT -cd obj-%{target} -%{__make} \ + +%{__make} -C obj-%{target} \ %if %{with bootstrap} install-gcc install-target-libgcc \ %else @@ -155,10 +168,9 @@ cd obj-%{target} DESTDIR=$RPM_BUILD_ROOT # move fixed includes to proper place -mv $RPM_BUILD_ROOT%{gccnlib}/include-fixed/*.h $RPM_BUILD_ROOT%{gccnlib}/include - -%{__rm} -r $RPM_BUILD_ROOT%{gccnlib}/include-fixed -%{__rm} -r $RPM_BUILD_ROOT%{gccnlib}/install-tools +%{__mv} $RPM_BUILD_ROOT%{gcclibdir}/include-fixed/{limits,syslimits}.h $RPM_BUILD_ROOT%{gcclibdir}/include +%{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/include-fixed +%{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/install-tools # Delete supplemental files that would conflict with the core toolchain %{__rm} -r $RPM_BUILD_ROOT%{_infodir} @@ -169,7 +181,13 @@ mv $RPM_BUILD_ROOT%{gccnlib}/include-fixed/*.h $RPM_BUILD_ROOT%{gccnlib}/include # Don't dupe the system libiberty.a %if %{without bootstrap} %{__rm} $RPM_BUILD_ROOT%{_libdir}/libiberty.a -%{__rm} $RPM_BUILD_ROOT%{_prefix}/%{target}/lib*/libiberty.a +%{__rm} $RPM_BUILD_ROOT%{archlib32dir}/libiberty.a +%{__rm} $RPM_BUILD_ROOT%{archlib64dir}/libiberty.a +%endif + +%if %{with bootstrap} +# always create lib directories (place for newlib when bootstrapping) +install -d $RPM_BUILD_ROOT{%{archlib32dir},%{archlib64dir}} %endif %clean @@ -177,57 +195,81 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc gcc/README* +%doc README NEWS gcc/README.Portability %attr(755,root,root) %{_bindir}/%{target}-cpp %attr(755,root,root) %{_bindir}/%{target}-gcc -%attr(755,root,root) %{_bindir}/%{target}-gcc-%{gcc_ver} +%attr(755,root,root) %{_bindir}/%{target}-gcc-%{version} %attr(755,root,root) %{_bindir}/%{target}-gccbug %attr(755,root,root) %{_bindir}/%{target}-gcov - -%if "%{_lib}" != "lib" -%dir %{_prefix}/lib/gcc -%dir %{_prefix}/lib/gcc/%{target} -%dir %{gccnlib} -%endif - -%{gccnlib}/*.[ao] -%dir %{gccnlib}/include -%{gccnlib}/include/*.h - -%dir %{gccnlib}/32 -%{gccnlib}/32/*.[oa] - -%dir %{_libexecdir}/gcc/%{target} -%dir %{gcclib} -%attr(755,root,root) %{gcclib}/cc1 -%attr(755,root,root) %{gcclib}/collect2 - -%if "%{_lib}" != "lib" -# not present on ix86, not needed? -%dir %{gcclib}/install-tools -%attr(755,root,root) %{gcclib}/install-tools/* -%endif - -%{_mandir}/man1/%{target}-cpp.* -%{_mandir}/man1/%{target}-gcc.* -%{_mandir}/man1/%{target}-gcov.* +%dir %{archlib32dir} +%dir %{archlib64dir} +%dir %{gccarchdir} +%dir %{gcclibdir} +%attr(755,root,root) %{gcclibdir}/cc1 +%attr(755,root,root) %{gcclibdir}/collect2 +%{gcclibdir}/crt*.o +%{gcclibdir}/libgcc.a +%{gcclibdir}/libgcov.a +%dir %{gcclibdir}/32 +%{gcclibdir}/32/crt*.o +%{gcclibdir}/32/libgcc.a +%{gcclibdir}/32/libgcov.a +%dir %{gcclibdir}/include +%{gcclibdir}/include/ammintrin.h +%{gcclibdir}/include/avxintrin.h +%{gcclibdir}/include/bmmintrin.h +%{gcclibdir}/include/cpuid.h +%{gcclibdir}/include/cross-stdarg.h +%{gcclibdir}/include/emmintrin.h +%{gcclibdir}/include/float.h +%{gcclibdir}/include/immintrin.h +%{gcclibdir}/include/iso646.h +%{gcclibdir}/include/limits.h +%{gcclibdir}/include/mm3dnow.h +%{gcclibdir}/include/mm_malloc.h +%{gcclibdir}/include/mmintrin-common.h +%{gcclibdir}/include/mmintrin.h +%{gcclibdir}/include/nmmintrin.h +%{gcclibdir}/include/pmmintrin.h +%{gcclibdir}/include/smmintrin.h +%{gcclibdir}/include/stdarg.h +%{gcclibdir}/include/stdbool.h +%{gcclibdir}/include/stddef.h +%{gcclibdir}/include/stdfix.h +%{gcclibdir}/include/syslimits.h +%{gcclibdir}/include/tmmintrin.h +%{gcclibdir}/include/unwind.h +%{gcclibdir}/include/varargs.h +%{gcclibdir}/include/wmmintrin.h +%{gcclibdir}/include/x86intrin.h +%{gcclibdir}/include/xmmintrin.h +%{_mandir}/man1/%{target}-cpp.1* +%{_mandir}/man1/%{target}-gcc.1* +%{_mandir}/man1/%{target}-gcov.1* %if %{without bootstrap} %files c++ %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/%{target}-c++ %attr(755,root,root) %{_bindir}/%{target}-g++ -%attr(755,root,root) %{gcclib}/cc1plus -%{_prefix}/%{target}/include/c++ -%dir %{_prefix}/%{target}/lib32 -%dir %{_prefix}/%{target}/lib64 -%{_prefix}/%{target}/lib*/libstdc++.*a -%{_prefix}/%{target}/lib*/libsupc++.*a -%{_mandir}/man1/%{target}-g++.* +%attr(755,root,root) %{gcclibdir}/cc1plus +%{archincludedir}/c++ +%{archlib32dir}/libstdc++.a +%{archlib32dir}/libstdc++.la +%{archlib32dir}/libsupc++.a +%{archlib32dir}/libsupc++.la +%{archlib64dir}/libstdc++.a +%{archlib64dir}/libstdc++.la +%{archlib64dir}/libsupc++.a +%{archlib64dir}/libsupc++.la +%{_mandir}/man1/%{target}-g++.1* %files objc %defattr(644,root,root,755) -%attr(755,root,root) %{gcclib}/cc1obj -%{_prefix}/%{target}/lib*/libobjc.*a -%{gccnlib}/include/objc +%attr(755,root,root) %{gcclibdir}/cc1obj +%{gcclibdir}/include/objc +%{archlib32dir}/libobjc.a +%{archlib32dir}/libobjc.la +%{archlib64dir}/libobjc.a +%{archlib64dir}/libobjc.la %endif -- 2.43.0