Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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