Magellan Linux

Annotation of /smage/branches/alx07x-stable/core/gcc/gcc-7.1.0-r4.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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