CentOS Sources
2019-01-07 726b1e553b13938636053900ab315219757fc1f2
commit | author | age
2e5ef6 1 %{?scl:%global __strip %%{_scl_root}/usr/bin/strip}
CS 2 %{?scl:%global __objdump %%{_scl_root}/usr/bin/objdump}
3 %{?scl:%scl_package gcc}
3db796 4 %global DATE 20180303
CS 5 %global SVNREV 258210
6 %global gcc_version 7.3.1
2e5ef6 7 %global gcc_major 7
CS 8 # Note, gcc_release must be integer, if you want to add suffixes to
3db796 9 # %%{release}, append them after %%{gcc_release} on Release: line.
CS 10 %global gcc_release 5
2e5ef6 11 %global mpc_version 0.8.1
CS 12 %global isl_version 0.16.1
13 %global graphviz_version 2.26.0
14 %global doxygen_version 1.8.0
15 %global _unpackaged_files_terminate_build 0
16 %global multilib_64_archs sparc64 ppc64 s390x x86_64
17 %ifarch %{ix86} x86_64 ia64
18 %global build_libquadmath 1
19 %else
20 %global build_libquadmath 0
21 %endif
22 %global build_fortran 1
23 %ifarch %{ix86} x86_64 %{arm} alpha ppc ppc64 ppc64le ppc64p7 s390 s390x aarch64
24 %global build_libitm 1
25 %else
26 %global build_libitm 0
27 %endif
28 %ifarch %{ix86} x86_64 ppc ppc64 ppc64le s390 s390x %{arm} aarch64
29 %global build_libasan 1
30 %else
31 %global build_libasan 0
32 %endif
33 %ifarch x86_64 ppc64 ppc64le aarch64
34 %global build_libtsan 1
35 %else
36 %global build_libtsan 0
37 %endif
38 %ifarch x86_64 ppc64 ppc64le aarch64
39 %global build_liblsan 1
40 %else
41 %global build_liblsan 0
42 %endif
43 %ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64
44 %global build_libubsan 1
45 %else
46 %global build_libubsan 0
47 %endif
48 %ifarch %{ix86} x86_64
3db796 49 %if 0%{?rhel} > 7
CS 50 %global build_libcilkrts 0
51 %else
2e5ef6 52 %global build_libcilkrts 1
3db796 53 %endif
2e5ef6 54 %else
CS 55 %global build_libcilkrts 0
56 %endif
57 %ifarch %{ix86} x86_64 ppc ppc64 ppc64p7 ppc64le s390 s390x %{arm} aarch64
58 %global build_libatomic 1
59 %else
60 %global build_libatomic 0
61 %endif
62 %ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64
63 %global attr_ifunc 1
64 %else
65 %global attr_ifunc 0
66 %endif
67 %ifarch %{ix86} x86_64
3db796 68 %if 0%{?rhel} > 7
CS 69 %global build_libmpx 0
70 %else
2e5ef6 71 %global build_libmpx 1
3db796 72 %endif
2e5ef6 73 %else
CS 74 %global build_libmpx 0
75 %endif
76 %global build_isl 1
3db796 77 %if 0%{?rhel} > 7
CS 78 # The buildroots aren't ready yet.
79 %global build_libstdcxx_docs 0
80 %else
2e5ef6 81 %global build_libstdcxx_docs 1
3db796 82 %endif
2e5ef6 83 %ifarch s390x
CS 84 %global multilib_32_arch s390
85 %endif
86 %ifarch sparc64
87 %global multilib_32_arch sparcv9
88 %endif
89 %ifarch ppc64
90 %global multilib_32_arch ppc
91 %endif
92 %ifarch x86_64
93 %global multilib_32_arch i686
94 %endif
95 Summary: GCC version 7
96 Name: %{?scl_prefix}gcc
97 Version: %{gcc_version}
726b1e 98 Release: %{gcc_release}.15%{?dist}
3db796 99 # libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
2e5ef6 100 # GCC Runtime Exception.
CS 101 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
102 Group: Development/Languages
103 # The source for this package was pulled from upstream's vcs.  Use the
104 # following commands to generate the tarball:
3db796 105 # svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-7-branch@%%{SVNREV} gcc-%%{version}-%%{DATE}
CS 106 # tar cf - gcc-%%{version}-%%{DATE} | bzip2 -9 > gcc-%%{version}-%%{DATE}.tar.bz2
2e5ef6 107 Source0: gcc-%{version}-%{DATE}.tar.bz2
3db796 108 Source1: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.bz2
2e5ef6 109 Source2: http://www.multiprecision.org/mpc/download/mpc-%{mpc_version}.tar.gz
CS 110 Source3: ftp://ftp.stack.nl/pub/users/dimitri/doxygen-%{doxygen_version}.src.tar.gz
111 URL: http://gcc.gnu.org
112 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
113 # Need binutils with -pie support >= 2.14.90.0.4-4
114 # Need binutils which can omit dot symbols and overlap .opd on ppc64 >= 2.15.91.0.2-4
115 # Need binutils which handle -msecure-plt on ppc >= 2.16.91.0.2-2
116 # Need binutils which support .weakref >= 2.16.91.0.3-1
117 # Need binutils which support --hash-style=gnu >= 2.17.50.0.2-7
118 # Need binutils which support mffgpr and mftgpr >= 2.17.50.0.2-8
119 # Need binutils which support --build-id >= 2.17.50.0.17-3
3db796 120 # Need binutils which support %%gnu_unique_object >= 2.19.51.0.14
2e5ef6 121 # Need binutils which support .cfi_sections >= 2.19.51.0.14-33
CS 122 BuildRequires: binutils >= 2.19.51.0.14-33
123 # While gcc doesn't include statically linked binaries, during testing
124 # -static is used several times.
125 BuildRequires: glibc-static
126 %if 0%{?scl:1}
127 BuildRequires: %{?scl_prefix}binutils >= 2.22.52.0.1
128 # For testing
129 BuildRequires: %{?scl_prefix}gdb >= 7.4.50
130 %endif
131 BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo, sharutils, gcc-gfortran
132 BuildRequires: /usr/bin/pod2man
133 %if 0%{?rhel} >= 7
134 BuildRequires: texinfo-tex
135 %endif
136 #BuildRequires: systemtap-sdt-devel >= 1.3
137 # For VTA guality testing
138 BuildRequires: gdb
139 # Make sure pthread.h doesn't contain __thread tokens
140 # Make sure glibc supports stack protector
141 # Make sure glibc supports DT_GNU_HASH
142 BuildRequires: glibc-devel >= 2.4.90-13
143 BuildRequires: elfutils-devel >= 0.147
144 BuildRequires: elfutils-libelf-devel >= 0.147
145 %ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha
146 # Make sure glibc supports TFmode long double
147 BuildRequires: glibc >= 2.3.90-35
148 %endif
149 %ifarch %{multilib_64_archs} sparcv9 ppc
150 # Ensure glibc{,-devel} is installed for both multilib arches
151 BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
152 %endif
153 %ifarch ia64
154 BuildRequires: libunwind >= 0.98
155 %endif
156 # Need .eh_frame ld optimizations
157 # Need proper visibility support
158 # Need -pie support
159 # Need --as-needed/--no-as-needed support
160 # On ppc64, need omit dot symbols support and --non-overlapping-opd
161 # Need binutils that owns /usr/bin/c++filt
162 # Need binutils that support .weakref
163 # Need binutils that supports --hash-style=gnu
164 # Need binutils that support mffgpr/mftgpr
165 # Need binutils which support --build-id >= 2.17.50.0.17-3
3db796 166 # Need binutils which support %%gnu_unique_object >= 2.19.51.0.14
2e5ef6 167 # Need binutils which support .cfi_sections >= 2.19.51.0.14-33
CS 168 %if 0%{?scl:1}
3db796 169 %if 0%{?rhel} <= 7
2e5ef6 170 Requires: %{?scl_prefix}binutils >= 2.22.52.0.1
3db796 171 %else
CS 172 Requires: binutils >= 2.19.51.0.14-33
173 %endif
2e5ef6 174 %else
CS 175 Requires: binutils >= 2.19.51.0.14-33
176 %endif
177 # Make sure gdb will understand DW_FORM_strp
178 Conflicts: gdb < 5.1-2
179 Requires: glibc-devel >= 2.2.90-12
180 %ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha
181 # Make sure glibc supports TFmode long double
182 Requires: glibc >= 2.3.90-35
183 %endif
184 Requires: libgcc >= 4.1.2-43
185 Requires: libgomp >= 4.4.4-13
186 BuildRequires: gmp-devel >= 4.1.2-8
187 BuildRequires: mpfr-devel >= 2.2.1
188 %if 0%{?rhel} >= 7
189 BuildRequires: libmpc-devel >= 0.8.1
190 %endif
191 %if %{build_libstdcxx_docs}
192 BuildRequires: libxml2
193 BuildRequires: graphviz
194 %if 0%{?rhel} < 7
195 # doxygen BRs
196 BuildRequires: perl
197 BuildRequires: texlive-dvips, texlive-utils, texlive-latex
198 BuildRequires: ghostscript
199 %endif
200 %if 0%{?rhel} >= 7
201 BuildRequires: doxygen >= 1.7.1
202 BuildRequires: dblatex, texlive-collection-latex, docbook5-style-xsl
203 %endif
204 %endif
205 %{?scl:Requires:%scl_runtime}
206 AutoReq: true
207 AutoProv: false
3db796 208 %ifarch sparc64 ppc64 ppc64le s390x x86_64 ia64 aarch64
2e5ef6 209 Provides: liblto_plugin.so.0()(64bit)
CS 210 %else
211 Provides: liblto_plugin.so.0
212 %endif
213 %global oformat %{nil}
214 %global oformat2 %{nil}
215 %ifarch %{ix86}
216 %global oformat OUTPUT_FORMAT(elf32-i386)
217 %endif
218 %ifarch x86_64
219 %global oformat OUTPUT_FORMAT(elf64-x86-64)
220 %global oformat2 OUTPUT_FORMAT(elf32-i386)
221 %endif
222 %ifarch ppc
223 %global oformat OUTPUT_FORMAT(elf32-powerpc)
224 %global oformat2 OUTPUT_FORMAT(elf64-powerpc)
225 %endif
226 %ifarch ppc64
227 %global oformat OUTPUT_FORMAT(elf64-powerpc)
228 %global oformat2 OUTPUT_FORMAT(elf32-powerpc)
229 %endif
230 %ifarch s390
231 %global oformat OUTPUT_FORMAT(elf32-s390)
232 %endif
233 %ifarch s390x
234 %global oformat OUTPUT_FORMAT(elf64-s390)
235 %global oformat2 OUTPUT_FORMAT(elf32-s390)
236 %endif
237 %ifarch ia64
238 %global oformat OUTPUT_FORMAT(elf64-ia64-little)
239 %endif
240 %ifarch ppc64le
241 %global oformat OUTPUT_FORMAT(elf64-powerpcle)
242 %endif
243 %ifarch aarch64
244 %global oformat OUTPUT_FORMAT(elf64-littleaarch64)
245 %endif
246
247 Patch0: gcc7-hack.patch
248 Patch2: gcc7-i386-libgomp.patch
249 Patch3: gcc7-sparc-config-detection.patch
250 Patch4: gcc7-libgomp-omp_h-multilib.patch
251 Patch5: gcc7-libtool-no-rpath.patch
252 Patch6: gcc7-isl-dl.patch
253 Patch7: gcc7-libstdc++-docs.patch
254 Patch8: gcc7-no-add-needed.patch
255 Patch9: gcc7-aarch64-async-unw-tables.patch
256 Patch10: gcc7-foffload-default.patch
257 Patch11: gcc7-Wno-format-security.patch
3db796 258 Patch13: gcc7-rh1512529-aarch64.patch
CS 259 Patch14: gcc7-pr84524.patch
260 Patch15: gcc7-pr84128.patch
6068c7 261 Patch16: gcc7-rh1570967.patch
870cb9 262 Patch17: gcc7-pr86138.patch
726b1e 263 Patch18: gcc7-rh1660242.patch
2e5ef6 264
CS 265 Patch1000: gcc7-libstdc++-compat.patch
266 Patch1001: gcc7-alt-compat-test.patch
267 Patch1002: gcc7-libstdc++44-xfail.patch
268 Patch1003: gcc7-rh1118870.patch
269 Patch1004: gcc7-isl-dl2.patch
3db796 270 Patch1005: gcc7-s390x-libsanitizer.patch
2e5ef6 271
CS 272 Patch2001: doxygen-1.7.1-config.patch
273 Patch2002: doxygen-1.7.5-timestamp.patch
274 Patch2003: doxygen-1.8.0-rh856725.patch
3db796 275
CS 276 Patch3000: 0000-infrastructure.patch
277 Patch3001: 0001-Allow-repeated-compatible-type-specifications.patch
278 Patch3002: 0002-Pad-character-to-int-conversions-with-spaces-instead.patch
279 Patch3003: 0003-Add-std-extra-legacy.patch
280 Patch3004: 0004-Allow-conversion-between-Hollerith-constants-and-CHA.patch
281 Patch3005: 0005-Allow-comparisons-between-INTEGER-and-REAL.patch
282 Patch3006: 0006-Allow-blank-format-items-in-format-strings.patch
283 Patch3007: 0007-Allow-more-than-one-character-as-argument-to-ICHAR.patch
284 Patch3008: 0008-Allow-non-integer-substring-indexes.patch
285 Patch3009: 0009-Convert-LOGICAL-to-INTEGER-for-arithmetic-ops-and-vi.patch
286 Patch3010: 0010-Allow-mixed-string-length-and-array-specification-in.patch
287 Patch3011: 0011-Allow-character-to-int-conversions-in-DATA-statement.patch
288 Patch3012: 0012-Allow-old-style-initializers-in-derived-types.patch
289 Patch3013: 0013-Allow-per-variable-kind-specification.patch
290 Patch3014: 0014-Allow-non-logical-expressions-in-IF-statements.patch
291 Patch3016: 0016-Allow-calls-to-intrinsics-with-smaller-types-than-sp.patch
292 Patch3017: 0017-Add-the-SEQUENCE-attribute-by-default-if-it-s-not-pr.patch
293 Patch3018: 0018-Fill-in-missing-array-dimensions-using-the-lower-bou.patch
294 Patch3019: 0019-Add-tests-for-AUTOMATIC-keyword.patch
295 Patch3020: 0020-Add-test-for-STRUCTURE-and-RECORD.patch
296 Patch3022: 0022-Default-values-for-certain-field-descriptors-in-form.patch
6068c7 297 Patch3023: gcc7-fortranlines.patch
870cb9 298 Patch3025: gcc7-fortran-equivalence.patch
726b1e 299 Patch3026: gcc7-fortran-fdec-include.patch
CS 300 Patch3027: gcc7-fortran-fdec-include-doc.patch
301 Patch3028: gcc7-fortran-fpad-source.patch
6068c7 302
2e5ef6 303
CS 304 %if 0%{?rhel} >= 7
305 %global nonsharedver 48
306 %else
307 %global nonsharedver 44
308 %endif
309
310 %if 0%{?scl:1}
311 %global _gnu %{nil}
312 %else
313 %global _gnu 7E
314 %endif
315 %ifarch sparcv9
316 %global gcc_target_platform sparc64-%{_vendor}-%{_target_os}%{?_gnu}
317 %endif
318 %ifarch ppc
319 %global gcc_target_platform ppc64-%{_vendor}-%{_target_os}%{?_gnu}
320 %endif
321 %ifnarch sparcv9 ppc
322 %global gcc_target_platform %{_target_platform}
323 %endif
324
325 %description
326 The %{?scl_prefix}gcc%{!?scl:5} package contains the GNU Compiler Collection version 7.
327
3db796 328 %package -n libgcc
CS 329 Summary: GCC version 7 shared support library
330 Group: System Environment/Libraries
331 Autoreq: false
332
333 %description -n libgcc
334 This package contains GCC shared support library which is needed
335 e.g. for exception handling support.
336
2e5ef6 337 %package c++
CS 338 Summary: C++ support for GCC version 7
339 Group: Development/Languages
340 Requires: %{?scl_prefix}gcc%{!?scl:5} = %{version}-%{release}
341 %if 0%{?rhel} >= 7
342 Requires: libstdc++
343 %else
344 Requires: libstdc++ >= 4.4.4-13
345 %endif
346 Requires: %{?scl_prefix}libstdc++%{!?scl:5}-devel = %{version}-%{release}
347 Autoreq: true
348 Autoprov: true
349
350 %description c++
351 This package adds C++ support to the GNU Compiler Collection
352 version 7.  It includes support for most of the current C++ specification
353 and a lot of support for the upcoming C++ specification.
3db796 354
CS 355 %package -n libstdc++
356 Summary: GNU Standard C++ Library
357 Group: System Environment/Libraries
358 Autoreq: true
359 Requires: glibc >= 2.10.90-7
360
361 %description -n libstdc++
362 The libstdc++ package contains a rewritten standard compliant GCC Standard
363 C++ Library.
2e5ef6 364
CS 365 %package -n %{?scl_prefix}libstdc++%{!?scl:5}-devel
366 Summary: Header files and libraries for C++ development
367 Group: Development/Libraries
368 %if 0%{?rhel} >= 7
369 Requires: libstdc++
370 %else
371 Requires: libstdc++ >= 4.4.4-13
372 %endif
373 Requires: libstdc++%{?_isa}
374 Autoreq: true
375 Autoprov: true
376
377 %description -n %{?scl_prefix}libstdc++%{!?scl:5}-devel
378 This is the GNU implementation of the standard C++ libraries.  This
379 package includes the header files and libraries needed for C++
380 development. This includes rewritten implementation of STL.
381
382 %package -n %{?scl_prefix}libstdc++%{!?scl:5}-docs
383 Summary: Documentation for the GNU standard C++ library
384 Group: Development/Libraries
385 Autoreq: true
386
387 %description -n %{?scl_prefix}libstdc++%{!?scl:5}-docs
388 Manual, doxygen generated API information and Frequently Asked Questions
389 for the GNU standard C++ library.
390
391 %package gfortran
392 Summary: Fortran support for GCC 7
393 Group: Development/Languages
394 Requires: %{?scl_prefix}gcc%{!?scl:5} = %{version}-%{release}
3db796 395 %if 0%{?rhel} > 7
CS 396 Requires: libgfortran >= 7.2.1-1
397 %else
2e5ef6 398 Requires: libgfortran4 >= 7.1.1-2
3db796 399 %endif
2e5ef6 400 %if %{build_libquadmath}
CS 401 %if 0%{!?scl:1}
402 Requires: libquadmath
403 %endif
404 Requires: %{?scl_prefix}libquadmath-devel = %{version}-%{release}
405 %endif
406 Autoreq: true
407 Autoprov: true
408
409 %description gfortran
410 The %{?scl_prefix}gcc%{!?scl:5}-gfortran package provides support for compiling Fortran
411 programs with the GNU Compiler Collection.
3db796 412
CS 413 %package -n libgfortran
414 Summary: Fortran runtime
415 Group: System Environment/Libraries
416 Autoreq: true
417 %if %{build_libquadmath}
418 Requires: libquadmath = %{version}-%{release}
419 %endif
420
421 %description -n libgfortran
422 This package contains Fortran shared library which is needed to run
423 Fortran dynamically linked programs.
424
425 %package -n libgomp
426 Summary: GCC OpenMP v3.0 shared support library
427 Group: System Environment/Libraries
428 Requires(post): /sbin/install-info
429 Requires(preun): /sbin/install-info
430
431 %description -n libgomp
432 This package contains GCC shared support library which is needed
433 for OpenMP v3.0 support.
2e5ef6 434
CS 435 %package gdb-plugin
436 Summary: GCC 7 plugin for GDB
437 Group: Development/Debuggers
438 Requires: %{?scl_prefix}gcc%{!?scl:5} = %{version}-%{release}
439
440 %description gdb-plugin
441 This package contains GCC 7 plugin for GDB C expression evaluation.
442
443 %package -n %{?scl_prefix}libgccjit
444 Summary: Library for embedding GCC inside programs and libraries
445 Group: System Environment/Libraries
446 Requires: %{?scl_prefix}gcc%{!?scl:5} = %{version}-%{release}
447
448 %description -n %{?scl_prefix}libgccjit
449 This package contains shared library with GCC 7 JIT front end.
450
451 %package -n %{?scl_prefix}libgccjit-devel
452 Summary: Support for embedding GCC inside programs and libraries
453 Group: Development/Libraries
454 Requires: %{?scl_prefix}libgccjit = %{version}-%{release}
455 Requires: %{?scl_prefix}libgccjit-docs = %{version}-%{release}
456
457 %description -n %{?scl_prefix}libgccjit-devel
458 This package contains header files for GCC 7 JIT front end.
459
460 %package -n %{?scl_prefix}libgccjit-docs
461 Summary: Documentation for embedding GCC inside programs and libraries
462 Group: Development/Libraries
463 BuildRequires: python-sphinx
464 Requires(post): /sbin/install-info
465 Requires(preun): /sbin/install-info
466
467 %description -n %{?scl_prefix}libgccjit-docs
468 This package contains documentation for GCC 7 JIT front end.
469
3db796 470 %package -n libquadmath
2e5ef6 471 Summary: GCC 7 __float128 shared support library
CS 472 Group: System Environment/Libraries
473 Requires(post): /sbin/install-info
474 Requires(preun): /sbin/install-info
475
3db796 476 %description -n libquadmath
2e5ef6 477 This package contains GCC shared support library which is needed
CS 478 for __float128 math support and for Fortran REAL*16 support.
479
480 %package -n %{?scl_prefix}libquadmath-devel
481 Summary: GCC 7 __float128 support
482 Group: Development/Libraries
483 %if 0%{!?scl:1}
484 Requires: %{?scl_prefix}libquadmath = %{version}-%{release}
485 %else
486 %if 0%{?rhel} >= 7
487 Requires: libquadmath
488 %endif
489 %endif
490 Requires: %{?scl_prefix}gcc%{!?scl:5} = %{version}-%{release}
491
492 %description -n %{?scl_prefix}libquadmath-devel
493 This package contains headers for building Fortran programs using
494 REAL*16 and programs using __float128 math.
3db796 495
CS 496 %package -n libitm
497 Summary: The GNU Transactional Memory library
498 Group: System Environment/Libraries
499 Requires(post): /sbin/install-info
500 Requires(preun): /sbin/install-info
501
502 %description -n libitm
503 This package contains the GNU Transactional Memory library
504 which is a GCC transactional memory support runtime library.
2e5ef6 505
CS 506 %package -n %{?scl_prefix}libitm-devel
507 Summary: The GNU Transactional Memory support
508 Group: Development/Libraries
509 Requires: libitm >= 4.7.0-1
510 Requires: %{?scl_prefix}gcc%{!?scl:5} = %{version}-%{release}
511
512 %description -n %{?scl_prefix}libitm-devel
513 This package contains headers and support files for the
514 GNU Transactional Memory library.
515
516 %package plugin-devel
517 Summary: Support for compiling GCC plugins
518 Group: Development/Languages
519 Requires: %{?scl_prefix}gcc%{!?scl:5} = %{version}-%{release}
520 Requires: gmp-devel >= 4.1.2-8
521 Requires: mpfr-devel >= 2.2.1
522 %if 0%{?rhel} >= 7
523 Requires: libmpc-devel >= 0.8.1
524 %endif
525
526 %description plugin-devel
527 This package contains header files and other support files
528 for compiling GCC 7 plugins.  The GCC plugin ABI is currently
529 not stable, so plugins must be rebuilt any time GCC is updated.
530
531 %package -n libatomic
532 Summary: The GNU Atomic library
533 Group: System Environment/Libraries
534 Requires(post): /sbin/install-info
535 Requires(preun): /sbin/install-info
536
537 %description -n libatomic
538 This package contains the GNU Atomic library
539 which is a GCC support runtime library for atomic operations not supported
540 by hardware.
541
542 %package -n %{?scl_prefix}libatomic-devel
543 Summary: The GNU Atomic static library
544 Group: Development/Libraries
545 Requires: libatomic >= 4.8.0
546
547 %description -n %{?scl_prefix}libatomic-devel
548 This package contains GNU Atomic static libraries.
549
3db796 550 %package -n libasan
CS 551 Summary: The Address Sanitizer runtime library from GCC 7
552 Group: System Environment/Libraries
553 Requires(post): /sbin/install-info
554 Requires(preun): /sbin/install-info
555
556 %description -n libasan
557 This package contains the Address Sanitizer library from GCC 7
558 which is used for -fsanitize=address instrumented programs.
559
2e5ef6 560 %package -n libasan4
CS 561 Summary: The Address Sanitizer runtime library from GCC 7
562 Group: System Environment/Libraries
563 Requires(post): /sbin/install-info
564 Requires(preun): /sbin/install-info
565
566 %description -n libasan4
567 This package contains the Address Sanitizer library from GCC 7
568 which is used for -fsanitize=address instrumented programs.
569
570 %package -n %{?scl_prefix}libasan-devel
571 Summary: The Address Sanitizer static library
572 Group: Development/Libraries
3db796 573 %if 0%{?rhel} > 7
CS 574 Requires: libasan >= 7.1.1
575 %else
2e5ef6 576 Requires: libasan4 >= 7.1.1
3db796 577 %endif
2e5ef6 578
CS 579 %description -n %{?scl_prefix}libasan-devel
580 This package contains Address Sanitizer static runtime library.
581
582 %package -n libtsan
583 Summary: The Thread Sanitizer runtime library
584 Group: System Environment/Libraries
585 Requires(post): /sbin/install-info
586 Requires(preun): /sbin/install-info
587
588 %description -n libtsan
589 This package contains the Thread Sanitizer library
590 which is used for -fsanitize=thread instrumented programs.
591
592 %package -n %{?scl_prefix}libtsan-devel
593 Summary: The Thread Sanitizer static library
594 Group: Development/Libraries
595 Requires: libtsan >= 5.1.1
596
597 %description -n %{?scl_prefix}libtsan-devel
598 This package contains Thread Sanitizer static runtime library.
599
600 %package -n libubsan
601 Summary: The Undefined Behavior Sanitizer runtime library
602 Group: System Environment/Libraries
603 Requires(post): /sbin/install-info
604 Requires(preun): /sbin/install-info
605
606 %description -n libubsan
607 This package contains the Undefined Behavior Sanitizer library
608 which is used for -fsanitize=undefined instrumented programs.
609
610 %package -n %{?scl_prefix}libubsan-devel
611 Summary: The Undefined Behavior Sanitizer static library
612 Group: Development/Libraries
613 Requires: libubsan >= 5.1.1
614
615 %description -n %{?scl_prefix}libubsan-devel
616 This package contains Undefined behavior Sanitizer static runtime library.
617
618 %package -n liblsan
619 Summary: The Leak Sanitizer runtime library
620 Group: System Environment/Libraries
621 Requires(post): /sbin/install-info
622 Requires(preun): /sbin/install-info
623
624 %description -n liblsan
625 This package contains the Leak Sanitizer library
626 which is used for -fsanitize=leak instrumented programs.
627
628 %package -n %{?scl_prefix}liblsan-devel
629 Summary: The Leak Sanitizer static library
630 Group: Development/Libraries
631 Requires: liblsan >= 5.1.1
632
633 %description -n %{?scl_prefix}liblsan-devel
634 This package contains Leak Sanitizer static runtime library.
635
636 %package -n libcilkrts
637 Summary: The Cilk+ runtime library
638 Group: System Environment/Libraries
639 Requires(post): /sbin/install-info
640 Requires(preun): /sbin/install-info
641
642 %description -n libcilkrts
643 This package contains the Cilk+ runtime library.
644
645 %package -n %{?scl_prefix}libcilkrts-devel
646 Summary: The Cilk+ static runtime library
647 Group: Development/Libraries
648 Requires: libcilkrts >= 5.1.1
649
650 %description -n %{?scl_prefix}libcilkrts-devel
651 This package contains the Cilk+ static runtime library.
652
653 %package -n libmpx
654 Summary: The Memory Protection Extensions runtime libraries
655 Group: System Environment/Libraries
656 Requires(post): /sbin/install-info
657 Requires(preun): /sbin/install-info
658
659 %description -n libmpx
660 This package contains the Memory Protection Extensions runtime libraries
661 which is used for -fcheck-pointer-bounds -mmpx instrumented programs.
662
663 %package -n %{?scl_prefix}libmpx-devel
664 Summary: The Memory Protection Extensions static libraries
665 Group: Development/Libraries
666 Requires: libmpx >= 5.1.1
667
668 %description -n %{?scl_prefix}libmpx-devel
669 This package contains the Memory Protection Extensions static runtime libraries.
670
671 %prep
672 %if 0%{?rhel} >= 7
673 %setup -q -n gcc-%{version}-%{DATE} -a 1
674 %else
675 %setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2 -a 3
676 %endif
677 %patch0 -p0 -b .hack~
678 %patch2 -p0 -b .i386-libgomp~
679 %patch3 -p0 -b .sparc-config-detection~
680 %patch4 -p0 -b .libgomp-omp_h-multilib~
681 %patch5 -p0 -b .libtool-no-rpath~
682 %if %{build_isl}
683 %patch6 -p0 -b .isl-dl~
684 %endif
685 %if %{build_libstdcxx_docs}
686 %patch7 -p0 -b .libstdc++-docs~
687 %endif
688 %patch8 -p0 -b .no-add-needed~
689 %patch9 -p0 -b .aarch64-async-unw-tables~
690 %patch10 -p0 -b .foffload-default~
691 %patch11 -p0 -b .Wno-format-security~
3db796 692 %patch13 -p0 -b .rh1512529-aarch64~
CS 693 %patch14 -p0 -b .pr84524~
694 %patch15 -p0 -b .pr84128~
6068c7 695 %patch16 -p0 -b .rh1570967~
870cb9 696 %patch17 -p0 -b .pr86138~
726b1e 697 %patch18 -p1 -b .rh1660242~
2e5ef6 698
3db796 699 %if 0%{?rhel} <= 7
2e5ef6 700 %patch1000 -p0 -b .libstdc++-compat~
3db796 701 %endif
2e5ef6 702 %ifarch %{ix86} x86_64
CS 703 %if 0%{?rhel} < 7
704 # On i?86/x86_64 there are some incompatibilities in _Decimal* as well as
705 # aggregates containing larger vector passing.
706 %patch1001 -p0 -b .alt-compat-test~
707 %endif
708 %endif
709 %if 0%{?rhel} == 6
710 # Fix this up
3db796 711 #%%patch1002 -p0 -b .libstdc++44-xfail~
2e5ef6 712 %endif
CS 713 %patch1003 -p0 -b .rh1118870~
3db796 714 %if %{build_isl}
2e5ef6 715 %patch1004 -p0 -b .isl-dl2~
3db796 716 %endif
CS 717 %if 0%{?rhel} == 6
718 %patch1005 -p0 -b .s390x-libsanitizer~
719 %endif
2e5ef6 720
CS 721 %if %{build_libstdcxx_docs}
722 %if 0%{?rhel} < 7
723 cd doxygen-%{doxygen_version}
724 %patch2001 -p1 -b .config~
725 %patch2002 -p1 -b .timestamp~
726 %patch2003 -p1 -b .rh856725~
727 cd ..
728 %endif
3db796 729 %endif
CS 730
731 %if 0%{?rhel} <= 7
732 %patch3000 -p1 -b .fortran00~
733 %patch3003 -p1 -b .fortran03~
734 %patch3001 -p1 -b .fortran01~
735 %patch3002 -p1 -b .fortran02~
736 %patch3004 -p1 -b .fortran04~
737 %patch3005 -p1 -b .fortran05~
738 %patch3006 -p1 -b .fortran06~
739 %patch3007 -p1 -b .fortran07~
740 %patch3008 -p1 -b .fortran08~
741 %patch3009 -p1 -b .fortran09~
742 %patch3010 -p1 -b .fortran10~
743 %patch3011 -p1 -b .fortran11~
744 %patch3012 -p1 -b .fortran12~
745 %patch3013 -p1 -b .fortran13~
746 %patch3014 -p1 -b .fortran14~
747 %patch3016 -p1 -b .fortran16~
748 %patch3017 -p1 -b .fortran17~
749 %patch3018 -p1 -b .fortran18~
750 %patch3019 -p1 -b .fortran19~
751 %patch3020 -p1 -b .fortran20~
752 %patch3022 -p1 -b .fortran22~
6068c7 753 %patch3023 -p1 -b .fortran23~
870cb9 754 %patch3025 -p1 -b .fortran25~
726b1e 755 %patch3026 -p0 -b .fortran26~
CS 756 %patch3027 -p0 -b .fortran27~
757 %patch3028 -p0 -b .fortran28~
2e5ef6 758 %endif
CS 759
760 echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
761
762 %if 0%{?rhel} == 6
763 # Default to -gdwarf-3 rather than -gdwarf-4
764 sed -i '/UInteger Var(dwarf_version)/s/Init(4)/Init(3)/' gcc/common.opt
765 sed -i 's/\(may be either 2, 3 or 4; the default version is \)4\./\13./' gcc/doc/invoke.texi
766 %endif
767
768 cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
769 cp -a libstdc++-v3/config/cpu/i{4,3}86/opt
770
771 ./contrib/gcc_update --touch
772
773 LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
774
775 sed -i -e 's/Common Driver Var(flag_report_bug)/& Init(1)/' gcc/common.opt
776
777 %ifarch ppc
778 if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
779   mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
780   mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{,64/}baseline_symbols.txt
781   mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{32/,}baseline_symbols.txt
782   rm -rf libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32
783 fi
784 %endif
785 %ifarch sparc
786 if [ -d libstdc++-v3/config/abi/post/sparc64-linux-gnu ]; then
787   mkdir -p libstdc++-v3/config/abi/post/sparc64-linux-gnu/64
788   mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{,64/}baseline_symbols.txt
789   mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{32/,}baseline_symbols.txt
790   rm -rf libstdc++-v3/config/abi/post/sparc64-linux-gnu/32
791 fi
792 %endif
793
794 %build
795
796 # Undo the broken autoconf change in recent Fedora versions
797 export CONFIG_SITE=NONE
798
799 rm -fr obj-%{gcc_target_platform}
800 mkdir obj-%{gcc_target_platform}
801 cd obj-%{gcc_target_platform}
802
803 %if %{build_libstdcxx_docs}
804
805 %if 0%{?rhel} < 7
806 mkdir doxygen-install
807 pushd ../doxygen-%{doxygen_version}
808 ./configure --prefix `cd ..; pwd`/obj-%{gcc_target_platform}/doxygen-install \
809   --shared --release --english-only
810
811 make %{?_smp_mflags} all
812 make install
813 popd
814 export PATH=`pwd`/doxygen-install/bin/${PATH:+:${PATH}}
815 %endif
816 %endif
817
818 %if 0%{?rhel} < 7
819 mkdir mpc mpc-install
820 cd mpc
821 ../../mpc-%{mpc_version}/configure --disable-shared \
822   CFLAGS="${CFLAGS:-%optflags} -fPIC" CXXFLAGS="${CXXFLAGS:-%optflags} -fPIC" \
823   --prefix=`cd ..; pwd`/mpc-install
824 make %{?_smp_mflags}
825 make install
826 cd ..
827 %endif
828
829 %if %{build_isl}
830 mkdir isl-build isl-install
831 %ifarch s390 s390x
832 ISL_FLAG_PIC=-fPIC
833 %else
834 ISL_FLAG_PIC=-fpic
835 %endif
836 cd isl-build
837 sed -i 's|libisl|libgcc7privateisl|g' \
838   ../../isl-%{isl_version}/Makefile.{am,in}
839 ../../isl-%{isl_version}/configure \
840   CC=/usr/bin/gcc CXX=/usr/bin/g++ \
841   CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC" --prefix=`cd ..; pwd`/isl-install
842 make %{?_smp_mflags}
843 make install
844 cd ../isl-install/lib
845 rm libgcc7privateisl.so{,.15}
846 mv libgcc7privateisl.so.15.1.1 libisl.so.15
847 ln -sf libisl.so.15 libisl.so
848 cd ../..
849 %endif
850
851 %{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
852
853 CC=gcc
854 CXX=g++
855 OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'`
856 OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'`
857 OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'`
858 OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -pipe / /g'`
859 OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Werror=format-security/-Wformat-security/g'`
860 %ifarch sparc
861 OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcpu=v[78]//g'`
862 %endif
863 %ifarch %{ix86}
864 OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i.86//g'`
865 %endif
866 OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'`
867 CONFIGURE_OPTS="\
868     --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
869     --with-bugurl=http://bugzilla.redhat.com/bugzilla \
870     --enable-shared --enable-threads=posix --enable-checking=release \
871 %ifarch ppc64le
872     --enable-targets=powerpcle-linux --disable-multilib \
873 %else
874     --enable-multilib \
875 %endif
876     --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
877     --enable-gnu-unique-object \
878     --enable-linker-build-id --with-gcc-major-version-only \
879     --enable-plugin --with-linker-hash-style=gnu \
880 %if 0%{?scl:1}
881     --enable-initfini-array \
882 %else
883 %ifnarch ia64
884 %if 0%{?rhel} >= 7
885     --enable-initfini-array \
886 %else
887     --disable-initfini-array \
888 %endif
889 %endif
890 %endif
3db796 891 %if 0%{?rhel} <= 7
2e5ef6 892     --with-default-libstdcxx-abi=gcc4-compatible \
CS 893 %endif
894 %if %{build_isl}
895     --with-isl=`pwd`/isl-install \
896 %else
897     --without-isl \
898 %endif
899 %if %{build_libmpx}
900     --enable-libmpx \
901 %else
902     --disable-libmpx \
903 %endif
904 %if 0%{?rhel} < 7
905     --with-mpc=`pwd`/mpc-install \
906 %endif
907 %if 0%{?rhel} >= 7
908 %if %{attr_ifunc}
3db796 909     --enable-gnu-indirect-function \
2e5ef6 910 %endif
CS 911 %endif
912 %ifarch %{arm}
913     --disable-sjlj-exceptions \
914 %endif
915 %ifarch ppc ppc64 ppc64le ppc64p7
916     --enable-secureplt \
917 %endif
918 %ifarch sparc sparcv9 sparc64 ppc ppc64 ppc64le ppc64p7 s390 s390x alpha
919     --with-long-double-128 \
920 %endif
921 %ifarch sparc
922     --disable-linux-futex \
923 %endif
924 %ifarch sparc64
925     --with-cpu=ultrasparc \
926 %endif
927 %ifarch sparc sparcv9
928     --host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=v7
929 %endif
930 %ifarch ppc ppc64 ppc64p7
931 %if 0%{?rhel} >= 7
932     --with-cpu-32=power7 --with-tune-32=power7 --with-cpu-64=power7 --with-tune-64=power7 \
933 %else
934     --with-cpu-32=power4 --with-tune-32=power6 --with-cpu-64=power4 --with-tune-64=power6 \
935 %endif
936 %endif
937 %ifarch ppc64le
938 %if 0%{?rhel} >= 7
939     --with-cpu-32=power8 --with-tune-32=power8 --with-cpu-64=power8 --with-tune-64=power8 \
940 %endif
941 %endif
942 %ifarch ppc
943     --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=default32
944 %endif
945 %ifarch %{ix86} x86_64
946     --with-tune=generic \
947 %endif
948 %ifarch %{ix86}
949     --with-arch=i686 \
950 %endif
951 %ifarch x86_64
952     --with-arch_32=i686 \
953 %endif
954 %ifarch s390 s390x
955     --with-arch=z9-109 --with-tune=z10 --enable-decimal-float \
956 %endif
957 %ifnarch sparc sparcv9 ppc
958     --build=%{gcc_target_platform} \
959 %endif
960     "
961
962 CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
963     CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g'`" \
964     XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
965     GCJFLAGS="$OPT_FLAGS" \
966     ../configure --enable-bootstrap \
967 %if %{build_fortran}
968     --enable-languages=c,c++,fortran,lto \
969 %else
970     --enable-languages=c,c++,lto \
971 %endif
972     $CONFIGURE_OPTS
973
974 %ifarch ia64
975 GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
976 %else
977 GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap
978 %endif
979
3db796 980 %if 0%{?rhel} <= 7
2e5ef6 981 echo '/* GNU ld script
CS 982    Use the shared library, but some functions are only in
983    the static library, so try that secondarily.  */
984 %{oformat}
985 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared%{nonsharedver} )' \
986   > %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_system.so
987
988 # Relink libcc1 against -lstdc++_nonshared:
989 sed -i -e '/^postdeps/s/-lstdc++/-lstdc++_system/' libcc1/libtool
990 rm -f libcc1/libcc1.la
991 make -C libcc1 libcc1.la
3db796 992 %endif
2e5ef6 993
CS 994 CC="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cc`"
995 CXX="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cxx` `%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-includes`"
996
997 # Build libgccjit separately, so that normal compiler binaries aren't -fpic
998 # unnecessarily.
999 mkdir objlibgccjit
1000 cd objlibgccjit
1001 CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
1002     CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g'`" \
1003     XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
1004     ../../configure --disable-bootstrap --enable-host-shared \
1005     --enable-languages=jit $CONFIGURE_OPTS
1006 make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" all-gcc
1007 cp -a gcc/libgccjit.so* ../gcc/
1008 cd ../gcc/
1009 ln -sf xgcc %{gcc_target_platform}-gcc-%{gcc_major}
1010 cp -a Makefile{,.orig}
1011 sed -i -e '/^CHECK_TARGETS/s/$/ check-jit/' Makefile
1012 touch -r Makefile.orig Makefile
1013 rm Makefile.orig
1014 make jit.sphinx.html
1015 make jit.sphinx.install-html jit_htmldir=`pwd`/../../rpm.doc/libgccjit-devel/html
1016 cd ..
1017
1018 %if %{build_isl}
1019 cp -a isl-install/lib/libisl.so.15 gcc/
1020 %endif
1021
1022 # Make generated man pages even if Pod::Man is not new enough
1023 perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
1024 for i in ../gcc/doc/*.texi; do
1025   cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i
1026 done
1027 make -C gcc generated-manpages
1028 for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done
1029
1030 # Make generated doxygen pages.
1031 %if %{build_libstdcxx_docs}
1032 cd %{gcc_target_platform}/libstdc++-v3
1033 make doc-html-doxygen
1034 make doc-man-doxygen
1035 cd ../..
1036 %endif
1037
1038 # Copy various doc files here and there
1039 cd ..
1040 mkdir -p rpm.doc/gfortran rpm.doc/libquadmath rpm.doc/libitm
1041 mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/jit,libstdc++-v3,libgomp,libcc1,libatomic,libsanitizer,libcilkrts,libmpx}
1042
1043 for i in {gcc,gcc/cp,gcc/jit,libstdc++-v3,libgomp,libcc1,libatomic,libsanitizer,libcilkrts,libmpx}/ChangeLog*; do
1044     cp -p $i rpm.doc/changelogs/$i
1045 done
1046
1047 %if %{build_fortran}
1048 (cd gcc/fortran; for i in ChangeLog*; do
1049     cp -p $i ../../rpm.doc/gfortran/$i
1050 done)
1051 (cd libgfortran; for i in ChangeLog*; do
1052     cp -p $i ../rpm.doc/gfortran/$i.libgfortran
1053 done)
1054 %endif
1055
1056 %if %{build_libquadmath}
1057 (cd libquadmath; for i in ChangeLog* COPYING.LIB; do
1058     cp -p $i ../rpm.doc/libquadmath/$i.libquadmath
1059 done)
1060 %endif
1061
1062 %if %{build_libitm}
1063 (cd libitm; for i in ChangeLog*; do
1064     cp -p $i ../rpm.doc/libitm/$i.libitm
1065 done)
1066 %endif
1067
1068 rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
1069 find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
3db796 1070
CS 1071 # Test the nonshared bits.
1072 %if 0%{?rhel} <= 7
2e5ef6 1073 mkdir libstdc++_compat_test
CS 1074 cd libstdc++_compat_test
1075 readelf -Ws %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 | sed -n '/\.symtab/,$d;/ UND /d;/@GLIBC_PRIVATE/d;/\(GLOBAL\|WEAK\|UNIQUE\)/p' | awk '{ if ($4 == "OBJECT") { printf "%s %s %s %s %s\n", $8, $4, $5, $6, $3 } else { printf "%s %s %s %s\n", $8, $4, $5, $6 }}' | sed 's/ UNIQUE / GLOBAL /;s/ WEAK / GLOBAL /;s/@@GLIBCXX_[0-9.]*//;s/@@CXXABI_TM_[0-9.]*//;s/@@CXXABI_FLOAT128//;s/@@CXXABI_[0-9.]*//' | LC_ALL=C sort -u > system.abilist
1076 readelf -Ws ../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6 | sed -n '/\.symtab/,$d;/ UND /d;/@GLIBC_PRIVATE/d;/\(GLOBAL\|WEAK\|UNIQUE\)/p' | awk '{ if ($4 == "OBJECT") { printf "%s %s %s %s %s\n", $8, $4, $5, $6, $3 } else { printf "%s %s %s %s\n", $8, $4, $5, $6 }}' | sed 's/ UNIQUE / GLOBAL /;s/ WEAK / GLOBAL /;s/@@GLIBCXX_[0-9.]*//;s/@@CXXABI_TM_[0-9.]*//;s/@@CXXABI_FLOAT128//;s/@@CXXABI_[0-9.]*//' | LC_ALL=C sort -u > vanilla.abilist
1077 diff -up system.abilist vanilla.abilist | awk '/^\+\+\+/{next}/^\+/{print gensub(/^+(.*)$/,"\\1","1",$0)}' > system2vanilla.abilist.diff
1078 ../obj-%{gcc_target_platform}/gcc/xgcc -B ../obj-%{gcc_target_platform}/gcc/ -shared -o libstdc++_nonshared.so -Wl,--whole-archive ../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a -Wl,--no-whole-archive %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6
1079 readelf -Ws libstdc++_nonshared.so | sed -n '/\.symtab/,$d;/ UND /d;/@GLIBC_PRIVATE/d;/\(GLOBAL\|WEAK\|UNIQUE\)/p' | awk '{ if ($4 == "OBJECT") { printf "%s %s %s %s %s\n", $8, $4, $5, $6, $3 } else { printf "%s %s %s %s\n", $8, $4, $5, $6 }}' | sed 's/ UNIQUE / GLOBAL /;s/ WEAK / GLOBAL /;s/@@GLIBCXX_[0-9.]*//;s/@@CXXABI_TM_[0-9.]*//;s/@@CXXABI_FLOAT128//;s/@@CXXABI_[0-9.]*//' | LC_ALL=C sort -u > nonshared.abilist
1080 echo ====================NONSHARED=========================
1081 ldd -d -r ./libstdc++_nonshared.so || :
1082 ldd -u ./libstdc++_nonshared.so || :
1083 diff -up system2vanilla.abilist.diff nonshared.abilist || :
1084 echo ====================NONSHARED END=====================
1085 rm -f libstdc++_nonshared.so
1086 cd ..
3db796 1087 %endif
2e5ef6 1088
CS 1089 %install
1090 rm -fr %{buildroot}
1091
1092 %if %{build_libstdcxx_docs}
1093 %if 0%{?rhel} < 7
1094 export PATH=`pwd`/obj-%{gcc_target_platform}/doxygen-install/bin/${PATH:+:${PATH}}
1095 %endif
1096 %endif
1097
1098 %{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
1099 # Also set LD_LIBRARY_PATH so that DTS eu-strip (called from find-debuginfo.sh)
1100 # can find the libraries it needs.
1101 %{?scl:export LD_LIBRARY_PATH=%{_libdir}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}}
1102
1103 perl -pi -e \
1104   's~href="l(ibstdc|atest)~href="http://gcc.gnu.org/onlinedocs/libstdc++/l\1~' \
1105   libstdc++-v3/doc/html/api.html
1106
1107 cd obj-%{gcc_target_platform}
1108
1109 TARGET_PLATFORM=%{gcc_target_platform}
1110
1111 # There are some MP bugs in libstdc++ Makefiles
1112 make -C %{gcc_target_platform}/libstdc++-v3
1113
1114 %if 0%{?scl:1}
1115 rm -f gcc/libgcc_s.so
1116 echo '/* GNU ld script
1117    Use the shared library, but some functions are only in
1118    the static library, so try that secondarily.  */
1119 %{oformat}
1120 GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > gcc/libgcc_s.so
1121 %endif
1122
1123 make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
1124   infodir=%{buildroot}%{_infodir} install
1125
1126 %if 0%{?scl:1}
1127 rm -f gcc/libgcc_s.so
1128 ln -sf libgcc_s.so.1 gcc/libgcc_s.so
1129 %endif
1130
1131 FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
1132 FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
1133
1134 %if 0%{?scl:1}
1135 ln -sf ../../../../bin/ar $FULLEPATH/ar
1136 ln -sf ../../../../bin/as $FULLEPATH/as
1137 ln -sf ../../../../bin/ld $FULLEPATH/ld
1138 ln -sf ../../../../bin/ld.bfd $FULLEPATH/ld.bfd
1139 ln -sf ../../../../bin/ld.gold $FULLEPATH/ld.gold
1140 ln -sf ../../../../bin/nm $FULLEPATH/nm
3db796 1141 ln -sf ../../../../bin/objcopy $FULLEPATH/objcopy
2e5ef6 1142 ln -sf ../../../../bin/ranlib $FULLEPATH/ranlib
CS 1143 ln -sf ../../../../bin/strip $FULLEPATH/strip
1144 %endif
1145
1146 %if %{build_isl}
1147 cp -a isl-install/lib/libisl.so.15 $FULLPATH/
1148 %endif
1149
1150 # fix some things
1151 ln -sf gcc %{buildroot}%{_prefix}/bin/cc
1152 mkdir -p %{buildroot}/lib
1153 ln -sf ..%{_prefix}/bin/cpp %{buildroot}/lib/cpp
1154 %if %{build_fortran}
1155 ln -sf gfortran %{buildroot}%{_prefix}/bin/f95
1156 %endif
1157 rm -f %{buildroot}%{_infodir}/dir
1158 gzip -9 %{buildroot}%{_infodir}/*.info*
1159 ln -sf gcc %{buildroot}%{_prefix}/bin/gnatgcc
1160
1161 cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`"
1162 for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do
1163   if ! diff -up $cxxconfig $i; then
1164     cat > %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/c++config.h <<EOF
1165 #ifndef _CPP_CPPCONFIG_WRAPPER
1166 #define _CPP_CPPCONFIG_WRAPPER 1
1167 #include <bits/wordsize.h>
1168 #if __WORDSIZE == 32
1169 %ifarch %{multilib_64_archs}
1170 `cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)`
1171 %else
1172 `cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
1173 %endif
1174 #else
1175 %ifarch %{multilib_64_archs}
1176 `cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
1177 %else
1178 `cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)`
1179 %endif
1180 #endif
1181 #endif
1182 EOF
1183     break
1184   fi
1185 done
1186
1187 for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/ -name c++config.h`; do
1188   for i in 1 2 4 8; do
1189     sed -i -e 's/#define _GLIBCXX_ATOMIC_BUILTINS_'$i' 1/#ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_'$i'\
1190 &\
1191 #endif/' $f
1192   done
3db796 1193 %if 0%{?rhel} <= 7
2e5ef6 1194   # Force the old ABI unconditionally, the new one does not work in the
CS 1195   # libstdc++_nonshared.a model against RHEL 6/7 libstdc++.so.6.
1196   sed -i -e 's/\(define[[:blank:]]*_GLIBCXX_USE_DUAL_ABI[[:blank:]]*\)1/\10/' $f
3db796 1197 %endif
2e5ef6 1198 done
CS 1199
1200 # Nuke bits/*.h.gch dirs
1201 # 1) there is no bits/*.h header installed, so when gch file can't be
1202 #    used, compilation fails
1203 # 2) sometimes it is hard to match the exact options used for building
1204 #    libstdc++-v3 or they aren't desirable
1205 # 3) there are multilib issues, conflicts etc. with this
1206 # 4) it is huge
1207 # People can always precompile on their own whatever they want, but
1208 # shipping this for everybody is unnecessary.
1209 rm -rf %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/*.h.gch
1210
1211 %if %{build_libstdcxx_docs}
1212 libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen
1213 mkdir -p ../rpm.doc/libstdc++-v3
1214 cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html
1215 cp -r -p $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api
1216 mkdir -p %{buildroot}%{_mandir}/man3
1217 cp -r -p $libstdcxx_doc_builddir/man/man3/* %{buildroot}%{_mandir}/man3/
1218 find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
1219 %endif
1220
1221 %ifarch sparcv9 sparc64
1222 ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \
1223   %{buildroot}%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}%{?_gnu}-gcc
1224 %endif
1225 %ifarch ppc ppc64
1226 ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \
1227   %{buildroot}%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}%{?_gnu}-gcc
1228 %endif
1229
1230 %ifarch sparcv9 ppc
1231 FULLLPATH=$FULLPATH/lib32
1232 %endif
1233 %ifarch sparc64 ppc64
1234 FULLLPATH=$FULLPATH/lib64
1235 %endif
1236 if [ -n "$FULLLPATH" ]; then
1237   mkdir -p $FULLLPATH
1238 else
1239   FULLLPATH=$FULLPATH
1240 fi
1241
1242 find %{buildroot} -name \*.la | xargs rm -f
1243
1244 %if %{build_fortran}
1245 mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.spec $FULLPATH/libgfortran.spec
1246 %endif
1247 %if %{build_libitm}
1248 mv %{buildroot}%{_prefix}/%{_lib}/libitm.spec $FULLPATH/
1249 %endif
1250 %if %{build_libasan}
1251 mv %{buildroot}%{_prefix}/%{_lib}/libsanitizer.spec $FULLPATH/
1252 %endif
1253 %if %{build_libcilkrts}
1254 mv %{buildroot}%{_prefix}/%{_lib}/libcilkrts.spec $FULLPATH/
1255 %endif
1256 %if %{build_libmpx}
1257 mv %{buildroot}%{_prefix}/%{_lib}/libmpx.spec $FULLPATH/
1258 %endif
1259
1260 mkdir -p %{buildroot}/%{_lib}
1261 mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}-%{DATE}.so.1
1262 chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}-%{DATE}.so.1
1263 ln -sf libgcc_s-%{gcc_major}-%{DATE}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
1264 ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
1265 %ifarch sparcv9 ppc
1266 ln -sf /lib64/libgcc_s.so.1 $FULLPATH/64/libgcc_s.so
1267 %endif
1268 %ifarch %{multilib_64_archs}
1269 ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
1270 %endif
1271
1272 rm -f $FULLPATH/libgcc_s.so
1273 echo '/* GNU ld script
1274    Use the shared library, but some functions are only in
1275    the static library, so try that secondarily.  */
1276 %{oformat}
1277 GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so
1278 %ifarch sparcv9 ppc
1279 rm -f $FULLPATH/64/libgcc_s.so
1280 echo '/* GNU ld script
1281    Use the shared library, but some functions are only in
1282    the static library, so try that secondarily.  */
1283 %{oformat2}
1284 GROUP ( /lib64/libgcc_s.so.1 libgcc.a )' > $FULLPATH/64/libgcc_s.so
1285 %endif
1286 %ifarch %{multilib_64_archs}
1287 rm -f $FULLPATH/32/libgcc_s.so
1288 echo '/* GNU ld script
1289    Use the shared library, but some functions are only in
1290    the static library, so try that secondarily.  */
1291 %{oformat2}
1292 GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/32/libgcc_s.so
1293 %endif
1294
1295 mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
3db796 1296 %if 0%{?rhel} <= 7
2e5ef6 1297 cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \
CS 1298   $FULLLPATH/libstdc++_nonshared.a
3db796 1299 %endif
2e5ef6 1300
CS 1301 rm -f $FULLEPATH/libgccjit.so
1302 mkdir -p %{buildroot}%{_prefix}/%{_lib}/
1303 cp -a objlibgccjit/gcc/libgccjit.so.* %{buildroot}%{_prefix}/%{_lib}/
1304 rm -f $FULLPATH/libgccjit.so
1305 echo '/* GNU ld script */
1306 %{oformat}
1307 INPUT ( %{_prefix}/%{_lib}/libgccjit.so.0 )' > $FULLPATH/libgccjit.so
1308 cp -a ../gcc/jit/libgccjit*.h $FULLPATH/include/
1309 /usr/bin/install -c -m 644 objlibgccjit/gcc/doc/libgccjit.info %{buildroot}/%{_infodir}/
1310 gzip -9 %{buildroot}/%{_infodir}/libgccjit.info
1311
3db796 1312 %if 0%{?rhel} > 7
CS 1313 mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}
1314 mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++*gdb.py* \
1315       %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/
1316 pushd ../libstdc++-v3/python
1317 for i in `find . -name \*.py`; do
1318   touch -r $i %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/$i
1319 done
1320 touch -r hook.in %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc++*gdb.py
1321 popd
1322 %endif
1323
2e5ef6 1324 pushd $FULLPATH
CS 1325 echo '/* GNU ld script */
1326 %{oformat}
1327 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgomp.so.1 )' > libgomp.so
3db796 1328 %if 0%{?rhel} <= 7
2e5ef6 1329 echo '/* GNU ld script
CS 1330    Use the shared library, but some functions are only in
1331    the static library, so try that secondarily.  */
1332 %{oformat}
1333 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' > libstdc++.so
3db796 1334 %else
CS 1335 echo '%{oformat}
1336 INPUT ( %{_root_prefix}/%{_lib}/libstdc++.so.6 )' > libstdc++.so
1337 %endif
2e5ef6 1338 %if %{build_fortran}
CS 1339 rm -f libgfortran.so
1340 echo '/* GNU ld script
1341    Use the shared library, but some functions are only in
1342    the static library, so try that secondarily.  */
1343 %{oformat}
1344 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgfortran.so.4 )' > libgfortran.so
1345 %endif
1346 %if %{build_libquadmath}
1347 rm -f libquadmath.so
1348 echo '/* GNU ld script */
1349 %{oformat}
1350 %if 0%{!?scl:1}
1351 INPUT ( %{_prefix}/%{_lib}/libquadmath.so.0 )' > libquadmath.so
1352 %else
1353 %if 0%{?rhel} >= 7
1354 INPUT ( %{_root_prefix}/%{_lib}/libquadmath.so.0 )' > libquadmath.so
1355 %else
1356 INPUT ( libquadmath.a )' > libquadmath.so
1357 %endif
1358 %endif
1359 %endif
1360 %if %{build_libitm}
1361 rm -f libitm.so
1362 echo '/* GNU ld script */
1363 %{oformat}
1364 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libitm.so.1 )' > libitm.so
1365 %endif
1366 %if %{build_libatomic}
1367 rm -f libatomic.so
1368 echo '/* GNU ld script */
1369 %{oformat}
1370 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libatomic.so.1 )' > libatomic.so
1371 %endif
1372 %if %{build_libasan}
1373 rm -f libasan.so
1374 echo '/* GNU ld script */
1375 %{oformat}
1376 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libasan.so.4 )' > libasan.so
1377 %endif
1378 %if %{build_libtsan}
1379 rm -f libtsan.so
1380 echo '/* GNU ld script */
1381 %{oformat}
1382 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libtsan.so.0 )' > libtsan.so
1383 %endif
1384 %if %{build_libubsan}
1385 rm -f libubsan.so
1386 echo '/* GNU ld script */
1387 %{oformat}
1388 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libubsan.so.0 )' > libubsan.so
1389 %endif
1390 %if %{build_liblsan}
1391 rm -f liblsan.so
1392 echo '/* GNU ld script */
1393 %{oformat}
1394 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/liblsan.so.0 )' > liblsan.so
1395 %endif
1396 %if %{build_libcilkrts}
1397 rm -f libcilkrts.so
1398 echo '/* GNU ld script */
1399 %{oformat}
1400 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libcilkrts.so.5 )' > libcilkrts.so
1401 %endif
1402 %if %{build_libmpx}
1403 rm -f libmpx.so
1404 echo '/* GNU ld script */
1405 %{oformat}
1406 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libmpx.so.2 )' > libmpx.so
1407 rm -f libmpxwrappers.so
1408 echo '/* GNU ld script */
1409 %{oformat}
1410 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libmpxwrappers.so.2 )' > libmpxwrappers.so
1411 %endif
1412 mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/
1413 mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++fs.*a $FULLLPATH/
1414 mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a .
1415 %if %{build_fortran}
1416 mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a .
1417 %endif
1418 mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a .
1419 %if %{build_libquadmath}
1420 mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/
1421 %endif
1422 %if %{build_libitm}
1423 mv -f %{buildroot}%{_prefix}/%{_lib}/libitm.*a $FULLLPATH/
1424 %endif
1425 %if %{build_libatomic}
1426 mv -f %{buildroot}%{_prefix}/%{_lib}/libatomic.*a $FULLLPATH/
1427 %endif
1428 %if %{build_libasan}
1429 mv -f %{buildroot}%{_prefix}/%{_lib}/libasan.*a $FULLLPATH/
1430 mv -f %{buildroot}%{_prefix}/%{_lib}/libasan_preinit.o $FULLLPATH/
1431 %endif
1432 %if %{build_libtsan}
1433 mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan.*a $FULLPATH/
1434 mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan_preinit.o $FULLPATH/
1435 %endif
1436 %if %{build_libubsan}
1437 mv -f %{buildroot}%{_prefix}/%{_lib}/libubsan.*a $FULLLPATH/
1438 %endif
1439 %if %{build_liblsan}
1440 mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan.*a $FULLPATH/
1441 %endif
1442 %if %{build_libcilkrts}
1443 mv -f %{buildroot}%{_prefix}/%{_lib}/libcilkrts.*a $FULLLPATH/
1444 %endif
1445 %if %{build_libmpx}
1446 mv -f %{buildroot}%{_prefix}/%{_lib}/libmpx.*a $FULLLPATH/
1447 mv -f %{buildroot}%{_prefix}/%{_lib}/libmpxwrappers.*a $FULLLPATH/
1448 %endif
1449
1450 %ifarch sparcv9 ppc
3db796 1451 %if 0%{?rhel} <= 7
2e5ef6 1452 echo '/* GNU ld script
CS 1453    Use the shared library, but some functions are only in
1454    the static library, so try that secondarily.  */
1455 %{oformat2}
1456 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libstdc++.so.6 -lstdc++_nonshared )' > 64/libstdc++.so
3db796 1457 %else
CS 1458 echo '/* GNU ld script
1459    Use the shared library, but some functions are only in
1460    the static library, so try that secondarily.  */
1461 %{oformat2}
1462 INPUT ( %{_root_prefix}/lib64/libstdc++.so.6 )' > 64/libstdc++.so
1463 %endif
2e5ef6 1464 %if %{build_fortran}
CS 1465 rm -f 64/libgfortran.so
1466 echo '/* GNU ld script
1467    Use the shared library, but some functions are only in
1468    the static library, so try that secondarily.  */
1469 %{oformat2}
1470 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libgfortran.so.4 )' > 64/libgfortran.so
1471 %endif
1472 echo '/* GNU ld script */
1473 %{oformat2}
1474 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libgomp.so.1 )' > 64/libgomp.so
1475 echo '/* GNU ld script */
1476 %{oformat2}
1477 INPUT ( %{_prefix}/lib64/libgccjit.so.0 )' > 64/libgccjit.so
1478 %if %{build_libquadmath}
1479 rm -f 64/libquadmath.so
1480 echo '/* GNU ld script */
1481 %{oformat2}
1482 %if 0%{!?scl:1}
1483 INPUT ( %{_prefix}/lib64/libquadmath.so.0 )' > 64/libquadmath.so
1484 %else
1485 %if 0%{?rhel} >= 7
1486 INPUT ( %{_root_prefix}/lib64/libquadmath.so.0 )' > 64/libquadmath.so
1487 %else
1488 INPUT ( libquadmath.a )' > 64/libquadmath.so
1489 %endif
1490 %endif
1491 %endif
1492 %if %{build_libitm}
1493 rm -f 64/libitm.so
1494 echo '/* GNU ld script */
1495 %{oformat2}
1496 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libitm.so.1 )' > 64/libitm.so
1497 %endif
1498 %if %{build_libatomic}
1499 rm -f 64/libatomic.so
1500 echo '/* GNU ld script */
1501 %{oformat2}
1502 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libatomic.so.1 )' > 64/libatomic.so
1503 %endif
1504 %if %{build_libasan}
1505 rm -f 64/libasan.so
1506 echo '/* GNU ld script */
1507 %{oformat2}
1508 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libasan.so.4 )' > 64/libasan.so
1509 %endif
1510 %if %{build_libubsan}
1511 rm -f 64/libubsan.so
1512 echo '/* GNU ld script */
1513 %{oformat2}
1514 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libubsan.so.0 )' > 64/libubsan.so
1515 %endif
1516 %if %{build_libcilkrts}
1517 rm -f 64/libcilkrts.so
1518 echo '/* GNU ld script */
1519 %{oformat2}
1520 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libcilkrts.so.5 )' > 64/libcilkrts.so
1521 %endif
1522 %if %{build_libmpx}
1523 rm -f 64/libmpx.so
1524 echo '/* GNU ld script */
1525 %{oformat2}
1526 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libmpx.so.2 )' > 64/libmpx.so
1527 rm -f 64/libmpxwrappers.so
1528 echo '/* GNU ld script */
1529 %{oformat2}
1530 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libmpxwrappers.so.2 )' > 64/libmpxwrappers.so
1531 %endif
1532 mv -f %{buildroot}%{_prefix}/lib64/libsupc++.*a 64/
1533 %if %{build_fortran}
1534 mv -f %{buildroot}%{_prefix}/lib64/libgfortran.*a 64/
1535 %endif
1536 mv -f %{buildroot}%{_prefix}/lib64/libgomp.*a 64/
1537 %if %{build_libquadmath}
1538 mv -f %{buildroot}%{_prefix}/lib64/libquadmath.*a 64/
1539 %endif
1540 ln -sf lib32/libstdc++.a libstdc++.a
1541 ln -sf ../lib64/libstdc++.a 64/libstdc++.a
1542 ln -sf lib32/libstdc++fs.a libstdc++fs.a
1543 ln -sf ../lib64/libstdc++fs.a 64/libstdc++fs.a
1544 ln -sf lib32/libstdc++_nonshared.a libstdc++_nonshared.a
1545 ln -sf ../lib64/libstdc++_nonshared.a 64/libstdc++_nonshared.a
1546 %if %{build_libquadmath}
1547 ln -sf lib32/libquadmath.a libquadmath.a
1548 ln -sf ../lib64/libquadmath.a 64/libquadmath.a
1549 %endif
1550 %if %{build_libitm}
1551 ln -sf lib32/libitm.a libitm.a
1552 ln -sf ../lib64/libitm.a 64/libitm.a
1553 %endif
1554 %if %{build_libatomic}
1555 ln -sf lib32/libatomic.a libatomic.a
1556 ln -sf ../lib64/libatomic.a 64/libatomic.a
1557 %endif
1558 %if %{build_libasan}
1559 ln -sf lib32/libasan.a libasan.a
1560 ln -sf ../lib64/libasan.a 64/libasan.a
1561 ln -sf lib32/libasan_preinit.o libasan_preinit.o
1562 ln -sf ../lib64/libasan_preinit.o 64/libasan_preinit.o
1563 %endif
1564 %if %{build_libubsan}
1565 ln -sf lib32/libubsan.a libubsan.a
1566 ln -sf ../lib64/libubsan.a 64/libubsan.a
1567 %endif
1568 %if %{build_libcilkrts}
1569 ln -sf lib32/libcilkrts.a libcilkrts.a
1570 ln -sf ../lib64/libcilkrts.a 64/libcilkrts.a
1571 %endif
1572 %if %{build_libmpx}
1573 ln -sf lib32/libmpx.a libmpx.a
1574 ln -sf ../lib64/libmpx.a 64/libmpx.a
1575 ln -sf lib32/libmpxwrappers.a libmpxwrappers.a
1576 ln -sf ../lib64/libmpxwrappers.a 64/libmpxwrappers.a
1577 %endif
1578 %endif
1579 %ifarch %{multilib_64_archs}
1580 mkdir -p 32
3db796 1581 %if 0%{?rhel} <= 7
2e5ef6 1582 echo '/* GNU ld script
CS 1583    Use the shared library, but some functions are only in
1584    the static library, so try that secondarily.  */
1585 %{oformat2}
1586 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libstdc++.so.6 -lstdc++_nonshared )' > 32/libstdc++.so
3db796 1587 %else
CS 1588 echo '/* GNU ld script
1589    Use the shared library, but some functions are only in
1590    the static library, so try that secondarily.  */
1591 %{oformat2}
1592 INPUT ( %{_root_prefix}/lib/libstdc++.so.6 )' > 32/libstdc++.so
1593 %endif
2e5ef6 1594 %if %{build_fortran}
CS 1595 rm -f 32/libgfortran.so
1596 echo '/* GNU ld script
1597    Use the shared library, but some functions are only in
1598    the static library, so try that secondarily.  */
1599 %{oformat2}
1600 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libgfortran.so.4 )' > 32/libgfortran.so
1601 %endif
1602 echo '/* GNU ld script */
1603 %{oformat2}
1604 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libgomp.so.1 )' > 32/libgomp.so
1605 echo '/* GNU ld script */
1606 %{oformat2}
1607 INPUT ( %{_prefix}/lib/libgccjit.so.0 )' > 32/libgccjit.so
1608 %if %{build_libquadmath}
1609 rm -f 32/libquadmath.so
1610 echo '/* GNU ld script */
1611 %{oformat2}
1612 %if 0%{!?scl:1}
1613 INPUT ( %{_prefix}/lib/libquadmath.so.0 )' > 32/libquadmath.so
1614 %else
1615 %if 0%{?rhel} >= 7
1616 INPUT ( %{_root_prefix}/lib/libquadmath.so.0 )' > 32/libquadmath.so
1617 %else
1618 INPUT ( libquadmath.a )' > 32/libquadmath.so
1619 %endif
1620 %endif
1621 %endif
1622 %if %{build_libitm}
1623 rm -f 32/libitm.so
1624 echo '/* GNU ld script */
1625 %{oformat2}
1626 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libitm.so.1 )' > 32/libitm.so
1627 %endif
1628 %if %{build_libatomic}
1629 rm -f 32/libatomic.so
1630 echo '/* GNU ld script */
1631 %{oformat2}
1632 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libatomic.so.1 )' > 32/libatomic.so
1633 %endif
1634 %if %{build_libasan}
1635 rm -f 32/libasan.so
1636 echo '/* GNU ld script */
1637 %{oformat2}
1638 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libasan.so.4 )' > 32/libasan.so
1639 %endif
1640 %if %{build_libubsan}
1641 rm -f 32/libubsan.so
1642 echo '/* GNU ld script */
1643 %{oformat2}
1644 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libubsan.so.0 )' > 32/libubsan.so
1645 %endif
1646 %if %{build_libcilkrts}
1647 rm -f 32/libcilkrts.so
1648 echo '/* GNU ld script */
1649 %{oformat2}
1650 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libcilkrts.so.5 )' > 32/libcilkrts.so
1651 %endif
1652 %if %{build_libmpx}
1653 rm -f 32/libmpx.so
1654 echo '/* GNU ld script */
1655 %{oformat2}
1656 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libmpx.so.2 )' > 32/libmpx.so
1657 rm -f 32/libmpxwrappers.so
1658 echo '/* GNU ld script */
1659 %{oformat2}
1660 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libmpxwrappers.so.2 )' > 32/libmpxwrappers.so
1661 %endif
1662 mv -f %{buildroot}%{_prefix}/lib/libsupc++.*a 32/
1663 %if %{build_fortran}
1664 mv -f %{buildroot}%{_prefix}/lib/libgfortran.*a 32/
1665 %endif
1666 mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/
1667 %if %{build_libquadmath}
1668 mv -f %{buildroot}%{_prefix}/lib/libquadmath.*a 32/
1669 %endif
1670 %endif
1671 %ifarch sparc64 ppc64
1672 ln -sf ../lib32/libstdc++.a 32/libstdc++.a
1673 ln -sf lib64/libstdc++.a libstdc++.a
1674 ln -sf ../lib32/libstdc++fs.a 32/libstdc++fs.a
1675 ln -sf lib64/libstdc++fs.a libstdc++fs.a
3db796 1676 %if 0%{?rhel} <= 7
2e5ef6 1677 ln -sf ../lib32/libstdc++_nonshared.a 32/libstdc++_nonshared.a
CS 1678 ln -sf lib64/libstdc++_nonshared.a libstdc++_nonshared.a
3db796 1679 %endif
2e5ef6 1680 %if %{build_libquadmath}
CS 1681 ln -sf ../lib32/libquadmath.a 32/libquadmath.a
1682 ln -sf lib64/libquadmath.a libquadmath.a
1683 %endif
1684 %if %{build_libitm}
1685 ln -sf ../lib32/libitm.a 32/libitm.a
1686 ln -sf lib64/libitm.a libitm.a
1687 %endif
1688 %if %{build_libatomic}
1689 ln -sf ../lib32/libatomic.a 32/libatomic.a
1690 ln -sf lib64/libatomic.a libatomic.a
1691 %endif
1692 %if %{build_libasan}
1693 ln -sf ../lib32/libasan.a 32/libasan.a
1694 ln -sf lib64/libasan.a libasan.a
1695 ln -sf ../lib32/libasan_preinit.o 32/libasan_preinit.o
1696 ln -sf lib64/libasan_preinit.o libasan_preinit.o
1697 %endif
1698 %if %{build_libubsan}
1699 ln -sf ../lib32/libubsan.a 32/libubsan.a
1700 ln -sf lib64/libubsan.a libubsan.a
1701 %endif
1702 %if %{build_libcilkrts}
1703 ln -sf ../lib32/libcilkrts.a 32/libcilkrts.a
1704 ln -sf lib64/libcilkrts.a libcilkrts.a
1705 %endif
1706 %if %{build_libmpx}
1707 ln -sf ../lib32/libmpx.a 32/libmpx.a
1708 ln -sf lib64/libmpx.a libmpx.a
1709 ln -sf ../lib32/libmpxwrappers.a 32/libmpxwrappers.a
1710 ln -sf lib64/libmpxwrappers.a libmpxwrappers.a
1711 %endif
1712 %else
1713 %ifarch %{multilib_64_archs}
1714 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libstdc++.a 32/libstdc++.a
1715 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libstdc++fs.a 32/libstdc++fs.a
3db796 1716 %if 0%{?rhel} <= 7
2e5ef6 1717 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libstdc++_nonshared.a 32/libstdc++_nonshared.a
3db796 1718 %endif
2e5ef6 1719 %if %{build_libquadmath}
CS 1720 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libquadmath.a 32/libquadmath.a
1721 %endif
1722 %if %{build_libitm}
1723 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libitm.a 32/libitm.a
1724 %endif
1725 %if %{build_libatomic}
1726 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libatomic.a 32/libatomic.a
1727 %endif
1728 %if %{build_libasan}
1729 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libasan.a 32/libasan.a
1730 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libasan_preinit.o 32/libasan_preinit.o
1731 %endif
1732 %if %{build_libubsan}
1733 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libubsan.a 32/libubsan.a
1734 %endif
1735 %if %{build_libcilkrts}
1736 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libcilkrts.a 32/libcilkrts.a
1737 %endif
1738 %if %{build_libmpx}
1739 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libmpx.a 32/libmpx.a
1740 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libmpxwrappers.a 32/libmpxwrappers.a
1741 %endif
1742 %endif
1743 %endif
1744
1745 # If we are building a debug package then copy all of the static archives
1746 # into the debug directory to keep them as unstripped copies.
1747 %if 0%{?_enable_debug_packages}
1748 mkdir -p $RPM_BUILD_ROOT%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
1749 adirs="$FULLPATH"
1750 if [ $FULLLPATH -ne $FULLPATH ]; then
1751   adirs="$adirs $FULLLPATH"
1752 fi
1753 for f in `find $adirs -maxdepth 1 -a \
1754          \( -name libgfortran.a -o -name libgomp.a \
1755             -o -name libgcc.a -o -name libgcc_eh.a -o -name libgcov.a \
1756             -o -name libquadmath.a -o -name libitm.a \
1757             -o -name libatomic.a -o -name libasan.a \
1758             -o -name libtsan.a -o -name libubsan.a \
1759             -o -name liblsan.a -o -name libcilkrts.a \
1760             -o -name libmpx.a -o -name libmpxwrappers.a \
3db796 1761             -o -name libcc1.a \
CS 1762 %if 0%{?rhel} <= 7
1763             -o -name libstdc++_nonshared.a \
1764 %endif
2e5ef6 1765             -o -name libsupc++.a \
CS 1766             -o -name libstdc++.a -o -name libcaf_single.a \
1767             -o -name libstdc++fs.a \) -a -type f`; do
1768   cp -a $f $RPM_BUILD_ROOT%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/
1769 done
1770 %endif
1771
1772 # Strip debug info from Fortran/ObjC/Java static libraries
1773 strip -g `find . \( -name libgfortran.a  -o -name libgomp.a \
1774             -o -name libgcc.a -o -name libgcov.a \
1775             -o -name libquadmath.a -o -name libitm.a \
1776             -o -name libatomic.a -o -name libasan.a \
1777             -o -name libtsan.a -o -name libubsan.a \
1778             -o -name liblsan.a -o -name libcilkrts.a \
1779             -o -name libmpx.a -o -name libmpxwrappers.a \
1780             -o -name libcc1.a \) -a -type f`
1781 popd
1782 %if %{build_fortran}
1783 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.4.*
1784 %endif
1785 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.*
1786 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libcc1.so.0.*
1787 %if %{build_libquadmath}
1788 %if 0%{!?scl:1}
1789 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.*
1790 %endif
1791 %endif
1792 %if %{build_libitm}
1793 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.*
1794 %if 0%{?scl:1}
1795 mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
1796 mv %{buildroot}%{_prefix}/%{_lib}/libitm.so.1* %{buildroot}%{_root_prefix}/%{_lib}/
1797 mkdir -p %{buildroot}%{_root_infodir}
3db796 1798 %if 0%{?rhel} <= 7
2e5ef6 1799 mv %{buildroot}%{_infodir}/libitm.info* %{buildroot}%{_root_infodir}/
3db796 1800 %endif
2e5ef6 1801 %endif
CS 1802 %endif
1803 %if %{build_libatomic}
1804 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1.*
1805 %if 0%{?scl:1}
1806 mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
1807 mv %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1* %{buildroot}%{_root_prefix}/%{_lib}/
1808 mkdir -p %{buildroot}%{_root_infodir}
1809 %endif
1810 %endif
1811 %if %{build_libasan}
1812 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libasan.so.4.*
1813 %if 0%{?scl:1}
1814 mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
1815 mv %{buildroot}%{_prefix}/%{_lib}/libasan.so.4* %{buildroot}%{_root_prefix}/%{_lib}/
1816 mkdir -p %{buildroot}%{_root_infodir}
1817 %endif
1818 %endif
1819 %if %{build_libtsan}
1820 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.0.*
1821 %if 0%{?scl:1}
1822 mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
1823 mv %{buildroot}%{_prefix}/%{_lib}/libtsan.so.0* %{buildroot}%{_root_prefix}/%{_lib}/
1824 mkdir -p %{buildroot}%{_root_infodir}
1825 %endif
1826 %endif
1827 %if %{build_libubsan}
1828 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.0.*
1829 %if 0%{?scl:1}
1830 mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
1831 mv %{buildroot}%{_prefix}/%{_lib}/libubsan.so.0* %{buildroot}%{_root_prefix}/%{_lib}/
1832 mkdir -p %{buildroot}%{_root_infodir}
1833 %endif
1834 %endif
1835 %if %{build_liblsan}
1836 chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.*
1837 %if 0%{?scl:1}
1838 mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
1839 mv %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0* %{buildroot}%{_root_prefix}/%{_lib}/
1840 mkdir -p %{buildroot}%{_root_infodir}
1841 %endif
1842 %endif
1843 %if %{build_libcilkrts}
1844 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libcilkrts.so.5.*
1845 %if 0%{?scl:1}
1846 mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
1847 mv %{buildroot}%{_prefix}/%{_lib}/libcilkrts.so.5* %{buildroot}%{_root_prefix}/%{_lib}/
1848 %endif
1849 %endif
1850 %if %{build_libmpx}
1851 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libmpx.so.2.*
1852 %if 0%{?scl:1}
1853 mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
1854 mv %{buildroot}%{_prefix}/%{_lib}/libmpx.so.2* %{buildroot}%{_root_prefix}/%{_lib}/
1855 %endif
1856 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libmpxwrappers.so.2.*
1857 %if 0%{?scl:1}
1858 mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
1859 mv %{buildroot}%{_prefix}/%{_lib}/libmpxwrappers.so.2* %{buildroot}%{_root_prefix}/%{_lib}/
1860 %endif
1861 %endif
1862
1863 mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h
1864 mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h
1865 for h in `find $FULLPATH/include -name \*.h`; do
1866   if grep -q 'It has been auto-edited by fixincludes from' $h; then
1867     rh=`grep -A2 'It has been auto-edited by fixincludes from' $h | tail -1 | sed 's|^.*"\(.*\)".*$|\1|'`
1868     diff -up $rh $h || :
1869     rm -f $h
1870   fi
1871 done
1872
3db796 1873 %if 0%{?rhel} > 7
CS 1874 mkdir -p %{buildroot}%{_root_prefix}/%{_lib}
1875 mv %{buildroot}%{_prefix}/%{_lib}/libstdc++.so.6 %{buildroot}%{_root_prefix}/%{_lib}
1876 mv %{buildroot}%{_prefix}/%{_lib}/libstdc++.so.6.*[0-9] %{buildroot}%{_root_prefix}/%{_lib}
1877 mv %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1* %{buildroot}%{_root_prefix}/%{_lib}
1878 %if %{build_fortran}
1879 mv %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.4* %{buildroot}%{_root_prefix}/%{_lib}
1880 %endif
1881 %if %{build_libquadmath}
1882 mv %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0* %{buildroot}%{_root_prefix}/%{_lib}
1883 %endif
1884 %endif
1885
2e5ef6 1886 cd ..
CS 1887
1888 %if 0%{!?scl:1}
1889 for i in %{buildroot}%{_prefix}/bin/{*gcc,*++,gcov,gfortran,gcc-ar,gcc-nm,gcc-ranlib}; do
1890   mv -f $i ${i}5
1891 done
1892 %endif
1893
1894 # Remove binaries we will not be including, so that they don't end up in
1895 # gcc7-debuginfo
3db796 1896 %if 0%{?rhel} > 7
CS 1897 rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a,libmudflap*}
2e5ef6 1898 %else
3db796 1899 rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a,libmudflap*,libstdc++*,libgfortran*}
CS 1900 %endif
1901 %if 0%{?scl:1}
1902 %if 0%{?rhel} <= 7
1903 rm -f %{buildroot}%{_prefix}/%{_lib}/{libquadmath*,libitm*,libatomic*,libasan*,libtsan*,libubsan*,liblsan*}
1904 %endif
1905 %else
1906 %if 0%{?rhel} >= 7
2e5ef6 1907 rm -f %{buildroot}%{_prefix}/%{_lib}/{libitm*,libatomic*}
CS 1908 %endif
1909 %endif
3db796 1910 %if 0%{?rhel} <= 7
2e5ef6 1911 rm -f %{buildroot}%{_prefix}/%{_lib}/libgomp*
3db796 1912 rm -f %{buildroot}/%{_lib}/libgcc_s*
CS 1913 %endif
2e5ef6 1914 rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
CS 1915 rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a
1916 rm -f %{buildroot}%{_prefix}/%{_lib}/libssp*
1917 rm -f %{buildroot}%{_prefix}/%{_lib}/libvtv* || :
1918 rm -f %{buildroot}/lib/cpp
3db796 1919 %if 0%{?rhel} <= 7
2e5ef6 1920 rm -f %{buildroot}/%{_lib}/libgcc_s*
3db796 1921 %endif
2e5ef6 1922 rm -f %{buildroot}%{_prefix}/bin/{f95,gccbug,gnatgcc*}
CS 1923 rm -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gfortran
1924 %if 0%{!?scl:1}
1925 rm -f %{buildroot}%{_prefix}/bin/{*c++*,cc,cpp}
1926 %endif
1927 rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gfortran || :
1928
1929 %ifarch %{multilib_64_archs}
1930 # Remove libraries for the other arch on multilib arches
1931 rm -f %{buildroot}%{_prefix}/lib/lib*.so*
1932 rm -f %{buildroot}%{_prefix}/lib/lib*.a
1933 rm -f %{buildroot}/lib/libgcc_s*.so*
1934 %else
1935 %ifarch sparcv9 ppc
1936 rm -f %{buildroot}%{_prefix}/lib64/lib*.so*
1937 rm -f %{buildroot}%{_prefix}/lib64/lib*.a
1938 rm -f %{buildroot}/lib64/libgcc_s*.so*
1939 %endif
1940 %endif
1941
1942 %ifnarch sparc64 ppc64
1943 %ifarch %{multilib_64_archs}
1944 cat <<\EOF > %{buildroot}%{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}-gcc-%{gcc_major}
1945 #!/bin/sh
1946 %ifarch s390x
1947 exec %{gcc_target_platform}-gcc-%{gcc_major} -m31 "$@"
1948 %else
1949 exec %{gcc_target_platform}-gcc-%{gcc_major} -m32 "$@"
1950 %endif
1951 EOF
1952 chmod 755 %{buildroot}%{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}-gcc-%{gcc_major}
1953 %endif
1954 %endif
1955
1956 # Help plugins find out nvra.
1957 echo gcc-%{version}-%{release}.%{arch} > $FULLPATH/rpmver
1958
1959 %check
1960 cd obj-%{gcc_target_platform}
1961
1962 %{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
3db796 1963 %if 0%{?rhel} <= 7
2e5ef6 1964 # Test against the system libstdc++.so.6 + libstdc++_nonshared.a combo
CS 1965 mv %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6{,.not_here}
1966 mv %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so{,.not_here}
1967 ln -sf %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 \
1968   %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6
1969 echo '/* GNU ld script
1970    Use the shared library, but some functions are only in
1971    the static library, so try that secondarily.  */
1972 %{oformat}
1973 INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' \
1974   > %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so
1975 cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \
1976   %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared.a
3db796 1977 %endif
2e5ef6 1978
CS 1979 # run the tests.
1980 make %{?_smp_mflags} -k check RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || :
1981 ( LC_ALL=C ../contrib/test_summary -t || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' > testresults
1982 rm -rf gcc/testsuite.prev
1983 mv gcc/testsuite{,.prev}
1984 rm -f gcc/site.exp
1985 make %{?_smp_mflags} -C gcc -k check-gcc check-g++ ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}' compat.exp struct-layout-1.exp" || :
1986 mv gcc/testsuite/gcc/gcc.sum{,.sent}
1987 mv gcc/testsuite/g++/g++.sum{,.sent}
1988 ( LC_ALL=C ../contrib/test_summary -o -t || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' > testresults2
1989 rm -rf gcc/testsuite.compat
1990 mv gcc/testsuite{,.compat}
1991 mv gcc/testsuite{.prev,}
1992 echo ====================TESTING=========================
1993 cat testresults
1994 echo ===`gcc --version | head -1` compatibility tests====
1995 cat testresults2
1996 echo ====================TESTING END=====================
1997 mkdir testlogs-%{_target_platform}-%{version}-%{release}
1998 for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats.*/tests/'`; do
1999   ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || :
2000 done
2001 for i in `find gcc/testsuite.compat -name \*.log | grep -v 'config.log\|acats.*/tests/'`; do
2002   ln $i testlogs-%{_target_platform}-%{version}-%{release}/`basename $i`.compat || :
2003 done
2004 tar cf - testlogs-%{_target_platform}-%{version}-%{release} | bzip2 -9c \
2005   | uuencode testlogs-%{_target_platform}.tar.bz2 || :
2006 rm -rf testlogs-%{_target_platform}-%{version}-%{release}
2007
2008 %clean
2009 rm -rf %{buildroot}
2010
3db796 2011 %if 0%{?rhel} > 7
CS 2012 %post
2013 if [ -f %{_infodir}/gcc.info.gz ]; then 
2014   /sbin/install-info \
2015     --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || : 
2016 fi
2017
2018 %preun
2019 if [ $1 = 0 -a -f %{_infodir}/gcc.info.gz ]; then 
2020   /sbin/install-info --delete \
2021     --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || : 
2022 fi
2023 %endif
2024
2e5ef6 2025 %if 0%{?scl:1}
CS 2026 %post gfortran
2027 if [ -f %{_infodir}/gfortran.info.gz ]; then
2028   /sbin/install-info \
2029     --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
2030 fi
2031
2032 %preun gfortran
2033 if [ $1 = 0 -a -f %{_infodir}/gfortran.info.gz ]; then
2034   /sbin/install-info --delete \
2035     --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
2036 fi
3db796 2037
CS 2038 # Because glibc Prereq's libgcc and /sbin/ldconfig
2039 # comes from glibc, it might not exist yet when
2040 # libgcc is installed
2041 %post -n libgcc -p <lua>
2042 if posix.access ("/sbin/ldconfig", "x") then
2043   local pid = posix.fork ()
2044   if pid == 0 then
2045     posix.exec ("/sbin/ldconfig")
2046   elseif pid ~= -1 then
2047     posix.wait (pid)
2048   end
2049 end
2050
2051 %postun -n libgcc -p <lua>
2052 if posix.access ("/sbin/ldconfig", "x") then
2053   local pid = posix.fork ()
2054   if pid == 0 then
2055     posix.exec ("/sbin/ldconfig")
2056   elseif pid ~= -1 then
2057     posix.wait (pid)
2058   end
2059 end
2060
2061 %post -n libstdc++ -p /sbin/ldconfig
2062
2063 %postun -n libstdc++ -p /sbin/ldconfig
2e5ef6 2064 %endif
CS 2065
2066 %post gdb-plugin -p /sbin/ldconfig
2067
2068 %postun gdb-plugin -p /sbin/ldconfig
2069
2070 %post -n %{?scl_prefix}libgccjit -p /sbin/ldconfig
2071
2072 %postun -n %{?scl_prefix}libgccjit -p /sbin/ldconfig
2073
2074 %post -n %{?scl_prefix}libgccjit-docs
2075 if [ -f %{_infodir}/libgccjit.info.gz ]; then
2076   /sbin/install-info \
2077     --info-dir=%{_infodir} %{_infodir}/libgccjit.info.gz || :
2078 fi
2079
2080 %preun -n %{?scl_prefix}libgccjit-docs
2081 if [ $1 = 0 -a -f %{_infodir}/libgccjit.info.gz ]; then
2082   /sbin/install-info --delete \
2083     --info-dir=%{_infodir} %{_infodir}/libgccjit.info.gz || :
2084 fi
2085
3db796 2086 %post -n libgomp
CS 2087 /sbin/ldconfig
2088 if [ -f %{_infodir}/libgomp.info.gz ]; then
2089   /sbin/install-info \
2090     --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
2091 fi
2092
2093 %preun -n libgomp
2094 if [ $1 = 0 -a -f %{_infodir}/libgomp.info.gz ]; then
2095   /sbin/install-info --delete \
2096     --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
2097 fi
2098
2099 %postun -n libgomp -p /sbin/ldconfig
2100
2101 %post -n libquadmath
2e5ef6 2102 /sbin/ldconfig
CS 2103 if [ -f %{_infodir}/libquadmath.info.gz ]; then
2104   /sbin/install-info \
2105     --info-dir=%{_infodir} %{_infodir}/libquadmath.info.gz || :
2106 fi
2107
3db796 2108 %preun -n libquadmath
2e5ef6 2109 if [ $1 = 0 -a -f %{_infodir}/libquadmath.info.gz ]; then
CS 2110   /sbin/install-info --delete \
2111     --info-dir=%{_infodir} %{_infodir}/libquadmath.info.gz || :
2112 fi
2113
3db796 2114 %postun -n libquadmath -p /sbin/ldconfig
CS 2115
2116 %post -n libitm
2117 /sbin/ldconfig
2118 if [ -f %{_infodir}/libitm.info.gz ]; then 
2119   /sbin/install-info \
2120     --info-dir=%{_infodir} %{_infodir}/libitm.info.gz || : 
2121 fi
2122
2123 %preun -n libitm
2124 if [ $1 = 0 -a -f %{_infodir}/libitm.info.gz ]; then 
2125   /sbin/install-info --delete \
2126     --info-dir=%{_infodir} %{_infodir}/libitm.info.gz || : 
2127 fi
2128
2129 %postun -n libitm -p /sbin/ldconfig
2e5ef6 2130
CS 2131 %post -n libatomic -p /sbin/ldconfig
2132
2133 %postun -n libatomic -p /sbin/ldconfig
3db796 2134
CS 2135 %post -n libasan -p /sbin/ldconfig
2136
2137 %postun -n libasan -p /sbin/ldconfig
2e5ef6 2138
CS 2139 %post -n libasan4 -p /sbin/ldconfig
2140
2141 %postun -n libasan4 -p /sbin/ldconfig
2142
2143 %post -n libtsan -p /sbin/ldconfig
2144
2145 %postun -n libtsan -p /sbin/ldconfig
2146
2147 %post -n libubsan -p /sbin/ldconfig
2148
2149 %postun -n libubsan -p /sbin/ldconfig
2150
2151 %post -n liblsan -p /sbin/ldconfig
2152
2153 %postun -n liblsan -p /sbin/ldconfig
2154
2155 %post -n libcilkrts -p /sbin/ldconfig
2156
2157 %postun -n libcilkrts -p /sbin/ldconfig
2158
2159 %post -n libmpx -p /sbin/ldconfig
2160
2161 %postun -n libmpx -p /sbin/ldconfig
2162
2163 %files
2164 %defattr(-,root,root,-)
2165 %{_prefix}/bin/gcc%{!?scl:5}
2166 %{_prefix}/bin/gcov%{!?scl:5}
2167 %{_prefix}/bin/gcov-tool%{!?scl:5}
2168 %{_prefix}/bin/gcc-ar%{!?scl:5}
2169 %{_prefix}/bin/gcc-nm%{!?scl:5}
2170 %{_prefix}/bin/gcc-ranlib%{!?scl:5}
2171 %ifarch ppc
2172 %{_prefix}/bin/%{_target_platform}-gcc%{!?scl:5}
2173 %endif
2174 %ifarch sparc64 sparcv9
2175 %{_prefix}/bin/sparc-%{_vendor}-%{_target_os}%{?_gnu}-gcc%{!?scl:5}
2176 %endif
2177 %ifarch ppc64
2178 %{_prefix}/bin/ppc-%{_vendor}-%{_target_os}%{?_gnu}-gcc%{!?scl:5}
2179 %endif
2180 %{_prefix}/bin/%{gcc_target_platform}-gcc%{!?scl:5}
2181 %{_prefix}/bin/%{gcc_target_platform}-gcc-%{gcc_major}
2182 %ifnarch sparc64 ppc64
2183 %ifarch %{multilib_64_archs}
2184 %{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}-gcc-%{gcc_major}
2185 %endif
2186 %endif
2187 %if 0%{?scl:1}
2188 %{_prefix}/bin/cc
2189 %{_prefix}/bin/cpp
2190 %{_mandir}/man1/gcc.1*
2191 %{_mandir}/man1/cpp.1*
2192 %{_mandir}/man1/gcov.1*
2193 %{_infodir}/gcc*
2194 %{_infodir}/cpp*
2195 %endif
2196 %dir %{_prefix}/lib/gcc
2197 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2198 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2199 %dir %{_prefix}/libexec/gcc
2200 %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
2201 %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
2202 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
2203 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/rpmver
2204 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stddef.h
2205 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdarg.h
2206 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdfix.h
2207 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/varargs.h
2208 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/float.h
2209 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/limits.h
2210 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdbool.h
2211 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/iso646.h
2212 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/syslimits.h
2213 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/unwind.h
2214 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/omp.h
2215 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/openacc.h
2216 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint.h
2217 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint-gcc.h
2218 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdalign.h
2219 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdnoreturn.h
2220 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdatomic.h
2221 %ifarch %{ix86} x86_64
2222 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h
2223 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xmmintrin.h
2224 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/emmintrin.h
2225 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pmmintrin.h
2226 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tmmintrin.h
2227 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ammintrin.h
2228 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/smmintrin.h
2229 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/nmmintrin.h
2230 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmmintrin.h
2231 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/wmmintrin.h
2232 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/immintrin.h
2233 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxintrin.h
2234 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86intrin.h
2235 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fma4intrin.h
2236 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xopintrin.h
2237 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lwpintrin.h
2238 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/popcntintrin.h
2239 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmiintrin.h
2240 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tbmintrin.h
2241 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia32intrin.h
2242 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx2intrin.h
2243 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmi2intrin.h
2244 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/f16cintrin.h
2245 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fmaintrin.h
2246 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lzcntintrin.h
2247 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rtmintrin.h
2248 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xtestintrin.h
2249 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/adxintrin.h
2250 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/prfchwintrin.h
2251 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rdseedintrin.h
2252 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fxsrintrin.h
2253 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsaveintrin.h
2254 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsaveoptintrin.h
2255 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512cdintrin.h
2256 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512erintrin.h
2257 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fintrin.h
2258 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512pfintrin.h
2259 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/shaintrin.h
2260 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm_malloc.h
2261 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm3dnow.h
2262 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cpuid.h
2263 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cross-stdarg.h
2264 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bwintrin.h
2265 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512dqintrin.h
2266 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512ifmaintrin.h
2267 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512ifmavlintrin.h
2268 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmiintrin.h
2269 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmivlintrin.h
2270 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vlbwintrin.h
2271 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vldqintrin.h
2272 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vlintrin.h
2273 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clflushoptintrin.h
2274 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clwbintrin.h
2275 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mwaitxintrin.h
2276 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsavecintrin.h
2277 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsavesintrin.h
2278 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clzerointrin.h
2279 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pkuintrin.h
2280 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx5124fmapsintrin.h
2281 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx5124vnniwintrin.h
2282 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vpopcntdqintrin.h
2283 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sgxintrin.h
2284 %endif
2285 %ifarch ia64
2286 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia64intrin.h
2287 %endif
2288 %ifarch ppc ppc64 ppc64le ppc64p7
2289 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppc-asm.h
2290 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/altivec.h
2291 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/spe.h
2292 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/paired.h
2293 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppu_intrinsics.h
2294 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/si2vmx.h
2295 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/spu2vmx.h
2296 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vec_types.h
2297 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmintrin.h
2298 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmxlintrin.h
2299 %endif
2300 %ifarch %{arm}
2301 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/unwind-arm-common.h
2302 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h
2303 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon.h
2304 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_acle.h
2305 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_cmse.h
2306 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_fp16.h
2307 %endif
2308 %ifarch aarch64
2309 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon.h
2310 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_acle.h
2311 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_fp16.h
2312 %endif
2313 %ifarch sparc sparcv9 sparc64
2314 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/visintrin.h
2315 %endif
2316 %ifarch s390 s390x
2317 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/s390intrin.h
2318 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmintrin.h
2319 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmxlintrin.h
2320 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vecintrin.h
2321 %endif
2322 %if %{build_libcilkrts}
2323 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cilk
2324 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libcilkrts.spec
2325 %endif
2326 %if %{build_libmpx}
2327 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpx.spec
2328 %endif
2329 %if %{build_libasan}
2330 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sanitizer
2331 %endif
2332 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1
2333 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto1
2334 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto-wrapper
2335 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so*
2336 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/collect2
2337 %if 0%{?scl:1}
3db796 2338 %if 0%{?rhel} <= 7
2e5ef6 2339 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ar
CS 2340 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/as
2341 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ld
2342 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ld.bfd
2343 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ld.gold
2344 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/nm
3db796 2345 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/objcopy
2e5ef6 2346 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ranlib
CS 2347 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/strip
3db796 2348 %endif
2e5ef6 2349 %endif
CS 2350 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/crt*.o
2351 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc.a
2352 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcov.a
2353 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc_eh.a
2354 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc_s.so
2355 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.spec
2356 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.a
2357 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.so
2358 %if %{build_libitm}
2359 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.spec
2360 %endif
2361 %if %{build_libasan}
2362 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsanitizer.spec
2363 %endif
2364 %ifarch sparcv9 sparc64 ppc ppc64
2365 %if %{build_libquadmath}
2366 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a
2367 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so
2368 %endif
2369 %endif
2370 %if %{build_isl}
2371 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libisl.so.*
2372 %endif
2373 %ifarch sparcv9 ppc
2374 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
2375 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/crt*.o
2376 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc.a
2377 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcov.a
2378 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc_eh.a
2379 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc_s.so
2380 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgomp.a
2381 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgomp.so
2382 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgccjit.so
2383 %if %{build_libquadmath}
2384 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.a
2385 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.so
2386 %endif
2387 %if %{build_libitm}
2388 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.a
2389 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.so
2390 %endif
2391 %if %{build_libatomic}
2392 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.a
2393 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.so
2394 %endif
2395 %if %{build_libasan}
2396 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan.a
2397 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan.so
2398 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan_preinit.o
2399 %endif
2400 %if %{build_libubsan}
2401 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.a
2402 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.so
2403 %endif
2404 %if %{build_libcilkrts}
2405 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libcilkrts.a
2406 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libcilkrts.so
2407 %endif
2408 %if %{build_libmpx}
2409 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libmpx.a
2410 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libmpx.so
2411 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libmpxwrappers.a
2412 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libmpxwrappers.so
2413 %endif
2414 %endif
2415 %ifarch %{multilib_64_archs}
2416 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
2417 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/crt*.o
2418 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc.a
2419 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcov.a
2420 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_eh.a
2421 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_s.so
2422 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.a
2423 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.so
2424 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgccjit.so
2425 %if %{build_libquadmath}
2426 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.a
2427 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.so
2428 %endif
2429 %if %{build_libitm}
2430 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.a
2431 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.so
2432 %endif
2433 %if %{build_libatomic}
2434 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.a
2435 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.so
2436 %endif
2437 %if %{build_libasan}
2438 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.a
2439 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.so
2440 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan_preinit.o
2441 %endif
2442 %if %{build_libubsan}
2443 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.a
2444 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.so
2445 %endif
2446 %if %{build_libcilkrts}
2447 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libcilkrts.a
2448 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libcilkrts.so
2449 %endif
2450 %if %{build_libmpx}
2451 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libmpx.a
2452 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libmpx.so
2453 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libmpxwrappers.a
2454 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libmpxwrappers.so
2455 %endif
2456 %endif
2457 %ifarch sparcv9 sparc64 ppc ppc64
2458 %if %{build_libquadmath}
2459 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a
2460 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so
2461 %endif
2462 %if %{build_libitm}
2463 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a
2464 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so
2465 %endif
2466 %if %{build_libatomic}
2467 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a
2468 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so
2469 %endif
2470 %if %{build_libasan}
2471 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.a
2472 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so
2473 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o
2474 %endif
2475 %if %{build_libtsan}
2476 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.a
2477 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so
2478 %endif
2479 %if %{build_libubsan}
2480 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a
2481 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so
2482 %endif
2483 %if %{build_liblsan}
2484 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.a
2485 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.so
2486 %endif
2487 %if %{build_libcilkrts}
2488 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libcilkrts.a
2489 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libcilkrts.so
2490 %endif
2491 %if %{build_libmpx}
2492 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpx.a
2493 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpx.so
2494 %endif
2495 %endif
2496 %doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING* COPYING.RUNTIME
2497
3db796 2498 %if 0%{?rhel} > 7
CS 2499 %files -n libgcc
2500 %defattr(-,root,root,-)
2501 /%{_lib}/libgcc_s-%{gcc_major}-%{DATE}.so.1
2502 /%{_lib}/libgcc_s.so.1
2503 %doc gcc/COPYING* COPYING.RUNTIME
2504 %endif
2505
2e5ef6 2506 %files c++
CS 2507 %defattr(-,root,root,-)
2508 %{_prefix}/bin/%{gcc_target_platform}-g++%{!?scl:5}
2509 %{_prefix}/bin/g++%{!?scl:5}
2510 %if 0%{?scl:1}
2511 %{_prefix}/bin/%{gcc_target_platform}-c++
2512 %{_prefix}/bin/c++
2513 %{_mandir}/man1/g++.1*
2514 %endif
2515 %dir %{_prefix}/lib/gcc
2516 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2517 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2518 %dir %{_prefix}/libexec/gcc
2519 %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
2520 %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
2521 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1plus
2522 %ifarch sparcv9 ppc
2523 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
2524 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.so
2525 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.a
2526 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++fs.a
2527 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++_nonshared.a
2528 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libsupc++.a
2529 %endif
2530 %ifarch %{multilib_64_archs}
2531 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
2532 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.so
2533 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.a
2534 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++fs.a
3db796 2535 %if 0%{?rhel} <= 7
2e5ef6 2536 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++_nonshared.a
3db796 2537 %endif
2e5ef6 2538 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libsupc++.a
CS 2539 %endif
2540 %ifarch sparcv9 ppc %{multilib_64_archs}
2541 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so
2542 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a
2543 %endif
2544 %ifarch sparcv9 sparc64 ppc ppc64
2545 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a
2546 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a
3db796 2547 %if 0%{?rhel} <= 7
2e5ef6 2548 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++_nonshared.a
3db796 2549 %endif
2e5ef6 2550 %endif
CS 2551 %doc rpm.doc/changelogs/gcc/cp/ChangeLog*
2552
2553 %files -n %{?scl_prefix}libstdc++%{!?scl:5}-devel
2554 %defattr(-,root,root,-)
2555 %dir %{_prefix}/include/c++
2556 %{_prefix}/include/c++/%{gcc_major}
2557 %dir %{_prefix}/lib/gcc
2558 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2559 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2560 %ifarch sparcv9 ppc
2561 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
2562 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++.a
2563 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++fs.a
3db796 2564 %if 0%{?rhel} <= 7
2e5ef6 2565 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++_nonshared.a
3db796 2566 %endif
2e5ef6 2567 %endif
CS 2568 %ifarch sparc64 ppc64
2569 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
2570 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++.a
2571 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++fs.a
3db796 2572 %if 0%{?rhel} <= 7
2e5ef6 2573 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++_nonshared.a
3db796 2574 %endif
2e5ef6 2575 %endif
CS 2576 %ifnarch sparcv9 sparc64 ppc ppc64
2577 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a
2578 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a
3db796 2579 %if 0%{?rhel} <= 7
2e5ef6 2580 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++_nonshared.a
3db796 2581 %endif
2e5ef6 2582 %endif
CS 2583 %ifnarch sparcv9 ppc %{multilib_64_archs}
2584 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so
2585 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a
2586 %endif
2587 %doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README*
3db796 2588
CS 2589 %if 0%{?rhel} > 7
2590 %files -n libstdc++
2591 %defattr(-,root,root,-)
2592 %{_root_prefix}/%{_lib}/libstdc++.so.6*
2593 %dir %{_datadir}/gdb
2594 %dir %{_datadir}/gdb/auto-load
2595 %dir %{_datadir}/gdb/auto-load/%{_prefix}
2596 %dir %{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/
2597 %{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
2598 %dir %{_prefix}/share/gcc-%{gcc_major}
2599 %dir %{_prefix}/share/gcc-%{gcc_major}/python
2600 %{_prefix}/share/gcc-%{gcc_major}/python/libstdcxx
2601
2602 %files -n libgomp
2603 %defattr(-,root,root,-)
2604 %{_root_prefix}/%{_lib}/libgomp.so.1*
2605 %{_infodir}/libgomp.info*
2606 %doc rpm.doc/changelogs/libgomp/ChangeLog*
2607
2608 %if %{build_libatomic}
2609 %files -n libatomic
2610 %defattr(-,root,root,-)
2611 %{_root_prefix}/%{_lib}/libatomic.so.1*
2612 %endif
2613
2614 %if %{build_libitm}
2615 %files -n libitm
2616 %defattr(-,root,root,-)
2617 %{_root_prefix}/%{_lib}/libitm.so.1*
2618 %{_infodir}/libitm.info*
2619 %endif
2620 %endif
2e5ef6 2621
CS 2622 %if %{build_libstdcxx_docs}
2623 %files -n %{?scl_prefix}libstdc++%{!?scl:5}-docs
2624 %defattr(-,root,root)
2625 %{_mandir}/man3/*
2626 %doc rpm.doc/libstdc++-v3/html
2627 %endif
2628
2629 %if %{build_fortran}
2630 %files gfortran
2631 %defattr(-,root,root,-)
2632 %{_prefix}/bin/gfortran%{!?scl:5}
2633 %if 0%{?scl:1}
2634 %{_mandir}/man1/gfortran.1*
2635 %{_infodir}/gfortran*
2636 %endif
2637 %dir %{_prefix}/lib/gcc
2638 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2639 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2640 %dir %{_prefix}/libexec/gcc
2641 %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
2642 %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
2643 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude
2644 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.h
2645 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.f90
2646 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.mod
2647 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib_kinds.mod
2648 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc.f90
2649 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc.mod
2650 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc_kinds.mod
2651 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc_lib.h
2652 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_arithmetic.mod
2653 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_exceptions.mod
2654 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_features.mod
2655 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/f951
2656 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.spec
2657 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libcaf_single.a
2658 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.a
2659 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.so
2660 %ifarch sparcv9 ppc
2661 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
2662 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libcaf_single.a
2663 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgfortran.a
2664 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgfortran.so
2665 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/finclude
2666 %endif
2667 %ifarch %{multilib_64_archs}
2668 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
2669 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libcaf_single.a
2670 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.a
2671 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.so
2672 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/finclude
2673 %endif
2674 %doc rpm.doc/gfortran/*
3db796 2675
CS 2676 %if 0%{?rhel} > 7
2677 %files -n libgfortran
2678 %defattr(-,root,root,-)
2679 %{_root_prefix}/%{_lib}/libgfortran.so.4*
2680 %endif
2e5ef6 2681 %endif
CS 2682
2683 %if %{build_libquadmath}
3db796 2684 %if 0%{?rhel} > 7
CS 2685 %files -n libquadmath
2e5ef6 2686 %defattr(-,root,root,-)
3db796 2687 %{_root_prefix}/%{_lib}/libquadmath.so.0*
2e5ef6 2688 %{_infodir}/libquadmath.info*
CS 2689 %doc rpm.doc/libquadmath/COPYING*
2690 %endif
2691
2692 %files -n %{?scl_prefix}libquadmath-devel
2693 %defattr(-,root,root,-)
2694 %dir %{_prefix}/lib/gcc
2695 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2696 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2697 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
2698 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/quadmath.h
2699 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/quadmath_weak.h
2700 %ifarch sparcv9 ppc
2701 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
2702 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libquadmath.a
2703 %endif
2704 %ifarch sparc64 ppc64
2705 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
2706 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libquadmath.a
2707 %endif
2708 %ifnarch sparcv9 sparc64 ppc ppc64
2709 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a
2710 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so
2711 %endif
2712 %doc rpm.doc/libquadmath/ChangeLog*
2713 %endif
2714
2715 %if %{build_libitm}
2716 %files -n %{?scl_prefix}libitm-devel
2717 %defattr(-,root,root,-)
2718 %dir %{_prefix}/lib/gcc
2719 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2720 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2721 %ifarch sparcv9 ppc
2722 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
2723 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libitm.a
2724 %endif
2725 %ifarch sparc64 ppc64
2726 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
2727 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libitm.a
2728 %endif
2729 %ifnarch sparcv9 sparc64 ppc ppc64
2730 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so
2731 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a
2732 %endif
2733 %doc rpm.doc/libitm/ChangeLog*
2734 %endif
2735
2736 %if %{build_libatomic}
2737 %files -n %{?scl_prefix}libatomic-devel
2738 %defattr(-,root,root,-)
2739 %dir %{_prefix}/lib/gcc
2740 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2741 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2742 %ifarch sparcv9 ppc
2743 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
2744 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libatomic.a
2745 %endif
2746 %ifarch sparc64 ppc64
2747 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
2748 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libatomic.a
2749 %endif
2750 %ifnarch sparcv9 sparc64 ppc ppc64
2751 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so
2752 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a
2753 %endif
2754 %doc rpm.doc/changelogs/libatomic/ChangeLog*
2755 %endif
2756
2757 %if %{build_libasan}
3db796 2758 %if 0%{?rhel} > 7
CS 2759 %files -n libasan
2760 %else
2e5ef6 2761 %files -n libasan4
3db796 2762 %endif
2e5ef6 2763 %defattr(-,root,root,-)
CS 2764 %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libasan.so.4*
2765
2766 %files -n %{?scl_prefix}libasan-devel
2767 %defattr(-,root,root,-)
2768 %dir %{_prefix}/lib/gcc
2769 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2770 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2771 %ifarch sparcv9 ppc
2772 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
2773 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libasan.a
2774 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libasan_preinit.o
2775 %endif
2776 %ifarch sparc64 ppc64
2777 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
2778 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libasan.a
2779 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libasan_preinit.o
2780 %endif
2781 %ifnarch sparcv9 sparc64 ppc ppc64
2782 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so
2783 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.a
2784 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o
2785 %endif
2786 %doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
2787 %endif
2788
2789 %if %{build_libtsan}
2790 %files -n libtsan
2791 %defattr(-,root,root,-)
2792 %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libtsan.so.0*
2793
2794 %files -n %{?scl_prefix}libtsan-devel
2795 %defattr(-,root,root,-)
2796 %dir %{_prefix}/lib/gcc
2797 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2798 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2799 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so
2800 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan_preinit.o
2801 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.a
2802 %doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
2803 %endif
2804
2805 %if %{build_libubsan}
2806 %files -n libubsan
2807 %defattr(-,root,root,-)
2808 %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libubsan.so.0*
2809
2810 %files -n %{?scl_prefix}libubsan-devel
2811 %defattr(-,root,root,-)
2812 %dir %{_prefix}/lib/gcc
2813 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2814 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2815 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so
2816 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a
2817 %doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
2818 %endif
2819
2820 %if %{build_liblsan}
2821 %files -n liblsan
2822 %defattr(-,root,root,-)
2823 %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/liblsan.so.0*
2824
2825 %files -n %{?scl_prefix}liblsan-devel
2826 %defattr(-,root,root,-)
2827 %dir %{_prefix}/lib/gcc
2828 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2829 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2830 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.so
2831 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.a
2832 %doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
2833 %endif
2834
2835 %if %{build_libcilkrts}
2836 %files -n libcilkrts
2837 %defattr(-,root,root,-)
2838 %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libcilkrts.so.5*
2839
2840 %files -n %{?scl_prefix}libcilkrts-devel
2841 %defattr(-,root,root,-)
2842 %dir %{_prefix}/lib/gcc
2843 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2844 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2845 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libcilkrts.so
2846 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libcilkrts.a
2847 %doc rpm.doc/changelogs/libcilkrts/ChangeLog* libcilkrts/README
2848 %endif
2849
2850 %if %{build_libmpx}
2851 %files -n libmpx
2852 %defattr(-,root,root,-)
2853 %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libmpx.so.2*
2854 %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libmpxwrappers.so.2*
2855
2856 %files -n %{?scl_prefix}libmpx-devel
2857 %defattr(-,root,root,-)
2858 %dir %{_prefix}/lib/gcc
2859 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2860 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2861 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpx.so
2862 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpx.a
2863 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpxwrappers.so
2864 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libmpxwrappers.a
2865 %doc rpm.doc/changelogs/libmpx/ChangeLog*
2866 %endif
2867
2868 %files -n %{?scl_prefix}libgccjit
2869 %defattr(-,root,root,-)
2870 %{_prefix}/%{_lib}/libgccjit.so*
2871 %doc rpm.doc/changelogs/gcc/jit/ChangeLog*
2872
2873 %files -n %{?scl_prefix}libgccjit-devel
2874 %defattr(-,root,root,-)
2875 %dir %{_prefix}/lib/gcc
2876 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2877 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2878 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
2879 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgccjit.so
2880 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/libgccjit*.h
2881
2882 %files -n %{?scl_prefix}libgccjit-docs
2883 %defattr(-,root,root,-)
2884 %{_infodir}/libgccjit.info*
2885 %doc rpm.doc/libgccjit-devel/*
2886 %doc gcc/jit/docs/examples
2887
2888 %files plugin-devel
2889 %defattr(-,root,root,-)
2890 %dir %{_prefix}/lib/gcc
2891 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2892 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2893 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
2894 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/gtype.state
2895 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/include
2896 %dir %{_prefix}/libexec/gcc
2897 %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
2898 %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
2899 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
2900
2901 %files gdb-plugin
2902 %defattr(-,root,root,-)
2903 %{_prefix}/%{_lib}/libcc1.so*
2904 %dir %{_prefix}/lib/gcc
2905 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2906 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2907 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
2908 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcc1plugin.so*
2909 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcp1plugin.so*
2910 %doc rpm.doc/changelogs/libcc1/ChangeLog*
2911
2912 %changelog
726b1e 2913 * Mon Dec 17 2018 Jeff Law <polacek@redhat.com> 7.3.1-5.15
CS 2914 - Fix C++ ICE (#1660242)
2915
2916 * Wed Dec  5 2018 Marek Polacek <polacek@redhat.com> 7.3.1-5.14
2917 - drop gcc7-fortran-include.patch
2918 - add -fdec-include and -fpad-source (#1647042)
2919
870cb9 2920 * Tue Aug 14 2018 Marek Polacek <polacek@redhat.com> 7.3.1-5.13
CS 2921 - prevent implicit instantiation of COW empty rep (#1572583)
2922
2923 * Tue Aug 14 2018 Jeff Law <law@redhat.com> 7.3.1-5.12
2924 - Fix codegen issue with EQUIVALENCE/AUTOMATIC
2925
2926 * Fri Jul 13 2018 Jeff Law <law@redhat.com> 7.3.1-5.11
2927 - Revamp attribute checking for EQUIVALENCEs
2928
6068c7 2929 * Tue Jun 12 2018 Marek Polacek <polacek@redhat.com> 7.3.1-5.10
CS 2930 - bump for rebuild
2931
2932 * Tue Jun 05 2018 Jeff Law <polacek@redhat.com> 7.3.1-5.9
2933 - Fix INCLUDE handling when pathname is on a separate line
2934 - Integrate updates to patches #0005 and #0014.  Add testcases for
2935 - various legacy fortran extensions (#1586289)
2936
2937 * Sat May 19 2018 Marek Polacek <polacek@redhat.com> 7.3.1-5.8
2938 - bump for rebuild
2939
2940 * Wed May  9 2018 Marek Polacek <polacek@redhat.com> 7.3.1-5.7
2941 - fix 0014-Allow-non-logical-expressions-in-IF-statements.patch: also allow
2942   non logical expressions in ELSE-IF statements
2943
2944 * Mon Apr 23 2018 Jeff Law <law@redhat.com> 7.3.1-5.6
2945 - Fix handling of -fdlines-as-comments when -fdec is enabled
2946   (#1570967)
2947
2948 * Tue Apr 17 2018 Marek Polacek <polacek@redhat.com> 7.3.1-5.5
2949 - fix a goof in 0013-Allow-per-variable-kind-specification.patch
2950
3db796 2951 * Thu Mar 29 2018 Jeff Law <law@redhat.com> 7.3.1-5.4
CS 2952 - Add Jakub's patch to generalize default exponent handling to
2953   instead cover all DEC runtime extensions
2954   Update 0022 patch for changes from Jakub's work.
2955   (#1561204)
2956
2957 * Tue Mar 27 2018 Jeff Law <law@redhat.com> 7.3.1-5.3
2958 - Various minor fixes to the gfortran patches from Codethink.
2959   (#1561204)
2960
2961 * Mon Mar 12 2018 Marek Polacek <polacek@redhat.com> 7.3.1-5.2
2962 - only require DTS binutils for RHEL 6 and 7
2963
2964 * Mon Mar 12 2018 Marek Polacek <polacek@redhat.com> 7.3.1-5.1
2965 - apply Fortran patches
2966
2967 * Mon Mar 12 2018 Marek Polacek <polacek@redhat.com> 7.3.1-5
2968 - update from Fedora gcc-7.3.1-5
2969
2970 * Wed Feb 21 2018 Marek Polacek <polacek@redhat.com> 7.3.1-4.3
2971 - bump for rebuild
2972
2973 * Fri Feb  9 2018 Marek Polacek <polacek@redhat.com> 7.3.1-4.2
2974 - fix some conditionals
2975
2976 * Thu Feb  8 2018 Marek Polacek <polacek@redhat.com> 7.3.1-4.1
2977 - Provide liblto_plugin.so.0()(64bit) for aarch64
2978
2979 * Mon Feb  5 2018 Marek Polacek <polacek@redhat.com> 7.3.1-4
2980 - update from Fedora gcc-7.3.1-4
2981
2982 * Mon Jan 15 2018 Marek Polacek <polacek@redhat.com> 7.2.1-6.2
2983 - merge from another branch
2984
2985 * Tue Jan  9 2018 Marek Polacek <polacek@redhat.com> 7.2.1-6.1
2986 - add objcopy symlink (#1501355)
2987
2988 * Fri Jan  5 2018 Marek Polacek <polacek@redhat.com> 7.2.1-6
2989 - update from Fedora gcc-7.2.1-6
2990
2991 * Mon Dec 18 2017 Jeff Law  <law@redhat.com> 7.2.1-2
2992 - Backport -fstack-clash-protection from development trunk (#1512529)
2993
2994 * Tue Dec 12 2017 Marek Polacek <polacek@redhat.com> 7.2.1-1.1
2995 - fix visibility of symbols in gcc7-libstdc++-compat.patch
2996
2e5ef6 2997 * Thu Aug 31 2017 Marek Polacek <polacek@redhat.com> 7.2.1-1
CS 2998 - update from Fedora gcc-7.2.1-1
2999
3000 * Mon Aug 28 2017 Marek Polacek <polacek@redhat.com> 7.1.1-7.1
3001 - don't Provide "gcc" (#1485002)
3002
3003 * Thu Aug  3 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-7
3004 - update from Fedora gcc-7.1.1-7
3005
3006 * Tue Jun 13 2017 Jakub Jelinek <jakub@redhat.com> 7.1.1-2.1
3007 - new package