Magellan Linux

Contents of /smage/trunk/core/gcc/gcc-7.1.0-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9536 - (show annotations) (download)
Tue Jul 25 07:40:14 2017 UTC (6 years, 9 months ago) by niro
File size: 47363 byte(s)
-linux-libc-headers-4.9.39, binutils-2.28, glibc-2.25, gcc-7.1.0 toolchain - stage2
1 # $Id$
2
3 PNAME="gcc"
4 PVER="7.1.0"
5 PBUILD="r2"
6
7 # package base name
8 _BASENAME="gcc"
9
10 # in-tree isl
11 ISL_PVER="0.18"
12
13 PCAT="sys-dev"
14 HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html"
15
16 sminclude mtools cleanutils libtool gcc-toolchain
17
18 # packages which needs rebuild: libtool, java-gcj-compat, llvm
19
20 # languages to build into gcc
21 # options are: c,c++,java,ada,fortran,go,objc,obj-c++,lto
22 # obj-c++ requires objc
23 # c++ requires c and lto
24 # c always goes along with lto
25 # gcc required minimum are c,c++,lto
26 #
27 # while toolchain bootstrap, only build c,c++ and after that rebuild the whole toolchain:
28 # linux-libc-headers -> binutils -> libc -> gcc -> binutils -> gcc -> libc
29 #
30 # dropped java/gcj beginning with year 2017
31 MyLanguages=c,c++,lto
32
33 # 1=bootstrap the whole gcc suite, using bootstrap-lean method
34 # 0=no bootstrap, use this only for quick builds to test something but never for release
35 GCC_BOOTSTRAP="1"
36
37 # 1=bootstrap ada, using precompiled gnat binaries
38 # 0=no bootstrap, build ada with system gnat - requires sys-dev/gcc-gnat
39 ADA_BOOTSTRAP="0"
40
41 # 1=enable dev split packages
42 # 0=disable dev split packages
43 ENABLE_DEV_PACKAGES="1"
44
45 # empty default
46 SPLIT_PACKAGES=""
47
48 GLIBC_DEPEND=">= virtual/glibc"
49 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
50 then
51 GLIBCDEV_DEPEND=">= virtual/glibc-dev"
52 fi
53 ZLIB_DEPEND=">= sys-libs/zlib-1.2.8"
54 COMMON_DEPEND="${GLIBC_DEPEND}
55 ${ZLIB_DEPEND}
56 >= dev-libs/gmp-6.1
57 >= dev-libs/mpfr-3.1.5
58 >= dev-libs/mpc-1.0.3"
59 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
60 then
61 COMMON_DEPEND="${COMMON_DEPEND}
62 >= dev-libs/gmp-dev-6.1"
63 fi
64
65 # special handling for libtsan, only x86-64
66 DEPEND_x86_64="== sys-libs/libtsan-${PVER}
67 == sys-libs/liblsan-${PVER}"
68 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
69 then
70 DEPEND_x86_64="${DEPEND_x86_64}
71 == sys-libs/libtsan-dev-${PVER}
72 == sys-libs/liblsan-dev-${PVER}"
73 fi
74 SPECIAL_VARS="DEPEND_x86_64"
75
76 if lang_enabled c
77 then
78 #SPLIT_PACKAGES+="libgcc libgomp libquadmath libitm libatomic libasan libubsan libcilkrts libvtv libmpx"
79 SPLIT_PACKAGES+="libgcc libgomp libquadmath libitm libatomic libasan libubsan libcilkrts libmpx"
80 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
81 then
82 #SPLIT_PACKAGES+=" libgcc-dev libgomp-dev libquadmath-dev libitm-dev libatomic-dev libasan-dev libubsan-dev libcilkrts-dev libvtv-dev libmpx-dev"
83 SPLIT_PACKAGES+=" libgcc-dev libgomp-dev libquadmath-dev libitm-dev libatomic-dev libasan-dev libubsan-dev libcilkrts-dev libmpx-dev"
84 fi
85 # thread/leak sanitizer is only available on x86_64
86 if [[ ${ARCH} = x86_64 ]]
87 then
88 SPLIT_PACKAGES+=" libtsan liblsan"
89 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
90 then
91 SPLIT_PACKAGES+=" libtsan-dev liblsan-dev"
92 fi
93 fi
94 SPLIT_PACKAGES+=" gcc"
95 LIBGCC_DEPEND="${GLIBC_DEPEND}"
96 LIBGOMP_DEPEND="${GLIBC_DEPEND}"
97 LIBQUADMATH_DEPEND="${GLIBC_DEPEND}"
98 LIBITM_DEPEND="${GLIBC_DEPEND}"
99 LIBATOMIC_DEPEND="${GLIBC_DEPEND}"
100 LIBASAN_DEPEND="${GLIBC_DEPEND}"
101 LIBLSAN_DEPEND="${GLIBC_DEPEND}"
102 LIBUBSAN_DEPEND="${GLIBC_DEPEND}"
103 LIBTSAN_DEPEND="${GLIBC_DEPEND}"
104 LIBCILKRTS_DEPEND="${GLIBC_DEPEND}"
105 LIBVTV_DEPEND="${GLIBC_DEPEND}"
106 LIBMPX_DEPEND="${GLIBC_DEPEND}"
107 GCC_DEPEND="${COMMON_DEPEND}
108 >= sys-dev/binutils-2.28
109 >= dev-libs/elfutils-0.169"
110 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
111 then
112 GCC_DEPEND="${GCC_DEPEND}
113 ${GLIBCDEV_DEPEND}"
114 fi
115 fi
116
117 if lang_enabled c++
118 then
119 SPLIT_PACKAGES+=" libstdc++"
120 LIBSTDCPP_DEPEND="${GLIBC_DEPEND}"
121 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
122 then
123 SPLIT_PACKAGES+=" libstdc++-dev"
124 fi
125 SPLIT_PACKAGES+=" gcc-c++"
126 CPP_DEPEND="${COMMON_DEPEND}"
127 fi
128
129 if lang_enabled java
130 then
131 SPLIT_PACKAGES+=" libgcj"
132 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
133 then
134 SPLIT_PACKAGES+=" libgcj-dev"
135 fi
136 SPLIT_PACKAGES+=" gcc-gcj"
137 LIBGCJ_DEPEND="${GLIBC_DEPEND}
138 ${ZLIB_DEPEND}"
139 JAVA_DEPEND="${COMMON_DEPEND}
140 >= dev-java/eclipse-ecj-3.6
141 >= dev-java/fastjar-0.98
142 >= sys-apps/file-5
143 >= app-arch/unzip-6
144 >= app-arch/zip-3
145 >= media-libs/alsa-lib-1.1
146 >= x11-libs/libSM-1.2
147 >= x11-libs/libXtst-1.2
148 >= dev-libs/glib2-2.51
149 >= x11-libs/gtk2+-2.24
150 >= media-libs/libart_lgpl-2.3.21"
151
152 # provided java version
153 JAVA_PVER="1.5.0-gcj-1.5.0.0"
154 fi
155
156 if lang_enabled ada
157 then
158 SPLIT_PACKAGES+=" libgnat"
159 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
160 then
161 SPLIT_PACKAGES+=" libgnat-dev"
162 fi
163 SPLIT_PACKAGES+=" gcc-gnat"
164 LIBGNAT_DEPEND="${GLIBC_DEPEND}"
165 ADA_DEPEND="${COMMON_DEPEND}"
166 if [[ ${ADA_BOOTSTRAP} = 1 ]]
167 then
168 GNAT_BIN_x86="gnatboot-4.3-i686.tar.bz2"
169 GNAT_BIN_x86_64="gnatboot-4.3-amd64.tar.bz2"
170 GNAT_BIN="$(eval echo \$GNAT_BIN_${ARCH/i*86/x86})"
171 GNAT_BIN_SRCDIR="${BUILDDIR}/gnat"
172 SRC_URI+=( mirror://${_BASENAME}/${GNAT_BIN_x86} )
173 SRC_URI+=( mirror://${_BASENAME}/${GNAT_BIN_x86_64} )
174 fi
175 fi
176
177 if lang_enabled fortran
178 then
179 SPLIT_PACKAGES+=" libgfortran"
180 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
181 then
182 SPLIT_PACKAGES+=" libgfortran-dev"
183 fi
184 SPLIT_PACKAGES+=" gcc-gfortran"
185 LIBGFORTRAN_DEPEND="${GLIBC_DEPEND}"
186 FORTRAN_DEPEND="${COMMON_DEPEND}"
187 fi
188
189 if lang_enabled go
190 then
191 SPLIT_PACKAGES+=" libgo"
192 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
193 then
194 SPLIT_PACKAGES+=" libgo-dev"
195 fi
196 SPLIT_PACKAGES+=" gcc-go"
197 LIBGO_DEPEND="${GLIBC_DEPEND}"
198 GO_DEPEND="${COMMON_DEPEND}"
199 fi
200
201 if lang_enabled objc
202 then
203 SPLIT_PACKAGES+=" libobjc"
204 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
205 then
206 SPLIT_PACKAGES+=" libobjc-dev"
207 fi
208 SPLIT_PACKAGES+=" gcc-objc"
209 LIBOBJC_DEPEND="${GLIBC_DEPEND}"
210 OBJC_DEPEND="${COMMON_DEPEND}"
211
212 if lang_enabled obj-c++
213 then
214 SPLIT_PACKAGES+=" gcc-objc++"
215 OBJCPP_DEPEND="${COMMON_DEPEND}"
216 fi
217 fi
218
219 SDEPEND="${LIBGCC_DEPEND}
220 ${LIBGOMP_DEPEND}
221 ${LIBQUADMATH_DEPEND}
222 ${LIBITM_DEPEND}
223 ${LIBATOMIC_DEPEND}
224 ${LIBASAN_DEPEND}
225 ${LIBLSAN_DEPEND}
226 ${LIBUBSAN_DEPEND}
227 ${LIBTSAN_DEPEND}
228 ${LIBCILKRTS_DEPEND}
229 ${LIBVTV_DEPEND}
230 ${LIBMPX_DEPEND}
231 ${LIBSTDCPP_DEPEND}
232 ${GCC_DEPEND}
233 ${CPP_DEPEND}
234 ${LIBGCJ_DEPEND}
235 ${JAVA_DEPEND}
236 ${LIBGNAT_DEPEND}
237 ${ADA_DEPEND}
238 ${LIBGFORTRAN_DEPEND}
239 ${FORTRAN_DEPEND}
240 ${LIBGO_DEPEND}
241 ${GO_DEPEND}
242 ${LIBOBJC_DEPEND}
243 ${OBJC_DEPEND}
244 ${OBJCPP_DEPEND}
245 >= virtual/kernel-headers"
246
247 if lang_enabled ada
248 then
249 if [[ ${ADA_BOOTSTRAP} != 1 ]]
250 then
251 # add gnat to SDEPEND
252 SDEPEND="${SDEPEND}
253 >= sys-dev/gcc-gnat-6.1"
254 fi
255 fi
256
257 if mqueryfeature "check"
258 then
259 # make check needs dejagnu
260 SDEPEND="${SDEPEND}
261 >= dev-util/dejagnu-1.6"
262 fi
263
264 SRCFILE="${_BASENAME}-${PVER}.tar.bz2"
265 SRCDIR="${BUILDDIR}/${_BASENAME}-${PVER}"
266
267 ISL_SRCFILE="isl-${ISL_PVER}.tar.bz2"
268 ISL_SRCDIR="${BUILDDIR}/isl-${ISL_PVER}"
269
270 # you better off when not using distcc to compile
271 # your new compiler :) maybe not all are the same
272 msetfeature "!distcc"
273
274 # src_check() takes a very long time, so we dont want to run it at every rebuild
275 # we only run it at the last stage
276 msetfeature "!check"
277
278 SRC_URI=(
279 ${SRC_URI[*]}
280 gnu://${_BASENAME}/${_BASENAME}-${PVER}/${SRCFILE}
281 http://isl.gforge.inria.fr/${ISL_SRCFILE}
282 mirror://${_BASENAME}/${SRCFILE}
283 mirror://${_BASENAME}/${ISL_SRCFILE}
284 mirror://${_BASENAME}/${_BASENAME}-4.5.1-no-fixincludes.patch
285 mirror://${_BASENAME}/${_BASENAME}-6.1.0-java-no-multilib.patch
286 mirror://${_BASENAME}/${_BASENAME}-7.1.0-lto-fix.patch
287 )
288
289 UP2DATE="updatecmd 'http://ftp.gnu.org/gnu/${PNAME}/' | utf8encode | grep '\[DIR\].*${PNAME}' | sed 's:.*${PNAME}-\(.*\)/.*:\1:' | upsort_pipe"
290
291 # gcc don't like strong CFLAGS
292 export CFLAGS="${CFLAGS//-O?} -O2"
293 export CXXFLAGS="${CFLAGS}"
294
295 # check for crosscompile or export default CHOST
296 if [[ -z ${CTARGET} ]]
297 then
298 # no crosscompile defined
299 export CTARGET=${CHOST}
300 else
301 # use crosscompile host
302 export CTARGET=${CTARGET}
303 fi
304
305 if lang_enabled c
306 then
307 split_info_gcc()
308 {
309 DESCRIPTION="Modern C compiler written by the GNU people."
310
311 DEPEND="== sys-libs/libgcc-${PVER}
312 == sys-libs/libgomp-${PVER}
313 == sys-libs/libquadmath-${PVER}
314 == sys-libs/libitm-${PVER}
315 == sys-libs/libatomic-${PVER}
316 == sys-libs/libasan-${PVER}
317 == sys-libs/libubsan-${PVER}
318 == sys-libs/libcilkrts-${PVER}
319 == sys-libs/libvtv-${PVER}
320 == sys-libs/libmpx-${PVER}
321 $(marchdepend)
322 ${GCC_DEPEND}"
323
324 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
325 then
326 DEPEND="${DEPEND}
327 == sys-libs/libgcc-dev-${PVER}
328 == sys-libs/libgomp-dev-${PVER}
329 == sys-libs/libquadmath-dev-${PVER}
330 == sys-libs/libitm-dev-${PVER}
331 == sys-libs/libatomic-dev-${PVER}
332 == sys-libs/libasan-dev-${PVER}
333 == sys-libs/libubsan-dev-${PVER}
334 == sys-libs/libcilkrts-dev-${PVER}
335 == sys-libs/libvtv-dev-${PVER}
336 == sys-libs/libmpx-dev-${PVER}"
337 fi
338
339 # install libstdc++ and gcc-c++ too if enabled
340 if lang_enabled c++
341 then
342 DEPEND="${DEPEND}
343 == sys-libs/libstdc++-${PVER}
344 == sys-dev/gcc-c++-${PVER}"
345 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
346 then
347 DEPEND="${DEPEND}
348 == sys-libs/libstdc++-dev-${PVER}"
349 fi
350 fi
351 }
352
353 split_info_libgcc()
354 {
355 DESCRIPTION="GCC shared support library."
356 DEPEND="${LIBGCC_DEPEND}"
357 PCAT="sys-libs"
358 }
359
360 split_info_libgcc-dev()
361 {
362 DESCRIPTION="Development files for libgcc."
363 DEPEND="== sys-libs/libgcc-${PVER}"
364 PCAT="sys-libs"
365 }
366
367 split_info_libgomp()
368 {
369 DESCRIPTION="GNU OpenMP runtime library."
370 DEPEND="${LIBGOMP_DEPEND}"
371 PCAT="sys-libs"
372 }
373
374 split_info_libgomp-dev()
375 {
376 DESCRIPTION="Development files for libgomp."
377 DEPEND="== sys-libs/libgomp-${PVER}"
378 PCAT="sys-libs"
379 }
380
381 split_info_libquadmath()
382 {
383 DESCRIPTION="GCC __float128 shared support library."
384 DEPEND="${LIBQUADMATH_DEPEND}"
385 PCAT="sys-libs"
386 }
387
388 split_info_libquadmath-dev()
389 {
390 DESCRIPTION="Development files for libquadmath."
391 DEPEND="== sys-libs/libquadmath-${PVER}"
392 PCAT="sys-libs"
393 }
394
395 split_info_libitm()
396 {
397 DESCRIPTION="The GNU Transactional Memory library."
398 DEPEND="${LIBITM_DEPEND}"
399 PCAT="sys-libs"
400 }
401
402 split_info_libitm-dev()
403 {
404 DESCRIPTION="Development files for libitm."
405 DEPEND="== sys-libs/libitm-${PVER}"
406 PCAT="sys-libs"
407 }
408
409 split_info_libatomic()
410 {
411 DESCRIPTION="The GNU Atomic library."
412 DEPEND="${LIBATOMIC_DEPEND}"
413 PCAT="sys-libs"
414 }
415
416 split_info_libatomic-dev()
417 {
418 DESCRIPTION="Development files for libatomic."
419 DEPEND="== sys-libs/libatomic-${PVER}"
420 PCAT="sys-libs"
421 }
422
423 split_info_libasan()
424 {
425 DESCRIPTION="The Address Sanitizer runtime library."
426 DEPEND="== sys-libs/libgcc-${PVER}
427 == sys-libs/libstdc++-${PVER}
428 ${LIBASAN_DEPEND}"
429 PCAT="sys-libs"
430 }
431
432 split_info_libasan-dev()
433 {
434 DESCRIPTION="Development files for libasan."
435 DEPEND="== sys-libs/libasan-${PVER}"
436 PCAT="sys-libs"
437 }
438
439 split_info_liblsan()
440 {
441 DESCRIPTION="The Leak Sanitizer runtime library."
442 DEPEND="== sys-libs/libgcc-${PVER}
443 == sys-libs/libstdc++-${PVER}
444 ${LIBLSAN_DEPEND}"
445 PCAT="sys-libs"
446 }
447
448 split_info_liblsan-dev()
449 {
450 DESCRIPTION="Development files for liblsan."
451 DEPEND="== sys-libs/liblsan-${PVER}"
452 PCAT="sys-libs"
453 }
454
455 split_info_libubsan()
456 {
457 DESCRIPTION="The Undefined behavior Sanitizer runtime library."
458 DEPEND="== sys-libs/libgcc-${PVER}
459 == sys-libs/libstdc++-${PVER}
460 ${LIBUBSAN_DEPEND}"
461 PCAT="sys-libs"
462 }
463
464 split_info_libubsan-dev()
465 {
466 DESCRIPTION="Development files for libubsan."
467 DEPEND="== sys-libs/libubsan-${PVER}"
468 PCAT="sys-libs"
469 }
470
471 split_info_libtsan()
472 {
473 DESCRIPTION="The Thread Sanitizer runtime library."
474 DEPEND="== sys-libs/libgcc-${PVER}
475 == sys-libs/libstdc++-${PVER}
476 ${LIBTSAN_DEPEND}"
477 PCAT="sys-libs"
478 }
479
480 split_info_libtsan-dev()
481 {
482 DESCRIPTION="Development files for libtsan."
483 DEPEND="== sys-libs/libtsan-${PVER}
484 == sys-libs/libgcc-dev-${PVER}
485 == sys-libs/libstdc++-dev-${PVER}"
486 PCAT="sys-libs"
487 }
488
489 split_info_libcilkrts()
490 {
491 DESCRIPTION="The Cilk+ runtime library."
492 DEPEND="== sys-libs/libgcc-${PVER}
493 == sys-libs/libstdc++-${PVER}
494 ${LIBCILKRTS_DEPEND}"
495 PCAT="sys-libs"
496 }
497
498 split_info_libcilkrts-dev()
499 {
500 DESCRIPTION="Development files for libcilkrts."
501 DEPEND="== sys-libs/libcilkrts-${PVER}
502 == sys-libs/libgcc-dev-${PVER}
503 == sys-libs/libstdc++-dev-${PVER}"
504 PCAT="sys-libs"
505 }
506
507 split_info_libvtv()
508 {
509 DESCRIPTION="Vtable Verification runtime library."
510 DEPEND="${LIBVTV_DEPEND}"
511 PCAT="sys-libs"
512 }
513
514 split_info_libvtv-dev()
515 {
516 DESCRIPTION="Development files for libvtv."
517 DEPEND="== sys-libs/libvtv-${PVER}"
518 PCAT="sys-libs"
519 }
520
521 split_info_libmpx()
522 {
523 DESCRIPTION="Memory Protection Extensions runtime library."
524 DEPEND="${LIBMPX_DEPEND}"
525 PCAT="sys-libs"
526 }
527
528 split_info_libmpx-dev()
529 {
530 DESCRIPTION="Development files for libmpx."
531 DEPEND="== sys-libs/libmpx-${PVER}"
532 PCAT="sys-libs"
533 }
534 fi
535
536 if lang_enabled c++
537 then
538 split_info_libstdc++()
539 {
540 DESCRIPTION="Standard GNU C and C++ libraries."
541 DEPEND="== sys-libs/libgcc-${PVER}
542 ${LIBSTDCPP_DEPEND}"
543 PCAT="sys-libs"
544 }
545
546 split_info_libstdc++-dev()
547 {
548 DESCRIPTION="Development files for libstdc++."
549 DEPEND="== sys-libs/libstdc++-${PVER}
550 == sys-libs/libgcc-dev-${PVER}"
551 PCAT="sys-libs"
552 }
553
554 split_info_gcc-c++()
555 {
556 DESCRIPTION="Modern C++ compiler written by the GNU people."
557 DEPEND="== sys-libs/libstdc++-${PVER}
558 ${CPP_DEPEND}"
559 }
560 fi
561
562 if lang_enabled java
563 then
564 split_info_libgcj()
565 {
566 DESCRIPTION="Java runtime library for GCC."
567 DEPEND="== sys-libs/libgcc-${PVER}
568 ${LIBGCJ_DEPEND}"
569 PCAT="sys-libs"
570 }
571
572 split_info_libgcj-dev()
573 {
574 DESCRIPTION="Development files for libgcj."
575 DEPEND="== sys-libs/libgcj-${PVER}
576 == sys-libs/libgcc-dev-${PVER}"
577 PCAT="sys-libs"
578 }
579
580 split_info_gcc-gcj()
581 {
582 DESCRIPTION="Java support for GCC."
583 DEPEND="== sys-libs/libgcc-${PVER}
584 == sys-libs/libstdc++-${PVER}
585 == sys-libs/libgcj-${PVER}
586 == sys-dev/gcc-${PVER}
587 ${JAVA_DEPEND}"
588 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
589 then
590 DEPEND="${DEPEND}
591 == sys-libs/libgcc-dev-${PVER}
592 == sys-libs/libstdc++-dev-${PVER}
593 == sys-libs/libgcj-dev-${PVER}"
594 fi
595 }
596 fi
597
598 if lang_enabled ada
599 then
600 split_info_libgnat()
601 {
602 DESCRIPTION="Gnu Ada 95 library which is needed to run Ada programs."
603 DEPEND="== sys-libs/libgcc-${PVER}
604 ${LIBGNAT_DEPEND}"
605 PCAT="sys-libs"
606 }
607
608 split_info_libgnat-dev()
609 {
610 DESCRIPTION="Development files for libgnat."
611 DEPEND="== sys-libs/libgnat-${PVER}
612 == sys-libs/libgcc-dev-${PVER}"
613 PCAT="sys-libs"
614 }
615
616 split_info_gcc-gnat()
617 {
618 DESCRIPTION="Ada 95 support for GCC."
619 DEPEND="== sys-libs/libgcc-${PVER}
620 == sys-libs/libstdc++-${PVER}
621 == sys-libs/libgnat-${PVER}
622 == sys-dev/gcc-${PVER}
623 ${ADA_DEPEND}"
624 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
625 then
626 DEPEND="${DEPEND}
627 == sys-libs/libgcc-dev-${PVER}
628 == sys-libs/libstdc++-dev-${PVER}
629 == sys-libs/libgnat-dev-${PVER}"
630 fi
631 }
632 fi
633
634 if lang_enabled fortran
635 then
636 split_info_libgfortran()
637 {
638 DESCRIPTION="Gnu Fortran library which is needed to run Fortran programs."
639 DEPEND="== sys-libs/libquadmath-${PVER}
640 ${LIBGFORTRAN_DEPEND}"
641 PCAT="sys-libs"
642 }
643
644 split_info_libgfortran-dev()
645 {
646 DESCRIPTION="Development files for libgfortran."
647 DEPEND="== sys-libs/libgfortran-${PVER}
648 == sys-libs/libquadmath-dev-${PVER}"
649 PCAT="sys-libs"
650 }
651
652 split_info_gcc-gfortran()
653 {
654 DESCRIPTION="Fortran support for GCC."
655 DEPEND="== sys-libs/libgcc-${PVER}
656 == sys-libs/libstdc++-${PVER}
657 == sys-libs/libgfortran-${PVER}
658 == sys-dev/gcc-${PVER}
659 ${FORTRAN_DEPEND}"
660 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
661 then
662 DEPEND="${DEPEND}
663 == sys-libs/libgcc-dev-${PVER}
664 == sys-libs/libstdc++-dev-${PVER}
665 == sys-libs/libgfortran-dev-${PVER}"
666 fi
667 }
668 fi
669
670 if lang_enabled go
671 then
672 split_info_libgo()
673 {
674 DESCRIPTION="Go library which is needed to run Go programs."
675 DEPEND="== sys-libs/libgcc-${PVER}
676 ${LIBGO_DEPEND}"
677 PCAT="sys-libs"
678 }
679
680 split_info_libgo-dev()
681 {
682 DESCRIPTION="Development files for libgo."
683 DEPEND="== sys-libs/libgo-${PVER}
684 == sys-libs/libgcc-dev-${PVER}"
685 PCAT="sys-libs"
686 }
687
688 split_info_gcc-go()
689 {
690 DESCRIPTION="Go support for GCC."
691 DEPEND="== sys-libs/libgcc-${PVER}
692 == sys-libs/libstdc++-${PVER}
693 == sys-libs/libgo-${PVER}
694 == sys-dev/gcc-${PVER}
695 ${GO_DEPEND}"
696 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
697 then
698 DEPEND="${DEPEND}
699 == sys-libs/libgcc-dev-${PVER}
700 == sys-libs/libstdc++-dev-${PVER}
701 == sys-libs/libgo-dev-${PVER}"
702 fi
703 }
704 fi
705
706 if lang_enabled objc
707 then
708 split_info_libobjc()
709 {
710 DESCRIPTION="Objective-C library which is needed to run Objective-C programs."
711 DEPEND="== sys-libs/libgcc-${PVER}
712 ${LIBOBJC_DEPEND}"
713 PCAT="sys-libs"
714 }
715
716 split_info_libobjc-dev()
717 {
718 DESCRIPTION="Development files for libobjc."
719 DEPEND="== sys-libs/libobjc-${PVER}
720 == sys-libs/libgcc-dev-${PVER}"
721 PCAT="sys-libs"
722 }
723
724 split_info_gcc-objc()
725 {
726 DESCRIPTION="Objective-C support for GCC."
727 DEPEND="== sys-libs/libgcc-${PVER}
728 == sys-libs/libstdc++-${PVER}
729 == sys-libs/libobjc-${PVER}
730 == sys-dev/gcc-${PVER}
731 ${OBJC_DEPEND}"
732 }
733
734 if lang_enabled obj-c++
735 then
736 split_info_gcc-objc++()
737 {
738 DESCRIPTION="Objective-C++ support for GCC."
739 DEPEND="== sys-libs/libgcc-${PVER}
740 == sys-libs/libstdc++-${PVER}
741 == sys-libs/libobjc-${PVER}
742 == sys-dev/gcc-${PVER}
743 == sys-dev/gcc-objc-${PVER}
744 ${OBJCPP_DEPEND}"
745 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
746 then
747 DEPEND="${DEPEND}
748 == sys-libs/libgcc-dev-${PVER}
749 == sys-libs/libstdc++-dev-${PVER}
750 == sys-libs/libobjc-dev-${PVER}"
751 fi
752 }
753 fi
754 fi
755
756 src_prepare()
757 {
758 munpack ${SRCFILE} || die
759
760 # prepare isl in-tree build
761 munpack ${ISL_SRCFILE} || die
762 ln -snf ${ISL_SRCDIR} ${SRCDIR}/isl || die
763
764 if lang_enabled ada
765 then
766 if [[ ${ADA_BOOTSTRAP} = 1 ]]
767 then
768 # setup binary ada if boostrap is enabled
769 install -d ${GNAT_BIN_SRCDIR} || die
770 munpack ${GNAT_BIN} ${GNAT_BIN_SRCDIR} || die
771 # gnat wrapper has problems with quotation
772 sed -i \
773 -e "/-DREVISION/d" \
774 -e "/-DDEVPHASE/d" \
775 -e "s: -DDATESTAMP=\$(DATESTAMP_s)::" \
776 ${SRCDIR}/gcc/Makefile.in || die
777 sed -i \
778 -e "s: DATESTAMP DEVPHASE REVISION::" \
779 -e "s:PKGVERSION:\"\":" \
780 ${SRCDIR}/gcc/version.c || die
781 fi
782 cd ${SRCDIR}
783 fi
784
785 cd ${SRCDIR}
786
787 # fix lto issues
788 # see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80717
789 mpatch ${_BASENAME}-7.1.0-lto-fix.patch || die
790
791 # generic fixes
792 mpatch ${_BASENAME}-4.5.1-no-fixincludes.patch || die
793 # re-add --enable/disable-libjava-multilib switch
794 #mpatch ${_BASENAME}-6.1.0-java-no-multilib.patch || die
795
796 # suppress installation of libffi, we're using libffi3 instead
797 sed -i 's/\(install.*:\) install-.*recursive/\1/' libffi/Makefile.in || die
798 sed -i 's/\(install-data-am:\).*/\1/' libffi/include/Makefile.in || die
799
800 # hack! - some configure tests for header files using "$CPP $CPPFLAGS"
801 sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure gcc/configure || die
802
803 install -d ${SRCDIR}/build || die
804 }
805
806 src_compile()
807 {
808 if lang_enabled ada
809 then
810 if [[ ${ADA_BOOTSTRAP} = 1 ]]
811 then
812 # export binary gnat pathes
813 export PATH="${GNAT_BIN_SRCDIR}/usr/bin:${PATH}"
814 export CC="${GNAT_BIN_SRCDIR}/usr/bin/gnatgcc"
815 # CPATH is supposed to be applied for any language, thus
816 # superseding either of C/CPLUS/OBJC_INCLUDE_PATHs
817 export CPATH="${GNAT_BIN_SRCDIR}/usr/lib/include"
818 export LIB_DIR="${GNAT_BIN_SRCDIR}/usr/lib"
819 export LDFLAGS="-L${GNAT_BIN_SRCDIR}/usr/lib"
820 export LIBRARY_PATH="${GNAT_BIN_SRCDIR}/usr/lib"
821 export ADA_OBJECTS_PATH="${GNAT_BIN_SRCDIR}/usr/lib/adalib"
822 export ADA_INCLUDE_PATH="${GNAT_BIN_SRCDIR}/usr/lib/adainclude"
823
824 # prepare some tools
825 cd ${GNAT_BIN_SRCDIR}
826 cp -v ${SRCDIR}/gcc/ada/xtreeprs.adb ${GNAT_BIN_SRCDIR} || die
827 cp -v ${SRCDIR}/gcc/ada/csinfo.adb ${GNAT_BIN_SRCDIR} || die
828 cp -v ${SRCDIR}/gcc/ada/ceinfo.adb ${GNAT_BIN_SRCDIR} || die
829 cp -v ${SRCDIR}/gcc/ada/xsinfo.adb ${GNAT_BIN_SRCDIR} || die
830 cp -v ${SRCDIR}/gcc/ada/xeinfo.adb ${GNAT_BIN_SRCDIR} || die
831 cp -v ${SRCDIR}/gcc/ada/xnmake.adb ${GNAT_BIN_SRCDIR} || die
832 cp -v ${SRCDIR}/gcc/ada/xutil.ad{s,b} ${GNAT_BIN_SRCDIR} || die
833 gnatmake xtreeprs || die
834 gnatmake xsinfo || die
835 gnatmake xeinfo || die
836 gnatmake xnmake || die
837 fi
838 fi
839
840 cd ${SRCDIR}/build
841 local myconf
842
843 # Straight from the GCC install doc:
844 # "GCC has code to correctly determine the correct value for target
845 # for nearly all native systems. Therefore, we highly recommend you
846 # not provide a configure target when configuring a native compiler."
847 if [[ ${CHOST} != ${CTARGET} ]]
848 then
849 myconf+=" --target=${CTARGET}"
850 fi
851
852 if lang_enabled java
853 then
854 myconf+=" --enable-java-awt=gtk
855 --enable-gtk-cairo
856 --enable-libgcj-multifile
857 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
858 --with-fastjar=/usr/bin/fastjar
859 --enable-hash-synchronization"
860 # disable mutilib for java
861 myconf+=" --disable-libjava-multilib"
862 # java home, must be the same of java-gcj-compat
863 myconf+=" --with-java-home=/usr/$(mlibdir)/jvm/java-${JAVA_PVER}/jre"
864 fi
865
866 if lang_enabled lto
867 then
868 myconf+=" --enable-lto"
869 fi
870
871 # use isl backend
872 myconf+=" --with-isl"
873
874 # install libiberty, as we will NOT using the one from binutils
875 myconf+=" --enable-install-libiberty"
876
877 # enable memory protections extension
878 myconf+=" --enable-libmpx"
879
880 # no ssp, we use mpx
881 myconf+=" --disable-libssp"
882
883 # enable gold but use default linker as default
884 #myconf+=" --enable-gold"
885 #myconf+=" --with-plugin-ld=ld.gold"
886 #myconf+=" --enable-ld=default"
887
888 # use the old default c++ abi until LLVM is fixed
889 # later we switch to c++11
890 # see: http://allanmcrae.com/2015/06/the-case-of-gcc-5-1-and-the-two-c-abis/
891 # myconf+=" --with-default-libstdcxx-abi=gcc4-compatible"
892
893 # gcc >= 4.3 has now configure flags for uri and version - yeah!
894 AR=ar \
895 ../configure \
896 --with-bugurl="http://bugs.magellan-linux.de/" \
897 --with-pkgversion="Magellan-Linux" \
898 --build=${CHOST} \
899 --host=${CHOST} \
900 --prefix=/usr \
901 --sbindir=/usr/bin \
902 --mandir=/usr/share/man \
903 --infodir=/usr/share/info \
904 --libdir=/usr/$(mlibdir) \
905 --libexecdir=/usr/$(mlibdir) \
906 --enable-shared \
907 --enable-threads=posix \
908 --enable-__cxa_atexit \
909 --enable-clocale=gnu \
910 --enable-checking=release \
911 --disable-libunwind-exceptions \
912 --with-linker-hash-style=gnu \
913 --with-system-zlib \
914 --enable-languages=${MyLanguages} \
915 --disable-libstdcxx-pch \
916 --enable-gnu-unique-object \
917 --enable-gnu-indirect-function \
918 --enable-plugin \
919 --enable-linker-build-id \
920 --disable-werror \
921 ${myconf} \
922 || die
923
924 # parallel builds seems to break sometimes on x86_64
925 local myopts
926 #[[ ${ARCH} = x86_64 ]] && myopts="-j1"
927 # always use -j1
928 myopts="-j1"
929
930 # enable bootstrap if requested
931 local target
932 [[ ${GCC_BOOTSTRAP} = 1 ]] && target="bootstrap-lean"
933
934 mmake ${myopts} ${target} || die
935 }
936
937 src_check()
938 {
939 cd ${SRCDIR}/build
940
941 # increase stack size to prevent test failures
942 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
943 ulimit -s 32768
944
945 # do not abort on error as some are "expected"
946 mmake -k check || true
947 # list all
948 ${SRCDIR}/contrib/test_summary
949 # only summary
950 #${SRCDIR}/contrib/test_summary | grep -A7 "Summ"
951 }
952
953 if lang_enabled c
954 then
955 src_install_gcc()
956 {
957 cd ${SRCDIR}/build
958
959 mmake -C gcc DESTDIR=${BINDIR} install-driver || die
960 mmake -C gcc DESTDIR=${BINDIR} install-gcc-ar || die
961 mmake -C gcc DESTDIR=${BINDIR} install-headers || die
962 mmake -C gcc DESTDIR=${BINDIR} install-plugin || die
963
964 # missing bins
965 minstallexec gcc/gcov || die
966 minstallexec gcc/gcov-tool || die
967 minstallexec gcc/cc1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
968 minstallexec gcc/collect2 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
969
970 # lto wrapper
971 if lang_enabled lto
972 then
973 mmake -C gcc DESTDIR=${BINDIR} install-lto-wrapper || die
974 minstallexec gcc/lto1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
975 fi
976
977 # install only libgcc crts
978 mmake -C ${CHOST}/libgcc DESTDIR=${BINDIR} install || die
979 mdelete /usr/$(mlibdir)/libgcc_s.so\* || die
980 if [[ $(mlibdir) != lib ]]
981 then
982 mmake -C ${CHOST}/32/libgcc DESTDIR=${BINDIR} install || die
983 mdelete /usr/lib/libgcc_s.so\* || die
984 fi
985
986 # install libcc1
987 mmake DESTDIR=${BINDIR} install-libcc1 || die
988
989 # fixinclude header + scripts
990 mmake DESTDIR=${BINDIR} install-fixincludes || die
991 mmake -C gcc DESTDIR=${BINDIR} install-mkheaders || die
992
993 # lto plugin
994 if lang_enabled lto
995 then
996 mmake -C lto-plugin DESTDIR=${BINDIR} install || die
997 minstalldir /usr/$(mlibdir)/bfd-plugins || die
998 mlink /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/liblto_plugin.so /usr/$(mlibdir)/bfd-plugins/ || die
999 fi
1000
1001 # library headers: libcilkrts, libgomp, libitm, libsanitizer, libasan, libmpx
1002 mmake -C ${CHOST}/libcilkrts DESTDIR=${BINDIR} install-nodist_toolexeclibHEADERS || die
1003 mmake -C ${CHOST}/libcilkrts DESTDIR=${BINDIR} install-nodist_cilkincludeHEADERS || die
1004 mmake -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-nodist_toolexeclibHEADERS || die
1005 mmake -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-nodist_libsubincludeHEADERS || die
1006 mmake -C ${CHOST}/libitm DESTDIR=${BINDIR} install-nodist_toolexeclibHEADERS || die
1007 mmake -C ${CHOST}/libquadmath DESTDIR=${BINDIR} install-nodist_libsubincludeHEADERS || die
1008 mmake -C ${CHOST}/libsanitizer DESTDIR=${BINDIR} install-nodist_sanincludeHEADERS || die
1009 mmake -C ${CHOST}/libsanitizer DESTDIR=${BINDIR} install-nodist_toolexeclibHEADERS || die
1010 mmake -C ${CHOST}/libsanitizer/asan DESTDIR=${BINDIR} install-nodist_toolexeclibHEADERS || die
1011 mmake -C ${CHOST}/libmpx DESTDIR=${BINDIR} install-nodist_toolexeclibHEADERS || die
1012 if [[ $(mlibdir) != lib ]]
1013 then
1014 mmake -C ${CHOST}/32/libcilkrts DESTDIR=${BINDIR} install-nodist_toolexeclibHEADERS || die
1015 mmake -C ${CHOST}/32/libgomp DESTDIR=${BINDIR} install-nodist_toolexeclibHEADERS || die
1016 mmake -C ${CHOST}/32/libitm DESTDIR=${BINDIR} install-nodist_toolexeclibHEADERS || die
1017 mmake -C ${CHOST}/32/libsanitizer DESTDIR=${BINDIR} install-nodist_sanincludeHEADERS || die
1018 mmake -C ${CHOST}/32/libsanitizer DESTDIR=${BINDIR} install-nodist_toolexeclibHEADERS || die
1019 mmake -C ${CHOST}/32/libsanitizer/asan DESTDIR=${BINDIR} install-nodist_toolexeclibHEADERS || die
1020 mmake -C ${CHOST}/32/libmpx DESTDIR=${BINDIR} install-nodist_toolexeclibHEADERS || die
1021 fi
1022
1023 # install libiberty
1024 mmake -C libiberty DESTDIR=${BINDIR} install || die
1025 # install PIC version of libiberty
1026 minstallfile libiberty/pic/libiberty.a /usr/$(mlibdir) || die
1027
1028 # man and info pages
1029 mmake -C gcc DESTDIR=${BINDIR} install-man || die
1030 mmake -C gcc DESTDIR=${BINDIR} install-info || die
1031 # provided by split-packages
1032 if lang_enabled c++
1033 then
1034 mdelete /usr/share/man/man1/cpp.1 || die
1035 mdelete /usr/share/man/man1/g++.1 || die
1036 mdelete /usr/share/info/cpp.info || die
1037 mdelete /usr/share/info/cppinternals.info || die
1038 fi
1039 if lang_enabled go
1040 then
1041 mdelete /usr/share/man/man1/gccgo.1 || die
1042 mdelete /usr/share/info/gccgo.info || die
1043 fi
1044 if lang_enabled fortran
1045 then
1046 mdelete /usr/share/man/man1/gfortran.1 || die
1047 mdelete /usr/share/info/gfortran.info || die
1048 fi
1049 if lang_enabled ada
1050 then
1051 mdelete /usr/share/info/gnat-style.info || die
1052 mdelete /usr/share/info/gnat_rm.info || die
1053 mdelete /usr/share/info/gnat_ugn.info || die
1054 fi
1055
1056 # install gcc locales
1057 mmake -C gcc DESTDIR=${BINDIR} install-po || die
1058
1059 # install posix conformance launcher scripts for c89 and c99
1060 cat > ${BINDIR}/usr/bin/c89 <<"EOF"
1061 #!/bin/sh
1062 fl="-std=c89"
1063 for opt
1064 do
1065 case "$opt" in
1066 -ansi|-std=c89|-std=iso9899:1990)
1067 fl=""
1068 ;;
1069 -std=*)
1070 echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
1071 exit 1
1072 ;;
1073 esac
1074 done
1075 exec gcc $fl ${1+"$@"}
1076 EOF
1077 cat > ${BINDIR}/usr/bin/c99 <<"EOF"
1078 #!/bin/sh
1079 fl="-std=c99"
1080 for opt
1081 do
1082 case "$opt" in
1083 -std=c99|-std=iso9899:1999)
1084 fl=""
1085 ;;
1086 -std=*)
1087 echo "`basename $0` called with non ISO C99 option $opt" >&2
1088 exit 1
1089 ;;
1090 esac
1091 done
1092 exec gcc $fl ${1+"$@"}
1093 EOF
1094 mchmod 0755 /usr/bin/c89 || die
1095 mchmod 0755 /usr/bin/c99 || die
1096
1097 # versionize all bins and symlink them
1098 versionize_all_bins || die
1099 mlink gcc-${PVER} /usr/bin/cc || die
1100
1101 # fix all .la files
1102 # they may contain invalid libpathes which are not needed
1103 local la
1104 for la in $(find ${BINDIR} -name \*.la)
1105 do
1106 fix_la_file ${la} || die ${la}
1107 done
1108
1109 # remove /lib dirs to be usr-move compat
1110 if [[ -d ${BINDIR}/$(mlibdir) ]]
1111 then
1112 mdelete -r /$(mlibdir) || die
1113 fi
1114 if [[ $(mlibdir) != lib ]]
1115 then
1116 if [[ -d ${BINDIR}/lib ]]
1117 then
1118 mdelete -r /lib || die
1119 fi
1120 fi
1121 }
1122 fi
1123
1124 if lang_enabled c++
1125 then
1126 src_install_gcc-c++()
1127 {
1128 cd ${SRCDIR}/build
1129
1130 mmake -C gcc DESTDIR=${BINDIR} install-cpp || die
1131 mmake -C gcc DESTDIR=${BINDIR} c++.install-common || die
1132
1133 # missing bins
1134 minstallexec gcc/cc1plus /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1135
1136 # install libstdc++ files
1137 mmake -C ${CHOST}/libstdc++-v3/src DESTDIR=${BINDIR} install || die
1138 mmake -C ${CHOST}/libstdc++-v3/include DESTDIR=${BINDIR} install || die
1139 mmake -C ${CHOST}/libstdc++-v3/libsupc++ DESTDIR=${BINDIR} install || die
1140 mmake -C ${CHOST}/libstdc++-v3/python DESTDIR=${BINDIR} install || die
1141 if [[ $(mlibdir) != lib ]]
1142 then
1143 mmake -C ${CHOST}/32/libstdc++-v3/src DESTDIR=${BINDIR} install || die
1144 mmake -C ${CHOST}/32/libstdc++-v3/include DESTDIR=${BINDIR} install || die
1145 mmake -C ${CHOST}/32/libstdc++-v3/libsupc++ DESTDIR=${BINDIR} install || die
1146 mmake -C ${CHOST}/32/libstdc++-v3/python DESTDIR=${BINDIR} install || die
1147 fi
1148 # move gdb scripts to a proper location and to pretty-print ldconfig
1149 minstalldir /usr/share/gdb/auto-load/usr/$(mlibdir) || die
1150 mmove ${BINDIR}/usr/$(mlibdir)/libstdc++\*gdb.py\* /usr/share/gdb/auto-load/usr/$(mlibdir)/ || die
1151 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
1152 then
1153 minstalldir /usr/share/gdb/auto-load/usr/lib || die
1154 mmove ${BINDIR}/usr/lib/libstdc++\*gdb.py\* /usr/share/gdb/auto-load/usr/lib/ || die
1155 fi
1156 # only keep static libstdcc++ lib
1157 mdelete /usr/$(mlibdir)/libstdc++.so\* || die
1158 if [[ $(mlibdir) != lib ]]
1159 then
1160 mdelete /usr/lib/libstdc++.so\* || die
1161 fi
1162
1163 # man and info pages
1164 mmake -C gcc DESTDIR=${BINDIR} install-man || die
1165 mmake -C gcc DESTDIR=${BINDIR} install-info || die
1166 # provided by split-packages
1167 if lang_enabled c
1168 then
1169 mdelete /usr/share/man/man1/gcc.1 || die
1170 mdelete /usr/share/man/man1/gcov.1 || die
1171 mdelete /usr/share/man/man1/gcov-dump.1 || die
1172 mdelete /usr/share/man/man1/gcov-tool.1 || die
1173 mdelete -r /usr/share/man/man7 || die
1174 mdelete /usr/share/info/gcc.info || die
1175 mdelete /usr/share/info/gccinstall.info || die
1176 mdelete /usr/share/info/gccint.info || die
1177 fi
1178 if lang_enabled go
1179 then
1180 mdelete /usr/share/man/man1/gccgo.1 || die
1181 mdelete /usr/share/info/gccgo.info || die
1182 fi
1183 if lang_enabled fortran
1184 then
1185 mdelete /usr/share/man/man1/gfortran.1 || die
1186 mdelete /usr/share/info/gfortran.info || die
1187 fi
1188 if lang_enabled ada
1189 then
1190 mdelete /usr/share/info/gnat-style.info || die
1191 mdelete /usr/share/info/gnat_rm.info || die
1192 mdelete /usr/share/info/gnat_ugn.info || die
1193 fi
1194
1195 # install libcpp locales
1196 mmake -C libcpp DESTDIR=${BINDIR} install || die
1197
1198 # versionize all bins and symlink them
1199 versionize_all_bins || die
1200
1201 mlink ../bin/cpp-${PVER} /usr/$(mlibdir)/cpp || die
1202 # this one is needed on multilib systems.
1203 # rpcgen may not find the cpp compiler correctly if not in /lib/cpp
1204 if [[ $(mlibdir) != lib ]]
1205 then
1206 minstalldir /usr/lib || die
1207 mlink ../bin/cpp-${PVER} /usr/lib/cpp || die
1208 fi
1209
1210 # fix all .la files
1211 # they may contain invalid libpathes which are not needed
1212 local la
1213 for la in $(find ${BINDIR} -name \*.la)
1214 do
1215 fix_la_file ${la} || die ${la}
1216 done
1217
1218 # remove /lib dirs to be usr-move compat
1219 if [[ -d ${BINDIR}/$(mlibdir) ]]
1220 then
1221 mdelete -r /$(mlibdir) || die
1222 fi
1223 if [[ $(mlibdir) != lib ]]
1224 then
1225 if [[ -d ${BINDIR}/lib ]]
1226 then
1227 mdelete -r /lib || die
1228 fi
1229 fi
1230 }
1231 fi
1232
1233 if lang_enabled c
1234 then
1235 src_install_libgcc-common()
1236 {
1237 cd ${SRCDIR}/build
1238 mmake -C ${CHOST}/libgcc DESTDIR=${BINDIR} install-shared || die
1239 if [[ $(mlibdir) != lib ]]
1240 then
1241 mmake -C${CHOST}/32/libgcc DESTDIR=${BINDIR} install-shared || die
1242 fi
1243 mdelete -r /usr/$(mlibdir)/gcc || die
1244 }
1245
1246 src_install_libgcc()
1247 {
1248 src_install_libgcc-common || die
1249 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1250 then
1251 keep_dev_package_libs 'libgcc_s.so.*' || die
1252 fi
1253 }
1254
1255 src_install_libgcc-dev()
1256 {
1257 src_install_libgcc-common || die
1258 delete_dev_package_libs 'libgcc_s.so.*' || die
1259 }
1260
1261 src_install_libgomp-common()
1262 {
1263 install_gcc_library "libgomp" || die
1264 mmake -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-info || die
1265 }
1266
1267 src_install_libgomp()
1268 {
1269 src_install_libgomp-common || die
1270 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1271 then
1272 keep_dev_package_libs 'libgomp.so.*' || die
1273 fi
1274 }
1275
1276 src_install_libgomp-dev()
1277 {
1278 src_install_libgomp-common || die
1279 delete_dev_package_libs 'libgomp.so.*' || die
1280 }
1281
1282 src_install_libquadmath-common()
1283 {
1284 install_gcc_library "libquadmath" || die
1285 mmake -C ${CHOST}/libquadmath DESTDIR=${BINDIR} install-info || die
1286 }
1287
1288 src_install_libquadmath()
1289 {
1290 src_install_libquadmath-common || die
1291 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1292 then
1293 keep_dev_package_libs 'libquadmath.so.*' || die
1294 fi
1295 }
1296
1297 src_install_libquadmath-dev()
1298 {
1299 src_install_libquadmath-common || die
1300 delete_dev_package_libs 'libquadmath.so.*' || die
1301 }
1302
1303 src_install_libitm-common()
1304 {
1305 install_gcc_library "libitm"
1306 mmake -C ${CHOST}/libitm DESTDIR=${BINDIR} install-info || die
1307 }
1308
1309 src_install_libitm()
1310 {
1311 src_install_libitm-common || die
1312 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1313 then
1314 keep_dev_package_libs 'libitm.so.*' || die
1315 fi
1316 }
1317
1318 src_install_libitm-dev()
1319 {
1320 src_install_libitm-common || die
1321 delete_dev_package_libs 'libitm.so.*' || die
1322 }
1323
1324 src_install_libatomic-common()
1325 {
1326 install_gcc_library "libatomic" || die
1327 }
1328
1329 src_install_libatomic()
1330 {
1331 src_install_libatomic-common || die
1332 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1333 then
1334 keep_dev_package_libs 'libatomic.so.*' || die
1335 fi
1336 }
1337
1338 src_install_libatomic-dev()
1339 {
1340 src_install_libatomic-common || die
1341 delete_dev_package_libs 'libatomic.so.*' || die
1342 }
1343
1344 src_install_libasan-common()
1345 {
1346 install_gcc_library "libsanitizer/asan" || die
1347 }
1348
1349 src_install_libasan()
1350 {
1351 src_install_libasan-common || die
1352 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1353 then
1354 keep_dev_package_libs 'libasan.so.*' || die
1355 fi
1356 }
1357
1358 src_install_libasan-dev()
1359 {
1360 src_install_libasan-common || die
1361 delete_dev_package_libs 'libasan.so.*' || die
1362 }
1363
1364 src_install_liblsan-common()
1365 {
1366 install_gcc_library "libsanitizer/lsan" || die
1367 }
1368
1369 src_install_liblsan()
1370 {
1371 src_install_liblsan-common || die
1372 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1373 then
1374 keep_dev_package_libs 'liblsan.so.*' || die
1375 fi
1376 }
1377
1378 src_install_liblsan-dev()
1379 {
1380 src_install_liblsan-common || die
1381 delete_dev_package_libs 'liblsan.so.*' || die
1382 }
1383
1384 src_install_libubsan-common()
1385 {
1386 install_gcc_library "libsanitizer/ubsan" || die
1387 }
1388
1389 src_install_libubsan()
1390 {
1391 src_install_libubsan-common || die
1392 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1393 then
1394 keep_dev_package_libs 'libubsan.so.*' || die
1395 fi
1396 }
1397
1398 src_install_libubsan-dev()
1399 {
1400 src_install_libubsan-common || die
1401 delete_dev_package_libs 'libubsan.so.*' || die
1402 }
1403
1404 src_install_libtsan-common()
1405 {
1406 install_gcc_library "libsanitizer/tsan" || die
1407 }
1408
1409 src_install_libtsan()
1410 {
1411 src_install_libtsan-common || die
1412 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1413 then
1414 keep_dev_package_libs 'libtsan.so.*' || die
1415 fi
1416 }
1417 src_install_libtsan-dev()
1418 {
1419 src_install_libtsan-common || die
1420 delete_dev_package_libs 'libtsan.so.*' || die
1421 }
1422
1423 src_install_libcilkrts-common()
1424 {
1425 install_gcc_library "libcilkrts" || die
1426 }
1427
1428 src_install_libcilkrts()
1429 {
1430 src_install_libcilkrts-common || die
1431 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1432 then
1433 keep_dev_package_libs 'libcilkrts.so.*' || die
1434 fi
1435 }
1436
1437 src_install_libcilkrts-dev()
1438 {
1439 src_install_libcilkrts-common || die
1440 delete_dev_package_libs 'libcilkrts.so.*' || die
1441 }
1442
1443 src_install_libvtv-common()
1444 {
1445 install_gcc_library "libvtv" || die
1446 }
1447
1448 src_install_libvtv()
1449 {
1450 src_install_libvtv-common || die
1451 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1452 then
1453 keep_dev_package_libs 'libvtv.so.*' || die
1454 fi
1455 }
1456
1457 src_install_libvtv-dev()
1458 {
1459 src_install_libvtv-common || die
1460 delete_dev_package_libs 'libvtv.so.*' || die
1461 }
1462
1463 src_install_libmpx-common()
1464 {
1465 cd ${SRCDIR}/build
1466
1467 # does not support install-toolexeclibLTLIBRARIES
1468 mmake -C ${CHOST}/libmpx DESTDIR=${BINDIR} install || die
1469 mdelete /usr/$(mlibdir)/libmpx.spec || die
1470 if [[ $(mlibdir) != lib ]]
1471 then
1472 mmake -C ${CHOST}/32/libmpx DESTDIR=${BINDIR} install || die
1473 mdelete /usr/lib/libmpx.spec || die
1474 fi
1475 }
1476
1477 src_install_libmpx()
1478 {
1479 src_install_libmpx-common || die
1480 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1481 then
1482 keep_dev_package_libs 'libmpx.so.*' || die
1483 fi
1484 }
1485
1486 src_install_libmpx-dev()
1487 {
1488 src_install_libmpx-common || die
1489 delete_dev_package_libs 'libmpx.so.*' || die
1490 }
1491 fi
1492
1493 if lang_enabled c++
1494 then
1495 src_install_libstdc++-common()
1496 {
1497 install_gcc_library "libstdc++-v3/src" || die
1498 mmake -C ${CHOST}/libstdc++-v3/po DESTDIR=${BINDIR} install || die
1499 }
1500
1501 src_install_libstdc++()
1502 {
1503 src_install_libstdc++-common || die
1504 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1505 then
1506 keep_dev_package_libs 'libstdc++.so.*' || die
1507 fi
1508 }
1509
1510 src_install_libstdc++-dev()
1511 {
1512 src_install_libstdc++-common || die
1513 delete_dev_package_libs 'libstdc++.so.*' || die
1514 }
1515 fi
1516
1517 if lang_enabled java
1518 then
1519 src_install_libgcj-common()
1520 {
1521 install_gcc_library "libjava"
1522 }
1523
1524 src_install_libgcj()
1525 {
1526 src_install_libgcj-common || die
1527 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1528 then
1529 keep_dev_package_libs 'libgcj_bc.so.* libgcj-tools.so.* libgcj.so.* libgij.so.*' || die
1530 fi
1531 }
1532
1533 src_install_libgcj-dev()
1534 {
1535 src_install_libgcj-common || die
1536 delete_dev_package_libs 'libgcj_bc.so.* libgcj-tools.so.* libgcj.so.* libgij.so.*' || die
1537 }
1538
1539 src_install_gcc-gcj()
1540 {
1541 cd ${SRCDIR}/build
1542
1543 # install only java targets
1544 make -C ${CHOST}/libjava DESTDIR=${BINDIR} install || die
1545 make -C gcc DESTDIR=${BINDIR} java.install-common || die
1546 make -C gcc DESTDIR=${BINDIR} java.install-man || die
1547
1548 # missing bins
1549 minstallexec gcc/jc1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1550 minstallexec gcc/jvgenmain /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1551
1552 # remove libraries and files already included elsewhere
1553 mmake -C ${CHOST}/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1554 mdelete /usr/$(mlibdir)/libgcj_bc.so\* || die
1555 if [[ $(mlibdir) != lib ]]
1556 then
1557 # with >= gcc-6.1 this one only applies when libjava was a mulitlib build
1558 if [[ -d ${CHOST}/32/libjava ]]
1559 then
1560 mmake -C ${CHOST}/32/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1561 mdelete /usr/lib/libgcj_bc.so\* || die
1562 fi
1563 fi
1564
1565 # versionize all bins and symlink them
1566 versionize_all_bins || die
1567 }
1568 fi
1569
1570 if lang_enabled ada
1571 then
1572 # gnat so-lib version
1573 solib_ver="$(echo ${PVER} | cut -d'.' -f1)"
1574
1575 src_install_libgnat-common()
1576 {
1577 cd ${SRCDIR}/build
1578 mmake -C gcc DESTDIR=${BINDIR} ada.install-common || die
1579 if [[ $(mlibdir) != lib ]]
1580 then
1581 # install 32bit libgnat
1582 # make tries to execute the libs, which fails
1583 # we override the INSTALL commands to *not* do that
1584 mmake -C ${CHOST}/32/libada DESTDIR=${BINDIR} INSTALL="install" INSTALL_DATA="install -m0644" install-gnatlib || die
1585 fi
1586 zapmost ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib libgnarl*.* libgnat*.* || die
1587
1588 # move so-libs to the right location
1589 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl-${solib_ver}.so /usr/$(mlibdir) || die
1590 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat-${solib_ver}.so /usr/$(mlibdir) || die
1591 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl.so || die
1592 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat.so || die
1593 mlink libgnarl-${solib_ver}.so /usr/$(mlibdir)/libgnarl.so || die
1594 mlink libgnat-${solib_ver}.so /usr/$(mlibdir)/libgnat.so || die
1595 mlink ../../../../libgnarl-${solib_ver}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl-${solib_ver}.so || die
1596 mlink ../../../../libgnat-${solib_ver}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat-${solib_ver}.so || die
1597 mlink ../../../../libgnarl-${solib_ver}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl.so || die
1598 mlink ../../../../libgnat-${solib_ver}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat.so || die
1599
1600 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adainclude || die
1601
1602 if [[ $(mlibdir) != lib ]]
1603 then
1604 zapmost ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib libgnarl*.* libgnat*.* || die
1605
1606 # move so-libs to the right location
1607 minstalldir /usr/lib || die
1608 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl-${solib_ver}.so /usr/lib || die
1609 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat-${solib_ver}.so /usr/lib || die
1610 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl.so || die
1611 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat.so || die
1612 mlink libgnarl-${solib_ver}.so /usr/lib/libgnarl.so || die
1613 mlink libgnat-${solib_ver}.so /usr/lib/libgnat.so || die
1614 mlink ../../../../../../lib/libgnarl-${solib_ver}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl-${solib_ver}.so || die
1615 mlink ../../../../../../lib/libgnat-${solib_ver}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat-${solib_ver}.so || die
1616 mlink ../../../../../../lib/libgnarl-${solib_ver}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl.so || die
1617 mlink ../../../../../../lib/libgnat-${solib_ver}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat.so || die
1618
1619 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adainclude || die
1620 fi
1621
1622 # remove other
1623 mdelete -r /usr/bin || die
1624 }
1625
1626 src_install_libgnat()
1627 {
1628 src_install_libgnat-common || die
1629 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1630 then
1631 keep_dev_package_libs "libgnarl-${solib_ver}.so libgnarl.so libgnat-${solib_ver}.so libgnat.so" || die
1632 fi
1633 }
1634
1635 src_install_libgnat-dev()
1636 {
1637 src_install_libgnat-common || die
1638 delete_dev_package_libs "libgnarl-${solib_ver}.so libgnarl.so libgnat-${solib_ver}.so libgnat.so" || die
1639 }
1640
1641 src_install_gcc-gnat()
1642 {
1643 cd ${SRCDIR}/build
1644 mmake -C gcc DESTDIR=${BINDIR} ada.install-common || die
1645 if [[ $(mlibdir) != lib ]]
1646 then
1647 # install 32bit libgnat
1648 # make tries to execute the libs, which fails
1649 # we override the INSTALL commands to *not* do that
1650 mmake -C ${CHOST}/32/libada DESTDIR=${BINDIR} INSTALL="install" INSTALL_DATA="install -m0644" install-gnatlib || die
1651 fi
1652 mmake -C gcc DESTDIR=${BINDIR} ada.install-info || die
1653 minstallexec gcc/gnat1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER} || die
1654
1655 # remove libraries already included elsewhere
1656 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl\*.\* || die
1657 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat\*.\* || die
1658 if [[ $(mlibdir) != lib ]]
1659 then
1660 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl\*.\* || die
1661 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat\*.\* || die
1662 fi
1663
1664 # versionize all bins and symlink them
1665 versionize_all_bins || die
1666 }
1667 fi
1668
1669 if lang_enabled fortran
1670 then
1671 src_install_libgfortran-common()
1672 {
1673 install_gcc_library "libgfortran"
1674 }
1675
1676 src_install_libgfortran()
1677 {
1678 src_install_libgfortran-common || die
1679 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1680 then
1681 keep_dev_package_libs 'libgfortran.so.*' || die
1682 fi
1683 }
1684
1685 src_install_libgfortran-dev()
1686 {
1687 src_install_libgfortran-common || die
1688 delete_dev_package_libs 'libgfortran.so.*' || die
1689 }
1690
1691 src_install_gcc-gfortran()
1692 {
1693 cd ${SRCDIR}/build
1694
1695 # omp headers needed by fortran
1696 mmake -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-nodist_fincludeHEADERS || die
1697 # libcafsingle
1698 mmake -C ${CHOST}/libgfortran DESTDIR=${BINDIR} install-cafexeclibLTLIBRARIES || die
1699 if [[ $(mlibdir) != lib ]]
1700 then
1701 mmake -C ${CHOST}/32/libgfortran DESTDIR=${BINDIR} install-cafexeclibLTLIBRARIES || die
1702 fi
1703 # only included in <= gcc-6.1
1704 if [[ ${PVER} < 6 ]]
1705 then
1706 #libgfortranbegin
1707 mmake -C ${CHOST}/libgfortran DESTDIR=${BINDIR} install-myexeclibLTLIBRARIES || die
1708 if [[ $(mlibdir) != lib ]]
1709 then
1710 mmake -C ${CHOST}/32/libgfortran DESTDIR=${BINDIR} install-myexeclibLTLIBRARIES || die
1711 fi
1712 fi
1713 # spec file
1714 mmake -C ${CHOST}/libgfortran DESTDIR=${BINDIR} install-toolexeclibDATA || die
1715 if [[ $(mlibdir) != lib ]]
1716 then
1717 mmake -C ${CHOST}/32/libgfortran DESTDIR=${BINDIR} install-toolexeclibDATA || die
1718 fi
1719 # finclude headers
1720 mmake -C ${CHOST}/libgfortran DESTDIR=${BINDIR} install-nodist_fincludeHEADERS || die
1721 if [[ $(mlibdir) != lib ]]
1722 then
1723 mmake -C ${CHOST}/32/libgfortran DESTDIR=${BINDIR} install-nodist_fincludeHEADERS || die
1724 fi
1725 # binaries
1726 mmake -C gcc DESTDIR=${BINDIR} fortran.install-common || die
1727 mmake -C gcc DESTDIR=${BINDIR} fortran.install-man || die
1728 mmake -C gcc DESTDIR=${BINDIR} fortran.install-info || die
1729 # missing binaries
1730 minstallexec gcc/f951 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/f951 || die
1731 mlink gfortran /usr/bin/f95 || die
1732
1733 # versionize all bins and symlink them
1734 versionize_all_bins || die
1735 }
1736 fi
1737
1738 if lang_enabled go
1739 then
1740 src_install_libgo-common()
1741 {
1742 install_gcc_library "libgo" || die
1743 }
1744
1745 src_install_libgo()
1746 {
1747 src_install_libgo-common || die
1748 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1749 then
1750 keep_dev_package_libs 'libgo.so.*' || die
1751 fi
1752 }
1753
1754 src_install_libgo-dev()
1755 {
1756 src_install_libgo-common || die
1757 delete_dev_package_libs 'libgo.so.*' || die
1758 }
1759
1760 src_install_gcc-go()
1761 {
1762 cd ${SRCDIR}/build
1763 mmake DESTDIR=${BINDIR} install-target-libgo || die
1764 mmake -C gcc DESTDIR=${BINDIR} go.install-common || die
1765 mmake -C gcc DESTDIR=${BINDIR} go.install-man || die
1766 mmake -C gcc DESTDIR=${BINDIR} go.install-info || die
1767 minstallexec gcc/go1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1768
1769 # remove libraries already included elsewhere
1770 mmake -C ${CHOST}/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1771 mmake -C ${CHOST}/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1772 if [[ $(mlibdir) != lib ]]
1773 then
1774 mmake -C ${CHOST}/32/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1775 mmake -C ${CHOST}/32/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1776 fi
1777
1778 # versionize all bins and symlink them
1779 versionize_all_bins || die
1780 }
1781 fi
1782
1783 if lang_enabled objc
1784 then
1785 src_install_libobjc-common()
1786 {
1787 install_gcc_library "libobjc" || die
1788 }
1789
1790 src_install_libobjc()
1791 {
1792 cd ${SRCDIR}/build
1793 mmake -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-libs || die
1794 if [[ $(mlibdir) != lib ]]
1795 then
1796 mmake -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-libs || die
1797 fi
1798
1799 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1800 then
1801 keep_dev_package_libs 'libobjc.so.*' || die
1802 fi
1803 }
1804
1805 src_install_libobjc-dev()
1806 {
1807 cd ${SRCDIR}/build
1808 mmake -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-libs || die
1809 if [[ $(mlibdir) != lib ]]
1810 then
1811 mmake -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-libs || die
1812 fi
1813 delete_dev_package_libs 'libobjc.so.*' || die
1814 }
1815
1816 src_install_gcc-objc()
1817 {
1818 cd ${SRCDIR}/build
1819 mmake -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-headers || die
1820 if [[ $(mlibdir) != lib ]]
1821 then
1822 mmake -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-headers || die
1823 fi
1824 minstalldir /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1825 minstallexec gcc/cc1obj /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1826 }
1827
1828 if lang_enabled obj-c++
1829 then
1830 src_install_gcc-objc++()
1831 {
1832 cd ${SRCDIR}/build
1833 minstalldir /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1834 minstallexec gcc/cc1objplus /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1835 }
1836 fi
1837 fi