3 %bcond_without cloog # cloog
5 %bcond_without aarch64 # enable aarch64
6 %bcond_without alpha # enable alpha
7 %bcond_without arm # enable arm
8 %bcond_without avr32 # enable avr32
9 %bcond_without blackfin # enable blackfin
10 %bcond_without c6x # enable c6x
11 %bcond_without cris # enable cris
12 %bcond_without frv # enable frv
13 %bcond_without h8300 # enable h8300
14 %bcond_without hppa # enable hppa
15 %bcond_without hppa64 # enable hppa64
16 %bcond_without ia64 # enable ia64
17 %bcond_without m32r # enable m32r
18 %bcond_without m68k # enable m68k
19 %bcond_without microblaze # enable microblaze
20 %bcond_without mips64 # enable mips64
21 %bcond_without mn10300 # enable mn10300
22 %bcond_without nios2 # enable nios2
23 %bcond_without powerpc64 # enable powerpc64
24 %bcond_without s390x # enable s390x
25 %bcond_without sh # enable sh
26 %bcond_without sh64 # enable sh64
27 %bcond_without sparc64 # enable sparc64
28 %bcond_without tile # enable tile
29 %bcond_without x86_64 # enable x86_64
30 %bcond_without xtensa # enable xtensa
32 # built compiler generates lots of ICEs
35 # gcc considers obsolete
39 # - sh64 doesn't build on pld:
40 # ../../gcc-4.9.2-20141212/gcc/genmultilib[264]: shift: nothing to shift
41 # Makefile:1851: recipe for target 's-mlib' failed
43 # packaging error, files packaged to gcc-hppa-linux-gnu and gcc-hppa64-linux-gnu
46 # 32-bit packages we don't build as we can use the 64-bit package instead
49 %undefine with_powerpc
56 %undefine with_openrisc
58 # not available in binutils-2.22
59 %undefine with_unicore32
61 %define multilib_64_archs sparc64 ppc64 s390x x86_64
63 # we won't build libgcc for these as it depends on C library or kernel headers
64 %define no_libgcc_targets nios2*|tile-*
66 ###############################################################################
68 # The gcc versioning information. In a sed command below, the specfile winds
69 # pre-release version numbers in BASE-VER back to the last actually-released
74 %define srcdir gcc-%{version}-%{DATE}
75 %define cross_binutils_version 2.24
76 %define isl_version 0.12.2
77 %define cloog_version 0.18.1
79 Summary: Cross C compiler
83 # libgcc, libgfortran, libmudflap, libgomp, libstdc++ and crtstuff have GCC Runtime Exception.
84 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
85 Group: Development/Languages
86 URL: http://gcc.gnu.org/
87 # The source for this package was pulled from upstream's vcs. Use the
88 # following commands to generate the tarball:
89 # svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_7-branch@%{SVNREV} gcc-%{version}-%{DATE}
90 # tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2
91 Source0: http://pkgs.fedoraproject.org/repo/pkgs/cross-gcc/%{srcdir}.tar.bz2/ccd8cac944582f8d2ddf5274a15df176/%{srcdir}.tar.bz2
92 # Source0-md5: ccd8cac944582f8d2ddf5274a15df176
93 Source1: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.bz2
94 # Source1-md5: e039bfcfb6c2ab039b8ee69bf883e824
95 Source2: ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-%{cloog_version}.tar.gz
96 # Source2-md5: e34fca0540d840e5d0f6427e98c92252
97 Patch0: gcc49-hack.patch
98 Patch1: gcc49-java-nomulti.patch
99 Patch2: gcc49-ppc32-retaddr.patch
100 Patch3: gcc49-rh330771.patch
101 Patch4: gcc49-i386-libgomp.patch
102 Patch5: gcc49-sparc-config-detection.patch
103 Patch6: gcc49-libgomp-omp_h-multilib.patch
104 Patch7: gcc49-libtool-no-rpath.patch
105 Patch8: gcc49-cloog-dl.patch
106 Patch9: gcc49-cloog-dl2.patch
107 Patch10: gcc49-pr38757.patch
108 Patch11: gcc49-libstdc++-docs.patch
109 Patch12: gcc49-no-add-needed.patch
110 Patch13: gcc49-color-auto.patch
111 Patch14: gcc49-libgo-p224.patch
112 Patch15: gcc49-aarch64-async-unw-tables.patch
113 Patch16: gcc49-aarch64-unwind-opt.patch
114 Patch17: gcc49-pr64269.patch
115 Patch900: cross-intl-filename.patch
116 # ia64 - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44553
117 # m68k - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53557
118 # alpha - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55344
119 Patch901: cross-gcc-with-libgcc.patch
120 Patch903: cross-gcc-bfin.patch
121 Patch904: cross-gcc-c6x.patch
122 Patch1100: cloog-0.18.1-ppc64le-config.patch
123 BuildRequires: cross-binutils-common >= %{cross_binutils_version}
124 BuildRequires: binutils >= 2.20.51.0.2-12
126 BuildRequires: dejagnu
128 BuildRequires: gettext
129 BuildRequires: sharutils
130 BuildRequires: texinfo
131 BuildRequires: zlib-devel
132 # make sure pthread.h doesn't contain __thread tokens
133 # make sure glibc supports stack protector
134 # make sure glibc supports DT_GNU_HASH
135 BuildRequires: elfutils-devel >= 0.147
136 BuildRequires: glibc-devel >= 2.4.90-13
137 BuildRequires: gmp-devel >= 4.2
138 BuildRequires: libmpc-devel >= 0.8.1
139 BuildRequires: mpfr-devel >= 2.3.1
140 Provides: bundled(libiberty)
141 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
143 %define builddir %{_builddir}/%{name}-%{version}
145 # functions with printf format attribute but with special parser and also
146 # receiving non constant format strings
147 %define Werror_cflags %{nil}
149 # -march= from host is invalid when configuring targets
150 %define filterout_c -march=.*
151 %define filterout_cxx -march=.*
154 Cross-build GNU C compiler collection.
157 Summary: Cross-build GNU C compiler documentation and translation files
158 Group: Development/Languages
159 %if "%{_rpmversion}" >= "5"
164 Documentation, manual pages and translation files for cross-build GNU
167 This is the common part of a set of cross-build GNU C compiler
168 packages for building kernels for other architectures. No support for
169 cross-building user space programs is currently supplied as that would
170 massively multiply the number of packages.
172 %define do_package() \
173 %if %{expand:%%{?with_%{2}:1}%%{!?with_%{2}:0}} \
175 Summary: Cross-build binary utilities for %1 \
176 Group: Development/Languages \
177 BuildRequires: binutils-%1 >= %{cross_binutils_version}\
178 Requires: %{name}-common = %{version}-%{release}\
179 Requires: binutils-%1 >= %{cross_binutils_version}\
181 %description -n gcc-%1 \
182 Cross-build GNU C compiler. \
184 Only building kernels is currently supported. Support for cross-building \
185 user space programs is not currently provided as that would massively multiply \
186 the number of packages. \
188 %package -n gcc-c++-%1 \
189 Summary: Cross-build binary utilities for %1 \
190 Group: Development/Languages \
191 Requires: gcc-%1 = %{version}-%{release}\
193 %description -n gcc-c++-%1 \
194 Cross-build GNU C++ compiler. \
196 Only the compiler is provided; not libstdc++. Support for cross-building \
197 user space programs is not currently provided as that would massively multiply \
198 the number of packages. \
201 %define do_symlink() \
202 %if %{expand:%%{?with_%{2}:1}%%{!?with_%{2}:0}} \
204 Summary: Cross-build binary utilities for %1 \
205 Group: Development/Languages \
206 Requires: gcc-%3 = %{version}-%{release}\
208 %description -n gcc-%1 \
209 Cross-build GNU C++ compiler. \
211 Only building kernels is currently supported. Support for cross-building \
212 user space programs is not currently provided as that would massively multiply \
213 the number of packages. \
215 %package -n gcc-c++-%1 \
216 Summary: Cross-build binary utilities for %1 \
217 Group: Development/Languages \
218 Requires: gcc-%1 = %{version}-%{release}\
219 Requires: gcc-c++-%3 = %{version}-%{release}\
221 %description -n gcc-c++-%1 \
222 Cross-build GNU C++ compiler. \
224 Only the compiler is provided; not libstdc++. Support for cross-building \
225 user space programs is not currently provided as that would massively multiply \
226 the number of packages. \
229 %do_package alpha-linux-gnu alpha
230 %do_package arm-linux-gnu arm
231 %do_package aarch64-linux-gnu aarch64
232 %do_package avr32-linux-gnu avr32
233 %do_package bfin-linux-gnu blackfin
234 %do_package c6x-linux-gnu c6x
235 %do_package cris-linux-gnu cris
236 %do_package frv-linux-gnu frv
237 %do_package h8300-linux-gnu h8300
238 %do_package hppa-linux-gnu hppa
239 %do_package hppa64-linux-gnu hppa64
240 %do_package i386-linux-gnu i386
241 %do_package ia64-linux-gnu ia64
242 %do_package m32r-linux-gnu m32r
243 %do_package m68k-linux-gnu m68k
244 %do_package metag-linux-gnu metag
245 %do_package microblaze-linux-gnu microblaze
246 %do_package mips-linux-gnu mips
247 %do_package mips64-linux-gnu mips64
248 %do_package mn10300-linux-gnu mn10300
249 %do_package nios2-linux-gnu nios2
250 %do_package openrisc-linux-gnu openrisc
251 %do_package powerpc-linux-gnu powerpc
252 %do_package powerpc64-linux-gnu powerpc64
253 %do_symlink ppc-linux-gnu powerpc powerpc-linux-gnu
254 %do_symlink ppc64-linux-gnu powerpc64 powerpc64-linux-gnu
255 %do_package s390-linux-gnu s390
256 %do_package s390x-linux-gnu s390x
257 %do_package score-linux-gnu score
258 %do_package sh-linux-gnu sh
259 %do_package sh4-linux-gnu sh4
260 %do_package sh64-linux-gnu sh64
261 %do_package sparc-linux-gnu sparc
262 %do_package sparc64-linux-gnu sparc64
263 %do_package tile-linux-gnu tile
264 %do_package unicore32-linux-gnu unicore32
265 %do_package x86_64-linux-gnu x86_64
266 %do_package xtensa-linux-gnu xtensa
284 # % if %{with libstdcxx_docs}
290 rm -f libgo/go/crypto/elliptic/p224{,_test}.go
304 # Move the version number back
305 sed -i -e 's/4\.9\.3/4.9.2/' gcc/BASE-VER
306 echo 'PLD-Linux Cross %{version}-%{release}' > gcc/DEV-PHASE
308 # Default to -gdwarf-4 -fno-debug-types-section rather than -gdwarf-2
309 sed -i '/UInteger Var(dwarf_version)/s/Init(2)/Init(4)/' gcc/common.opt
310 sed -i '/flag_debug_types_section/s/Init(1)/Init(0)/' gcc/common.opt
311 sed -i '/dwarf_record_gcc_switches/s/Init(0)/Init(1)/' gcc/common.opt
312 sed -i 's/\(may be either 2, 3 or 4; the default version is \)2\./\14./' gcc/doc/invoke.texi
314 ./contrib/gcc_update --touch
316 LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
318 cat > target.list <<EOF
319 %{?with_alpha:alpha-linux-gnu}
320 %{?with_arm:arm-linux-gnu}
321 %{?with_aarch64:aarch64-linux-gnu}
322 %{?with_avr32:avr32-linux-gnu}
323 %{?with_blackfin:bfin-linux-gnu}
324 %{?with_c6x:c6x-linux-gnu}
325 %{?with_cris:cris-linux-gnu}
326 %{?with_frv:frv-linux-gnu}
327 %{?with_h8300:h8300-linux-gnu}
328 %{?with_hppa:hppa-linux-gnu}
329 %{?with_hppa64:hppa64-linux-gnu}
330 %{?with_i386:i386-linux-gnu}
331 %{?with_ia64:ia64-linux-gnu}
332 %{?with_m32r:m32r-linux-gnu}
333 %{?with_m68k:m68k-linux-gnu}
334 %{?with_metag:metag-linux-gnu}
335 %{?with_microblaze:microblaze-linux-gnu}
336 %{?with_mips:mips-linux-gnu}
337 %{?with_mips64:mips64-linux-gnu}
338 %{?with_mn10300:mn10300-linux-gnu}
339 %{?with_nios2:nios2-linux-gnu}
340 %{?with_openrisc:openrisc-linux-gnu}
341 %{?with_powerpc:powerpc-linux-gnu}
342 %{?with_powerpc64:powerpc64-linux-gnu}
343 %{?with_s390:s390-linux-gnu}
344 %{?with_s390x:s390x-linux-gnu}
345 %{?with_score:score-linux-gnu}
346 %{?with_sh:sh-linux-gnu}
347 %{?with_sh4:sh4-linux-gnu}
348 %{?with_sh64:sh64-linux-gnu}
349 %{?with_sparc:sparc-linux-gnu}
350 %{?with_sparc64:sparc64-linux-gnu}
351 %{?with_tile:tile-linux-gnu}
352 %{?with_unicore32:unicore32-linux-gnu}
353 %{?with_x86_64:x86_64-linux-gnu}
354 %{?with_xtensa:xtensa-linux-gnu}
357 if [ $(wc -w < target.list) = 0 ]; then
358 echo >&2 "No targets selected"
364 # Undo the broken autoconf change in recent Fedora versions
365 export CONFIG_SITE=NONE
368 # Configure and build the ISL and CLooG libraries
372 %define isl_source %{builddir}/isl-%{isl_version}
373 %define isl_build %{builddir}/isl-build
374 %define isl_install %{builddir}/isl-install
376 mkdir %{isl_build} %{isl_install}
383 %{isl_source}/configure \
384 --disable-silent-rules \
388 CFLAGS="${CFLAGS:-%rpmcflags} $ISL_FLAG_PIC" \
389 --prefix=%{isl_install}
394 %define cloog_source %{builddir}/cloog-%{cloog_version}
395 %define cloog_build %{builddir}/cloog-build
396 %define cloog_install %{builddir}/cloog-install
398 install -d %{cloog_build} %{builddir}/cloog-install
400 cat >> %{cloog_source}/source/isl/constraints.c << \EOF
401 #include <isl/flow.h>
402 static void __attribute__((used)) *s1 = (void *) isl_union_map_compute_flow;
403 static void __attribute__((used)) *s2 = (void *) isl_map_dump;
405 sed -i 's|libcloog|libgcc49privatecloog|g' %{cloog_source}/{,test/}Makefile.{am,in}
407 %{cloog_source}/configure \
408 --disable-silent-rules \
410 --with-isl-prefix=%{isl_install} \
413 CFLAGS="${CFLAGS:-%rpmcflags}" \
414 CXXFLAGS="${CXXFLAGS:-%rpmcxxflags}" \
415 --prefix=%{cloog_install}
416 sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
417 sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
420 cd %{cloog_install}/lib
421 rm libgcc49privatecloog-isl.so{,.4}
422 mv libgcc49privatecloog-isl.so.4.0.0 libcloog-isl.so.4
423 ln -sf libcloog-isl.so.4 libcloog-isl.so
424 ln -sf libcloog-isl.so.4 libcloog.so
429 # Configure the compiler
432 echo "=== CONFIGURING $1"
439 arm-*) target=arm-linux-gnueabi;;
440 aarch64-*) target=aarch64-linux-gnu;;
441 avr32-*) target=avr-linux;;
442 bfin-*) target=bfin-uclinux;;
443 c6x-*) target=c6x-uclinux;;
444 h8300-*) target=h8300-elf;;
445 mn10300-*) target=am33_2.0-linux;;
446 m68knommu-*) target=m68k-linux;;
447 openrisc-*) target=or32-linux;;
448 parisc-*) target=hppa-linux;;
449 score-*) target=score-elf;;
450 sh64-*) target=sh64-linux;;
451 tile-*) target=tilegx-linux;;
452 v850-*) target=v850e-linux;;
453 x86-*) target=x86_64-linux;;
457 echo $arch: target is $target
458 #export CFLAGS="$RPM_OPT_FLAGS"
463 CONFIG_FLAGS="--with-cpu=cortex-a8 --with-tune=cortex-a8 --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16 --with-abi=aapcs-linux"
465 powerpc-*|powerpc64-*)
466 CONFIG_FLAGS="--with-cpu-32=power4 --with-tune-32=power6 --with-cpu-64=power4 --with-tune-64=power6 --enable-secureplt"
469 CONFIG_FLAGS="--with-arch=z9-109 --with-tune=z10 --enable-decimal-float"
472 CONFIG_FLAGS="--with-multilib-list=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single,!m2a,!m2a-single"
475 CONFIG_FLAGS="--with-multilib-list=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu"
478 CONFIG_FLAGS="--disable-linux-futex"
481 #CONFIG_FLAGS="--with-arch_32=tilepro"
484 CONFIG_FLAGS="--with-arch_32=i686"
489 alpha|powerpc*|s390*|sparc*)
490 CONFIG_FLAGS="$CONFIG_FLAGS --with-long-double-128" ;;
493 install -d $build_dir
496 # We could optimize the cross builds size by --enable-shared but the produced
497 # binaries may be less convenient in the embedded environment.
498 AR_FOR_TARGET=%{_bindir}/$arch-ar \
499 AS_FOR_TARGET=%{_bindir}/$arch-as \
500 DLLTOOL_FOR_TARGET=%{_bindir}/$arch-dlltool \
501 LD_FOR_TARGET=%{_bindir}/$arch-ld \
502 NM_FOR_TARGET=%{_bindir}/$arch-nm \
503 OBJDUMP_FOR_TARGET=%{_bindir}/$arch-objdump \
504 RANLIB_FOR_TARGET=%{_bindir}/$arch-ranlib \
505 STRIP_FOR_TARGET=%{_bindir}/$arch-strip \
506 WINDRES_FOR_TARGET=%{_bindir}/$arch-windres \
507 WINDMC_FOR_TARGET=%{_bindir}/$arch-windmc \
509 CFLAGS="%{rpmcflags}" \
510 CXXFLAGS="%{rpmcxxflags}" \
511 LDFLAGS="-Wl,-z,relro" \
513 --bindir=%{_bindir} \
514 --build=%{_target_platform} \
515 --datadir=%{_datadir} \
516 --disable-decimal-float \
517 --disable-dependency-tracking \
520 --disable-libmudflap \
521 --disable-libquadmath \
526 --disable-silent-rules \
527 --disable-sjlj-exceptions \
529 --with-ld=/usr/bin/$arch-ld \
530 --enable-checking=$checking \
531 --enable-gnu-unique-object \
532 --enable-initfini-array \
533 --enable-languages=c,c++ \
534 --enable-linker-build-id \
537 --enable-targets=all \
538 --exec-prefix=%{_exec_prefix} \
539 --host=%{_target_platform} \
540 --includedir=%{_includedir} \
541 --infodir=%{_infodir} \
542 --libexecdir=%{_libexecdir} \
543 --localstatedir=%{_localstatedir} \
544 --mandir=%{_mandir} \
545 --prefix=%{_prefix} \
546 --program-prefix=$prefix \
547 --sbindir=%{_sbindir} \
548 --sharedstatedir=%{_sharedstatedir} \
549 --sysconfdir=%{_sysconfdir} \
551 --with-bugurl="http://bugs.pld-linux.org" \
552 --with-linker-hash-style=gnu \
554 --with-sysroot=%{_prefix}/$arch/sys-root \
555 --with-system-libunwind \
559 --with-isl=%{isl_install} --with-cloog=%{cloog_install} \
561 --without-isl --without-cloog \
565 --libdir=%{_libdir} # we want stuff in /usr/lib/gcc/ not /usr/lib64/gcc
570 cd %{builddir}/%{srcdir}
571 for target in $(cat target.list); do
572 config_target $target
576 echo "=== BUILDING $1"
581 AR_FOR_TARGET=%{_bindir}/$arch-ar \
582 AS_FOR_TARGET=%{_bindir}/$arch-as \
583 DLLTOOL_FOR_TARGET=%{_bindir}/$arch-dlltool \
584 LD_FOR_TARGET=%{_bindir}/$arch-ld \
585 NM_FOR_TARGET=%{_bindir}/$arch-nm \
586 OBJDUMP_FOR_TARGET=%{_bindir}/$arch-objdump \
587 RANLIB_FOR_TARGET=%{_bindir}/$arch-ranlib \
588 STRIP_FOR_TARGET=%{_bindir}/$arch-strip \
589 WINDRES_FOR_TARGET=%{_bindir}/$arch-windres \
590 WINDMC_FOR_TARGET=%{_bindir}/$arch-windmc \
591 %{__make} -C $build_dir tooldir=%{_prefix} all-gcc
594 %{no_libgcc_targets})
597 %{__make} -C $build_dir tooldir=%{_prefix} all-target-libgcc
602 for target in $(cat target.list); do
607 rm -rf $RPM_BUILD_ROOT
610 echo "=== INSTALLING $1"
616 %{no_libgcc_targets}) with_libgcc="";;
617 *) with_libgcc="install-target-libgcc";;
620 %{__make} -C $arch DESTDIR=$RPM_BUILD_ROOT install-gcc ${with_libgcc}
622 # We want links for ppc and ppc64 also if we make powerpc or powerpc64
625 cd $RPM_BUILD_ROOT%{_bindir}
627 ln -s $i ppc${i#powerpc}
634 cd %{builddir}/%{srcdir}
635 for target in $(cat target.list); do
636 install -d $RPM_BUILD_ROOT%{_prefix}/$target/sys-root
640 grep ^powerpc target.list | sed -e s/powerpc/ppc/ > symlink-target.list
642 # We have to copy cloog somewhere graphite can dlopen it from
644 for i in $RPM_BUILD_ROOT%{_prefix}/lib/gcc/*/%{version}; do
645 cp -a %{cloog_install}/lib/libcloog-isl.so.4 $i
649 # For cross-gcc we drop the documentation.
650 rm -rf $RPM_BUILD_ROOT%{_infodir}
652 # Remove binaries we will not be including, so that they don't end up in
654 rm -f $RPM_BUILD_ROOT%{_libdir}/{libffi*,libiberty.a}
655 rm -f $RPM_BUILD_ROOT%{_libexecdir}/gcc/*/%{version}/install-tools/{mkheaders,fixincl}
656 rm -f $RPM_BUILD_ROOT%{_bindir}/*-gcc-%{version} || :
657 rm -f $RPM_BUILD_ROOT%{_bindir}/*-ar || :
658 rm -f $RPM_BUILD_ROOT%{_bindir}/*-nm || :
659 rm -f $RPM_BUILD_ROOT%{_bindir}/*-ranlib || :
660 rmdir $RPM_BUILD_ROOT%{_includedir}
662 find $RPM_BUILD_ROOT%{_datadir} -name gcc.mo |
665 mv $x $y/cross-gcc.mo
671 rm $RPM_BUILD_ROOT%{_mandir}/man7/*.7
672 rmdir $RPM_BUILD_ROOT%{_mandir}/man7
674 # All the installed manual pages and translation files for each program are the
675 # same, so symlink them to the common package
676 cd $RPM_BUILD_ROOT%{_mandir}/man1
677 for i in cross-cpp.1 cross-gcc.1 cross-g++.1 cross-gcov.1; do
681 if [ $k != $i -a ! -L $k ]; then
688 # Add manpages the additional symlink-only targets
689 %if %{with powerpc}%{with powerpc64}
690 for i in powerpc*; do
691 ln -s $i ppc${i#powerpc}
701 avr32) target_cpu=avr;;
702 bfin) target_cpu=bfin;;
703 h8300) target_cpu=h8300;;
704 mn10300) target_cpu=am33_2.0;;
705 openrisc) target_cpu=openrisc;;
706 parisc) target_cpu=hppa;;
707 score) target_cpu=score;;
708 tile) target_cpu=tilegx;;
709 v850) target_cpu=v850e;;
710 x86) target_cpu=x86_64;;
715 echo "%%defattr(-,root,root,-)"
716 echo "%{_bindir}/$arch*-cpp"
717 echo "%{_bindir}/$arch*-gcc"
718 echo "%{_bindir}/$arch*-gcov"
719 echo "%{_mandir}/man1/$arch*-cpp*"
720 echo "%{_mandir}/man1/$arch*-gcc*"
721 echo "%{_mandir}/man1/$arch*-gcov*"
726 echo "/usr/lib/gcc/$target_cpu-*/"
727 echo "%{_libexecdir}/gcc/$target_cpu*/*/cc1"
728 echo "%{_libexecdir}/gcc/$target_cpu*/*/collect2"
729 echo "%{_libexecdir}/gcc/$target_cpu*/*/[abd-z]*"
730 echo "%{_prefix}/$arch/sys-root"
736 echo "%%defattr(-,root,root,-)"
737 echo "%{_bindir}/$arch*-c++"
738 echo "%{_bindir}/$arch*-g++"
739 echo "%{_mandir}/man1/$arch*-g++*"
744 echo "%{_libexecdir}/gcc/$target_cpu*/*/cc1plus"
750 for target in $(cat %{srcdir}/target.list %{srcdir}/symlink-target.list); do
754 %define __ar_no_strip $RPM_BUILD_DIR/%{name}-%{version}/ar-no-strip
755 cat >%{__ar_no_strip} <<'EOF'
758 if [ ${f##*/} = libgcc.a -o ${f##*/} = libgcov.a ]; then
764 chmod +x %{__ar_no_strip}
766 %define __strip %{__ar_no_strip}
769 rm -rf $RPM_BUILD_ROOT
771 %files common -f cross-gcc.lang
772 %doc %{srcdir}/COPYING*
773 %doc %{srcdir}/README
774 %{_mandir}/man1/cross-*
777 %files -n gcc-%1 -f files.%1 \
778 %files -n gcc-c++-%1 -f files-c++.%1 \
780 %{?with_alpha:%do_files alpha-linux-gnu}
781 %{?with_arm:%do_files arm-linux-gnu}
782 %{?with_aarch64:%do_files aarch64-linux-gnu}
783 %{?with_avr32:%do_files avr32-linux-gnu}
784 %{?with_blackfin:%do_files bfin-linux-gnu}
785 %{?with_c6x:%do_files c6x-linux-gnu}
786 %{?with_cris:%do_files cris-linux-gnu}
787 %{?with_frv:%do_files frv-linux-gnu}
788 %{?with_h8300:%do_files h8300-linux-gnu}
789 %{?with_hppa:%do_files hppa-linux-gnu}
790 %{?with_hppa64:%do_files hppa64-linux-gnu}
791 %{?with_i386:%do_files i386-linux-gnu}
792 %{?with_ia64:%do_files ia64-linux-gnu}
793 %{?with_m32r:%do_files m32r-linux-gnu}
794 %{?with_m68k:%do_files m68k-linux-gnu}
795 %{?with_metag:%do_files metag-linux-gnu}
796 %{?with_microblaze:%do_files microblaze-linux-gnu}
797 %{?with_mips:%do_files mips-linux-gnu}
798 %{?with_mips64:%do_files mips64-linux-gnu}
799 %{?with_mn10300:%do_files mn10300-linux-gnu}
800 %{?with_nios2:%do_files nios2-linux-gnu}
801 %{?with_openrisc:%do_files openrisc-linux-gnu}
802 %{?with_powerpc:%do_files powerpc-linux-gnu}
803 %{?with_powerpc64:%do_files powerpc64-linux-gnu}
804 %{?with_powerpc:%do_files ppc-linux-gnu}
805 %{?with_powerpc64:%do_files ppc64-linux-gnu}
806 %{?with_s390:%do_files s390-linux-gnu}
807 %{?with_s390x:%do_files s390x-linux-gnu}
808 %{?with_score:%do_files score-linux-gnu}
809 %{?with_sh:%do_files sh-linux-gnu}
810 %{?with_sh4:%do_files sh4-linux-gnu}
811 %{?with_sh64:%do_files sh64-linux-gnu}
812 %{?with_sparc:%do_files sparc-linux-gnu}
813 %{?with_sparc64:%do_files sparc64-linux-gnu}
814 %{?with_tile:%do_files tile-linux-gnu}
815 %{?with_unicore32:%do_files unicore32-linux-gnu}
816 %{?with_x86_64:%do_files x86_64-linux-gnu}
817 %{?with_xtensa:%do_files xtensa-linux-gnu}