X-Git-Url: https://git.tld-linux.org/?p=packages%2Fgcc.git;a=blobdiff_plain;f=gcc.spec;h=d3e76dd17436d5ce1e28fcd26733250bf2870130;hp=187152b47cbc887c6015862584dde2b7182cc9c7;hb=66e1ee92b4b166a0b589edcad2a623a26a874b72;hpb=7a6e13b7c210dd35129541d43a2c7f6ef6869c4a diff --git a/gcc.spec b/gcc.spec index 187152b..d3e76dd 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,4 +1,4 @@ -# NOTE: despite lower soname, libffi is newer than standalone 3.0.9 +# NOTE: despite lower soname, libffi is newer than standalone 3.0.10 # # TODO: # - gconf peer? (but libgcj needs split anyway) @@ -19,8 +19,13 @@ %bcond_without gomp # build without OpenMP support %bcond_without mudflap # build without Mudflap pointer debugging support %bcond_without multilib # build without multilib support (it needs glibc[32&64]-devel) -%bcond_with profiling # build with profiling +%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 tsan # build without Thread Sanitizer library +%bcond_without atomic # build without library for atomic operations not supported by hardware +%bcond_without gcc_libffi # packaging gcc libffi for system usage + # note: libgcj and libgo always have convenience gcc libffi linked in # - libgcj options: %bcond_without alsa # don't build libgcj ALSA MIDI interface %bcond_without dssi # don't build libgcj DSSI MIDI interface @@ -32,13 +37,21 @@ # - other: %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) +%if %{with symvers} +%define cxx_sover 7 +%else +%define cxx_sover 6 +%endif + +# go, java and objcxx require C++ %if %{without cxx} %undefine with_go %undefine with_java %undefine with_objcxx %endif - +# objcxx requires objc %if %{without objc} %undefine with_objcxx %endif @@ -56,17 +69,24 @@ %undefine with_multilib %endif -%ifarch i386 i486 -# __i686.get_pc_thunk.bx undefined in libgo (TODO: recheck on gcc updates) -%undefine with_go +%ifnarch %{ix86} %{x8664} +%undefine with_atomic +%endif + +%ifnarch %{ix86} %{x8664} +%undefine with_asan +%endif + +%ifnarch %{x8664} +%undefine with_tsan %endif -%define major_ver 4.6 +%define major_ver 4.8 %define minor_ver 3 %define major_ecj_ver 4.5 # class data version seen with file(1) that this jvm is able to load %define _classdataversion 50.0 -%define gcj_soname_ver 12 +%define gcj_soname_ver 14 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 @@ -74,28 +94,28 @@ 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: 4 +Release: 2 Epoch: 6 License: GPL v3+ Group: Development/Languages Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2 -# Source0-md5: 773092fe5194353b02bb0110052a972e +# Source0-md5: 7c60f24fab389f77af203d2516ee110f Source1: %{name}-optimize-la.pl Source2: ftp://sourceware.org/pub/java/ecj-%{major_ecj_ver}.jar # Source2-md5: d7cd6a27c8801e66cbaa964a039ecfdb # check libffi version with libffi/configure.ac Source3: libffi.pc.in -# svn diff -x --ignore-eol-style svn://gcc.gnu.org/svn/gcc/tags/gcc_4_6_3_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch > gcc-branch.diff -Patch100: %{name}-branch.diff +# For creating branch.diff please run: +# svn diff -x --ignore-eol-style --force svn://gcc.gnu.org/svn/gcc/tags/gcc_4_8_3_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_8-branch > gcc-branch.diff Patch0: %{name}-info.patch +Patch1: %{name}-cloog.patch Patch2: %{name}-nodebug.patch Patch3: %{name}-ada-link.patch -Patch7: %{name}-libjava-multilib.patch -Patch8: %{name}-enable-java-awt-qt.patch -# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41757 -Patch12: %{name}-plugin-decl-hook.patch -Patch13: issue4664051.patch -Patch14: %{name}-extern-template-sed.patch +Patch4: %{name}-libjava-multilib.patch +Patch5: %{name}-enable-java-awt-qt.patch +Patch6: %{name}-install-libffi.patch +Patch7: gcc-4.9-isl-0.13-hack.patch +Patch100: %{name}-branch.diff URL: http://gcc.gnu.org/ BuildRequires: autoconf >= 2.64 %{?with_tests:BuildRequires: autogen} @@ -104,7 +124,8 @@ BuildRequires: automake >= 1:1.9.3 BuildRequires: binutils >= 3:2.17.50.0.9-1 BuildRequires: bison BuildRequires: chrpath >= 0.13-2 -BuildRequires: cloog-ppl-devel +BuildRequires: cloog-isl-devel >= 0.17.0 +BuildRequires: cloog-isl-devel < 0.19 %{?with_tests:BuildRequires: dejagnu} BuildRequires: elfutils-devel >= 0.145-1 BuildRequires: fileutils >= 4.0.41 @@ -118,13 +139,16 @@ BuildRequires: glibc-devel >= 6:2.4-1 %if %{with multilib} BuildRequires: gcc(multilib) %ifarch %{x8664} -BuildRequires: glibc-devel(i686) +BuildRequires: glibc-devel(ix86) %endif %endif +BuildRequires: gmp-c++-devel >= 4.1 BuildRequires: gmp-devel >= 4.1 +BuildRequires: isl-devel >= 0.10 +BuildRequires: isl-devel < 0.13 BuildRequires: libmpc-devel BuildRequires: mpfr-devel >= 2.3.0 -BuildRequires: ppl-devel +BuildRequires: ppl-devel >= 0.11 %if %{with python} BuildRequires: python-devel BuildRequires: rpm-pythonprov @@ -161,7 +185,7 @@ BuildRequires: qt4-build >= 4.0.1 %{?with_mozilla:BuildRequires: xulrunner-devel >= 1.8.1.3-1.20070321.5} %endif BuildConflicts: pdksh < 5.2.14-50 -Requires: binutils >= 3:2.20.51.0.2 +Requires: binutils >= 3:2.23 Requires: libgcc = %{epoch}:%{version}-%{release} Provides: cpp = %{epoch}:%{version}-%{release} %{?with_ada:Provides: gcc(ada)} @@ -188,7 +212,11 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define filterout -fwrapv -fno-strict-aliasing -fsigned-char %define filterout_ld -Wl,--as-needed -%define skip_post_check_so '.*(libmudflap|libmudflapth|libxmlj|lib-gnu-awt-xlib)\.so.*' +# functions with printf format attribute but with special parser and also +# receiving non constant format strings +%define Werror_cflags %{nil} + +%define skip_post_check_so '.*(libgo|libmudflap|libmudflapth|libxmlj|lib-gnu-awt-xlib)\.so.*' %description A compiler aimed at integrating all the optimizations and features @@ -230,7 +258,7 @@ Requires: libgcc-multilib = %{epoch}:%{version}-%{release} %{?with_multilib:Provides: gcc(multilib)} Obsoletes: libgcc32 %ifarch %{x8664} -Requires: glibc-devel(i686) +Requires: glibc-devel(ix86) %endif %description multilib @@ -778,6 +806,9 @@ Statyczna biblioteka standardowa C++ - wersja 32-bitowa. Summary: C++ standard library API documentation Summary(pl.UTF-8): Dokumentacja API biblioteki standardowej C++ Group: Documentation +%if "%{_rpmversion}" >= "5" +BuildArch: noarch +%endif %description -n libstdc++-apidocs API and internal documentation for C++ standard library. @@ -815,7 +846,7 @@ Suporte Fortran 95 para o GCC. %package fortran-multilib Summary: Fortran 95 32-bit support for gcc -Summary(pl.UTF-8): Obsługa binariów 32-bitowych Fortrana 95 dla gcc +Summary(pl.UTF-8): Obsługa binariów 32-bitowych Fortranu 95 dla gcc Group: Development/Languages/Fortran Requires: %{name}-fortran = %{epoch}:%{version}-%{release} Requires: libgfortran-multilib = %{epoch}:%{version}-%{release} @@ -832,7 +863,7 @@ kompilatora gcc. %package -n libgfortran Summary: Fortran 95 Library Summary(es.UTF-8): Biblioteca de Fortran 95 -Summary(pl.UTF-8): Biblioteka Fortrana 95 +Summary(pl.UTF-8): Biblioteka Fortranu 95 License: GPL v2+ with unlimited link permission Group: Libraries Requires: libquadmath = %{epoch}:%{version}-%{release} @@ -845,11 +876,11 @@ Fortran 95 Library. Biblioteca de Fortran 95. %description -n libgfortran -l pl.UTF-8 -Biblioteka Fortrana 95. +Biblioteka Fortranu 95. %package -n libgfortran-multilib Summary: Fortran 95 Library - 32-bit version -Summary(pl.UTF-8): Biblioteka Fortrana 95 - wersja 32-bitowa +Summary(pl.UTF-8): Biblioteka Fortranu 95 - wersja 32-bitowa License: GPL v2+ with unlimited link permission Group: Libraries Requires: libquadmath-multilib = %{epoch}:%{version}-%{release} @@ -858,12 +889,12 @@ Requires: libquadmath-multilib = %{epoch}:%{version}-%{release} Fortran 95 Library - 32-bit version. %description -n libgfortran-multilib -l pl.UTF-8 -Biblioteka Fortrana 95 - wersja 32-bitowa. +Biblioteka Fortranu 95 - wersja 32-bitowa. %package -n libgfortran-static Summary: Static Fortran 95 Library Summary(es.UTF-8): Bibliotecas estáticas de Fortran 95 -Summary(pl.UTF-8): Statyczna Biblioteka Fortrana 95 +Summary(pl.UTF-8): Statyczna Biblioteka Fortranu 95 License: GPL v2+ with unlimited link permission Group: Development/Libraries Requires: libgfortran = %{epoch}:%{version}-%{release} @@ -876,11 +907,11 @@ Static Fortran 95 Library. Bibliotecas estáticas de Fortran 95. %description -n libgfortran-static -l pl.UTF-8 -Statyczna biblioteka Fortrana 95. +Statyczna biblioteka Fortranu 95. %package -n libgfortran-multilib-static Summary: Static Fortran 95 Library - 32-bit version -Summary(pl.UTF-8): Statyczna Biblioteka Fortrana 95 - wersja 32-bitowa +Summary(pl.UTF-8): Statyczna Biblioteka Fortranu 95 - wersja 32-bitowa License: GPL v2+ with unlimited link permission Group: Development/Libraries Requires: libgfortran-multilib = %{epoch}:%{version}-%{release} @@ -889,7 +920,7 @@ Requires: libgfortran-multilib = %{epoch}:%{version}-%{release} Static Fortran 95 Library - 32-bit version. %description -n libgfortran-multilib-static -l pl.UTF-8 -Statyczna biblioteka Fortrana 95 - wersja 32-bitowa. +Statyczna biblioteka Fortranu 95 - wersja 32-bitowa. %package -n libquadmath Summary: GCC __float128 shared support library @@ -1439,20 +1470,218 @@ Static Go language library - 32-bit version. %description -n libgo-multilib-static -l pl.UTF-8 Statyczna biblioteka języka Go - wersja 32-bitowa. +%package -n libasan +Summary: The Address Sanitizer library +Summary(pl.UTF-8): Biblioteka Address Sanitizer do kontroli adresów +Group: Libraries + +%description -n libasan +This package contains the Address Sanitizer library which is used for +-fsanitize=address instrumented programs. + +%description -n libasan -l pl.UTF-8 +Ten pakiet zawiera bibliotekę Address Sanitizer, służącą do +kontroli adresów w programach kompilowanych z opcją +-fsanitize=address. + +%package -n libasan-multilib +Summary: The Address Sanitizer library - 32-bit version +Summary(pl.UTF-8): Biblioteka Address Sanitizer do kontroli adresów - wersja 32-bitowa +Group: Libraries + +%description -n libasan-multilib +This package contains 32-bit version of the Address Sanitizer library +which is used for -fsanitize=address instrumented programs. + +%description -n libasan-multilib -l pl.UTF-8 +Ten pakiet zawiera 32-bitową wersję biblioteki Address Sanitizer, +służącej do kontroli adresów w programach kompilowanych z opcją +-fsanitize=address. + +%package -n libasan-devel +Summary: Development files for the Address Sanitizer library +Summary(pl.UTF-8): Pliki programistyczne biblioteki Address Sanitizer +Group: Development/Libraries +Requires: libasan = %{epoch}:%{version}-%{release} + +%description -n libasan-devel +This package contains development files for the Address Sanitizer +library. + +%description -n libasan-devel -l pl.UTF-8 +Ten pakiet zawiera pliki programistyczne biblioteki Address Sanitizer. + +%package -n libasan-multilib-devel +Summary: Development files for the Address Sanitizer library - 32-bit version +Summary(pl.UTF-8): Pliki programistyczne biblioteki Address Sanitizer - wersja 32-bitowa +Group: Development/Libraries +Requires: libasan-multilib = %{epoch}:%{version}-%{release} + +%description -n libasan-multilib-devel +This package contains the development files for 32-bit version of the +Address Sanitizer library. + +%description -n libasan-multilib-devel -l pl.UTF-8 +Ten pakiet zawiera pliki programistyczne 32-bitowej wersji biblioteki +Address Sanitizer. + +%package -n libasan-static +Summary: The Address Sanitizer static library +Summary(pl.UTF-8): Statyczna biblioteka Address Sanitizer +Group: Development/Libraries +Requires: libasan-devel = %{epoch}:%{version}-%{release} + +%description -n libasan-static +This package contains Address Sanitizer static library. + +%description -n libasan-static -l pl.UTF-8 +Ten pakiet zawiera statyczną bibliotekę Address Sanitizer. + +%package -n libasan-multilib-static +Summary: The Address Sanitizer static library - 32-bit version +Summary(pl.UTF-8): Statyczna biblioteka Address Sanitizer - wersja 32-bitowa +Group: Development/Libraries +Requires: libasan-multilib-devel = %{epoch}:%{version}-%{release} + +%description -n libasan-multilib-static +This package contains 32-bit version of the Address Sanitizer static +library. + +%description -n libasan-multilib-static -l pl.UTF-8 +Ten pakiet zawiera 32-bitową wersję statycznej biblioteki Address +Sanitizer. + +%package -n libtsan +Summary: The Thread Sanitizer library +Summary(pl.UTF-8): Biblioteka Thread Sanitizer do kontroli wielowątkowości +Group: Libraries + +%description -n libtsan +This package contains the Thread Sanitizer library which is used for +-fsanitize=thread instrumented programs. + +%description -n libtsan -l pl.UTF-8 +Ten pakiet zawiera bibliotekę Thread Sanitizer, służącą do kontroli +wielowątkowości w programach kompilowanych z opcją -fsanitize=thread. + +%package -n libtsan-devel +Summary: Development files for the Thread Sanitizer library +Summary(pl.UTF-8): Pliki programistyczne biblioteki Thread Sanitizer +Group: Development/Libraries +Requires: libtsan = %{epoch}:%{version}-%{release} + +%description -n libtsan-devel +This package contains development files for Thread Sanitizer library. + +%description -n libtsan-devel -l pl.UTF-8 +Ten pakiet zawiera pliki programistyczne biblioteki Address Sanitizer. + +%package -n libtsan-static +Summary: The Thread Sanitizer static library +Summary(pl.UTF-8): Statyczna biblioteka Thread Sanitizer +Group: Development/Libraries +Requires: libtsan-devel = %{epoch}:%{version}-%{release} + +%description -n libtsan-static +This package contains Thread Sanitizer static library. + +%description -n libtsan-static -l pl.UTF-8 +Ten pakiet zawiera statyczną bibliotekę Thread Sanitizer. + +%package -n libatomic +Summary: The GNU Atomic library +Summary(pl.UTF-8): Biblioteka GNU Atomic +Group: Libraries + +%description -n libatomic +This package contains the GNU Atomic library which is a GCC support +library for atomic operations not supported by hardware. + +%description -n libatomic -l pl.UTF-8 +Ten pakiet zawiera bibliotekę GNU Atomic, będącą biblioteką GCC +wspierającą operacje atomowe na sprzęcie ich nie obsługującym. + +%package -n libatomic-multilib +Summary: The GNU Atomic library - 32-bit version +Summary(pl.UTF-8): Biblioteka GNU Atomic - wersja 32-bitowa +Group: Libraries + +%description -n libatomic-multilib +This package contains 32-bit version of the GNU Atomic library which +is a GCC support library for atomic operations not supported by +hardware. + +%description -n libatomic-multilib -l pl.UTF-8 +Ten pakiet zawiera 32-bitową wersję biblioteki GNU Atomic, będącej +biblioteką GCC wspierającą operacje atomowe na sprzęcie ich nie +obsługującym. + +%package -n libatomic-devel +Summary: Development files for the GNU Atomic library +Summary(pl.UTF-8): Pliki programistyczne biblioteki GNU Atomic +Group: Development/Libraries +Requires: libatomic = %{epoch}:%{version}-%{release} + +%description -n libatomic-devel +This package contains development files for the GNU Atomic library. + +%description -n libatomic-devel -l pl.UTF-8 +Ten pakiet zawiera pliki programistyczne biblioteki GNU Atomic. + +%package -n libatomic-multilib-devel +Summary: Development files for the GNU Atomic static library - 32-bit version +Summary(pl.UTF-8): Pliki programistyczne biblioteki GNU Atomic - wersja 32-bitowa +Group: Development/Libraries +Requires: libatomic-multilib = %{epoch}:%{version}-%{release} + +%description -n libatomic-multilib-devel +This package contains the development files for 32-bit version of the +GNU Atomic library. + +%description -n libatomic-multilib-devel -l pl.UTF-8 +Ten pakiet zawiera pliki programistyczne 32-bitowej wersji biblioteki +GNU Atomic. + +%package -n libatomic-static +Summary: The GNU Atomic static library +Summary(pl.UTF-8): Statyczna biblioteka GNU Atomic +Group: Development/Libraries +Requires: libatomic-devel = %{epoch}:%{version}-%{release} + +%description -n libatomic-static +This package contains GNU Atomic static library. + +%description -n libatomic-static +Ten pakiet zawiera statyczną bibliotekę GNU Atomic. + +%package -n libatomic-multilib-static +Summary: The GNU Atomic static library - 32-bit version +Summary(pl.UTF-8): Statyczna biblioteka GNU Atomic - wersja 32-bitowa +Group: Development/Libraries +Requires: libatomic-multilib-devel = %{epoch}:%{version}-%{release} + +%description -n libatomic-multilib-static +This package contains 32-bit version of the GNU Atomic static +library. + +%description -n libatomic-multilib-static -l pl.UTF-8 +Ten pakiet zawiera 32-bitową wersję statycznej biblioteki GNU Atomic. + %prep %setup -q -%patch100 -p0 %patch0 -p1 +%patch1 -p1 %patch2 -p1 %patch3 -p1 - -%patch7 -p0 +%patch4 -p0 %if %{with qt} -%patch8 -p1 +%patch5 -p1 %endif -%patch12 -p1 -%patch13 -p0 -%patch14 -p1 +%if %{with gcc_libffi} +%patch6 -p0 +%endif +%patch7 -p1 +%patch100 -p0 mv ChangeLog ChangeLog.general @@ -1493,65 +1722,75 @@ TEXCONFIG=false \ --infodir=%{_infodir} \ --mandir=%{_mandir} \ --x-libraries=%{_libdir} \ + --%{?with_bootstrap:en}%{!?with_bootstrap:dis}able-bootstrap \ + --disable-build-with-cxx \ + --disable-build-poststage1-with-cxx \ + --enable-c99 \ --enable-checking=release \ +%ifarch %{ix86} %{x8664} + --disable-cld \ +%endif + %{?with_fortran:--enable-cmath} \ + --enable-decimal-float \ --enable-gnu-unique-object \ - --with-linker-hash-style=gnu \ - --enable-shared \ - --enable-threads=posix \ - --enable-linker-build-id \ - --enable-linux-futex \ + --enable-initfini-array \ --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,fortran}%{?with_objc:,objc}%{?with_objcxx:,obj-c++}%{?with_ada:,ada}%{?with_java:,java}%{?with_go:,go}" \ --%{?with_gomp:en}%{!?with_gomp:dis}able-libgomp \ + --enable-libitm \ --%{?with_mudflap:en}%{!?with_mudflap:dis}able-libmudflap \ - --enable-c99 \ + --enable-linker-build-id \ + --enable-linux-futex \ --enable-long-long \ - --enable-decimal-float=yes \ %{!?with_multilib:--disable-multilib} \ --enable-nls \ - --disable-werror \ --enable-lto \ --enable-plugin \ -%ifarch %{ix86} %{x8664} - --disable-cld \ -%endif + --enable-shared \ + --enable-threads=posix \ + --disable-werror \ + --with-cloog \ + --with-demangler-in-ld \ --with-gnu-as \ --with-gnu-ld \ - --with-demangler-in-ld \ - --with-system-zlib \ + --with-linker-hash-style=gnu \ + --with-long-double-128 \ + --with-ppl \ + --disable-ppl-version-check \ --with-slibdir=%{_slibdir} \ %ifnarch ia64 --without-system-libunwind \ %else --with-system-libunwind \ %endif + --with-system-zlib \ %{!?with_java:--without-x} \ - %{?with_fortran:--enable-cmath} \ - --with-long-double-128 \ - --with-ppl \ - --with-cloog-ppl \ %if %{with cxx} - --with-gxx-include-dir=%{_includedir}/c++/%{version} \ - --disable-libstdcxx-pch \ --enable-__cxa_atexit \ --enable-libstdcxx-allocator=new \ + --disable-libstdcxx-pch \ + --enable-libstdcxx-threads \ + --enable-libstdcxx-time=rt \ + --enable-libstdcxx-visibility \ + --enable-symvers=gnu%{?with_symvers:-versioned-namespace} \ + --with-gxx-include-dir=%{_includedir}/c++/%{version} \ %endif %if %{with java} - --enable-libjava-multilib=no \ %{!?with_alsa:--disable-alsa} \ %{!?with_dssi:--disable-dssi} \ --disable-gconf-peer \ + %{?with_gtk:--enable-gtk-cairo} \ %if %{with x} --enable-java-awt="xlib%{?with_gtk:,gtk}%{?with_qt:,qt}" \ %endif - %{?with_mozilla:--enable-plugin} \ + --enable-jni \ --enable-libgcj \ --enable-libgcj-multifile \ --enable-libgcj-database \ - %{?with_gtk:--enable-gtk-cairo} \ - --enable-jni \ + --disable-libjava-multilib \ + %{?with_mozilla:--enable-plugin} \ + --enable-static-libjava \ --enable-xmlj \ %endif - --%{?with_bootstrap:en}%{!?with_bootstrap:dis}able-bootstrap \ --with-pkgversion="TLD-Linux" \ --with-bugurl="http://www.tld-linux.org" \ %{_target_platform} @@ -1566,7 +1805,7 @@ all $(all): %{?with_bootstrap:%{?with_profiling:profiledbootstrap}} \ GCJFLAGS="%{rpmcflags}" \ BOOT_CFLAGS="%{rpmcflags}" \ - STAGE1_CFLAGS="%{rpmcflags} -O0" \ + STAGE1_CFLAGS="%{rpmcflags} -O1 -g0" \ GNATLIBCFLAGS="%{rpmcflags}" \ LDFLAGS_FOR_TARGET="%{rpmldflags}" \ mandir=%{_mandir} \ @@ -1598,20 +1837,37 @@ cp -p gcc/specs $RPM_BUILD_ROOT%{gcclibdir} ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc -echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1 +echo ".so man1/gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1 libssp=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libssp.so.*.*.*) mv $RPM_BUILD_ROOT%{_libdir}/libssp.so.* $RPM_BUILD_ROOT%{_slibdir} ln -sf %{_slibdir}/$libssp $RPM_BUILD_ROOT%{_libdir}/libssp.so + +libitm=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libitm.so.*.*.*) +mv $RPM_BUILD_ROOT%{_libdir}/libitm.so.* $RPM_BUILD_ROOT%{_slibdir} +ln -sf %{_slibdir}/$libitm $RPM_BUILD_ROOT%{_libdir}/libitm.so + +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 + %if %{with multilib} libssp=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libssp.so.*.*.*) mv $RPM_BUILD_ROOT%{_libdir32}/libssp.so.* $RPM_BUILD_ROOT%{_slibdir32} ln -sf %{_slibdir32}/$libssp $RPM_BUILD_ROOT%{_libdir32}/libssp.so + +libitm=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libitm.so.*.*.*) +mv $RPM_BUILD_ROOT%{_libdir32}/libitm.so.* $RPM_BUILD_ROOT%{_slibdir32} +ln -sf %{_slibdir32}/$libitm $RPM_BUILD_ROOT%{_libdir32}/libitm.so + +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 %endif %if %{with fortran} ln -sf gfortran $RPM_BUILD_ROOT%{_bindir}/g95 -echo ".so gfortran.1" > $RPM_BUILD_ROOT%{_mandir}/man1/g95.1 +echo ".so man1/gfortran.1" > $RPM_BUILD_ROOT%{_mandir}/man1/g95.1 %endif %if %{with ada} @@ -1642,9 +1898,12 @@ cd .. install -d java-doc cp -f libjava/READ* java-doc ln -sf libgcj-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/libgcj.jar +%endif +%if %{with gcc_libffi} # still not installed by gcc? [ ! -f $RPM_BUILD_ROOT%{_pkgconfigdir}/libffi.pc ] || exit 1 +install -d $RPM_BUILD_ROOT%{_pkgconfigdir} sed -e 's,@prefix@,%{_prefix}, s,@exec_prefix@,%{_exec_prefix}, s,@libdir@,%{_libdir}, @@ -1665,13 +1924,17 @@ cp -f libobjc/README gcc/objc/README.libobjc # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/%{_target_platform}/%{version} # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool -for f in libssp.la libssp_nonshared.la \ +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} \ + %{?with_tsan:libtsan.la} \ + %{?with_atomic:libatomic.la} \ %{?with_mudflap:libmudflap.la libmudflapth.la} \ %if %{with java} - libffi.la libgcj.la libgcj-tools.la libgij.la \ + %{?with_gcc_libffi:libffi.la} \ + libgcj.la libgcj-tools.la libgij.la \ %{gcjdbexecdir}/libjvm.la \ %{gcjdbexecdir}/libxmlj.la \ %{?with_x:lib-gnu-awt-xlib.la} \ @@ -1686,12 +1949,14 @@ do mv $RPM_BUILD_ROOT%{_libdir}/$f{.fixed,} done %if %{with multilib} -for f in libssp.la libssp_nonshared.la \ +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} \ + %{?with_atomic:libatomic.la} \ %{?with_mudflap:libmudflap.la libmudflapth.la} \ - %{?with_java:libffi.la} \ + %{?with_java:%{?with_gcc_libffi:libffi.la}} \ %{?with_objc:libobjc.la}; do %{__perl} %{SOURCE1} $RPM_BUILD_ROOT%{_libdir32}/$f %{_libdir32} > $RPM_BUILD_ROOT%{_libdir32}/$f.fixed @@ -1704,6 +1969,11 @@ cp -p $RPM_BUILD_ROOT%{gcclibdir}/include-fixed/syslimits.h $RPM_BUILD_ROOT%{gcc %{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/install-tools %{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/include-fixed +# plugin, .la not needed +%{__rm} $RPM_BUILD_ROOT%{gcclibdir}/liblto_plugin.la +# already packaged in binutils-devel +%{__rm} $RPM_BUILD_ROOT%{_libdir}/libiberty.a + %if %{with python} for LIB in lib lib64; do LIBPATH="$RPM_BUILD_ROOT%{_datadir}/gdb/auto-load%{_prefix}/$LIB" @@ -1718,8 +1988,8 @@ install -d $RPM_BUILD_ROOT%{py_sitescriptdir} mv $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libstdcxx $RPM_BUILD_ROOT%{py_sitescriptdir} %if %{with java} mv $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libjava $RPM_BUILD_ROOT%{py_sitescriptdir} -%endif %{__sed} -i -e '1s,#!/usr/bin/env python,#!/usr/bin/python,' $RPM_BUILD_ROOT%{_bindir}/aot-compile +%endif %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir} %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir} %py_postclean @@ -1786,6 +2056,18 @@ rm -rf $RPM_BUILD_ROOT %postun go -p /sbin/postshell -/usr/sbin/fix-info-dir -c %{_infodir} +%post -n libquadmath-devel -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + +%postun -n libquadmath-devel -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + +%post -n libffi-devel -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + +%postun -n libffi-devel -p /sbin/postshell +-/usr/sbin/fix-info-dir -c %{_infodir} + %post -p /sbin/ldconfig -n libgcc %postun -p /sbin/ldconfig -n libgcc %post -p /sbin/ldconfig -n libgcc-multilib @@ -1820,18 +2102,24 @@ rm -rf $RPM_BUILD_ROOT %postun -p /sbin/ldconfig -n libobjc %post -p /sbin/ldconfig -n libobjc-multilib %postun -p /sbin/ldconfig -n libobjc-multilib -%post -n libquadmath -/sbin/ldconfig -[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1 -%postun -n libquadmath -/sbin/ldconfig -[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1 +%post -p /sbin/ldconfig -n libquadmath +%postun -p /sbin/ldconfig -n libquadmath %post -p /sbin/ldconfig -n libquadmath-multilib %postun -p /sbin/ldconfig -n libquadmath-multilib %post -p /sbin/ldconfig -n libgo %postun -p /sbin/ldconfig -n libgo %post -p /sbin/ldconfig -n libgo-multilib %postun -p /sbin/ldconfig -n libgo-multilib +%post -p /sbin/ldconfig -n libasan +%postun -p /sbin/ldconfig -n libasan +%post -p /sbin/ldconfig -n libasan-multilib +%postun -p /sbin/ldconfig -n libasan-multilib +%post -p /sbin/ldconfig -n libtsan +%postun -p /sbin/ldconfig -n libtsan +%post -p /sbin/ldconfig -n libatomic +%postun -p /sbin/ldconfig -n libatomic +%post -p /sbin/ldconfig -n libatomic-multilib +%postun -p /sbin/ldconfig -n libatomic-multilib %files -f gcc.lang %defattr(644,root,root,755) @@ -1842,6 +2130,9 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/cc %attr(755,root,root) %{_bindir}/cpp %attr(755,root,root) %{_bindir}/gcc +%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 %{_mandir}/man1/cc.1* @@ -1853,9 +2144,14 @@ rm -rf $RPM_BUILD_ROOT %{_infodir}/gcc.info* %{_infodir}/gccinstall.info* %{_infodir}/gccint.info* +%{_infodir}/libitm.info* %attr(755,root,root) /lib/cpp %attr(755,root,root) %{_slibdir}/libgcc_s.so +%attr(755,root,root) %{_libdir}/libitm.so %attr(755,root,root) %{_libdir}/libssp.so +%{_libdir}/libitm.la +%{_libdir}/libitm.a +%{_libdir}/libitm.spec %{_libdir}/libssp.la %{_libdir}/libssp.a %{_libdir}/libssp_nonshared.la @@ -1880,28 +2176,34 @@ rm -rf $RPM_BUILD_ROOT %{gcclibdir}/include/float.h %{gcclibdir}/include/iso646.h %{gcclibdir}/include/limits.h +%{gcclibdir}/include/stdalign.h %{gcclibdir}/include/stdarg.h %{gcclibdir}/include/stdbool.h %{gcclibdir}/include/stddef.h %{gcclibdir}/include/stdfix.h %{gcclibdir}/include/stdint.h %{gcclibdir}/include/stdint-gcc.h +%{gcclibdir}/include/stdnoreturn.h %{gcclibdir}/include/syslimits.h %{gcclibdir}/include/unwind.h %{gcclibdir}/include/varargs.h %ifarch %{ix86} %{x8664} -%{gcclibdir}/include/abmintrin.h %{gcclibdir}/include/ammintrin.h %{gcclibdir}/include/avxintrin.h +%{gcclibdir}/include/avx2intrin.h %{gcclibdir}/include/bmiintrin.h +%{gcclibdir}/include/bmi2intrin.h %{gcclibdir}/include/bmmintrin.h %{gcclibdir}/include/cpuid.h %{gcclibdir}/include/cross-stdarg.h %{gcclibdir}/include/emmintrin.h +%{gcclibdir}/include/f16cintrin.h +%{gcclibdir}/include/fmaintrin.h %{gcclibdir}/include/fma4intrin.h %{gcclibdir}/include/ia32intrin.h %{gcclibdir}/include/immintrin.h %{gcclibdir}/include/lwpintrin.h +%{gcclibdir}/include/lzcntintrin.h %{gcclibdir}/include/mm3dnow.h %{gcclibdir}/include/mm_malloc.h %{gcclibdir}/include/mmintrin.h @@ -1915,6 +2217,14 @@ rm -rf $RPM_BUILD_ROOT %{gcclibdir}/include/x86intrin.h %{gcclibdir}/include/xmmintrin.h %{gcclibdir}/include/xopintrin.h +%{gcclibdir}/include/adxintrin.h +%{gcclibdir}/include/fxsrintrin.h +%{gcclibdir}/include/prfchwintrin.h +%{gcclibdir}/include/rdseedintrin.h +%{gcclibdir}/include/rtmintrin.h +%{gcclibdir}/include/xsaveintrin.h +%{gcclibdir}/include/xsaveoptintrin.h +%{gcclibdir}/include/xtestintrin.h %endif %ifarch arm %{gcclibdir}/include/arm_neon.h @@ -1939,7 +2249,10 @@ rm -rf $RPM_BUILD_ROOT %{gcclibdir}/32/libgcc.a %{gcclibdir}/32/libgcc_eh.a %{gcclibdir}/32/libgcov.a +%attr(755,root,root) %{_libdir32}/libitm.so %attr(755,root,root) %{_libdir32}/libssp.so +%{_libdir32}/libitm.la +%{_libdir32}/libitm.a %{_libdir32}/libssp.la %{_libdir32}/libssp.a %{_libdir32}/libssp_nonshared.la @@ -1949,28 +2262,32 @@ rm -rf $RPM_BUILD_ROOT %files -n libgcc %defattr(644,root,root,755) %attr(755,root,root) %{_slibdir}/libgcc_s.so.1 +%attr(755,root,root) %{_slibdir}/libitm.so.*.*.* %attr(755,root,root) %{_slibdir}/libssp.so.*.*.* +%attr(755,root,root) %ghost %{_slibdir}/libitm.so.1 %attr(755,root,root) %ghost %{_slibdir}/libssp.so.0 %if %{with multilib} %files -n libgcc-multilib %defattr(644,root,root,755) %attr(755,root,root) %{_slibdir32}/libgcc_s.so.1 +%attr(755,root,root) %{_slibdir32}/libitm.so.*.*.* %attr(755,root,root) %{_slibdir32}/libssp.so.*.*.* %attr(755,root,root) %ghost %{_slibdir32}/libssp.so.0 +%attr(755,root,root) %ghost %{_slibdir32}/libitm.so.1 %endif %if %{with gomp} %files -n libgomp %defattr(644,root,root,755) -%attr(755,root,root) %{_libdir}/libgomp.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libgomp.so.1 +%attr(755,root,root) %{_slibdir}/libgomp.so.*.*.* +%attr(755,root,root) %ghost %{_slibdir}/libgomp.so.1 %if %{with multilib} %files -n libgomp-multilib %defattr(644,root,root,755) -%attr(755,root,root) %{_libdir32}/libgomp.so.*.*.* -%attr(755,root,root) %ghost %{_libdir32}/libgomp.so.1 +%attr(755,root,root) %{_slibdir32}/libgomp.so.*.*.* +%attr(755,root,root) %ghost %{_slibdir32}/libgomp.so.1 %endif %files -n libgomp-devel @@ -2064,7 +2381,6 @@ rm -rf $RPM_BUILD_ROOT %{gcclibdir}/adainclude %dir %{gcclibdir}/adalib %{gcclibdir}/adalib/*.ali -%{gcclibdir}/adalib/g-trasym.o %ifarch %{ix86} %{x8664} %{gcclibdir}/adalib/libgmem.a %endif @@ -2082,7 +2398,6 @@ rm -rf $RPM_BUILD_ROOT %{gcclibdir}/32/adainclude %dir %{gcclibdir}/32/adalib %{gcclibdir}/32/adalib/*.ali -%{gcclibdir}/32/adalib/g-trasym.o %ifarch %{ix86} %{x8664} %{gcclibdir}/32/adalib/libgmem.a %endif @@ -2106,14 +2421,12 @@ rm -rf $RPM_BUILD_ROOT %files -n libgnat-static %defattr(644,root,root,755) -%{gcclibdir}/adalib/libgnala.a %{gcclibdir}/adalib/libgnarl.a %{gcclibdir}/adalib/libgnat.a %if %{with multilib} %files -n libgnat-multilib-static %defattr(644,root,root,755) -%{gcclibdir}/32/adalib/libgnala.a %{gcclibdir}/32/adalib/libgnarl.a %{gcclibdir}/32/adalib/libgnat.a %endif @@ -2143,13 +2456,13 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %doc libstdc++-v3/{ChangeLog,README} %attr(755,root,root) %{_libdir}/libstdc++.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libstdc++.so.6 +%attr(755,root,root) %ghost %{_libdir}/libstdc++.so.%{cxx_sover} %if %{with multilib} %files -n libstdc++-multilib %defattr(644,root,root,755) %attr(755,root,root) %{_libdir32}/libstdc++.so.*.*.* -%attr(755,root,root) %ghost %{_libdir32}/libstdc++.so.6 +%attr(755,root,root) %ghost %{_libdir32}/libstdc++.so.%{cxx_sover} %endif %if %{with python} @@ -2159,7 +2472,10 @@ rm -rf $RPM_BUILD_ROOT %{py_sitescriptdir}/libstdcxx/*.py[co] %dir %{py_sitescriptdir}/libstdcxx/v6 %{py_sitescriptdir}/libstdcxx/v6/*.py[co] -%{_datadir}/gdb/auto-load/usr/lib*/libstdc++.so.6.0.16-gdb.py +%{_datadir}/gdb/auto-load/usr/%{_lib}/libstdc++.so.%{cxx_sover}.*.*-gdb.py +%if %{with multilib} +%{_datadir}/gdb/auto-load/usr/lib/libstdc++.so.%{cxx_sover}.*.*-gdb.py +%endif %endif %files -n libstdc++-devel @@ -2215,6 +2531,8 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/libgfortran.so %{_libdir}/libgfortran.spec %{_libdir}/libgfortran.la +%{gcclibdir}/libcaf_single.a +%{gcclibdir}/libcaf_single.la %{gcclibdir}/libgfortranbegin.la %{gcclibdir}/libgfortranbegin.a %{_infodir}/gfortran.info* @@ -2227,6 +2545,8 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir32}/libgfortran.so %{_libdir32}/libgfortran.spec %{_libdir32}/libgfortran.la +%{gcclibdir}/32/libcaf_single.a +%{gcclibdir}/32/libcaf_single.la %{gcclibdir}/32/libgfortranbegin.la %{gcclibdir}/32/libgfortranbegin.a %endif @@ -2427,7 +2747,9 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libgij.a %{?with_x:%{_libdir}/lib-gnu-awt-xlib.a} %{_libdir}/%{gcjdbexecdir}/libjvm.a +%endif +%if %{with gcc_libffi} %files -n libffi %defattr(644,root,root,755) %doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README} @@ -2449,6 +2771,7 @@ rm -rf $RPM_BUILD_ROOT %{gcclibdir}/include/ffitarget.h %{_pkgconfigdir}/libffi.pc %{_mandir}/man3/ffi*.3* +%{_infodir}/libffi.info* %if %{with multilib} %files -n libffi-multilib-devel @@ -2496,13 +2819,13 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %doc libobjc/{ChangeLog,README*} %attr(755,root,root) %{_libdir}/libobjc.so.*.*.* -%attr(755,root,root) %ghost %{_libdir}/libobjc.so.3 +%attr(755,root,root) %ghost %{_libdir}/libobjc.so.4 %if %{with multilib} %files -n libobjc-multilib %defattr(644,root,root,755) %attr(755,root,root) %{_libdir32}/libobjc.so.*.*.* -%attr(755,root,root) %ghost %{_libdir32}/libobjc.so.3 +%attr(755,root,root) %ghost %{_libdir32}/libobjc.so.4 %endif %files -n libobjc-static @@ -2538,13 +2861,13 @@ 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.0 +%attr(755,root,root) %ghost %{_libdir}/libgo.so.4 %if %{with multilib} %files -n libgo-multilib %defattr(644,root,root,755) %attr(755,root,root) %{_libdir32}/libgo.so.*.*.* -%attr(755,root,root) %ghost %{_libdir32}/libgo.so.0 +%attr(755,root,root) %ghost %{_libdir32}/libgo.so.4 %endif %files -n libgo-devel @@ -2571,3 +2894,96 @@ rm -rf $RPM_BUILD_ROOT %{_libdir32}/libgo.a %endif %endif + +%if %{with asan} +%files -n libasan +%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.0 + +%if %{with multilib} +%files -n libasan-multilib +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libasan.so.*.*.* +%attr(755,root,root) %ghost %{_libdir32}/libasan.so.0 +%endif + +%files -n libasan-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libasan.so +%{_libdir}/libasan_preinit.o +%{_libdir}/libasan.la + +%if %{with multilib} +%files -n libasan-multilib-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libasan.so +%{_libdir32}/libasan_preinit.o +%{_libdir32}/libasan.la +%endif + +%files -n libasan-static +%defattr(644,root,root,755) +%{_libdir}/libasan.a + +%if %{with multilib} +%files -n libasan-multilib-static +%defattr(644,root,root,755) +%{_libdir32}/libasan.a +%endif +%endif + +%if %{with tsan} +%files -n libtsan +%defattr(644,root,root,755) +%doc libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT +%attr(755,root,root) %{_libdir}/libtsan.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libtsan.so.0 + +%files -n libtsan-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libtsan.so +%{_libdir}/libtsan.la + +%files -n libtsan-static +%defattr(644,root,root,755) +%{_libdir}/libtsan.a +%endif + +%if %{with atomic} +%files -n libatomic +%defattr(644,root,root,755) +%doc libatomic/ChangeLog* +%attr(755,root,root) %{_libdir}/libatomic.so.*.*.* +%attr(755,root,root) %ghost %{_libdir}/libatomic.so.1 + +%if %{with multilib} +%files -n libatomic-multilib +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libatomic.so.*.*.* +%attr(755,root,root) %ghost %{_libdir32}/libatomic.so.1 +%endif + +%files -n libatomic-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libatomic.so +%{_libdir}/libatomic.la + +%if %{with multilib} +%files -n libatomic-multilib-devel +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir32}/libatomic.so +%{_libdir32}/libatomic.la +%endif + +%files -n libatomic-static +%defattr(644,root,root,755) +%{_libdir}/libatomic.a + +%if %{with multilib} +%files -n libatomic-multilib-static +%defattr(644,root,root,755) +%{_libdir32}/libatomic.a +%endif +%endif