Magellan Linux

Contents of /trunk/core/gcc/gcc-7.3.0-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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