/[packages]/cauldron/gcc/current/SPECS/gcc.spec
ViewVC logotype

Contents of /cauldron/gcc/current/SPECS/gcc.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1461683 - (show annotations) (download)
Mon Nov 18 21:31:13 2019 UTC (4 years, 5 months ago) by tmb
File size: 92674 byte(s)
update to 9.2.1 snapshot 20191116
1 # used for easy branding
2 %define distro mageia
3
4 %define branch 9
5 %define branch_major 2
6 %define branch_minor 1
7 %define rel 1
8 %define branch_tag %(perl -e 'printf "%%02d%%02d", split(/\\./,shift)' %{branch})
9 %define snapshot 20191116
10 %define nof_arches noarch
11 %define biarches x86_64
12
13 # Define libraries major versions
14 %define libcc_major 0
15 %define libgcc_major 1
16 %define libstdcxx_major 6
17 %define libstdcxx_micro 28
18 %define libgfortran_major 5
19 %define libobjc_major 4
20 %define libgnat_major 9
21 %define libffi_major 4
22 %define libssp_major 0
23 %define libgomp_major 1
24 %define libquadmath_major 0
25 %define libitm_major 1
26 %define libasan_major 5
27 %define libatomic_major 1
28 %define libatomic_minor 2
29 %define liblsan_major 0
30 %define libtsan_major 0
31 %define libubsan_major 1
32 %define libvtv_major 0
33
34 # Disable -Werror because there's a format string warning in gcc/cp/parser.c
35 # around line 2300 that a comment says is intentional :(
36 %define Werror_cflags %nil
37
38 # Define if building a cross compiler
39 # FIXME: assume user does not define both cross and cross_bootstrap variables
40 %define build_cross 0
41 %define build_cross_bootstrap 0
42 %{expand: %{?cross: %%global build_cross 1}}
43 %{expand: %{?cross_bootstrap: %%global build_cross_bootstrap 1}}
44
45 # System compiler in Mageia
46 %define system_compiler 1
47
48 %define target_cpu %{_target_cpu}
49 %if %{build_cross}
50 %define system_compiler 0
51 %define target_cpu %{cross}
52 %endif
53 %if %{build_cross_bootstrap}
54 %define build_cross 1
55 %define system_compiler 0
56 %define target_cpu %{cross_bootstrap}
57 %endif
58 %if %{system_compiler}
59 %define alternative_priority 30%{branch_tag}
60 %define cross_prefix %{nil}
61 %define cross_program_prefix %{nil}
62 %define package_suffix %{nil}
63 %define program_prefix %{nil}
64 %define program_suffix %{nil}
65 %define program_long_suffix -%{version}
66 %else
67 %if %{build_cross}
68 %define alternative_priority 10%{branch_tag}
69 %define cross_prefix cross-%{target_cpu}-
70 %define cross_program_prefix %{target_cpu}-%{_real_vendor}-linux%{gnuext}-
71 %define package_suffix %{nil}
72 %define program_prefix %{cross_program_prefix}
73 %define program_suffix %{nil}
74 %define program_long_suffix -%{version}
75 %else
76 %define alternative_priority 20%{branch_tag}
77 %define cross_prefix %{nil}
78 %define cross_program_prefix %{nil}
79 %define package_suffix %{branch}
80 %define program_prefix %{nil}
81 %define program_suffix %{branch}
82 %define program_long_suffix %{branch}
83 %endif
84 %endif
85 %define _alternativesdir /etc/alternatives
86 %if "%{package_suffix}" == "%{nil}"
87 %define _package_suffix %{nil}
88 %else
89 %define _package_suffix -%{package_suffix}
90 %endif
91
92 %if "%snapshot" != ""
93 %define source_package gcc-%{branch}-%{snapshot}
94 %define source_dir gcc-%{branch}-%{snapshot}
95 %else
96 %define source_package gcc-%{version}
97 %define source_dir gcc-%{version}
98 %endif
99
100 # Define GCC target platform, and arch we built for
101 %if %{build_cross}
102 %define biarches noarch
103 %define arch %{target_cpu}
104 %define gcc_target_platform %{target_cpu}-%{_real_vendor}-linux%{gnuext}
105 %define target_prefix %{_prefix}/%{gcc_target_platform}
106 %define target_libdir %{target_prefix}/%{target_lib}
107 %define target_slibdir %{target_prefix}/%{target_lib}
108 %define target_slibdir32 %{target_prefix}/lib
109 %else
110 %define arch %(echo %{_target_cpu}|sed -e "s/\\(i.86\\|athlon\\)/i386/" -e "s/amd64/x86_64/")
111 %define gcc_target_platform %{_target_platform}
112 %define target_prefix %{_prefix}
113 %define target_libdir %{_libdir}
114 %define target_slibdir /%{_lib}
115 %define target_slibdir32 /lib
116 %endif
117 %define isarch() %(case " %* " in (*" %{arch} "*) echo 1;; (*) echo 0;; esac)
118 %define gcc_libdir %{_prefix}/lib/gcc
119
120 %if %{build_cross}
121 %if %isarch %arm
122 %define gnuext -gnueabi
123 %else
124 %define gnuext -gnu
125 %endif
126 %endif
127
128 %if %isarch x86_64 aarch64
129 %define target_lib lib64
130 %else
131 %define target_lib lib
132 %endif
133
134 %if %isarch x86_64
135 %define multilib_32_arch i586
136 %endif
137 %if %isarch %{biarches}
138 %define gcc32_target_platform %{multilib_32_arch}-%{distro}-%{_target_os}%{?_gnu}
139 %endif
140
141 # We now have versioned libstdcxx_includedir, that is c++/<VERSION>/
142 %define libstdcxx_includedir %{target_prefix}/include/c++/%{version}
143
144 %define build_minimal 0
145 %define build_monolithic 0
146 %define build_doc 1
147 %define build_pdf_doc 0
148 %define build_libstdcxx_docs 1
149 %define build_check 0
150 %define build_ada 1
151 %define build_cxx 1
152 %define build_libstdcxx %{build_cxx}
153 %define build_fortran 1
154 %if %isarch %arm aarch64
155 %define build_quadmath 0
156 %else
157 %define build_quadmath 1
158 %endif
159 %define build_objc 1
160 %define build_objc_gc 0
161 %define build_objcp 1
162 %define build_libffi 0
163 %define build_libgomp 1
164 %define build_debug 0
165 %define build_stdcxxheaders 1
166 %define build_libitm 1
167 %define build_libasan 1
168 %define build_libatomic 1
169 %define build_libubsan 1
170 # only i?86 and x86_64 are supported, see libvtv/configure.tgt
171 %ifarch %{ix86} x86_64
172 %define build_libvtv 0
173 %else
174 %define build_libvtv 0
175 %endif
176 %if %isarch x86_64 aarch64
177 %define build_liblsan 1
178 %define build_libtsan 1
179 %else
180 %define build_liblsan 0
181 %define build_libtsan 0
182 %endif
183 # use SSP support from glibc
184 %define use_ssp_glibc 1
185 %define build_libssp 0
186 %if !%{system_compiler}
187 %define build_objc 0
188 %define build_objc_gc 0
189 %define build_objcp 0
190 %define build_ada 0
191 %define build_libffi 0
192 %define build_libgomp 0
193 %endif
194 %define build_isl 1
195
196 # Define C library to use
197 %define libc glibc
198 %define libc_shared 1
199 %if !%{build_cross_bootstrap}
200 # Make sure pthread.h doesn't contain __thread keyword
201 %define libc_version 2.2.5-14
202 %if %{use_ssp_glibc}
203 # Make sure glibc supports stack protector
204 %define libc_version 2.4-1
205 %endif
206 %endif
207
208 # Allow --with[out] <feature> at rpm command line build
209 %{expand: %{?_without_PDF: %%global build_pdf_doc 0}}
210 %{expand: %{?_without_DEBUG: %%global build_debug 0}}
211 %{expand: %{?_without_check: %%global build_check 0}}
212 %{expand: %{?_without_CHECK: %%global build_check 0}}
213 %{expand: %{?_without_MINIMAL: %%global build_minimal 0}}
214 %{expand: %{?_with_PDF: %%global build_pdf_doc 1}}
215 %{expand: %{?_with_DEBUG: %%global build_debug 1}}
216 %{expand: %{?_with_CHECK: %%global build_check 1}}
217 %{expand: %{?_with_MINIMAL: %%global build_minimal 1}}
218
219 # Allow --without <front-end> at rpm command line build
220 %{expand: %{?_with_CXX: %%global build_cxx 1}}
221 %{expand: %{?_with_ADA: %%global build_ada 1}}
222 %{expand: %{?_with_FORTRAN: %%global build_fortran 1}}
223 %{expand: %{?_with_OBJC: %%global build_objc 1}}
224 %{expand: %{?_with_OBJCXX: %%global build_objcp 1}}
225
226 # Allow --with <front-end> at rpm command line build
227 %{expand: %{?_without_CXX: %%global build_cxx 0}}
228 %{expand: %{?_without_ADA: %%global build_ada 0}}
229 %{expand: %{?_without_FORTRAN: %%global build_fortran 0}}
230 %{expand: %{?_without_OBJC: %%global build_objc 0}}
231 %{expand: %{?_without_OBJCXX: %%global build_objcp 0}}
232
233 # A minimal build overrides all other options
234 %if %{build_cross_bootstrap}
235 %define build_minimal 1
236 %define libc_shared 0
237 %endif
238 %if %{build_minimal}
239 %define build_doc 0
240 %define build_pdf_doc 0
241 %define build_libstdcxx_docs 0
242 %define build_check 0
243 %define build_ada 0
244 %define build_cxx 0
245 %define build_fortran 0
246 %define build_quadmath 0
247 %define build_objc 0
248 %define build_objc_gc 0
249 %define build_objcp 0
250 %define build_debug 0
251 %define build_libffi 0
252 %define build_libitm 0
253 %define build_libasan 0
254 %define build_libatomic 0
255 %define build_liblsan 0
256 %define build_libtsan 0
257 %define build_libubsan 0
258 %endif
259 %if %{build_cross}
260 %define build_monolithic 1
261 %define build_doc 0
262 %define build_pdf_doc 0
263 %define build_libstdcxx_docs 0
264 # Unsupported front-ends when cross-compiling for now
265 %define build_check 0
266 %define build_ada 0
267 %define build_libffi 0
268 %endif
269
270 # Define library packages names
271 %define libgcc_name_orig %{cross_prefix}libgcc
272 %define libgcc_name %{libgcc_name_orig}%{libgcc_major}
273 %define libstdcxx_name_orig %{cross_prefix}libstdc++
274 %define libstdcxx_name %{libstdcxx_name_orig}%{libstdcxx_major}
275 %define libgfortran_name_orig %{cross_prefix}libgfortran
276 %define libgfortran_name %{libgfortran_name_orig}%{libgfortran_major}
277 %define libobjc_name_orig %{cross_prefix}libobjc
278 %define libobjc_name %{libobjc_name_orig}%{libobjc_major}
279 %define libgnat_name_orig %{cross_prefix}libgnat
280 %define libgnat_name %{libgnat_name_orig}%{libgnat_major}
281 %define libffi_name_orig %{cross_prefix}libffi
282 %define libffi_name %{libffi_name_orig}%{libffi_major}
283 %define libssp_name_orig %{cross_prefix}libssp
284 %define libssp_name %{libssp_name_orig}%{libssp_major}
285 %define libgomp_name_orig %{cross_prefix}libgomp
286 %define libgomp_name %{libgomp_name_orig}%{libgomp_major}
287 %define libquadmath_name_orig %{cross_prefix}libquadmath
288 %define libquadmath_name %{libquadmath_name_orig}%{libquadmath_major}
289 %define libitm_name_orig %{cross_prefix}libitm
290 %define libitm_name %{libitm_name_orig}%{libitm_major}
291 %define libasan_name_orig %{cross_prefix}libasan
292 %define libasan_name %{libasan_name_orig}%{libasan_major}
293 %define libatomic_name_orig %{cross_prefix}libatomic
294 %define libatomic_name %{libatomic_name_orig}%{libatomic_major}
295 %define liblsan_name_orig %{cross_prefix}liblsan
296 %define liblsan_name %{liblsan_name_orig}%{liblsan_major}
297 %define libtsan_name_orig %{cross_prefix}libtsan
298 %define libtsan_name %{libtsan_name_orig}%{libtsan_major}
299 %define libubsan_name_orig %{cross_prefix}libubsan
300 %define libubsan_name %{libubsan_name_orig}%{libubsan_major}
301 %define libvtv_name_orig %{cross_prefix}libvtv
302 %define libvtv_name %{libvtv_name_orig}%{libvtv_major}
303
304 # Extract Mageia name and version
305 %define mga_distro_version_file /etc/release
306 %define mga_distro_version %(perl -ne '/^([.\\w\\s]+) \\(.+\\).+/ and print $1' < %{mga_distro_version_file})
307
308 Summary: GNU Compiler Collection
309 Name: %{cross_prefix}gcc%{package_suffix}
310 Version: %{branch}.%{branch_major}.%{branch_minor}
311 %if "%snapshot" != ""
312 Release: %mkrel 0.%{snapshot}.%{rel}
313 %else
314 Release: %mkrel %{rel}
315 %endif
316 License: GPLv3+
317 Group: Development/C
318
319 # Main source:
320 URL: https://gcc.gnu.org/
321 %if "%snapshot" != ""
322 Source0: https://gcc.gnu.org/pub/gcc/snapshots/%{branch}-%{snapshot}/%{source_package}.tar.xz
323 %else
324 Source0: https://ftpmirror.gnu.org/gcc/%{source_package}/%{source_package}.tar.xz
325 %endif
326
327 # Patches
328 # upstream gcc-9 branch, numbered from 1
329
330 # upstream master branch, numbered from 101
331
332 # Mageia patches, numbered from 201
333 # build 32 bits code when running through linux32
334 Patch201: gcc-9.2-linux32.patch
335 # slibdir is either /lib or /lib64
336 Patch202: gcc-9.2-pass-slibdir.patch
337 # pass libdir around
338 Patch203: gcc-9.2-multi-do-libdir.patch
339
340 # Fedora patches, numbered from 501
341
342 # Want updated alternatives priorities
343 %if %{build_cross}
344 Conflicts: gcc-cpp < 3.2.2-4
345 %endif
346 # TEMP FORCE NEW binutils
347 %define binutils_version 1:2.33.1-1
348
349 # libmudflap got dropped in upstream 4.9
350 Obsoletes: libmudflap0
351 Obsoletes: libmudflap-devel
352 # libcilkrts got dropped in upstream 8.0
353 Obsoletes: libcilkrts5
354 Obsoletes: libcilkrts-devel
355
356 # switch to python3
357 BuildRequires: python3
358
359 Requires: %{cross_prefix}binutils >= %{binutils_version}
360 BuildRequires: %{cross_prefix}binutils >= %{binutils_version}
361 # c++ is mandatory to build gcc
362 BuildRequires: gcc-c++ >= 8.3.0-1
363 # Make sure gdb will understand DW_FORM_strp
364 Conflicts: gdb < 5.1.1
365 BuildRequires: zlib-devel
366 BuildRequires: chrpath
367
368 BuildRequires: gcc >= 8.3.0-1
369
370 %if %{build_ada}
371 # Ada requires Ada to build
372 BuildRequires: %{name}-gnat >= 8.3.0-1
373 %endif
374 # isl is used for Graphite support (optimizations)
375 # see http://gcc.gnu.org/wiki/Graphite
376 %if %{build_isl}
377 BuildRequires: isl-devel >= 0.14
378 %endif
379 #needed for lto support
380 BuildRequires: elfutils-devel
381 Requires: %{name}-cpp = %{version}-%{release}
382 # FIXME: We need a libgcc with 3.4 symbols
383 %if %{libc_shared} && !%{build_monolithic}
384 Requires: %{libgcc_name_orig} >= 3.3.2-5
385 %endif
386 Requires(post): update-alternatives
387 Requires(postun): update-alternatives
388 BuildRequires: gettext
389 BuildRequires: flex
390 BuildRequires: bison
391 BuildRequires: texinfo >= 4.1
392 BuildRequires: texinfo-tex
393 # XXX: Needs a GNU awk recent enough to correctly generate options.h
394 BuildRequires: gawk >= 3.1.4
395 %if "%{?libc_version:%{libc_version}}" != ""
396 Requires: %{cross_prefix}%{libc}-devel >= %{libc_version}
397 BuildRequires: %{cross_prefix}%{libc}-devel >= %{libc_version}
398 %endif
399 %if %{build_check}
400 BuildRequires: %{cross_prefix}glibc-static-devel
401 BuildRequires: autogen
402 %endif
403 %if %{system_compiler}
404 Obsoletes: gcc%{branch}
405 Provides: gcc%{branch} = %{version}-%{release}
406 # see later warning about libgcc_so & ld script
407 # rpm has not way to find that ld script is ld script
408 %if !%build_cross
409 %if %isarch %{arm} %{ix86} x86_64
410 Provides: devel(libgcc_s)
411 %endif
412 %if %isarch x86_64 aarch64
413 Provides: devel(libgcc_s(64bit))
414 %endif
415 %endif
416 %else
417 Conflicts: %{cross_prefix}gcc%{branch} < %{version}-%{release}
418 %endif
419 %if %{build_pdf_doc}
420 BuildRequires: tetex
421 BuildRequires: dvips
422 BuildRequires: tetex-latex
423 %endif
424 %if %{build_libstdcxx_docs}
425 BuildRequires: doxygen
426 BuildRequires: graphviz
427 %endif
428 %if %{build_check}
429 BuildRequires: dejagnu
430 %endif
431 %if %{build_cross}
432 AutoReq: false
433 AutoProv: false
434 %endif
435 BuildRequires: libgmp-devel
436 BuildRequires: pkgconfig(mpfr)
437 BuildRequires: libmpc-devel
438
439 %description
440 A compiler aimed at integrating all the optimizations and features
441 necessary for a high-performance and stable development environment.
442 This package is required for all other GCC compilers, namely C++,
443 Fortran 95, Objective C, Java and Ada 95.
444
445 %package -n %{libgcc_name}
446 Summary: GNU C library
447 Group: System/Libraries
448 Provides: %{libgcc_name_orig} = %{version}-%{release}
449 Obsoletes: %{libgcc_name_orig}%{branch}
450 Provides: %{libgcc_name_orig}%{branch} = %{version}-%{release}
451 Obsoletes: %{libgcc_name_orig}3.0
452 Provides: %{libgcc_name_orig}3.0 = %{version}-%{release}
453 Provides: %{libgcc_name_orig}3.2 = %{version}-%{release}
454 %if %{build_cross}
455 AutoReq: false
456 AutoProv: false
457 %endif
458
459 %description -n %{libgcc_name}
460 The %{libgcc_name} package contains GCC shared libraries for gcc %{branch}
461
462 ####################################################################
463 # C++ Compiler
464
465 %package c++
466 Summary: C++ support for gcc
467 Group: Development/C++
468 %if %{system_compiler}
469 Obsoletes: gcc%{branch}-c++
470 Provides: gcc%{branch}-c++ = %{version}-%{release}
471 %else
472 Conflicts: %{cross_prefix}gcc%{branch}-c++ < %{version}-%{release}
473 %endif
474 Requires: %{name} = %{version}-%{release}
475 %if %{system_compiler}
476 # some day, rpm will be smart enough: #if (#{system_compiler} || #{build_cross}) && !#{build_monolithic}
477 %if %{libc_shared}
478 Requires: %{libstdcxx_name} = %{version}
479 %endif
480 Requires: %{libstdcxx_name_orig}-devel = %{version}
481 %endif
482
483 %if %{build_cross}
484 AutoReq: false
485 AutoProv: false
486 %endif
487 Requires(post): update-alternatives
488 Requires(postun): update-alternatives
489
490 %description c++
491 This package adds C++ support to the GNU C compiler. It includes support
492 for most of the current C++ specification, including templates and
493 exception handling. It does include the static standard C++
494 library and C++ header files; the library for dynamically linking
495 programs is available separately.
496
497 ####################################################################
498 # gcc Plugins
499 %package -n %{name}-plugins
500 Summary: Headers to build gcc plugins
501 Group: Development/C
502 %description -n %{name}-plugins
503 This package contains the headers needed to build gcc plugins.
504
505 ####################################################################
506 # C++ Libraries
507
508 %package -n %{libstdcxx_name}
509 Summary: GNU C++ library
510 Group: System/Libraries
511 Provides: %{libstdcxx_name_orig} = %{version}-%{release}
512 %if "%{branch}" == "3.3"
513 # By default, the libstdc++ from gcc3.3 is ABI compatible with the one
514 # from gcc3.2. Just tell other packages about it if they relied on that.
515 Provides: %{libstdcxx_name_orig}3.2 = %{version}-%{release}
516 %endif
517 %if %{build_cross}
518 AutoReq: false
519 AutoProv: false
520 %endif
521
522 %description -n %{libstdcxx_name}
523 This package contains the GCC Standard C++ Library v3, an ongoing
524 project to implement the ISO/IEC 14882:1998 Standard C++ library.
525
526 %package -n %{libstdcxx_name_orig}-devel
527 Summary: Header files and libraries for C++ development
528 Group: Development/C++
529 Recommends: %{libstdcxx_name_orig}-python-devel
530 Conflicts: %{libstdcxx_name_orig}-python-devel < 9.2.1-0.20190831.3
531 %if %{libc_shared}
532 Requires: %{libstdcxx_name} = %{version}-%{release}
533 %endif
534 Provides: %{libstdcxx_name_orig}6-devel
535 Obsoletes: %{libstdcxx_name_orig}6-devel
536 %if %{build_cross}
537 AutoReq: false
538 AutoProv: false
539 %endif
540
541 %description -n %{libstdcxx_name_orig}-devel
542 This is the GNU implementation of the standard C++ libraries. This
543 package includes the header files and libraries needed for C++
544 development.
545
546 %package -n %{libstdcxx_name_orig}-python-devel
547 Summary: Python files for C++ development
548 Group: Development/C++
549 Requires: %{libstdcxx_name_orig}-devel = %{version}-%{release}
550 Conflicts: %{libstdcxx_name_orig}-devel < 9.2.1-0.20190831.3
551 %if %{build_cross}
552 AutoReq: false
553 AutoProv: false
554 %endif
555
556 %description -n %{libstdcxx_name_orig}-python-devel
557 This is the GNU implementation of the standard C++ libraries. This
558 package includes the python files needed for C++ development.
559
560 %package -n %{libstdcxx_name_orig}-static-devel
561 Summary: Static libraries for C++ development
562 Group: Development/C++
563 Requires: %{libstdcxx_name_orig}-devel = %{version}-%{release}
564 Provides: %{libstdcxx_name_orig}6-static-devel
565 Obsoletes: %{libstdcxx_name_orig}6-static-devel
566 %if %{build_cross}
567 AutoReq: false
568 AutoProv: false
569 %endif
570
571 %description -n %{libstdcxx_name_orig}-static-devel
572 This is the GNU implementation of the standard C++ libraries. This
573 package includes the static libraries needed for C++ development.
574
575 ####################################################################
576 # Objective C Compiler
577
578 %package objc
579 Summary: Objective C support for gcc
580 Group: Development/Other
581 %if %{system_compiler}
582 Obsoletes: gcc%{branch}-objc
583 Provides: gcc%{branch}-objc = %{version}-%{release}
584 %endif
585 Requires: %{name} = %{version}-%{release}
586 %if %{libc_shared} && !%{build_monolithic}
587 Requires: %{libobjc_name} = %{version}-%{release}
588 %endif
589 %if %{build_cross}
590 AutoReq: false
591 AutoProv: false
592 %endif
593
594 %description objc
595 This package adds Objective C support to the GNU C compiler. Objective
596 C is an object oriented derivative of the C language, mainly used on
597 systems running NeXTSTEP. This package does not include the standard
598 Objective C object library.
599
600 ####################################################################
601 # Objective C++ Compiler
602
603 %package objc++
604 Summary: Objective C++ support for gcc
605 Group: Development/Other
606 %if %{system_compiler}
607 Obsoletes: gcc%{branch}-objc++
608 Provides: gcc%{branch}-objc++ = %{version}-%{release}
609 %endif
610 Requires: %{name}-objc = %{version}-%{release}
611 Requires: %{name}-c++ = %{version}-%{release}
612 %if %{build_cross}
613 AutoReq: false
614 AutoProv: false
615 %endif
616
617 %description objc++
618 This package adds Objective C++ support to the GNU C++ compiler.
619
620 ####################################################################
621 # Objective C Libraries
622
623 %package -n %{libobjc_name}
624 Summary: Objective C runtime libraries
625 Group: System/Libraries
626 Obsoletes: %{libobjc_name_orig}3.0, %{libobjc_name_orig}3.1
627 Provides: %{libobjc_name_orig} = %{version}-%{release}
628 Provides: %{libobjc_name_orig}3.0 = %{version}-%{release}
629 Provides: %{libobjc_name_orig}3.1 = %{version}-%{release}
630 %if !%{system_compiler}
631 Conflicts: %{name}-objc < %{branch}
632 %endif
633 %if %{build_cross}
634 AutoReq: false
635 AutoProv: false
636 %endif
637
638 %description -n %{libobjc_name}
639 Runtime libraries for the GNU Objective C Compiler.
640
641 ####################################################################
642 # Fortran 95 Compiler
643
644 %package gfortran
645 Summary: Fortran 95 support for gcc
646 Group: Development/Other
647 %if %{system_compiler}
648 Obsoletes: gcc%{branch}-gfortran
649 Provides: gcc%{branch}-gfortran = %{version}-%{release}
650 %endif
651 Requires: %{name} = %{version}-%{release}
652 %if %{build_quadmath}
653 Requires: quadmath-devel = %{version}-%{release}
654 %endif
655 %if %{libc_shared} && !%{build_monolithic}
656 Requires: %{libgfortran_name} = %{version}-%{release}
657 %endif
658 %if %{build_cross}
659 AutoReq: false
660 AutoProv: false
661 %endif
662
663 %description gfortran
664 This package adds support for compiling Fortran 95 programs with the GNU
665 compiler.
666
667 ####################################################################
668 # Fortran 95 Libraries
669
670 %package -n %{libgfortran_name}
671 Summary: Fortran 95 runtime libraries
672 Group: System/Libraries
673 %if %{build_quadmath}
674 Requires: %{libquadmath_name} = %{version}-%{release}
675 %endif
676 Provides: %{libgfortran_name_orig} = %{version}
677 Obsoletes: %{libgfortran_name_orig}%{branch}
678 Provides: %{libgfortran_name_orig}%{branch} = %{version}-%{release}
679 Obsoletes: libgfortran0
680 %if %{build_cross}
681 AutoReq: false
682 AutoProv: false
683 %endif
684
685 %description -n %{libgfortran_name}
686 This package contains Fortran 95 shared library which is needed to run
687 Fortran 95 dynamically linked programs.
688
689 ####################################################################
690 # Quadmath Libraries
691
692 %if %{build_quadmath}
693 %package -n %{libquadmath_name}
694 Summary: GCC __float128 shared support library
695 Group: System/Libraries
696 Provides: %{libquadmath_name_orig} = %{version}-%{release}
697
698 %description -n %{libquadmath_name}
699 This package contains GCC shared support library which is needed
700 for __float128 math support and for Fortran REAL*16 support.
701
702 %package -n %{libquadmath_name_orig}-devel
703 Summary: GCC __float128 support
704 Group: Development/C
705 Provides: quadmath-devel = %{version}-%{release}
706
707 %description -n %{libquadmath_name_orig}-devel
708 This package contains support for building Fortran programs using
709 REAL*16 and programs using __float128 math.
710 %endif
711
712 ####################################################################
713 # ITM Libraries
714
715 %if %{build_libitm}
716 %package -n %{libitm_name}
717 Summary: The GNU Transactional Memory library
718 Group: System/Libraries
719 Provides: %{libitm_name_orig} = %{version}-%{release}
720
721 %description -n %{libitm_name}
722 This package contains the GNU Transactional Memory library
723 which is a GCC transactional memory support runtime library.
724
725 %package -n %{libitm_name_orig}-devel
726 Summary: The GNU Transactional Memory library devel files
727 Group: Development/C
728 Provides: libitm-devel = %{version}-%{release}
729 Requires: %{libitm_name_orig} = %{version}-%{release}
730 Requires: gcc = %{version}-%{release}
731
732 %description -n %{libitm_name_orig}-devel
733 This package contains headers and support files for the
734 GNU Transactional Memory library.
735 %endif
736
737 ####################################################################
738 # Address Sanitizer Libraries
739
740 %if %{build_libasan}
741 %package -n %{libasan_name}
742 Summary: The Address Sanitizer runtime library
743 Group: System/Libraries
744 Provides: %{libasan_name_orig} = %{version}-%{release}
745 Conflicts: libasan4
746 Obsoletes: libasan4
747
748 %description -n %{libasan_name}
749 This package contains the Address Sanitizer library
750 which is used for -fsanitize=address instrumented programs.
751
752 %package -n %{libasan_name_orig}-devel
753 Summary: The Address Sanitizer runtime library devel files
754 Group: Development/C
755 Provides: libasan-devel = %{version}-%{release}
756 Requires: %{libasan_name} = %{version}-%{release}
757
758 %description -n %{libasan_name_orig}-devel
759 This package contains the devel files for Address Sanitizer library
760 which is used for -fsanitize=address instrumented programs.
761 %endif
762
763
764 ####################################################################
765 # Leak Sanitizer Libraries
766
767 %if %{build_liblsan}
768 %package -n %{liblsan_name}
769 Summary: The Leak Sanitizer runtime library
770 Group: System/Libraries
771 Provides: %{liblsan_name_orig} = %{version}-%{release}
772
773 %description -n %{liblsan_name}
774 This package contains the Leak Sanitizer library
775 which is used for -fsanitize=leak instrumented programs.
776
777 %package -n %{liblsan_name_orig}-devel
778 Summary: The Leak Sanitizer runtime library devel files
779 Group: Development/C
780 Provides: liblsan-devel = %{version}-%{release}
781 Requires: %{liblsan_name} = %{version}-%{release}
782
783 %description -n %{liblsan_name_orig}-devel
784 This package contains the devel files for Leak Sanitizer library
785 which is used for -fsanitize=leak instrumented programs.
786 %endif
787
788 ####################################################################
789 # Thread Sanitizer Libraries
790
791 %if %{build_libtsan}
792 %package -n %{libtsan_name}
793 Summary: The Thread Sanitizer runtime library
794 Group: System/Libraries
795 Provides: %{libtsan_name_orig} = %{version}-%{release}
796
797 %description -n %{libtsan_name}
798 This package contains the Thread Sanitizer library
799 which is used for -fsanitize=thread instrumented programs.
800
801 %package -n %{libtsan_name_orig}-devel
802 Summary: The Thread Sanitizer runtime library devel files
803 Group: Development/C
804 Provides: libtsan-devel = %{version}-%{release}
805 Requires: %{libtsan_name} = %{version}-%{release}
806
807 %description -n %{libtsan_name_orig}-devel
808 This package contains the devel files for Thread Sanitizer library
809 which is used for -fsanitize=thread instrumented programs.
810 %endif
811
812 ####################################################################
813 # Undefined Behaviour Sanitizer Libraries
814
815 %if %{build_libubsan}
816 %package -n %{libubsan_name}
817 Summary: The Undefined Behaviour Sanitizer runtime library
818 Group: System/Libraries
819 Provides: %{libubsan_name_orig} = %{version}-%{release}
820
821 %description -n %{libubsan_name}
822 This package contains the Undefined Behaviour Sanitizer library
823 which is used for -fsanitize=undefined instrumented programs.
824
825 %package -n %{libubsan_name_orig}-devel
826 Summary: The Undefined Behaviour Sanitizer runtime library devel files
827 Group: Development/C
828 Provides: libubsan-devel = %{version}-%{release}
829 Requires: %{libubsan_name} = %{version}-%{release}
830
831 %description -n %{libubsan_name_orig}-devel
832 This package contains the devel files for Undefined Behaviour Sanitizer
833 library which is used for -fsanitize=undefined instrumented programs.
834 %endif
835
836 ####################################################################
837 # The GNU Atomic Libraries
838
839 %if %{build_libatomic}
840 %package -n %{libatomic_name}
841 Summary: The GNU Atomic library
842 Group: System/Libraries
843 Provides: %{libatomic_name_orig} = %{version}-%{release}
844
845 %description -n %{libatomic_name}
846 This package contains the GNU Atomic library which is a GCC support
847 runtime library for atomic operations not supported by hardware.
848
849 %package -n %{libatomic_name_orig}-devel
850 Summary: The Thread Sanitizer runtime library devel files
851 Group: Development/C
852 Provides: libtsan-devel = %{version}-%{release}
853 Requires: %{libatomic_name} = %{version}-%{release}
854
855 %description -n %{libatomic_name_orig}-devel
856 This package contains the devel files for the GNU Atomic library
857 which is a GCC support runtime library for atomic operations not
858 supported by hardware.
859 %endif
860
861 ####################################################################
862 # The Virtual Table Verification Libraries
863
864 %if %{build_libvtv}
865 %package -n %{libvtv_name}
866 Summary: The Virtual Table Verification runtime libraries
867 Group: System/Libraries
868 Provides: %{libvtv_name_orig} = %{version}-%{release}
869
870 %description -n %{libvtv_name}
871 This package contains the Virtual Table Verification runtime libraries.
872
873 %package -n %{libvtv_name_orig}-devel
874 Summary: The Virtual Table Verification runtime library devel files
875 Group: Development/C
876 Provides: libvtv-devel = %{version}-%{release}
877
878 %description -n %{libvtv_name_orig}-devel
879 This package contains the devel files for the Virtual Table Verification
880 runtime libraries.
881 %endif
882
883 ####################################################################
884 # Ada 95 Compiler
885
886 %if %{build_ada}
887 %package gnat
888 Summary: Ada 95 support for gcc
889 Group: Development/Other
890 Requires: %{libgnat_name} = %{version}-%{release}
891 %if %{system_compiler}
892 Obsoletes: gcc%{branch}-gnat
893 Provides: gcc%{branch}-gnat = %{version}-%{release}
894 %endif
895 Obsoletes: %{cross_prefix}gnat
896 Provides: %{cross_prefix}gnat = %{version}-%{release}
897 Requires: %{name} = %{version}-%{release}
898
899 %description gnat
900 This package contains an Ada95 compiler and associated development
901 tools based on the GNU gcc technology. Ada95 is the object oriented
902 successor of the Ada83 language. To build this package from sources
903 you must have installed a binary version to bootstrap the compiler.
904
905 ####################################################################
906 # Ada 95 Libraries
907
908 %package -n %{libgnat_name}
909 Summary: Ada 95 runtime libraries
910 Group: System/Libraries
911 Provides: %{libgnat_name_orig} = %{version}-%{release}
912 Obsoletes: %{cross_prefix}gnat-runtime
913 Provides: %{cross_prefix}gnat-runtime = %{version}-%{release}
914
915 %description -n %{libgnat_name}
916 This package contains the shared libraries required to run programs
917 compiled with the GNU Ada compiler (GNAT) if they are compiled to use
918 shared libraries. It also contains the shared libraries for the
919 Implementation of the Ada Semantic Interface Specification (ASIS), the
920 implementation of Distributed Systems Programming (GLADE) and the
921 Posix 1003.5 Binding (Florist).
922 %endif
923
924 ####################################################################
925 # FFI headers and libraries
926 %if %{build_libffi}
927 %package -n %{libffi_name}
928 Summary: GCC support library for FFI
929 Group: System/Libraries
930
931 %description -n %{libffi_name}
932 This package contains GCC shared support library which is needed
933 for FFI support.
934
935 %package -n %{libffi_name}-devel
936 Summary: Development headers and static library for FFI
937 Group: Development/C
938 Requires: %{libffi_name} = %{version}-%{release}
939 Provides: %{libffi_name_orig}-devel = %{version}-%{release}
940 Obsoletes: %{libffi_name_orig}-devel = 4.3.2
941 Obsoletes: %{libffi_name_orig}-devel = 4.3.1
942 Obsoletes: %{libffi_name_orig}-devel = 4.2.3
943 Obsoletes: %{libffi_name_orig}-devel = 4.2.2
944 Provides: ffi-devel = %{version}-%{release}
945
946 %description -n %{libffi_name}-devel
947 This package contains the development headers and the static library
948 for libffi. The libffi library provides a portable, high level
949 programming interface to various calling conventions. This allows a
950 programmer to call any function specified by a call interface
951 description at run time.
952 %endif
953
954 ####################################################################
955 # SSP headers and libraries
956 %if %{build_libssp}
957
958 %package -n %{libssp_name}
959 Summary: GCC SSP shared support library
960 Group: System/Libraries
961
962 %description -n %{libssp_name}
963 This package contains GCC shared support library which is needed
964 for SSP support.
965
966 %package -n %{libssp_name_orig}-devel
967 Summary: GCC SSP support
968 Group: Development/C
969 Requires: %{name} = %{version}-%{release}
970 %if %{libc_shared}
971 Requires: %{libssp_name} = %{version}-%{release}
972 %endif
973
974 %description -n %{libssp_name_orig}-devel
975 This package contains headers and static libraries for building
976 SSP-instrumented programs.
977
978 Refer to the documentation for -fstack-protector.
979 %endif
980
981 ####################################################################
982 # GCC OpenMP headers and library
983
984 %package -n %{libgomp_name}
985 Summary: GCC OpenMP support library
986 Group: System/Libraries
987
988 %description -n %{libgomp_name}
989 This package contains the GCC shared support library which is needed
990 for OpenMP support.
991
992 %package -n %{libgomp_name_orig}-devel
993 Summary: GCC OpenMP support
994 Group: Development/C
995 Requires: %{name} = %{version}-%{release}
996 %if %{libc_shared}
997 Requires: %{libgomp_name} = %{version}-%{release}
998 %endif
999
1000 %description -n %{libgomp_name_orig}-devel
1001 This package contains headers and static libraries for building
1002 programs that use OpenMP.
1003
1004 ####################################################################
1005 # Preprocessor
1006
1007 %package cpp
1008 Summary: The C Preprocessor
1009 Group: Development/C
1010 %if %{system_compiler}
1011 Obsoletes: gcc%{branch}-cpp
1012 Provides: gcc%{branch}-cpp = %{version}-%{release}
1013 Conflicts: gcc3.3-cpp < 3.3.6-8
1014 %endif
1015 Requires(post): update-alternatives
1016 Requires(postun): update-alternatives
1017
1018 %description cpp
1019 The C preprocessor is a 'macro processor' which is used automatically
1020 by the C compiler to transform your program before actual
1021 compilation. It is called a macro processor because it allows
1022 you to define 'macros,' which are abbreviations for longer
1023 constructs.
1024
1025 The C preprocessor provides four separate facilities that you can use as
1026 you see fit:
1027
1028 * Inclusion of header files. These are files of declarations that can be
1029 substituted into your program.
1030 * Macro expansion. You can define 'macros,' which are abbreviations for
1031 arbitrary fragments of C code, and then the C preprocessor will replace
1032 the macros with their definitions throughout the program.
1033 * Conditional compilation. Using special preprocessing directives,
1034 you can include or exclude parts of the program according to various
1035 conditions.
1036 * Line control. If you use a program to combine or rearrange source files
1037 into an intermediate file which is then compiled, you can use line
1038 control to inform the compiler about where each source line originated.
1039
1040 You should install this package if you are a programmer who is searching for
1041 such a macro processor.
1042
1043
1044 ####################################################################
1045 # Documentation
1046
1047 %package doc
1048 Summary: GCC documentation
1049 Group: Development/Other
1050 %if %{system_compiler}
1051 Obsoletes: gcc%{branch}-doc
1052 Provides: gcc%{branch}-doc = %{version}-%{release}
1053 %endif
1054 BuildArch: noarch
1055
1056 %description doc
1057 GCC is a compiler suite aimed at integrating all the optimizations and
1058 features necessary for a high-performance and stable development
1059 environment. This package contains the compiler documentation in INFO
1060 pages.
1061
1062 %package doc-pdf
1063 Summary: GCC documentation
1064 Group: Development/Other
1065 %if %{system_compiler}
1066 Obsoletes: gcc%{branch}-doc-pdf
1067 Provides: gcc%{branch}-doc-pdf = %{version}-%{release}
1068 %endif
1069 BuildArch: noarch
1070
1071 %description doc-pdf
1072 GCC is a compiler suite aimed at integrating all the optimizations and
1073 features necessary for a high-performance and stable development
1074 environment. This package contains the compiler printable
1075 documentation in PDF.
1076
1077 %package -n libstdc++-docs
1078 Summary: Documentation for the GNU standard C++ library
1079 Group: Development/Other
1080 BuildArch: noarch
1081
1082 %description -n libstdc++-docs
1083 Manual, doxygen generated API information and Frequently Asked Questions
1084 for the GNU standard C++ library.
1085
1086 %prep
1087 %setup -q -n %{source_dir}
1088 %autopatch -p1
1089
1090 # Setup files for cross-compilation
1091 # XXX embed uClibc / dietlibc sources? [ia64 checks for __GLIBC__]
1092 %if %{build_cross}
1093 sysroot=%{_prefix}/%{gcc_target_platform}
1094 %endif
1095 if [[ -n "$sysroot" ]]; then
1096 mkdir sysroot
1097 cd sysroot
1098 [[ -d $sysroot/bin ]] &&
1099 ln -s $sysroot/bin bin
1100
1101 [[ ! -d usr ]] &&
1102 mkdir usr
1103 %if %{build_cross_bootstrap}
1104 [[ -f $sysroot/include/linux/version.h ]] &&
1105 ln -s $sysroot/include usr/include
1106 %else
1107 [[ -f $sysroot/include/stdio.h ]] &&
1108 ln -s $sysroot/include usr/include
1109 %endif
1110
1111 [[ -f $sysroot/lib/crti.o ]] &&
1112 ln -s $sysroot/lib lib
1113 [[ -f $sysroot/lib64/crti.o ]] &&
1114 ln -s $sysroot/lib64 lib64
1115 [[ -f $sysroot/lib32/crti.o ]] &&
1116 ln -s $sysroot/lib32 lib32
1117 cd ../
1118 fi
1119
1120 # We can actually link binaries at this stage
1121 %if %{build_cross}
1122 perl -pi -e '/^DRIVER_DEFINES/ .. /^gcc/ and s/(\@TARGET_SYSTEM_ROOT_DEFINE\@)/-DSYSROOT_SPEC="\\"\\"" \1/' gcc/Makefile.in
1123 %endif
1124
1125 # Ensure BASE-VER alwaus matches rpm version
1126 echo "%{version}" > gcc/BASE-VER
1127
1128 %build
1129 # Prepare OPT_FLAGS
1130 OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-mcpu=pentiumpro//g'`
1131 %if %{build_debug}
1132 OPT_FLAGS=`echo "$OPT_FLAGS -g" | sed -e "s/-fomit-frame-pointer//g"`
1133 %endif
1134 %if %{build_cross}
1135 OPT_FLAGS="-O2 -g -pipe"
1136 %endif
1137 %if %isarch %{biarches}
1138 OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/\(-m64\|-m32\)//g'`
1139 %endif
1140 OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-fomit-frame-pointer//g'`
1141
1142 # don't build crt files with -fasynchronous-unwind-tables
1143 case " $OPT_FLAGS " in
1144 *" -fasynchronous-unwind-tables "*)
1145 perl -pi -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables /' gcc/Makefile.in
1146 ;;
1147 esac
1148
1149 # Force a seperate object dir
1150 rm -fr obj-%{gcc_target_platform}
1151 mkdir obj-%{gcc_target_platform}
1152 cd obj-%{gcc_target_platform}
1153
1154 # Make bootstrap-lean
1155 LANGUAGES="c"
1156 %if %{build_cxx}
1157 LANGUAGES="$LANGUAGES,c++"
1158 %endif
1159 %if %{build_ada}
1160 LANGUAGES="$LANGUAGES,ada"
1161 %endif
1162 %if %{build_fortran}
1163 LANGUAGES="$LANGUAGES,fortran"
1164 %endif
1165 %if %{build_objc}
1166 LANGUAGES="$LANGUAGES,objc"
1167 %if %{build_objc_gc}
1168 LIBOBJC_FLAGS="--enable-objc-gc"
1169 %endif
1170 %endif
1171 %if %{build_objcp}
1172 LANGUAGES="$LANGUAGES,obj-c++"
1173 %endif
1174 PROGRAM_SUFFIX=""
1175 %if "%{program_suffix}" != ""
1176 PROGRAM_SUFFIX="--program-suffix=%{program_suffix}"
1177 %endif
1178 PROGRAM_PREFIX=""
1179 %if "%{program_prefix}" != ""
1180 PROGRAM_PREFIX="--program-prefix=%{program_prefix}"
1181 %endif
1182 %if %{build_cxx}
1183 LIBSTDCXX_FLAGS="--enable-long-long --enable-__cxa_atexit --disable-libunwind-exceptions"
1184 case %{libc} in
1185 glibc) LIBSTDCXX_FLAGS="$LIBSTDCXX_FLAGS --enable-clocale=gnu";;
1186 esac
1187 %endif
1188 SSP_FLAGS="--disable-ssp --disable-libssp"
1189 %if %{build_libssp}
1190 SSP_FLAGS="--enable-ssp --enable-libssp"
1191 %endif
1192 %if %{use_ssp_glibc}
1193 SSP_FLAGS="--enable-ssp --disable-libssp"
1194 %endif
1195 %if !%{build_quadmath}
1196 QUADMATH_FLAGS="--disable-quadmath"
1197 %endif
1198 %if !%{build_libgomp}
1199 LIBGOMP_FLAGS="--disable-libgomp"
1200 %endif
1201 %if %{build_isl}
1202 ISL_FLAGS="--with-isl"
1203 %endif
1204 %if !%{build_libffi}
1205 LIBFFI_FLAGS="--disable-libffi"
1206 %endif
1207 %if %{build_cross}
1208 CROSS_FLAGS="--with-build-sysroot=$PWD/../sysroot --with-headers --disable-nls"
1209 %endif
1210 %if %{build_cross_bootstrap}
1211 CROSS_FLAGS="--disable-threads"
1212 %endif
1213 %if !%{system_compiler} && !%{build_stdcxxheaders}
1214 LIBSTDCXX_FLAGS="$LIBSTDCXX_FLAGS --with-gxx-include-dir=%{libstdcxx_includedir}"
1215 %endif
1216 [[ -n "$CROSS_FLAGS" ]] && CROSS_FLAGS="$CROSS_FLAGS --target=%{gcc_target_platform}"
1217 case %{libc} in
1218 %if %{build_cross_bootstrap}
1219 glibc) LIBC_FLAGS="";;
1220 %else
1221 glibc) LIBC_FLAGS="--enable-threads=posix --with-linker-hash-style=gnu";;
1222 %endif
1223 newlib) LIBC_FLAGS="--with-newlib --with-headers --disable-threads";;
1224 *) echo "ERROR: unsupported %{libc} C library"; exit 1;;
1225 esac
1226 %if %{libc_shared}
1227 LIBC_FLAGS="$LIBC_FLAGS --enable-shared"
1228 %else
1229 LIBC_FLAGS="$LIBC_FLAGS --disable-shared"
1230 %endif
1231 # target specific flags (don't %ifarch for cross compilers)
1232 case %{target_cpu} in
1233 x86_64) TARGET_FLAGS="--with-cpu=generic";;
1234 i?86|athlon) TARGET_FLAGS="--with-cpu=generic";;
1235 armv7hl) TARGET_FLAGS=" --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16 --with-abi=aapcs-linux";;
1236 esac
1237
1238 # (anssi) building with external jar fails
1239 %define python_dir %(echo "%{python3_sitelib}" | sed 's!^%{_prefix}!!g')
1240 CC="%{__cc}" CFLAGS="$OPT_FLAGS" CXXFLAGS="$OPT_FLAGS" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
1241 ../configure --prefix=%{_prefix} --libexecdir=%{_prefix}/lib --with-slibdir=%{target_slibdir} \
1242 --with-pkgversion="Mageia %{version}-%{release}" --with-bugurl=https://bugs.mageia.org/ \
1243 --mandir=%{_mandir} --infodir=%{_infodir} --enable-checking=release \
1244 --enable-languages="$LANGUAGES" $PROGRAM_PREFIX $PROGRAM_SUFFIX --enable-linker-build-id \
1245 --build=%{_target_platform} --host=%{_target_platform} $CROSS_FLAGS $TARGET_FLAGS \
1246 --with-system-zlib $LIBC_FLAGS $LIBOBJC_FLAGS $LIBSTDCXX_FLAGS $SSP_FLAGS \
1247 $QUADMATH_FLAGS $LIBFFI_FLAGS --disable-werror $LIBGOMP_FLAGS \
1248 $ISL_FLAGS --with-python-dir=%{python_dir} --enable-lto
1249 touch ../gcc/c-gperf.h
1250 %if %{build_cross}
1251 %make
1252 %else
1253 # bootstrap-lean is similar to bootstrap except "object files from the stage1
1254 # and stage2 of the 3-stage bootstrap of the compiler are deleted as soon as
1255 # they are no longer needed."
1256 %make bootstrap-lean BOOT_CFLAGS="$OPT_FLAGS"
1257 %endif
1258
1259 cd ..
1260
1261 # Copy various doc files here and there
1262 mkdir -p rpm.doc/gfortran
1263 mkdir -p rpm.doc/objc
1264 mkdir -p rpm.doc/objcp
1265 mkdir -p rpm.doc/libobjc
1266 mkdir -p rpm.doc/boehm-gc
1267 mkdir -p rpm.doc/c++
1268 mkdir -p rpm.doc/libstdc++
1269
1270 %if %{build_libstdcxx}
1271 (cd libstdc++-v3; for i in ChangeLog*; do
1272 ln -f $i ../rpm.doc/libstdc++/$i
1273 done)
1274 %endif
1275 %if %{build_cxx}
1276 (cd gcc/cp; for i in ChangeLog*; do
1277 ln -f $i ../../rpm.doc/c++/$i
1278 done)
1279 %endif
1280 %if %{build_fortran}
1281 (cd gcc/fortran; for i in ChangeLog*; do
1282 ln -f $i ../../rpm.doc/gfortran/$i
1283 done)
1284 (cd libgfortran; for i in ChangeLog*; do
1285 ln -f $i ../rpm.doc/gfortran/$i.libgfortran
1286 done)
1287 %endif
1288 %if %{build_objc}
1289 (cd gcc/objc; for i in ChangeLog*; do
1290 ln -f $i ../../rpm.doc/objc/$i.objc
1291 done)
1292 (cd libobjc; for i in ChangeLog*; do
1293 ln -f $i ../rpm.doc/libobjc/$i.libobjc
1294 done)
1295 %endif
1296 %if %{build_objcp}
1297 (cd gcc/objcp; for i in ChangeLog*; do
1298 ln -f $i ../../rpm.doc/objcp/$i.objcp
1299 done)
1300 %endif
1301
1302 # [ghibo] - build printable documentation
1303 %if %{build_pdf_doc}
1304 export PDFTEX=pdftex
1305 unset TEXINPUTS
1306 (cd gcc/doc; for file in gcc.texi cpp.texi cppinternals.texi; do
1307 texi2dvi -p -t @afourpaper -t @finalout -I ./include -I ../../obj-%{gcc_target_platform}/gcc $file
1308 done)
1309 (cd gcc/fortran;
1310 texi2dvi -p -t @afourpaper -t @finalout -I ../doc/include -I ../../obj-%{gcc_target_platform}/gcc gfortran.texi)
1311 %if %{build_ada}
1312 (cd gcc/ada;
1313 texi2dvi -p -t @afourpaper -t @finalout -I ../doc/include -I ../../obj-%{gcc_target_platform}/gcc gnat_rm.texi)
1314 (cd obj-%{gcc_target_platform}/gcc/doc;
1315 texi2dvi -p -t @afourpaper -t @finalout -I ../../../gcc/doc/include -I .. gnat_ugn.texi
1316 mv gnat_ugn.pdf ../../../gcc/ada/gnat_ugn.pdf)
1317 %endif
1318 %endif
1319
1320 # Make generated doxygen pages.
1321 %if %{build_libstdcxx_docs}
1322 cd obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3
1323 make doc-html-doxygen
1324 make doc-man-doxygen
1325 cd ../..
1326 %endif
1327
1328 %check
1329 echo ====================TESTING=========================
1330 %if %{build_check}
1331 cd obj-%{gcc_target_platform}
1332 time %make -k check || true
1333 echo "XXX check time above XXX"
1334 ../contrib/test_summary > ../test_summary.log
1335 cd ..
1336 %endif
1337 echo ====================TESTING END=====================
1338
1339 %install
1340 # Create some directories, just to make sure (e.g. ColorGCC)
1341 mkdir -p %{buildroot}%{_bindir}
1342 mkdir -p %{buildroot}%{_mandir}
1343 mkdir -p %{buildroot}%{_infodir}
1344 mkdir -p %{buildroot}%{_sysconfdir}
1345
1346 pushd obj-%{gcc_target_platform};
1347 %makeinstall_std
1348 %if %{build_libstdcxx_docs}
1349 libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen
1350 mkdir -p ../rpm.doc/libstdc++-v3
1351 cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html
1352 cp -r -p $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api
1353 mkdir -p %{buildroot}%{_mandir}/man3
1354 cp -r -p $libstdcxx_doc_builddir/man/man3/* %{buildroot}%{_mandir}/man3/
1355 %endif
1356 popd
1357
1358 FULLVER=`%{buildroot}%{_bindir}/%{gcc_target_platform}-gcc%{program_suffix} --version | head -n 1 | cut -d' ' -f3`
1359 FULLPATH=$(dirname %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/cc1)
1360
1361 # Create /usr/bin/%{program_prefix}gcc%{branch}-version that contains the full version of gcc
1362 cat >%{buildroot}%{_bindir}/%{program_prefix}gcc%{branch}-version <<EOF
1363 #!/bin/sh
1364 echo "$FULLVER"
1365 EOF
1366 chmod 0755 %{buildroot}%{_bindir}/%{program_prefix}gcc%{branch}-version
1367
1368 %if "%{program_suffix}" == ""
1369 mv %{buildroot}%{_bindir}/%{program_prefix}cpp %{buildroot}%{_bindir}/%{program_prefix}cpp-%{version}
1370 mv %{buildroot}%{_bindir}/%{program_prefix}gcc %{buildroot}%{_bindir}/%{program_prefix}gcc-%{version}
1371 mv %{buildroot}%{_bindir}/%{program_prefix}gcc-ar %{buildroot}%{_bindir}/%{program_prefix}gcc-ar-%{version}
1372 mv %{buildroot}%{_bindir}/%{program_prefix}gcc-nm %{buildroot}%{_bindir}/%{program_prefix}gcc-nm-%{version}
1373 mv %{buildroot}%{_bindir}/%{program_prefix}gcc-ranlib %{buildroot}%{_bindir}/%{program_prefix}gcc-ranlib-%{version}
1374 %if %{build_cxx}
1375 mv %{buildroot}%{_bindir}/%{program_prefix}g++ %{buildroot}%{_bindir}/%{program_prefix}g++-%{version}
1376 mv %{buildroot}%{_bindir}/%{program_prefix}c++ %{buildroot}%{_bindir}/%{program_prefix}c++-%{version}
1377 %endif
1378 %endif
1379
1380 # replacing hardlinks with symlinks
1381 ln -sf %{program_prefix}gcc%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gcc%{program_suffix}
1382 ln -sf %{program_prefix}gcc-ar%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gcc-ar%{program_suffix}
1383 ln -sf %{program_prefix}gcc-nm%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gcc-nm%{program_suffix}
1384 ln -sf %{program_prefix}gcc-ranlib%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gcc-ranlib%{program_suffix}
1385 ln -sf %{program_prefix}gcc-ar%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-ar%{program_suffix}
1386 ln -sf %{program_prefix}gcc-nm%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-nm%{program_suffix}
1387 ln -sf %{program_prefix}gcc-ranlib%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-ranlib%{program_suffix}
1388 # TODO: cleanups?
1389 %if "%{program_prefix}" != "%{gcc_target_platform}-"
1390 ln -sf %{program_prefix}gcc%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gcc-%{version}
1391 ln -sf %{program_prefix}gcc-ar%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-ar-%{version}
1392 ln -sf %{program_prefix}gcc-nm%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-nm-%{version}
1393 ln -sf %{program_prefix}gcc-ranlib%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-ranlib-%{version}
1394 %endif
1395 %if %{build_cxx}
1396 %if !%{build_cross}
1397 ln -sf %{program_prefix}g++%{program_long_suffix} %{buildroot}%{_bindir}/c++%{program_long_suffix}
1398 %endif
1399 ln -sf %{program_prefix}g++%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-c++%{program_suffix}
1400 ln -sf %{program_prefix}g++%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-g++%{program_suffix}
1401 %endif
1402 %if %{build_fortran}
1403 ln -sf %{program_prefix}gfortran%{program_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gfortran%{program_suffix}
1404 %endif
1405
1406 %if %{system_compiler}
1407 ln -s gcc %{buildroot}%{_bindir}/cc
1408 %endif
1409
1410 %if %{build_cross_bootstrap}
1411 # libgcc_eh.a is needed for glibc _but_ it is not built at this stage
1412 # (disabled-shared)
1413 # workaround by symlinking to libgcc. The other possibility would be to
1414 # workaround at glibc level but it would be more painful.
1415 ln -sf %{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcc.a \
1416 %{buildroot}/%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcc_eh.a
1417 %endif
1418 rm -f %{buildroot}%{_infodir}/dir
1419
1420 %if %{build_ada} && %{libc_shared}
1421 %if %isarch x86_64
1422 rm -rf $FULLPATH/32/ada{include,lib}
1423 %endif
1424 # Dispatch Ada 95 libraries (special case)
1425 pushd $FULLPATH/adalib
1426 rm -f libgnarl.so* libgnat.so*
1427 mv -f libgnarl-%{libgnat_major}.so %{buildroot}%{_libdir}/
1428 ln -s ../../../../../%{_lib}/libgnarl-%{libgnat_major}.so libgnarl.so
1429 ln -s ../../../../../%{_lib}/libgnarl-%{libgnat_major}.so libgnarl-%{libgnat_major}.so
1430 mv -f libgnat-%{libgnat_major}.so %{buildroot}%{_libdir}/
1431 ln -s ../../../../../%{_lib}/libgnat-%{libgnat_major}.so libgnat.so
1432 ln -s ../../../../../%{_lib}/libgnat-%{libgnat_major}.so libgnat-%{libgnat_major}.so
1433 popd
1434 %endif
1435
1436 # Strip debug info from libraries
1437 STRIP_DEBUG=/bin/true
1438 %if !%{build_debug}
1439 if [[ "%{_enable_debug_packages}" != "1" ]]; then
1440 STRIP_DEBUG="strip -g"
1441 if [[ "%{_target_cpu}" != "%{target_cpu}" ]]; then
1442 STRIP_DEBUG="%{target_cpu}-linux-$STRIP_DEBUG"
1443 fi
1444 fi
1445 %endif
1446
1447 # Dispatch libraries to the right directories
1448 DispatchLibs() {
1449 libname=$1 libversion=$2
1450 [[ -f ../../../../..%{target_libdir}/$libname.so.$libversion ]] && {
1451 $STRIP_DEBUG ../../../../..%{target_libdir}/$libname.so.$libversion
1452 rm -f $libname.so
1453 ln -s ../../../../..%{target_libdir}/$libname.so.$libversion $libname.so
1454 rm -f ../../../../..%{target_libdir}/$libname.so
1455 } || :
1456 [[ -f ../../../../..%{target_libdir}/$libname.a ]] && {
1457 $STRIP_DEBUG ../../../../..%{target_libdir}/$libname.a
1458 rm -f $libname.a
1459 cp -f ../../../../..%{target_libdir}/$libname.a $libname.a
1460 rm -f ../../../../..%{target_libdir}/$libname.a
1461 } || :
1462 %if %isarch %{biarches}
1463 [ -d 32 ] || mkdir 32
1464 pushd 32
1465 mkdir -p %{buildroot}%{_prefix}/lib
1466 skip32=
1467 [[ -z "$skip32" ]] && [[ -f ../../../../$libname.so.$libversion ]] && {
1468 $STRIP_DEBUG ../../../../$libname.so.$libversion
1469 ln -s ../../../../$libname.so.$libversion $libname.so
1470 rm -f ../../../../$libname.so
1471 [[ -f ../../../../$libname.a ]] && {
1472 $STRIP_DEBUG ../../../../$libname.a
1473 cp -f ../../../../$libname.a $libname.a
1474 rm -f ../../../../$libname.a
1475 } || :
1476 } || :
1477 popd
1478 %endif
1479 %if %isarch %{nof_arches}
1480 [ -d nof ] || mkdir nof
1481 pushd nof
1482 $STRIP_DEBUG ../../../../nof/$libname.so.$libversion
1483 ln -s ../../../../nof/$libname.so.$libversion $libname.so
1484 rm -f ../../../../nof/$libname.so
1485 [[ -f ../../../../nof/$libname.a ]] && {
1486 $STRIP_DEBUG ../../../../nof/$libname.a
1487 cp -f ../../../../nof/$libname.a $libname.a
1488 rm -f ../../../../nof/$libname.a
1489 } || :
1490 popd
1491 %endif
1492 }
1493 pushd $FULLPATH
1494 %if %{build_libssp}
1495 DispatchLibs libssp %{libssp_major}.0.0
1496 mv ../../../../..%{target_libdir}/libssp_nonshared.a libssp_nonshared.a
1497 %if %isarch %{biarches}
1498 mv ../../../libssp_nonshared.a 32/libssp_nonshared.a
1499 %endif
1500 %endif
1501 %if %{build_libgomp}
1502 DispatchLibs libgomp %{libgomp_major}.0.0
1503 %endif
1504 %if %{build_cxx}
1505 DispatchLibs libstdc++ %{libstdcxx_major}.0.%{libstdcxx_micro}
1506 mv ../../../../..%{target_libdir}/libsupc++.a libsupc++.a
1507 %if %isarch %{biarches}
1508 mv -f ../../../libsupc++.a 32/libsupc++.a
1509 %endif
1510 %if %isarch %{nof_arches}
1511 mv -f ../../../nof/libsupc++.a nof/libsupc++.a
1512 %endif
1513 %endif
1514 # Make it less hard dependent on libstdc++ 3.4 minor changes
1515 %if !%{system_compiler}
1516 [[ -f ../../../../..%{target_libdir}/libstdc++.so.%{libstdcxx_major} ]] &&
1517 ln -sf ../../../../..%{target_libdir}/libstdc++.so.%{libstdcxx_major} libstdc++.so || :
1518 %if %isarch %{biarches}
1519 [[ -f ../../../libstdc++.so.%{libstdcxx_major} ]] &&
1520 ln -sf ../../../../libstdc++.so.%{libstdcxx_major} 32/libstdc++.so || :
1521 %endif
1522 %endif
1523 %if %{build_objc}
1524 DispatchLibs libobjc %{libobjc_major}.0.0
1525 %if %{build_objc_gc}
1526 DispatchLibs libobjc_gc %{libobjc_major}.0.0
1527 %endif
1528 %endif
1529 %if %{build_fortran}
1530 DispatchLibs libgfortran %{libgfortran_major}.0.0
1531 [[ -f ../../../libgfortranbegin.a ]] &&
1532 mv -f ../../../libgfortranbegin.a 32/libgfortranbegin.a || :
1533 %if %isarch %{nof_arches}
1534 [[ -f ../../../nof/libgfortranbegin.a ]] &&
1535 mv -f ../../../nof/libgfortranbegin.a nof/libgfortranbegin.a || :
1536 %endif
1537 %endif
1538 popd
1539
1540 # Copy <cxxabi.h> to compiler-specific directories to keep backward compatibility
1541 %if %{build_cxx}
1542 mkdir -p $FULLPATH/include/bits/
1543 cp %{buildroot}%{libstdcxx_includedir}/cxxabi.h $FULLPATH/include/
1544 cp %{buildroot}%{libstdcxx_includedir}/%{gcc_target_platform}/bits/cxxabi_tweaks.h $FULLPATH/include/bits/
1545 %endif
1546
1547 # Ship with biarch c++config.h headers
1548 %if %{build_cxx}
1549 pushd obj-%{gcc_target_platform}
1550 cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`"
1551 for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do
1552 if ! diff -up $cxxconfig $i; then
1553 file_32=x file_64=x
1554 case $i in
1555 %{gcc_target_platform}/32/*) file_32=$i; file_64=$cxxconfig ;;
1556 %{gcc_target_platform}/64/*) file_32=$cxxconfig; file_64=$i ;;
1557 esac
1558 { [[ -f "$file_32" ]] && [[ -f "$file_64" ]]; } ||
1559 { echo "c++config.h dispatch error"; exit 1; }
1560
1561 cat > %{buildroot}%{libstdcxx_includedir}/%{gcc_target_platform}/bits/c++config.h <<EOF
1562 #ifndef _CPP_CPPCONFIG_WRAPPER
1563 #define _CPP_CPPCONFIG_WRAPPER 1
1564 #include <bits/wordsize.h>
1565 #if __WORDSIZE == 32
1566 `cat $file_32`
1567 #else
1568 `cat $file_64`
1569 #endif
1570 #endif
1571 EOF
1572 break
1573 fi
1574 done
1575 popd
1576 %endif
1577
1578 # Link gnatgcc to gcc
1579 %if %{build_ada}
1580 ln -sf gcc %{buildroot}%{_bindir}/gnatgcc
1581 %endif
1582
1583 # Create an empty file with perms 0755
1584 FakeAlternatives() {
1585 for file in ${1+"$@"}; do
1586 rm -f %{cross_program_prefix}$file
1587 touch %{cross_program_prefix}$file
1588 chmod 0755 %{cross_program_prefix}$file
1589 done
1590 }
1591
1592 # Alternatives provide /lib/cpp and %{_bindir}/cpp
1593 (cd %{buildroot}%{_bindir}; FakeAlternatives cpp)
1594 %if !%{build_cross} && %{system_compiler}
1595 (mkdir -p %{buildroot}/lib; cd %{buildroot}/lib; ln -sf %{_bindir}/cpp cpp)
1596 %endif
1597
1598 # Alternatives provide /usr/bin/c++
1599 %if %{build_cxx}
1600 (cd %{buildroot}%{_bindir}; FakeAlternatives c++)
1601 %endif
1602
1603 if [[ -z "%{?cross_bootstrap:1}" ]] && [[ "%{libc_shared}" = "1" ]]; then
1604 # Move libgcc_s.so* to /%{_lib}
1605 pushd %{buildroot}%{_prefix}/%{target_lib}
1606 chmod 0755 libgcc_s.so.%{libgcc_major}
1607 mkdir -p %{buildroot}%{target_slibdir}
1608 mv -f libgcc_s.so.%{libgcc_major} %{buildroot}%{target_slibdir}/libgcc_s-%{version}.so.%{libgcc_major}
1609 ln -sf libgcc_s-%{version}.so.%{libgcc_major} %{buildroot}%{target_slibdir}/libgcc_s.so.%{libgcc_major}
1610 # WARNING:
1611 # if there's a libgcc_s.so, it's a linker script. should be used instead of libgcc_s.so.*
1612 # to avoid build errors. At least ARM need this kind of specific care.
1613 if [ -f %{buildroot}/usr/%{target_lib}/libgcc_s.so ]; then
1614 mkdir -p %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}
1615 mv -f %{buildroot}/usr/%{target_lib}/libgcc_s.so %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/
1616 else
1617 ln -sf %{target_slibdir}/libgcc_s.so.%{libgcc_major} %{buildroot}%{target_libdir}/libgcc_s.so
1618 fi
1619 %if %isarch %{nof_arches}
1620 chmod 0755 nof/libgcc_s.so.%{libgcc_major}
1621 mkdir -p %{buildroot}%{target_slibdir}/nof
1622 mv -f nof/libgcc_s.so.%{libgcc_major} %{buildroot}%{target_slibdir}/nof/libgcc_s-%{version}.so.%{libgcc_major}
1623 ln -sf libgcc_s-%{version}.so.%{libgcc_major} %{buildroot}%{target_slibdir}/nof/libgcc_s.so.%{libgcc_major}
1624 ln -sf %{target_slibdir}/nof/libgcc_s.so.%{libgcc_major} %{buildroot}%{target_libdir}/nof/libgcc_s.so
1625 %endif
1626 popd
1627 %if %isarch %{biarches}
1628 pushd %{buildroot}%{_prefix}/lib
1629 chmod 0755 libgcc_s.so.%{libgcc_major}
1630 mkdir -p %{buildroot}/lib
1631 mv -f libgcc_s.so.%{libgcc_major} %{buildroot}/lib/libgcc_s-%{version}.so.%{libgcc_major}
1632 ln -sf libgcc_s-%{version}.so.%{libgcc_major} %{buildroot}/lib/libgcc_s.so.%{libgcc_major}
1633 ln -sf ../../lib/libgcc_s.so.%{libgcc_major} %{buildroot}%{_prefix}/lib/libgcc_s.so
1634 ln -sf ../../lib/libgcc_s.so.%{libgcc_major} %{buildroot}%{_prefix}/lib/libgcc_s_32.so
1635 popd
1636 %endif
1637 fi
1638
1639 # Create c89 and c99 wrappers
1640 %if %{system_compiler}
1641 cat > %{buildroot}%{_prefix}/bin/c89 <<"EOF"
1642 #!/bin/sh
1643 fl="-std=c89"
1644 for opt; do
1645 case "$opt" in
1646 -ansi|-std=c89|-std=iso9899:1990) fl="";;
1647 -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
1648 exit 1;;
1649 esac
1650 done
1651 exec %{_bindir}/gcc-%{version} $fl ${1+"$@"}
1652 EOF
1653 cat > %{buildroot}%{_prefix}/bin/c99 <<"EOF"
1654 #!/bin/sh
1655 fl="-std=c99"
1656 for opt; do
1657 case "$opt" in
1658 -std=c99|-std=iso9899:1999) fl="";;
1659 -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
1660 exit 1;;
1661 esac
1662 done
1663 exec %{_bindir}/gcc-%{version} $fl ${1+"$@"}
1664 EOF
1665 chmod 755 %{buildroot}%{_prefix}/bin/c?9
1666 %endif
1667
1668 # FIXME: cpp, gcov manpages names
1669 pushd %{buildroot}%{_mandir}/man1;
1670 if [[ -n "%{program_prefix}%{program_suffix}" ]]; then
1671 for f in gcov cpp gcc g++ gfortran; do
1672 [[ -f "$f.1" ]] && mv $f.1 %{program_prefix}$f%{program_suffix}.1 || :
1673 done
1674 fi
1675 popd
1676
1677 # Fix info pages
1678 if [[ "%{name}" = "gcc%{branch}" ]]; then
1679 pushd %{buildroot}%{_infodir}/
1680 for f in cpp cppinternals gcc gfortran gnat-style gnat_rm gnat_ugn; do
1681 if [[ -f "$f.info" ]]; then
1682 perl -pe "/^START-INFO-DIR-ENTRY/ .. /^END-INFO-DIR-ENTRY/ and s/($f)/\${1}-%{branch}/ig" $f.info > ${f}-%{branch}.info
1683 rm -f $f.info
1684 fi
1685 done
1686 popd
1687 fi
1688
1689 # Sanitize rpath
1690 for bin in %{buildroot}%{_bindir}/* $FULLPATH/*.so $FULLPATH/ecj1; do
1691 if [[ ! -f $bin ]]; then
1692 continue
1693 fi
1694 oldrpath=$(chrpath -l $bin | awk -F= '{ print $2 }')
1695 newrpath=
1696 for rpathdir in ${oldrpath//:/ }; do
1697 rpathdir=${rpathdir/lib\/..\/lib64/lib64}
1698 [[ "$rpathdir" != "%{_libdir}" ]] || continue
1699 newrpath=$newrpath:$rpathdir
1700 done
1701 newrpath=${newrpath#:}
1702 [[ "$newrpath" != "$oldrpath" ]] || continue
1703 if [[ "$newrpath" == "" ]]; then
1704 chrpath -d $bin
1705 else
1706 chrpath -r $newrpath $bin
1707 fi
1708 done
1709
1710 %if %{system_compiler}
1711 %define find_lang /usr/lib/rpm/find-lang.sh %buildroot
1712 %find_lang %{name}
1713 %find_lang cpplib
1714 %if %{build_cxx}
1715 %find_lang libstdc++
1716 %endif
1717 %else
1718 touch %{name}.lang cpplib.lang libstdc++.lang
1719 %endif
1720
1721 # Remove unpackaged files
1722 rm -f %{buildroot}%{_bindir}/jar
1723 rm -f %{buildroot}%{_bindir}/addr2name.awk
1724 rm -rf %{buildroot}%{_prefix}/doc
1725 rm -rf %{buildroot}%{_mandir}/man7
1726 rm -f %{buildroot}%{target_libdir}/*.la
1727 rm -f %{buildroot}%{_prefix}/lib/libiberty.a
1728 rm -f %{buildroot}%{_prefix}/lib64/libiberty.a
1729 rm -f %{buildroot}%{target_libdir}*/libiberty.a
1730 %if %isarch %{biarches}
1731 rm -f %{buildroot}%{_prefix}/lib/*.la
1732 rm -f %{buildroot}%{_prefix}/lib/32/libiberty.a
1733 %endif
1734 rm -rf %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/install-tools
1735 %if !%{build_doc}
1736 rm -fr %{buildroot}/%{_datadir}/info/
1737 %endif
1738 %if !%{build_quadmath}
1739 rm -f %{buildroot}/%{_datadir}/info/libquadmath*
1740 %endif
1741
1742 %if %{build_cross}
1743 rm %{buildroot}%{_mandir}/man1/%{program_prefix}gcov%{program_suffix}.1*
1744 rm %{buildroot}%{_bindir}/%{program_prefix}gcov%{program_suffix}
1745 %endif
1746
1747
1748 %if !%system_compiler && !%build_cross && %libc_shared
1749 rm %{buildroot}%{target_slibdir}/libgcc_s-%{version}.so.%{libgcc_major}
1750 rm %{buildroot}%{target_slibdir}/libgcc_s.so.%{libgcc_major}
1751 rm %{buildroot}%{target_libdir}/libgcc_s.so
1752 %if %isarch %{biarches}
1753 rm %{buildroot}%{target_slibdir32}/libgcc_s-%{version}.so.%{libgcc_major}
1754 rm %{buildroot}%{target_slibdir32}/libgcc_s.so.%{libgcc_major}
1755 rm %{buildroot}%{target_libdir}/../lib/libgcc_s.so
1756 rm %{buildroot}%{target_libdir}/../lib/libgcc_s_32.so
1757 %endif
1758 %endif
1759 %if %build_cross && !%{build_cross_bootstrap}
1760 rm -f %{buildroot}/usr/%{target_lib}/libgcc_s.so
1761 %endif
1762
1763 # lsan is only available on x86_64, no need to expose header on other arches
1764 %ifnarch x86_64 aarch64
1765 rm -f %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/sanitizer/lsan_interface.h
1766 %endif
1767
1768 # limits.h and syslimits.h are needed in includedir
1769 mv %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/include-fixed/{sys,}limits.h \
1770 %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/include
1771 rm -r %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/include-fixed
1772
1773 %if !%{system_compiler}
1774 rm -f %{buildroot}%{_infodir}/gccinstall.info*
1775 rm -f %{buildroot}%{_infodir}/gccint.info*
1776 rm -rf %{buildroot}%{_datadir}/locale
1777 %endif
1778 rm -f %{buildroot}%{_infodir}/cp-tools.info
1779
1780 # In case we are cross-compiling, don't bother to remake symlinks and
1781 # don't let spec-helper when stripping files either
1782 %if %build_cross
1783 export DONT_SYMLINK_LIBS=1
1784 export DONT_STRIP=1
1785 %endif
1786
1787 %if %{build_debug}
1788 # Don't strip in debug mode
1789 export DONT_STRIP=1
1790 %endif
1791
1792 %if %{build_libstdcxx}
1793 %if %build_cross && !%{build_cross_bootstrap}
1794 rm -f %{buildroot}%{target_libdir}/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py
1795 %else
1796 mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_libdir}
1797 mv -f %{buildroot}%{_libdir}/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py \
1798 %{buildroot}%{_datadir}/gdb/auto-load/%{_libdir}/
1799 %if %isarch %{biarches}
1800 mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/lib
1801 mv -f %{buildroot}%{_prefix}/lib/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py \
1802 %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/lib/
1803 %endif
1804 %endif
1805 %endif
1806
1807 # fix experimental/filesystem .a location
1808 %if %{build_libstdcxx}
1809 mv -f %{buildroot}%{_libdir}/libstdc++fs.a %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/
1810 %if %isarch %{biarches}
1811 mv -f %{buildroot}%{_prefix}/lib/libstdc++fs.a %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/
1812 %endif
1813 %endif
1814
1815 # fix links broken by /usr move
1816 rm -f %{buildroot}/lib/cpp
1817 ln -sf %{_bindir}/cpp %{buildroot}%{_prefix}/lib/cpp
1818
1819 %post
1820 /usr/sbin/update-alternatives --install %{_bindir}/%{cross_program_prefix}gcc %{cross_program_prefix}gcc %{_bindir}/%{program_prefix}gcc-%{version} %{alternative_priority}
1821 [ -e %{_bindir}/%{cross_program_prefix}gcc ] || /usr/sbin/update-alternatives --auto %{cross_program_prefix}gcc
1822 /usr/sbin/update-alternatives --install %{_bindir}/%{cross_program_prefix}gcc-ar %{cross_program_prefix}gcc-ar %{_bindir}/%{program_prefix}gcc-ar-%{version} %{alternative_priority}
1823 [ -e %{_bindir}/%{cross_program_prefix}gcc-ar ] || /usr/sbin/update-alternatives --auto %{cross_program_prefix}gcc-ar
1824 /usr/sbin/update-alternatives --install %{_bindir}/%{cross_program_prefix}gcc-nm %{cross_program_prefix}gcc-nm %{_bindir}/%{program_prefix}gcc-nm-%{version} %{alternative_priority}
1825 [ -e %{_bindir}/%{cross_program_prefix}gcc-nm ] || /usr/sbin/update-alternatives --auto %{cross_program_prefix}gcc-nm
1826 /usr/sbin/update-alternatives --install %{_bindir}/%{cross_program_prefix}gcc-ranlib %{cross_program_prefix}gcc-ranlib %{_bindir}/%{program_prefix}gcc-ranlib-%{version} %{alternative_priority}
1827 [ -e %{_bindir}/%{cross_program_prefix}gcc-ranlib ] || /usr/sbin/update-alternatives --auto %{cross_program_prefix}gcc-ranlib
1828
1829 %postun
1830 if [ ! -f %{_bindir}/%{cross_program_prefix}gcc-%{version} ]; then
1831 /usr/sbin/update-alternatives --remove %{cross_program_prefix}gcc %{_bindir}/%{program_prefix}gcc-%{version}
1832 fi
1833 if [ ! -f %{_bindir}/%{cross_program_prefix}gcc-ar-%{version} ]; then
1834 /usr/sbin/update-alternatives --remove %{cross_program_prefix}gcc-ar %{_bindir}/%{program_prefix}gcc-ar-%{version}
1835 fi
1836 if [ ! -f %{_bindir}/%{cross_program_prefix}gcc-nm-%{version} ]; then
1837 /usr/sbin/update-alternatives --remove %{cross_program_prefix}gcc-nm %{_bindir}/%{program_prefix}gcc-nm-%{version}
1838 fi
1839 if [ ! -f %{_bindir}/%{cross_program_prefix}gcc-ranlib-%{version} ]; then
1840 /usr/sbin/update-alternatives --remove %{cross_program_prefix}gcc-ranlib %{_bindir}/%{program_prefix}gcc-ranlib-%{version}
1841 fi
1842
1843 %if %{build_cxx}
1844 %post c++
1845 /usr/sbin/update-alternatives --install %{_bindir}/%{cross_program_prefix}g++ %{cross_program_prefix}g++ %{_bindir}/%{program_prefix}g++-%{version} %{alternative_priority} --slave %{_bindir}/%{cross_program_prefix}c++ %{cross_program_prefix}c++ %{_bindir}/%{program_prefix}g++-%{version}
1846 [ -e %{_bindir}/%{cross_program_prefix}g++ ] || /usr/sbin/update-alternatives --auto %{cross_program_prefix}g++
1847
1848 %postun c++
1849 if [ ! -f %{_bindir}/%{cross_program_prefix}g++-%{version} ]; then
1850 /usr/sbin/update-alternatives --remove %{cross_program_prefix}g++ %{_bindir}/%{program_prefix}g++-%{version}
1851 fi
1852 %endif
1853
1854 %post cpp
1855 /usr/sbin/update-alternatives --install %{_bindir}/%{cross_program_prefix}cpp %{cross_program_prefix}cpp %{_bindir}/%{program_prefix}cpp-%{version} %{alternative_priority} --slave /lib/%{cross_program_prefix}cpp %{cross_program_prefix}lib_cpp %{_bindir}/%{program_prefix}cpp-%{version}
1856 [ -e %{_bindir}/%{cross_program_prefix}cpp ] || /usr/sbin/update-alternatives --auto %{cross_program_prefix}cpp
1857
1858 %postun cpp
1859 if [ ! -f %{_bindir}/%{cross_program_prefix}cpp-%{version} ]; then
1860 /usr/sbin/update-alternatives --remove %{cross_program_prefix}cpp %{_bindir}/%{program_prefix}cpp-%{version}
1861 fi
1862
1863 %files -f %{name}.lang
1864 #
1865 %doc gcc/README*
1866 %{_mandir}/man1/%{program_prefix}gcc%{program_suffix}.1*
1867 %if "%{name}" == "gcc%{package_suffix}"
1868 %{_mandir}/man1/gcov%{program_suffix}.1*
1869 %{_mandir}/man1/gcov-dump%{program_suffix}.1*
1870 %{_mandir}/man1/gcov-tool%{program_suffix}.1*
1871 %endif
1872 #
1873 %{_bindir}/%{program_prefix}gcc%{branch}-version
1874 %{_bindir}/%{program_prefix}gcc%{program_long_suffix}
1875 %{_bindir}/%{gcc_target_platform}-gcc%{program_suffix}
1876 %{_bindir}/%{gcc_target_platform}-gcc-%{version}
1877 %{_bindir}/%{program_prefix}gcc-ar%{program_long_suffix}
1878 %{_bindir}/%{gcc_target_platform}-gcc-ar%{program_suffix}
1879 %{_bindir}/%{gcc_target_platform}-ar%{program_suffix}
1880 %{_bindir}/%{gcc_target_platform}-ar-%{version}
1881 %{_bindir}/%{program_prefix}gcc-nm%{program_long_suffix}
1882 %{_bindir}/%{gcc_target_platform}-gcc-nm%{program_suffix}
1883 %{_bindir}/%{gcc_target_platform}-nm%{program_suffix}
1884 %{_bindir}/%{gcc_target_platform}-nm-%{version}
1885 %{_bindir}/%{program_prefix}gcc-ranlib%{program_long_suffix}
1886 %{_bindir}/%{gcc_target_platform}-gcc-ranlib%{program_suffix}
1887 %{_bindir}/%{gcc_target_platform}-ranlib%{program_suffix}
1888 %{_bindir}/%{gcc_target_platform}-ranlib-%{version}
1889 %if "%{name}" == "gcc%{package_suffix}"
1890 %{_bindir}/gcov%{program_suffix}
1891 %{_bindir}/gcov-dump
1892 %{_bindir}/gcov-tool
1893 %endif
1894 %if %{system_compiler}
1895 %{_bindir}/cc
1896 %{_bindir}/c89
1897 %{_bindir}/c99
1898 %endif
1899 #
1900 %if %{libc_shared} && %{build_cross} || %{system_compiler}
1901 %if !%{build_cross_bootstrap}
1902 %{target_libdir}/libcc1.so
1903 %if %isarch %arm %{ix86} x86_64
1904 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcc_s.so
1905 %else
1906 %{target_libdir}/libgcc_s.so
1907 %endif
1908 %endif
1909 %if "%{name}" == "gcc%{package_suffix}"
1910 %if %isarch %{nof_arches}
1911 %{_libdir}/nof/libgcc_s.so
1912 %endif
1913 %if %isarch %{biarches}
1914 %{_prefix}/lib/libgcc_s.so
1915 %{_prefix}/lib/libgcc_s_32.so
1916 %endif
1917 %endif
1918 %endif
1919 #
1920 %dir %{gcc_libdir}/%{gcc_target_platform}
1921 %dir %{gcc_libdir}/%{gcc_target_platform}/%{version}
1922 #
1923 %{gcc_libdir}/%{gcc_target_platform}/%{version}/collect2
1924 %{gcc_libdir}/%{gcc_target_platform}/%{version}/crt*.o
1925 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcc.a
1926 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcov.a
1927 %{gcc_libdir}/%{gcc_target_platform}/%{version}/lto-wrapper
1928 %{gcc_libdir}/%{gcc_target_platform}/%{version}/lto1
1929 # TODO: split out?
1930 %{gcc_libdir}/%{gcc_target_platform}/%{version}/liblto_plugin*
1931 # TODO: split out
1932 %{gcc_libdir}/%{gcc_target_platform}/%{version}/plugin/libcp1plugin*
1933
1934 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcc_eh.a
1935 %if "%{name}" == "gcc%{package_suffix}"
1936 %if %isarch %{biarches}
1937 %dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/32
1938 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/crt*.o
1939 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgcc.a
1940 %if %{libc_shared}
1941 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgcc_eh.a
1942 %endif
1943 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgcov.a
1944 %endif
1945 %if %isarch %{nof_arches}
1946 %dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof
1947 %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/crt*.o
1948 %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/ecrt*.o
1949 %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libgcc.a
1950 %if %{libc_shared}
1951 %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libgcc_eh.a
1952 %endif
1953 %endif
1954 %endif
1955 #
1956 %dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/include
1957 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/float.h
1958 # FIXME ? Fortran only ?
1959 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/ISO_Fortran_binding.h
1960 %if %isarch %{ix86} x86_64
1961 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/adxintrin.h
1962 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/ammintrin.h
1963 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avxintrin.h
1964 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx2intrin.h
1965 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx5124fmapsintrin.h
1966 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx5124vnniwintrin.h
1967 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512bitalgintrin.h
1968 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512bwintrin.h
1969 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512cdintrin.h
1970 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512dqintrin.h
1971 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512erintrin.h
1972 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512fintrin.h
1973 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512ifmaintrin.h
1974 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512ifmavlintrin.h
1975 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512pfintrin.h
1976 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512vbmi2intrin.h
1977 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512vbmiintrin.h
1978 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512vbmi2vlintrin.h
1979 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512vbmivlintrin.h
1980 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512vlbwintrin.h
1981 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512vldqintrin.h
1982 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512vlintrin.h
1983 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512vnniintrin.h
1984 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512vnnivlintrin.h
1985 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512vpopcntdqintrin.h
1986 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512vpopcntdqvlintrin.h
1987 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/bmiintrin.h
1988 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/bmi2intrin.h
1989 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/bmmintrin.h
1990 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cet.h
1991 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cetintrin.h
1992 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cldemoteintrin.h
1993 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/clflushoptintrin.h
1994 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/clwbintrin.h
1995 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/clzerointrin.h
1996 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/emmintrin.h
1997 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/f16cintrin.h
1998 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/fma4intrin.h
1999 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/fmaintrin.h
2000 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/fxsrintrin.h
2001 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/gfniintrin.h
2002 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/ia32intrin.h
2003 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/immintrin.h
2004 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/lwpintrin.h
2005 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/lzcntintrin.h
2006 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/mm_malloc.h
2007 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/mm3dnow.h
2008 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/mmintrin.h
2009 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/mwaitxintrin.h
2010 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/movdirintrin.h
2011 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/nmmintrin.h
2012 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/pconfigintrin.h
2013 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/pkuintrin.h
2014 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/pmmintrin.h
2015 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/popcntintrin.h
2016 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/prfchwintrin.h
2017 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/rdseedintrin.h
2018 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/rtmintrin.h
2019 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/sgxintrin.h
2020 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/shaintrin.h
2021 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/smmintrin.h
2022 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/tbmintrin.h
2023 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/tmmintrin.h
2024 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/vaesintrin.h
2025 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/vpclmulqdqintrin.h
2026 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/waitpkgintrin.h
2027 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/wbnoinvdintrin.h
2028 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/wmmintrin.h
2029 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/x86intrin.h
2030 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/xmmintrin.h
2031 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/xopintrin.h
2032 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/xsavecintrin.h
2033 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/xsaveintrin.h
2034 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/xsaveoptintrin.h
2035 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/xsavesintrin.h
2036 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/xtestintrin.h
2037 %endif
2038 %if %isarch %arm
2039 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/mmintrin.h
2040 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/arm_cmse.h
2041 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/unwind-arm-common.h
2042 %endif
2043 %if %isarch %arm aarch64
2044 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/arm_acle.h
2045 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/arm_fp16.h
2046 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/arm_neon.h
2047 %endif
2048 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/gcov.h
2049 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/iso646.h
2050 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/limits.h
2051 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdalign.h
2052 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdarg.h
2053 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdatomic.h
2054 %if %isarch %{ix86} x86_64
2055 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cross-stdarg.h
2056 %endif
2057 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdbool.h
2058 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stddef.h
2059 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdint-gcc.h
2060 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdint.h
2061 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdnoreturn.h
2062 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/syslimits.h
2063 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/unwind.h
2064 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/varargs.h
2065 %if %isarch i386 x86_64
2066 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cpuid.h
2067 %endif
2068 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdfix.h
2069 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/sanitizer/common_interface_defs.h
2070 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/sanitizer/tsan_interface.h
2071
2072 %if "%{name}" == "%{cross_prefix}gcc" && %{libc_shared}
2073 %if !%{build_monolithic}
2074 %files -n %{libgcc_name}
2075 %endif
2076 %{target_libdir}/libcc1.so.%{libcc_major}
2077 %{target_libdir}/libcc1.so.%{libcc_major}.0.0
2078 %{target_slibdir}/libgcc_s-%{version}.so.%{libgcc_major}
2079 %{target_slibdir}/libgcc_s.so.%{libgcc_major}
2080 %if %isarch %{biarches}
2081 %{target_slibdir32}/libgcc_s-%{version}.so.%{libgcc_major}
2082 %{target_slibdir32}/libgcc_s.so.%{libgcc_major}
2083 # (cg) Excluded for usrmerge
2084 # Note: This file will be recreated when running ldconfig so it will likely
2085 # return almost immediately on installed systems but due to a file name conflict
2086 # when the usrmerge happens it *must* be excluded from the package.
2087 # In the fullness of time we can remove any /lib vs /usr/lib hacks in this package.
2088 %exclude %{_prefix}/lib/libgcc_s.so.%{libgcc_major}
2089 %endif
2090 %if %isarch %{nof_arches}
2091 %{target_slibdir}/nof/libgcc_s-%{version}.so.%{libgcc_major}
2092 %{target_slibdir}/nof/libgcc_s.so.%{libgcc_major}
2093 %endif
2094 %endif
2095
2096 %if %{build_libssp} && %{libc_shared}
2097 %if !%{build_monolithic}
2098 %files -n %{libssp_name}
2099 %endif
2100 %{target_libdir}/libssp.so.%{libssp_major}
2101 %{target_libdir}/libssp.so.%{libssp_major}.0.0
2102 %if %isarch %{biarches}
2103 %{_prefix}/lib/libssp.so.%{libssp_major}
2104 %{_prefix}/lib/libssp.so.%{libssp_major}.0.0
2105 %endif
2106 %endif
2107
2108 %if %{build_libssp}
2109 %if !%{build_monolithic}
2110 %files -n %{libssp_name_orig}-devel
2111 %endif
2112 %dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/ssp
2113 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/ssp/*.h
2114 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libssp.a
2115 %if %{libc_shared}
2116 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libssp_nonshared.a
2117 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libssp.so
2118 %endif
2119 %if %isarch %{biarches}
2120 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libssp.a
2121 %if %{libc_shared}
2122 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libssp_nonshared.a
2123 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libssp.so
2124 %endif
2125 %endif
2126 %endif
2127
2128 %if %{build_libgomp}
2129 %files -n %{libgomp_name}
2130 %{target_libdir}/libgomp.so.%{libgomp_major}
2131 %{target_libdir}/libgomp.so.%{libgomp_major}.0.0
2132 %if %isarch %{biarches}
2133 %{_prefix}/lib/libgomp.so.%{libgomp_major}
2134 %{_prefix}/lib/libgomp.so.%{libgomp_major}.0.0
2135 %endif
2136
2137 %files -n %{libgomp_name_orig}-devel
2138 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libgomp.a
2139 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libgomp.so
2140 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/omp.h
2141 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/openacc.h
2142 %if %isarch %{biarches}
2143 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgomp.a
2144 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgomp.so
2145 %endif
2146 %{target_libdir}/libgomp.spec
2147 %if %isarch %{biarches}
2148 %{_prefix}/lib/libgomp.spec
2149 %endif
2150 %endif
2151
2152 %if %{build_quadmath}
2153 %files -n %{libquadmath_name}
2154 %{target_libdir}/libquadmath.so.%{libquadmath_major}
2155 %{target_libdir}/libquadmath.so.%{libquadmath_major}.0.0
2156 %if %isarch %{biarches}
2157 %{_prefix}/lib/libquadmath.so.%{libquadmath_major}
2158 %{_prefix}/lib/libquadmath.so.%{libquadmath_major}.0.0
2159 %endif
2160
2161 %files -n %{libquadmath_name_orig}-devel
2162 %{target_libdir}/libquadmath.a
2163 %{target_libdir}/libquadmath.so
2164 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/quadmath.h
2165 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/quadmath_weak.h
2166 %if %isarch %{biarches}
2167 %{_prefix}/lib/libquadmath.a
2168 %{_prefix}/lib/libquadmath.so
2169 %endif
2170 %endif
2171
2172 %if %{build_libitm}
2173 %files -n %{libitm_name}
2174 %{target_libdir}/libitm.so.%{libitm_major}
2175 %{target_libdir}/libitm.so.%{libitm_major}.0.0
2176 %{target_libdir}/libitm.spec
2177 %if %isarch %{biarches}
2178 %{_prefix}/lib/libitm.so.%{libitm_major}
2179 %{_prefix}/lib/libitm.so.%{libitm_major}.0.0
2180 %{_prefix}/lib/libitm.spec
2181 %endif
2182
2183 %files -n %{libitm_name_orig}-devel
2184 %{target_libdir}/libitm.a
2185 %{target_libdir}/libitm.so
2186 %if %isarch %{biarches}
2187 %{_prefix}/lib/libitm.a
2188 %{_prefix}/lib/libitm.so
2189 %endif
2190 %endif
2191
2192 %if %{build_libasan}
2193 %files -n %{libasan_name}
2194 %{target_libdir}/libasan.so.%{libasan_major}
2195 %{target_libdir}/libasan.so.%{libasan_major}.0.0
2196 %{target_libdir}/libasan_preinit.o
2197 %if %isarch %{biarches}
2198 %{_prefix}/lib/libasan.so.%{libasan_major}
2199 %{_prefix}/lib/libasan.so.%{libasan_major}.0.0
2200 %{_prefix}/lib/libasan_preinit.o
2201 %endif
2202
2203 %files -n %{libasan_name_orig}-devel
2204 %{target_libdir}/libasan.a
2205 %{target_libdir}/libasan.so
2206 %{target_libdir}/libsanitizer.spec
2207 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/sanitizer/asan_interface.h
2208 %if %isarch %{biarches}
2209 %{_prefix}/lib/libasan.a
2210 %{_prefix}/lib/libasan.so
2211 %{_prefix}/lib/libsanitizer.spec
2212 %endif
2213 %endif
2214
2215 %if %{build_libatomic}
2216 %files -n %{libatomic_name}
2217 %{target_libdir}/libatomic.so.%{libatomic_major}
2218 %{target_libdir}/libatomic.so.%{libatomic_major}.%{libatomic_minor}.0
2219 %if %isarch %{biarches}
2220 %{_prefix}/lib/libatomic.so.%{libatomic_major}
2221 %{_prefix}/lib/libatomic.so.%{libatomic_major}.%{libatomic_minor}.0
2222 %endif
2223
2224 %files -n %{libatomic_name_orig}-devel
2225 %{target_libdir}/libatomic.a
2226 %{target_libdir}/libatomic.so
2227 %if %isarch %{biarches}
2228 %{_prefix}/lib/libatomic.a
2229 %{_prefix}/lib/libatomic.so
2230 %endif
2231 %endif
2232
2233 %if %{build_liblsan}
2234 %files -n %{liblsan_name}
2235 %{target_libdir}/liblsan.so.%{liblsan_major}
2236 %{target_libdir}/liblsan.so.%{liblsan_major}.0.0
2237 %{target_libdir}/liblsan_preinit.o
2238
2239 %files -n %{liblsan_name_orig}-devel
2240 %{target_libdir}/liblsan.a
2241 %{target_libdir}/liblsan.so
2242 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/sanitizer/lsan_interface.h
2243 %endif
2244
2245 %if %{build_libtsan}
2246 %files -n %{libtsan_name}
2247 %{target_libdir}/libtsan.so.%{libtsan_major}
2248 %{target_libdir}/libtsan.so.%{libtsan_major}.0.0
2249 %{target_libdir}/libtsan_preinit.o
2250
2251 %files -n %{libtsan_name_orig}-devel
2252 %{target_libdir}/libtsan.a
2253 %{target_libdir}/libtsan.so
2254 %endif
2255
2256 %if %{build_libubsan}
2257 %files -n %{libubsan_name}
2258 %{target_libdir}/libubsan.so.%{libubsan_major}
2259 %{target_libdir}/libubsan.so.%{libubsan_major}.0.0
2260 %if %isarch %{biarches}
2261 %{_prefix}/lib/libubsan.so.%{libubsan_major}
2262 %{_prefix}/lib/libubsan.so.%{libubsan_major}.0.0
2263 %endif
2264
2265 %files -n %{libubsan_name_orig}-devel
2266 %{target_libdir}/libubsan.a
2267 %{target_libdir}/libubsan.so
2268 %if %isarch %{biarches}
2269 %{_prefix}/lib/libubsan.a
2270 %{_prefix}/lib/libubsan.so
2271 %endif
2272 %endif
2273
2274 %if %{build_libvtv}
2275 %files -n %{libvtv_name}
2276 %{target_libdir}/libvtv.so.%{libvtv_major}
2277 %{target_libdir}/libvtv.so.%{libvtv_major}.0.0
2278 %if %isarch %{biarches}
2279 %{_prefix}/lib/libvtv.so.%{libvtv_major}
2280 %{_prefix}/lib/libvtv.so.%{libvtv_major}.0.0
2281 %endif
2282
2283 %files -n %{libvtv_name_orig}-devel
2284 %{target_libdir}/libvtv.a
2285 %{target_libdir}/libvtv.so
2286 %if %isarch %{biarches}
2287 %{_prefix}/lib/libvtv.a
2288 %{_prefix}/lib/libvtv.so
2289 %endif
2290 %endif
2291
2292 %files cpp -f cpplib.lang
2293 %{_mandir}/man1/%{program_prefix}cpp%{program_suffix}.1*
2294 %if !%{build_cross} && %{system_compiler}
2295 %{_prefix}/lib/%{cross_program_prefix}cpp
2296 %endif
2297 %ghost %{_bindir}/%{cross_program_prefix}cpp
2298 %{_bindir}/%{program_prefix}cpp%{program_long_suffix}
2299 %{gcc_libdir}/%{gcc_target_platform}/%{version}/cc1
2300
2301 %if %{build_cxx}
2302 %files c++ -f libstdc++.lang
2303 %{_mandir}/man1/%{program_prefix}g++%{program_suffix}.1*
2304 %ghost %{_bindir}/%{cross_program_prefix}c++
2305 %{_bindir}/%{program_prefix}g++%{program_long_suffix}
2306 %{_bindir}/%{program_prefix}c++%{program_long_suffix}
2307 %{_bindir}/%{gcc_target_platform}-g++%{program_suffix}
2308 %{_bindir}/%{gcc_target_platform}-c++%{program_suffix}
2309 #
2310 %{gcc_libdir}/%{gcc_target_platform}/%{version}/cc1plus
2311 # symlinks to gcc3.4 stuff
2312 %if !%{system_compiler}
2313 #
2314 %if %{build_stdcxxheaders}
2315 %dir %{target_prefix}/include/c++
2316 %{libstdcxx_includedir}
2317 %endif
2318 #
2319 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cxxabi.h
2320 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/bits
2321 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libstdc++.so
2322 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libsupc++.a
2323 %if %isarch %{biarches}
2324 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libstdc++.so
2325 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libsupc++.a
2326 %endif
2327 %endif
2328 %endif
2329
2330 %if %{build_libstdcxx} && %{libc_shared}
2331 %if !%{build_monolithic}
2332 %files -n %{libstdcxx_name}
2333 %endif
2334 %{target_libdir}/libstdc++.so.%{libstdcxx_major}
2335 %{target_libdir}/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}
2336 %if %isarch %{biarches}
2337 %{_prefix}/lib/libstdc++.so.%{libstdcxx_major}
2338 %{_prefix}/lib/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}
2339 %endif
2340 %if %isarch %{nof_arches}
2341 %dir %{_libdir}/nof
2342 %{_libdir}/nof/libstdc++.so.%{libstdcxx_major}
2343 %{_libdir}/nof/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}
2344 %endif
2345 %endif
2346
2347 %if %{build_libstdcxx}
2348 %if !%{build_monolithic}
2349 %files -n %{libstdcxx_name_orig}-devel
2350 %endif
2351 %doc libstdc++-v3/README*
2352 %dir %{libstdcxx_includedir}
2353 %{libstdcxx_includedir}/*
2354
2355 %if %{system_compiler}
2356 %dir %{gcc_libdir}/%{gcc_target_platform}/%{version}
2357 %dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/include
2358 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cxxabi.h
2359 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/bits
2360 %endif
2361
2362 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libsupc++.a
2363 %if %{libc_shared}
2364 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libstdc++.so
2365 %endif
2366 %if %isarch %{biarches}
2367 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libsupc++.a
2368 %if %{libc_shared}
2369 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libstdc++.so
2370 %endif
2371 %endif
2372 %if %isarch %{nof_arches}
2373 %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libsupc++.a
2374 %if %{libc_shared}
2375 %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libstdc++.so
2376 %endif
2377 %endif
2378 %endif
2379
2380 %if %{build_libstdcxx}
2381 %if !%{build_monolithic}
2382 %files -n %{libstdcxx_name_orig}-python-devel
2383 %endif
2384 %dir %{python3_sitelib}/libstdcxx
2385 %{python3_sitelib}/libstdcxx/__init__.py*
2386 %dir %{python3_sitelib}/libstdcxx/__pycache__
2387 %{python3_sitelib}/libstdcxx/__pycache__/__init__.cpython-*.py*
2388 %dir %{python3_sitelib}/libstdcxx/v6
2389 %{python3_sitelib}/libstdcxx/v6/__init__.py*
2390 %{python3_sitelib}/libstdcxx/v6/printers.py*
2391 %{python3_sitelib}/libstdcxx/v6/xmethods.py*
2392 %dir %{python3_sitelib}/libstdcxx/v6/__pycache__
2393 %{python3_sitelib}/libstdcxx/v6/__pycache__/__init__.cpython-*.py*
2394 %{python3_sitelib}/libstdcxx/v6/__pycache__/printers.cpython-*.py*
2395 %{python3_sitelib}/libstdcxx/v6/__pycache__/xmethods.cpython-*.py*
2396 %if !%build_cross
2397 %{_datadir}/gdb/auto-load/%{_libdir}/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py*
2398 %{_datadir}/gdb/auto-load/%{_libdir}/__pycache__/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.cpython-*.py*
2399 %if %isarch %{biarches}
2400 %{_datadir}/gdb/auto-load/%{_prefix}/lib/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py*
2401 %{_datadir}/gdb/auto-load/%{_prefix}/lib/__pycache__/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.cpython-*.py*
2402 %endif
2403 %endif
2404 %endif
2405
2406 %if %{build_libstdcxx}
2407 %if !%{build_monolithic}
2408 %files -n %{libstdcxx_name_orig}-static-devel
2409 %endif
2410 %doc libstdc++-v3/README
2411 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libstdc++.a
2412 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libstdc++fs.a
2413 %if %isarch %{biarches}
2414 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libstdc++.a
2415 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libstdc++fs.a
2416 %endif
2417 %if %isarch %{nof_arches}
2418 %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libstdc++.a
2419 %endif
2420 %endif
2421
2422 # placement is important in order to avoid breaking build_monolithic case
2423 %files -n %{name}-plugins
2424 %dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/plugin/include/
2425 %{gcc_libdir}/%{gcc_target_platform}/%{version}/plugin/include/*
2426 %{gcc_libdir}/%{gcc_target_platform}/%{version}/plugin/gengtype
2427 %{gcc_libdir}/%{gcc_target_platform}/%{version}/plugin/gtype.state
2428 %{gcc_libdir}/%{gcc_target_platform}/%{version}/plugin/libcc1plugin.*
2429
2430 %if %{build_objc}
2431 %files objc
2432 %doc rpm.doc/objc/*
2433 %{gcc_libdir}/%{gcc_target_platform}/%{version}/cc1obj
2434 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libobjc.a
2435 %if %{build_objc_gc}
2436 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libobjc_gc.a
2437 %endif
2438 %if %{libc_shared}
2439 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libobjc.so
2440 %if %{build_objc_gc}
2441 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libobjc_gc.so
2442 %endif
2443 %endif
2444 %if %isarch %{biarches}
2445 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libobjc.a
2446 %if %{build_objc_gc}
2447 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libobjc_gc.a
2448 %endif
2449 %if %{libc_shared}
2450 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libobjc.so
2451 %if %{build_objc_gc}
2452 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libobjc_gc.so
2453 %endif
2454 %endif
2455 %endif
2456 %if %isarch %{nof_arches}
2457 %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libobjc.a
2458 %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libobjc_gc.a
2459 %if %{libc_shared}
2460 %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libobjc.so
2461 %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libobjc_gc.so
2462 %endif
2463 %endif
2464 #
2465 %dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/objc
2466 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/objc/*.h
2467 #
2468 %endif
2469
2470 %if %{build_objc} && %{libc_shared}
2471 %if !%{build_monolithic}
2472 %files -n %{libobjc_name}
2473 %endif
2474 %doc rpm.doc/libobjc/*
2475 %doc libobjc/THREADS* libobjc/ChangeLog
2476 %{target_libdir}/libobjc.so.%{libobjc_major}
2477 %{target_libdir}/libobjc.so.%{libobjc_major}.0.0
2478 %if %{build_objc_gc}
2479 %{target_libdir}/libobjc_gc.so.%{libobjc_major}
2480 %{target_libdir}/libobjc_gc.so.%{libobjc_major}.0.0
2481 %endif
2482 %if %isarch %{biarches}
2483 %{_prefix}/lib/libobjc.so.%{libobjc_major}
2484 %{_prefix}/lib/libobjc.so.%{libobjc_major}.0.0
2485 %if %{build_objc_gc}
2486 %{_prefix}/lib/libobjc_gc.so.%{libobjc_major}
2487 %{_prefix}/lib/libobjc_gc.so.%{libobjc_major}.0.0
2488 %endif
2489 %endif
2490 %endif
2491
2492 %if %{build_objcp}
2493 %files objc++
2494 %doc rpm.doc/objcp/*
2495 %{gcc_libdir}/%{gcc_target_platform}/%{version}/cc1objplus
2496 %endif
2497
2498
2499 %if %{build_fortran}
2500 %files gfortran
2501 %doc rpm.doc/gfortran/*
2502 %{_mandir}/man1/%{program_prefix}gfortran%{program_suffix}.1*
2503 %{_bindir}/%{program_prefix}gfortran%{program_suffix}
2504 %{_bindir}/%{gcc_target_platform}-gfortran%{program_suffix}
2505 %{gcc_libdir}/%{gcc_target_platform}/%{version}/f951
2506 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libgfortran.a
2507 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libcaf_single.la
2508 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libcaf_single.a
2509 %{gcc_libdir}/%{gcc_target_platform}/%{version}/finclude/ieee_arithmetic.mod
2510 %{gcc_libdir}/%{gcc_target_platform}/%{version}/finclude/ieee_exceptions.mod
2511 %{gcc_libdir}/%{gcc_target_platform}/%{version}/finclude/ieee_features.mod
2512
2513 %if %{libc_shared}
2514 %{gcc_libdir}/%{gcc_target_platform}/%{version}/libgfortran.so
2515 %endif
2516 %if %isarch %{biarches}
2517 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgfortran.a
2518 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libcaf_single.la
2519 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libcaf_single.a
2520 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/finclude/ieee_arithmetic.mod
2521 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/finclude/ieee_exceptions.mod
2522 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/finclude/ieee_features.mod
2523 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/finclude/omp_lib.f90
2524 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/finclude/omp_lib.h
2525 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/finclude/omp_lib.mod
2526 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/finclude/omp_lib_kinds.mod
2527 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/finclude/openacc.f90
2528 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/finclude/openacc.mod
2529 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/finclude/openacc_kinds.mod
2530 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/finclude/openacc_lib.h
2531 %if %{libc_shared}
2532 %{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgfortran.so
2533 %endif
2534 %endif
2535 %if %isarch %{nof_arches}
2536 %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libgfortran.a
2537 %if %{libc_shared}
2538 %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libgfortran.so
2539 %endif
2540 %endif
2541 %if %{build_libgomp}
2542 %{gcc_libdir}/%{gcc_target_platform}/%{version}/finclude/omp*
2543 %{gcc_libdir}/%{gcc_target_platform}/%{version}/finclude/openacc*
2544 %endif
2545 %endif
2546
2547 %if %{build_fortran} && %{libc_shared}
2548 %if !%{build_monolithic}
2549 %files -n %{libgfortran_name}
2550 %endif
2551 %{target_libdir}/libgfortran.so.%{libgfortran_major}
2552 %{target_libdir}/libgfortran.so.%{libgfortran_major}.0.0
2553 %{target_libdir}/libgfortran.spec
2554 %if %isarch %{biarches}
2555 %{_prefix}/lib/libgfortran.so.%{libgfortran_major}
2556 %{_prefix}/lib/libgfortran.so.%{libgfortran_major}.0.0
2557 %{_prefix}/lib/libgfortran.spec
2558 %endif
2559 %endif
2560
2561 %if %{build_ada}
2562 %files gnat
2563 %{_bindir}/gnat*
2564 %{gcc_libdir}/%{gcc_target_platform}/%{version}/gnat1
2565 %dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/adainclude
2566 %{gcc_libdir}/%{gcc_target_platform}/%{version}/adainclude/*.adb
2567 %{gcc_libdir}/%{gcc_target_platform}/%{version}/adainclude/*.ads
2568 %dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib
2569 %{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/*.ali
2570 %{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgmem.a
2571 %{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnat.a
2572 %{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnat_pic.a
2573 %{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnarl.a
2574 %{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnarl_pic.a
2575 %if %{libc_shared}
2576 %{_libdir}/libgnat-%{libgnat_major}.so
2577 %{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnat.so
2578 %{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnat-%{libgnat_major}.so
2579 %{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnarl.so
2580 %{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnarl-%{libgnat_major}.so
2581 %endif
2582 %endif
2583
2584 %if %{build_libffi}
2585 %files -n %{libffi_name}
2586 %{target_libdir}/libffi.so.%{libffi_major}
2587 %{target_libdir}/libffi.so.%{libffi_major}.0.1
2588 %if %isarch %{biarches}
2589 %{_prefix}/lib/libffi.so.%{libffi_major}
2590 %{_prefix}/lib/libffi.so.%{libffi_major}.0.1
2591 %endif
2592
2593 %files -n %{libffi_name}-devel
2594 %doc libffi/README libffi/LICENSE libffi/ChangeLog*
2595 %{_mandir}/man3/ffi*.3*
2596 %dir %{gcc_libdir}/%{gcc_target_platform}/%{version}
2597 %dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/include
2598 %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/ffi*.h
2599 %{_libdir}/libffi.a
2600 %{_libdir}/libffi.so
2601 %if %isarch %{biarches}
2602 %{_prefix}/lib/libffi.a
2603 %{_prefix}/lib/libffi.so
2604 %endif
2605 %endif
2606
2607 %if %{build_ada} && %{libc_shared}
2608 %files -n %{libgnat_name}
2609 %{target_libdir}/libgnat-%{libgnat_major}.so
2610 %{target_libdir}/libgnarl-%{libgnat_major}.so
2611 %endif
2612
2613 %if %{build_doc}
2614 %files doc
2615 %doc gcc/*ChangeLog*
2616 %if %{build_check}
2617 %doc test_summary.log
2618 %endif
2619 %{_infodir}/cppinternals%{_package_suffix}.info*
2620 %{_infodir}/cpp%{_package_suffix}.info*
2621 %{_infodir}/gcc%{_package_suffix}.info*
2622 %{_infodir}/gccinstall%{_package_suffix}.info*
2623 %{_infodir}/gccint%{_package_suffix}.info*
2624 %if %{build_libstdcxx}
2625 %doc rpm.doc/libstdc++/
2626 %endif
2627 %if %{build_cxx}
2628 %doc rpm.doc/c++
2629 %endif
2630 %if %{build_libgomp}
2631 %{_infodir}/libgomp%{_package_suffix}.info*
2632 %endif
2633 %if %{build_ada}
2634 %{_infodir}/gnat-style%{_package_suffix}.info*
2635 %{_infodir}/gnat_rm%{_package_suffix}.info*
2636 %{_infodir}/gnat_ugn%{_package_suffix}.info*
2637 %endif
2638 %if %{build_fortran}
2639 %{_infodir}/gfortran%{_package_suffix}.info*
2640 %endif
2641 %if %{build_quadmath}
2642 %{_infodir}/libquadmath%{_package_suffix}.info*
2643 %endif
2644 %if %{build_libitm}
2645 %{_infodir}/libitm%{_package_suffix}.info*
2646 %endif
2647 %endif
2648
2649 %if %{build_pdf_doc}
2650 %files doc-pdf
2651 %doc gcc/doc/cppinternals.pdf
2652 %doc gcc/doc/gcc.pdf
2653 %doc gcc/doc/cpp.pdf
2654 %if %{build_ada}
2655 %doc gcc/ada/gnat_rm.pdf
2656 %doc gcc/ada/gnat_ugn.pdf
2657 %endif
2658 %if %{build_fortran}
2659 %doc gcc/fortran/gfortran.pdf
2660 %endif
2661 %endif
2662
2663 %if %{build_libstdcxx_docs}
2664 %files -n libstdc++-docs
2665 %{_mandir}/man3/*
2666 %doc rpm.doc/libstdc++-v3/html
2667 %endif

  ViewVC Help
Powered by ViewVC 1.1.30