Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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