Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP4
gcc.19791
gcc.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gcc.spec of Package gcc.19791
# # spec file for package gcc # # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: gcc %define separate_bi32 0 %define separate_bi64 0 %ifarch ppc %define separate_bi64 1 %endif %ifarch x86_64 s390x ppc64 %define separate_bi32 1 %endif # Ada currently fails to build on a few platforms, enable it only # on those that work # Note that AdaCore only supports %ix86, x86_64 and ia64 %ifarch %ix86 x86_64 ppc ppc64 ppc64le s390 s390x ia64 aarch64 %define build_ada 1 %else # alpha hppa arm %define build_ada 0 %endif Url: http://gcc.gnu.org/ %define gcc_version 7 %define gcc_suffix 7 Version: 7 Release: 0 Summary: The system GNU C Compiler License: GPL-3.0+ Group: Development/Languages/C and C++ Provides: c_compiler Obsoletes: gcc-ar Obsoletes: gcc-mudflap Obsoletes: gcc-nm Obsoletes: gcc-ranlib Requires: cpp Requires: gcc%{gcc_version} BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: gcc%{gcc_version} Source: cpp %description The system GNU C Compiler. %package -n gcc-32bit Summary: The system GNU C Compiler License: GPL-3.0+ Group: Development/Languages/C and C++ Requires: gcc = %{version} Requires: gcc%{gcc_version}-32bit %description -n gcc-32bit The system GNU C Compiler. %package -n gcc-64bit Summary: The system GNU C Compiler License: GPL-3.0+ Group: Development/Languages/C and C++ Requires: gcc = %{version} Requires: gcc%{gcc_version}-64bit %description -n gcc-64bit The system GNU C Compiler. %package -n cpp Summary: The system GNU Preprocessor License: GPL-3.0+ Group: Development/Languages/C and C++ Requires: cpp%{gcc_version} %description -n cpp The system GNU Preprocessor. %package -n gcc-devel Summary: The system GNU C Compiler Plugin development files License: GPL-3.0+ Group: Development/Languages/C and C++ Requires: gcc = %{version} Requires: gcc%{gcc_version}-devel %description -n gcc-devel The system GNU C Compiler Plugin development files. %package -n gcc-locale Summary: The system GNU Compiler locale files License: GPL-3.0+ Group: Development/Languages/C and C++ Requires: gcc%{gcc_version}-locale %description -n gcc-locale The system GNU Compiler locale files. %package -n gcc-info Summary: The system GNU Compiler documentation License: GFDL-1.2 Group: Development/Languages/C and C++ PreReq: %{install_info_prereq} PreReq: gcc%{gcc_version}-info %description -n gcc-info The system GNU Compiler documentation. # install / update the entries %post -n gcc-info %install_info --info-dir=%{_infodir} --name=cpp --description='The GNU C preprocessor.' %{_infodir}/cpp.info.gz %install_info --info-dir=%{_infodir} --name=gcc --description='The GNU Compiler Collection.' %{_infodir}/gcc.info.gz %install_info --info-dir=%{_infodir} --name=g++ --description='The GNU C++ compiler.' %{_infodir}/gcc.info.gz %install_info --info-dir=%{_infodir} --name=gfortran --description='The GNU Fortran compiler.' %{_infodir}/gfortran.info.gz # if we uninstall, clean the entries %preun -n gcc-info if [ "$1" -eq "0" ] ; then %install_info --delete --info-dir=%{_infodir} --name=cpp %{_infodir}/cpp.info.gz %install_info --delete --info-dir=%{_infodir} --name=gcc %{_infodir}/gcc.info.gz %install_info --delete --info-dir=%{_infodir} --name=g++ %{_infodir}/gcc.info.gz %install_info --delete --info-dir=%{_infodir} --name=gfortran %{_infodir}/gfortran.info.gz fi %package -n gcc-c++ Summary: The system GNU C++ Compiler License: GPL-3.0+ Group: Development/Languages/C and C++ Provides: c++_compiler Requires: gcc = %{version} Requires: gcc%{gcc_version}-c++ %description -n gcc-c++ The system GNU C++ Compiler. %package -n gcc-c++-32bit Summary: The system GNU C++ Compiler License: GPL-3.0+ Group: Development/Languages/C and C++ Requires: gcc%{gcc_version}-c++-32bit Requires: gcc-32bit = %{version} Requires: gcc-c++ = %{version} %description -n gcc-c++-32bit The system GNU C++ Compiler 32 bit support. %package -n gcc-c++-64bit Summary: The system GNU C++ Compiler License: GPL-3.0+ Group: Development/Languages/C and C++ Requires: gcc%{gcc_version}-c++-64bit Requires: gcc-64bit = %{version} Requires: gcc-c++ = %{version} %description -n gcc-c++-64bit The system GNU C++ Compiler 64 bit support. %package -n libstdc++-devel Summary: The system GNU C++ development files License: GPL-3.0-with-GCC-exception Group: System/Libraries Requires: libstdc++6-devel-gcc%{gcc_version} %description -n libstdc++-devel The system GNU C++ development files. %package -n libstdc++-devel-32bit Summary: The system GNU C++ 32bit development files License: GPL-3.0-with-GCC-exception Group: System/Libraries Requires: libstdc++-devel Requires: libstdc++6-devel-gcc%{gcc_version}-32bit %description -n libstdc++-devel-32bit The system GNU C++ 32bit development files. %package -n libstdc++-devel-64bit Summary: The system GNU C++ 64bit development files License: GPL-3.0-with-GCC-exception Group: System/Libraries Requires: libstdc++-devel Requires: libstdc++6-devel-gcc%{gcc_version}-64bit %description -n libstdc++-devel-64bit The system GNU C++ 64bit development files. %package -n gcc-fortran Summary: The system GNU Fortran Compiler License: GPL-3.0+ Group: Development/Languages/Fortran Requires: gcc = %{version} Requires: gcc%{gcc_version}-fortran %description -n gcc-fortran The system GNU Fortran Compiler. %package -n gcc-fortran-32bit Summary: The system GNU Fortran Compiler License: GPL-3.0+ Group: Development/Languages/Fortran Requires: gcc%{gcc_version}-fortran-32bit Requires: gcc-fortran = %{version} %description -n gcc-fortran-32bit The system GNU Fortran Compiler 32 bit support. %package -n gcc-fortran-64bit Summary: The system GNU Fortran Compiler License: GPL-3.0+ Group: Development/Languages/Fortran Requires: gcc%{gcc_version}-fortran-64bit Requires: gcc-fortran = %{version} %description -n gcc-fortran-64bit The system GNU Fortran Compiler 64 bit support. %package -n gcc-objc Summary: The system GNU Objective C Compiler License: GPL-3.0+ Group: Development/Languages/Other Requires: gcc = %{version} Requires: gcc%{gcc_version}-objc %ifarch ppc64 Obsoletes: gcc-objc-64bit %endif %description -n gcc-objc The system GNU Objective C Compiler. %package -n gcc-objc-32bit Summary: The system GNU Objective C Compiler License: GPL-3.0+ Group: Development/Languages/Other Requires: gcc%{gcc_version}-objc-32bit Requires: gcc-objc = %{version} %description -n gcc-objc-32bit The system GNU Objective C Compiler 32 bit support. %package -n gcc-objc-64bit Summary: The system GNU Objective C Compiler License: GPL-3.0+ Group: Development/Languages/Other Requires: gcc%{gcc_version}-objc-64bit Requires: gcc-objc = %{version} %description -n gcc-objc-64bit The system GNU Objective C Compiler 64 bit support. %package -n gcc-obj-c++ Summary: The system GNU Objective C++ Compiler License: GPL-3.0+ Group: Development/Languages/Other Requires: gcc%{gcc_version}-obj-c++ Requires: gcc-objc = %{version} %description -n gcc-obj-c++ The system GNU Objective C++ Compiler. %package -n gcc-PIE Summary: A default configuration to build all binaries in PIE mode License: GPL-3.0+ Group: Development/Languages/Other Requires: gcc %description -n gcc-PIE This package contains a configuration file (spec) that changes the compilers default setting to build all ELF binaries in the Position Independend Executable (PIE) variant. This enables better address space randomization (ASLR). %package -n gcc-ada Summary: The system GNU Ada Compiler License: GPL-3.0+ Group: Development/Languages/C and C++ Requires: gcc = %{version} Requires: gcc%{gcc_version}-ada %description -n gcc-ada The system GNU Ada Compiler. %package -n gcc-ada-32bit Summary: The system GNU Ada Compiler License: GPL-3.0+ Group: Development/Languages/C and C++ Requires: gcc%{gcc_version}-ada-32bit Requires: gcc-ada = %{version} %description -n gcc-ada-32bit The system GNU Ada Compiler 32 bit support. %package -n gcc-ada-64bit Summary: The system GNU Ada Compiler License: GPL-3.0+ Group: Development/Languages/C and C++ Requires: gcc%{gcc_version}-ada-64bit Requires: gcc-ada = %{version} %description -n gcc-ada-64bit The system GNU Ada Compiler 64 bit support. %package -n gcc-go Summary: The system GNU Go Compiler License: GPL-3.0+ Group: Development/Languages/C and C++ Requires: gcc = %{version} Requires: gcc%{gcc_version}-go Requires(post): update-alternatives Requires(postun): update-alternatives %description -n gcc-go The system GNU Go Compiler. %package -n gcc-go-32bit Summary: The system GNU Go Compiler License: GPL-3.0+ Group: Development/Languages/C and C++ Requires: gcc%{gcc_version}-go-32bit Requires: gcc-go = %{version} %description -n gcc-go-32bit The system GNU Go Compiler 32bit support. %package -n gcc-go-64bit Summary: The system GNU Go Compiler License: GPL-3.0+ Group: Development/Languages/C and C++ Requires: gcc%{gcc_version}-go-64bit Requires: gcc-go = %{version} %description -n gcc-go-64bit The system GNU Go Compiler 64bit support. %prep %install mkdir -p $RPM_BUILD_ROOT/lib mkdir -p $RPM_BUILD_ROOT%{_prefix}/bin mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 mkdir -p $RPM_BUILD_ROOT%{_infodir} mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/doc/packages/gcc-objc/ mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/doc/packages/gcc-obj-c++/ # Link all the binaries for program in \ gcc gcov gcov-dump gcov-tool \ g++ \ cpp \ gfortran \ gccgo \ %if %{build_ada} gnat gnatbind gnatbl gnatchop gnatclean gnatfind gnatkr \ gnatlink gnatls gnatmake gnatname gnatprep gnatxref gprmake \ %endif gcc-ar gcc-nm gcc-ranlib \ ; do ln -sf $program-%{gcc_suffix} $RPM_BUILD_ROOT%{_prefix}/bin/$program done # For go and gofmt use alternatives since they are shared with golang mkdir -p %{buildroot}%{_sysconfdir}/alternatives ln -sf %{_sysconfdir}/alternatives/go %{buildroot}%{_bindir}/go ln -sf %{_sysconfdir}/alternatives/gofmt %{buildroot}%{_bindir}/gofmt # Link section 1 manpages for man1 in \ gcc gcov gcov-dump gcov-tool \ g++ \ cpp \ gfortran \ gccgo \ ; do ln -sf $man1-%{gcc_suffix}.1.gz $RPM_BUILD_ROOT%{_mandir}/man1/$man1.1.gz done # Link info pages for info in cpp gcc gfortran ; do ln -sf $info-%{gcc_suffix}.info.gz $RPM_BUILD_ROOT%{_infodir}/$info.info.gz done # Provide the traditional /lib/cpp that only handles C cp $RPM_SOURCE_DIR/cpp $RPM_BUILD_ROOT/lib/ chmod 755 $RPM_BUILD_ROOT/lib/cpp # Provide extra symlinks ln -sf g++-%{gcc_suffix} $RPM_BUILD_ROOT%{_prefix}/bin/c++ ln -sf gcc-%{gcc_suffix} $RPM_BUILD_ROOT%{_prefix}/bin/cc ln -sf g++-%{gcc_suffix}.1.gz $RPM_BUILD_ROOT%{_mandir}/man1/c++.1.gz ln -sf gcc-%{gcc_suffix}.1.gz $RPM_BUILD_ROOT%{_mandir}/man1/cc.1.gz # Install the LTO linker plugin so it is auto-loaded by BFD mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/bfd-plugins ln -s `gcc-%{gcc_suffix} -print-file-name=liblto_plugin.so.0.0.0` $RPM_BUILD_ROOT%{_prefix}/lib/bfd-plugins/liblto_plugin.so.0.0.0 dir=`gcc-%{gcc_suffix} -print-prog-name=cc1` dir=${dir%/cc1} mkdir -p $RPM_BUILD_ROOT/$dir cat > $RPM_BUILD_ROOT/$dir/defaults.spec <<EOF *default_spec: %%{pie|fpic|fPIC|fpie|fPIE|no-pie|fno-pic|fno-PIC|fno-pie|fno-PIE|shared|static|nostdlib|nodefaultlibs|nostartfiles:;:-fPIE -pie} EOF %post -n gcc-go # we don't want a BuildRequires on gccN-go but otherwise the install # step of the build fails, so simply skip the script when gccN-go isn't there if [ -f %{_bindir}/go-%{gcc_suffix} ] ; then update-alternatives \ --install %{_bindir}/go go %{_bindir}/go-%{gcc_suffix} 100 \ --slave %{_bindir}/gofmt gofmt %{_bindir}/gofmt-%{gcc_suffix} fi %postun if [ $1 -eq 0 ] ; then update-alternatives --remove go %{_bindir}/go-%{gcc_suffix} fi %files %defattr(-,root,root) %{_prefix}/bin/gcc %{_prefix}/bin/cc %{_prefix}/bin/gcov %{_prefix}/bin/gcov-dump %{_prefix}/bin/gcov-tool %{_prefix}/bin/gcc-ar %{_prefix}/bin/gcc-nm %{_prefix}/bin/gcc-ranlib %dir %{_prefix}/lib/bfd-plugins %{_prefix}/lib/bfd-plugins/liblto_plugin.so.0.0.0 %doc %{_mandir}/man1/gcc.1.gz %doc %{_mandir}/man1/cc.1.gz %doc %{_mandir}/man1/gcov.1.gz %doc %{_mandir}/man1/gcov-dump.1.gz %doc %{_mandir}/man1/gcov-tool.1.gz %files -n cpp %defattr(-,root,root) /lib/cpp %{_prefix}/bin/cpp %doc %{_mandir}/man1/cpp.1.gz # Plugins are only enabled for Tumbleweed %if 0%{!?sle_version:1} %files -n gcc-devel %defattr(-,root,root) # empty - only for the dependency %endif %files -n gcc-c++ %defattr(-,root,root) %{_prefix}/bin/g++ %{_prefix}/bin/c++ %doc %{_mandir}/man1/g++.1.gz %doc %{_mandir}/man1/c++.1.gz %files -n gcc-fortran %defattr(-,root,root) %{_prefix}/bin/gfortran %doc %{_mandir}/man1/gfortran.1.gz %files -n gcc-objc %defattr(-,root,root) # empty - only for the dependency %files -n gcc-obj-c++ %defattr(-,root,root) # empty - only for the dependency %files -n gcc-PIE %defattr(-,root,root) /usr/lib*/gcc/*-suse-linux*/*/defaults.spec %files -n gcc-locale %defattr(-,root,root) # empty - only for the dependency %files -n gcc-info %defattr(-,root,root) %{_infodir}/cpp.info.gz %{_infodir}/gcc.info.gz %{_infodir}/gfortran.info.gz %if %{build_ada} %files -n gcc-ada %defattr(-,root,root) %{_prefix}/bin/gnat %{_prefix}/bin/gnatbind %{_prefix}/bin/gnatbl %{_prefix}/bin/gnatchop %{_prefix}/bin/gnatclean %{_prefix}/bin/gnatfind %{_prefix}/bin/gnatkr %{_prefix}/bin/gnatlink %{_prefix}/bin/gnatls %{_prefix}/bin/gnatmake %{_prefix}/bin/gnatname %{_prefix}/bin/gnatprep %{_prefix}/bin/gnatxref %{_prefix}/bin/gprmake %endif %files -n libstdc++-devel %defattr(-,root,root) # empty - only for the dependency %files -n gcc-go %defattr(-,root,root) %{_bindir}/gccgo %{_bindir}/go %{_bindir}/gofmt %ghost %{_sysconfdir}/alternatives/go %ghost %{_sysconfdir}/alternatives/gofmt %doc %{_mandir}/man1/gccgo.1.gz %if %{separate_bi32} %files -n gcc-32bit %defattr(-,root,root) # empty - only for the dependency %files -n gcc-c++-32bit %defattr(-,root,root) # empty - only for the dependency %files -n libstdc++-devel-32bit %defattr(-,root,root) # empty - only for the dependency %files -n gcc-fortran-32bit %defattr(-,root,root) # empty - only for the dependency %files -n gcc-objc-32bit %defattr(-,root,root) # empty - only for the dependency %if %{build_ada} %files -n gcc-ada-32bit %defattr(-,root,root) # empty - only for the dependency %endif %files -n gcc-go-32bit %defattr(-,root,root) # empty - only for the dependency %endif %if %{separate_bi64} %files -n gcc-64bit %defattr(-,root,root) # empty - only for the dependency %files -n gcc-c++-64bit %defattr(-,root,root) # empty - only for the dependency %files -n libstdc++-devel-64bit %defattr(-,root,root) # empty - only for the dependency %files -n gcc-fortran-64bit %defattr(-,root,root) # empty - only for the dependency %files -n gcc-objc-64bit %defattr(-,root,root) # empty - only for the dependency %if %{build_ada} %files -n gcc-ada-64bit %defattr(-,root,root) # empty - only for the dependency %endif %files -n gcc-go-64bit %defattr(-,root,root) # empty - only for the dependency %endif %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor