Magellan Linux

Annotation of /branches/R11-stable/core/gcc/gcc-4.8.2-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 20090 - (hide annotations) (download)
Tue Nov 26 10:05:29 2013 UTC (10 years, 6 months ago) by niro
File size: 32457 byte(s)
-release branches/R11-stable
1 niro 19765 # $Id$
2    
3     PNAME="gcc"
4     PVER="4.8.2"
5     PBUILD="r1"
6    
7     PCAT="sys-dev"
8     HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html"
9    
10     # packages which needs rebuild: libtool java-gcj-compat llvm
11    
12     # languages to build into gcc
13     # options are: c,c++,java,ada,fortran,go,objc,obj-c++,lto
14     # obj-c++ requires objc
15     #
16     # while toolchain bootstrap, only build c,c++ and after that rebuild the whole toolchain:
17     # linux-libc-headers -> binutils -> libc -> gcc -> binutils -> gcc -> libc
18     MyLanguages=c,c++,ada,java,fortran,go,objc,obj-c++,lto
19    
20     # 1=bootstrap the whole gcc suite, using bootstrap-lean method
21     # 0=no bootstrap, use this only for quick builds to test something but never for release
22     GCC_BOOTSTRAP="1"
23    
24     # 1=bootstrap ada, using precompiled gnat binaries
25     # 0=no bootstrap, build ada with system gnat - requires sys-dev/gcc-gnat
26     ADA_BOOTSTRAP="0"
27    
28     SPLIT_PACKAGES="libgcc libssp libgomp libmudflap libquadmath libitm libatomic libstdc++ libasan"
29    
30     # thread sanitizer is only available on x86_64
31     if [[ ${ARCH} = x86_64 ]]
32     then
33     SPLIT_PACKAGES+=" libtsan"
34     fi
35    
36     # always enable gcc
37     SPLIT_PACKAGES+=" gcc"
38    
39     # helper functions
40     lang_enabled()
41     {
42     local lang="$1"
43    
44     if [[ ${MyLanguages//${lang}} != ${MyLanguages} ]]
45     then
46     return 0
47     else
48     return 1
49     fi
50     }
51    
52     versionize_all_bins()
53     {
54     local bin
55    
56     for bin in $(find ${BINDIR}/usr/bin -type f)
57     do
58     echo ${bin}
59     mv ${bin} ${bin}-${PVER} || die
60     ln -snf $(basename ${bin}-${PVER}) ${bin} || die
61     done
62     }
63    
64     GLIBC_DEPEND=">= virtual/glibc"
65     ZLIB_DEPEND=">= sys-libs/zlib-1.2.7"
66     COMMON_DEPEND="${GLIBC_DEPEND}
67     ${ZLIB_DEPEND}
68     >= dev-libs/gmp-5.1
69     >= dev-libs/mpfr-3.1
70     >= dev-libs/mpc-1.0.1"
71     LIBGCC_DEPEND="${GLIBC_DEPEND}"
72     LIBSSP_DEPEND="${GLIBC_DEPEND}"
73     LIBGOMP_DEPEND="${GLIBC_DEPEND}"
74     LIBMUDFLAP_DEPEND="${GLIBC_DEPEND}"
75     LIBQUADMATH_DEPEND="${GLIBC_DEPEND}"
76     LIBITM_DEPEND="${GLIBC_DEPEND}"
77     LIBATOMIC_DEPEND="${GLIBC_DEPEND}"
78     LIBASAN_DEPEND="${GLIBC_DEPEND}"
79     LIBTSAN_DEPEND="${GLIBC_DEPEND}"
80     LIBSTDCPP_DEPEND="${GLIBC_DEPEND}"
81    
82     GCC_DEPEND="${COMMON_DEPEND}
83     >= sys-dev/binutils-2.23
84     >= dev-libs/isl-0.12
85     >= dev-libs/cloog-0.18
86     >= dev-libs/elfutils-0.157"
87    
88     # special handling for libtsan, only x86-64
89     DEPEND_x86_64=">= sys-libs/libtsan-${PVER}"
90     SPECIAL_VARS="DEPEND_x86_64"
91    
92     if lang_enabled java
93     then
94     SPLIT_PACKAGES+=" libgcj gcc-gcj"
95     LIBGCJ_DEPEND="${GLIBC_DEPEND}
96     ${ZLIB_DEPEND}"
97     JAVA_DEPEND="${COMMON_DEPEND}
98     >= dev-java/eclipse-ecj-3.6
99     >= dev-java/fastjar-0.98
100     >= sys-apps/file-5
101     >= app-arch/unzip-6
102     >= app-arch/zip-3
103     >= media-libs/alsa-lib-1.0.26
104     >= x11-libs/libSM-1.2
105     >= x11-libs/libXtst-1.2
106     >= dev-libs/glib2-2.34
107     >= x11-libs/gtk2+-2.24
108     >= media-libs/libart_lgpl-2.3.21"
109    
110     # provided java version
111     JAVA_PVER="1.5.0-gcj-1.5.0.0"
112     fi
113    
114     if lang_enabled ada
115     then
116     SPLIT_PACKAGES+=" libgnat gcc-gnat"
117     LIBGNAT_DEPEND="${GLIBC_DEPEND}"
118     ADA_DEPEND="${COMMON_DEPEND}"
119     if [[ ${ADA_BOOTSTRAP} = 1 ]]
120     then
121     GNAT_BIN_x86="gnatboot-4.3-i686.tar.bz2"
122     GNAT_BIN_x86_64="gnatboot-4.3-amd64.tar.bz2"
123     GNAT_BIN="$(eval echo \$GNAT_BIN_${ARCH/i*86/x86})"
124     GNAT_BIN_SRCDIR="${BUILDDIR}/gnat"
125     SRC_URI+=( mirror://${PNAME}/${GNAT_BIN_x86} )
126     SRC_URI+=( mirror://${PNAME}/${GNAT_BIN_x86_64} )
127     fi
128     fi
129    
130     if lang_enabled fortran
131     then
132     SPLIT_PACKAGES+=" libgfortran gcc-gfortran"
133     LIBGFORTRAN_DEPEND="${GLIBC_DEPEND}"
134     FORTRAN_DEPEND="${COMMON_DEPEND}"
135     fi
136    
137     if lang_enabled go
138     then
139     SPLIT_PACKAGES+=" libgo gcc-go"
140     LIBGO_DEPEND="${GLIBC_DEPEND}"
141     GO_DEPEND="${COMMON_DEPEND}"
142     fi
143    
144     if lang_enabled objc
145     then
146     SPLIT_PACKAGES+=" libobjc gcc-objc"
147     LIBOBJC_DEPEND="${GLIBC_DEPEND}"
148     OBJC_DEPEND="${COMMON_DEPEND}"
149    
150     if lang_enabled obj-c++
151     then
152     SPLIT_PACKAGES+=" gcc-objc++"
153     OBJCPP_DEPEND="${COMMON_DEPEND}"
154     fi
155     fi
156    
157     SDEPEND="${LIBGCC_DEPEND}
158     ${LIBSSP_DEPEND}
159     ${LIBGOMP_DEPEND}
160     ${LIBMUDFLAP_DEPEND}
161     ${LIBQUADMATH_DEPEND}
162     ${LIBITM_DEPEND}
163     ${LIBATOMIC_DEPEND}
164     ${LIBASAN_DEPEND}
165     ${LIBTSAN_DEPEND}
166     ${LIBSTDCPP_DEPEND}
167     ${GCC_DEPEND}
168     ${LIBGCJ_DEPEND}
169     ${JAVA_DEPEND}
170     ${LIBGNAT_DEPEND}
171     ${ADA_DEPEND}
172     ${LIBGFORTRAN_DEPEND}
173     ${FORTRAN_DEPEND}
174     ${LIBGO_DEPEND}
175     ${GO_DEPEND}
176     ${LIBOBJC_DEPEND}
177     ${OBJC_DEPEND}
178     ${OBJCPP_DEPEND}
179     >= virtual/kernel-headers"
180    
181     if [[ ${ADA_BOOTSTRAP} != 1 ]]
182     then
183     # add gnat to SDEPEND
184     SDEPEND="${SDEPEND}
185     >= sys-dev/gcc-gnat-4.8"
186     fi
187    
188     SRCFILE="${PNAME}-${PVER}.tar.bz2"
189     SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
190    
191     # you better off when not using distcc to compile
192     # your new compiler :) maybe not all are the same
193     msetfeature "!distcc"
194    
195     sminclude mtools cleanutils libtool
196    
197     SRC_URI=(
198     ${SRC_URI[*]}
199     gnu://${PNAME}/${PNAME}-${PVER}/${SRCFILE}
200     mirror://${PNAME}/${SRCFILE}
201     mirror://${PNAME}/${PNAME}-4.5.1-no-fixincludes.patch
202     mirror://${PNAME}/${PNAME}-4.7.1-libada-pic.patch
203     )
204    
205     UP2DATE="updatecmd 'http://ftp.gnu.org/gnu/${PNAME}/?C=M;O=A' | grep '\[DIR\]' | sed -n 's:.*${PNAME}-\(.*\)/.*:\1:;$ p'"
206    
207     # gcc don't like strong CFLAGS
208     export CFLAGS="${CFLAGS//-O?} -O2"
209     export CXXFLAGS="${CFLAGS}"
210    
211     # check for crosscompile or export default CHOST
212     if [[ -z ${CTARGET} ]]
213     then
214     # no crosscompile defined
215     export CTARGET=${CHOST}
216     else
217     # use crosscompile host
218     export CTARGET=${CTARGET}
219     fi
220    
221     split_info_gcc()
222     {
223     DESCRIPTION="Modern C/C++ compiler written by the GNU people."
224    
225     DEPEND="== sys-libs/libgcc-${PVER}
226     == sys-libs/libssp-${PVER}
227     == sys-libs/libgomp-${PVER}
228     == sys-libs/libmudflap-${PVER}
229     == sys-libs/libquadmath-${PVER}
230     == sys-libs/libitm-${PVER}
231     == sys-libs/libatomic-${PVER}
232     == sys-libs/libstdc++-${PVER}
233     == sys-libs/libasan-${PVER}
234     $(marchdepend)
235     ${GCC_DEPEND}"
236     }
237    
238     split_info_libgcc()
239     {
240     DESCRIPTION="GCC shared support library."
241     DEPEND="${LIBGCC_DEPEND}"
242     PCAT="sys-libs"
243     }
244    
245     split_info_libssp()
246     {
247     DESCRIPTION="Stack Smashing Protection library from GCC."
248     DEPEND="${LIBSSP_DEPEND}"
249     PCAT="sys-libs"
250     }
251    
252     split_info_libgomp()
253     {
254     DESCRIPTION="GNU OpenMP runtime library."
255     DEPEND="${LIBGOMP_DEPEND}"
256     PCAT="sys-libs"
257     }
258    
259     split_info_libmudflap()
260     {
261     DESCRIPTION="GCC mudflap shared support library."
262     DEPEND="${LIBMUDFLAP_DEPEND}"
263     PCAT="sys-libs"
264     }
265    
266     split_info_libquadmath()
267     {
268     DESCRIPTION="GCC __float128 shared support library."
269     DEPEND="${LIBQUADMATH_DEPEND}"
270     PCAT="sys-libs"
271     }
272    
273     split_info_libitm()
274     {
275     DESCRIPTION="The GNU Transactional Memory library."
276     DEPEND="${LIBITM_DEPEND}"
277     PCAT="sys-libs"
278     }
279    
280     split_info_libatomic()
281     {
282     DESCRIPTION="The GNU Atomic library."
283     DEPEND="${LIBATOMIC_DEPEND}"
284     PCAT="sys-libs"
285     }
286    
287     split_info_libasan()
288     {
289     DESCRIPTION="The Address Sanitizer runtime library."
290     DEPEND="== sys-libs/libgcc-${PVER}
291     == sys-libs/libstdc++-${PVER}
292     ${LIBASAN_DEPEND}"
293     PCAT="sys-libs"
294     }
295    
296     split_info_libtsan()
297     {
298     DESCRIPTION="The Thread Sanitizer runtime library."
299     DEPEND="== sys-libs/libgcc-${PVER}
300     == sys-libs/libstdc++-${PVER}
301     ${LIBTSAN_DEPEND}"
302     PCAT="sys-libs"
303     }
304    
305     split_info_libstdc++()
306     {
307     DESCRIPTION="Standard GNU C and C++ libraries."
308     DEPEND="== sys-libs/libgcc-${PVER}
309     ${LIBSTDCPP_DEPEND}"
310     PCAT="sys-libs"
311     }
312    
313     if lang_enabled java
314     then
315     split_info_libgcj()
316     {
317     DESCRIPTION="Java runtime library for GCC."
318     DEPEND="== sys-libs/libgcc-${PVER}
319     ${LIBGCJ_DEPEND}"
320     PCAT="sys-libs"
321     }
322    
323     split_info_gcc-gcj()
324     {
325     DESCRIPTION="Java support for GCC."
326     DEPEND="== sys-libs/libgcc-${PVER}
327     == sys-libs/libstdc++-${PVER}
328     == sys-libs/libgcj-${PVER}
329     == sys-dev/gcc-${PVER}
330     ${JAVA_DEPEND}"
331     }
332     fi
333    
334     if lang_enabled ada
335     then
336     split_info_libgnat()
337     {
338     DESCRIPTION="Gnu Ada 95 library which is needed to run Ada programs."
339     DEPEND="== sys-libs/libgcc-${PVER}
340     ${LIBGNAT_DEPEND}"
341     PCAT="sys-libs"
342     }
343    
344     split_info_gcc-gnat()
345     {
346     DESCRIPTION="Ada 95 support for GCC."
347     DEPEND="== sys-libs/libgcc-${PVER}
348     == sys-libs/libstdc++-${PVER}
349     == sys-libs/libgnat-${PVER}
350     == sys-dev/gcc-${PVER}
351     ${ADA_DEPEND}"
352     }
353     fi
354    
355     if lang_enabled fortran
356     then
357     split_info_libgfortran()
358     {
359     DESCRIPTION="Gnu Fortran library which is needed to run Fortran programs."
360     DEPEND="== sys-libs/libquadmath-${PVER}
361     ${LIBGFORTRAN_DEPEND}"
362     PCAT="sys-libs"
363     }
364    
365     split_info_gcc-gfortran()
366     {
367     DESCRIPTION="Fortran support for GCC."
368     DEPEND="== sys-libs/libgcc-${PVER}
369     == sys-libs/libstdc++-${PVER}
370     == sys-libs/libgfortran-${PVER}
371     == sys-dev/gcc-${PVER}
372     ${FORTRAN_DEPEND}"
373     }
374     fi
375    
376     if lang_enabled go
377     then
378     split_info_libgo()
379     {
380     DESCRIPTION="Go library which is needed to run Go programs."
381     DEPEND="== sys-libs/libgcc-${PVER}
382     ${LIBGO_DEPEND}"
383     PCAT="sys-libs"
384     }
385    
386     split_info_gcc-go()
387     {
388     DESCRIPTION="Go support for GCC."
389     DEPEND="== sys-libs/libgcc-${PVER}
390     == sys-libs/libstdc++-${PVER}
391     == sys-libs/libgo-${PVER}
392     == sys-dev/gcc-${PVER}
393     ${GO_DEPEND}"
394     }
395     fi
396    
397     if lang_enabled objc
398     then
399     split_info_libobjc()
400     {
401     DESCRIPTION="Objective-C library which is needed to run Objective-C programs."
402     DEPEND="== sys-libs/libgcc-${PVER}
403     ${LIBOBJC_DEPEND}"
404     PCAT="sys-libs"
405     }
406    
407     split_info_gcc-objc()
408     {
409     DESCRIPTION="Objective-C support for GCC."
410     DEPEND="== sys-libs/libgcc-${PVER}
411     == sys-libs/libstdc++-${PVER}
412     == sys-libs/libobjc-${PVER}
413     == sys-dev/gcc-${PVER}
414     ${OBJC_DEPEND}"
415     }
416    
417     if lang_enabled obj-c++
418     then
419     split_info_gcc-objc++()
420     {
421     DESCRIPTION="Objective-C++ support for GCC."
422     DEPEND="== sys-libs/libgcc-${PVER}
423     == sys-libs/libstdc++-${PVER}
424     == sys-libs/libobjc-${PVER}
425     == sys-dev/gcc-${PVER}
426     == sys-dev/gcc-objc-${PVER}
427     ${OBJCPP_DEPEND}"
428     }
429     fi
430     fi
431    
432     src_prepare()
433     {
434     munpack ${SRCFILE} || die
435    
436     if lang_enabled ada
437     then
438     if [[ ${ADA_BOOTSTRAP} = 1 ]]
439     then
440     # setup binary ada if boostrap is enabled
441     install -d ${GNAT_BIN_SRCDIR} || die
442     munpack ${GNAT_BIN} ${GNAT_BIN_SRCDIR} || die
443     # gnat wrapper has problems with quotation
444     sed -i \
445     -e "/-DREVISION/d" \
446     -e "/-DDEVPHASE/d" \
447     -e "s: -DDATESTAMP=\$(DATESTAMP_s)::" \
448     ${SRCDIR}/gcc/Makefile.in || die
449     sed -i \
450     -e "s: DATESTAMP DEVPHASE REVISION::" \
451     -e "s:PKGVERSION:\"\":" \
452     ${SRCDIR}/gcc/version.c || die
453     fi
454     cd ${SRCDIR}
455     fi
456    
457     cd ${SRCDIR}
458    
459     # generic fixes
460     mpatch ${PNAME}-4.5.1-no-fixincludes.patch || die
461    
462     # fix pic issues
463     mpatch ${PNAME}-4.7.1-libada-pic.patch || die
464    
465     # suppress installation of libffi, we're using libffi3 instead
466     sed -i 's/\(install.*:\) install-.*recursive/\1/' libffi/Makefile.in || die
467     sed -i 's/\(install-data-am:\).*/\1/' libffi/include/Makefile.in || die
468    
469     install -d ${SRCDIR}/build || die
470     }
471    
472     src_compile()
473     {
474     if lang_enabled ada
475     then
476     if [[ ${ADA_BOOTSTRAP} = 1 ]]
477     then
478     # export binary gnat pathes
479     export PATH="${GNAT_BIN_SRCDIR}/usr/bin:${PATH}"
480     export CC="${GNAT_BIN_SRCDIR}/usr/bin/gnatgcc"
481     # CPATH is supposed to be applied for any language, thus
482     # superseding either of C/CPLUS/OBJC_INCLUDE_PATHs
483     export CPATH="${GNAT_BIN_SRCDIR}/usr/lib/include"
484     export LIB_DIR="${GNAT_BIN_SRCDIR}/usr/lib"
485     export LDFLAGS="-L${GNAT_BIN_SRCDIR}/usr/lib"
486     export LIBRARY_PATH="${GNAT_BIN_SRCDIR}/usr/lib"
487     export ADA_OBJECTS_PATH="${GNAT_BIN_SRCDIR}/usr/lib/adalib"
488     export ADA_INCLUDE_PATH="${GNAT_BIN_SRCDIR}/usr/lib/adainclude"
489    
490     # prepare some tools
491     cd ${GNAT_BIN_SRCDIR}
492     cp -v ${SRCDIR}/gcc/ada/xtreeprs.adb ${GNAT_BIN_SRCDIR} || die
493     cp -v ${SRCDIR}/gcc/ada/csinfo.adb ${GNAT_BIN_SRCDIR} || die
494     cp -v ${SRCDIR}/gcc/ada/ceinfo.adb ${GNAT_BIN_SRCDIR} || die
495     cp -v ${SRCDIR}/gcc/ada/xsinfo.adb ${GNAT_BIN_SRCDIR} || die
496     cp -v ${SRCDIR}/gcc/ada/xeinfo.adb ${GNAT_BIN_SRCDIR} || die
497     cp -v ${SRCDIR}/gcc/ada/xnmake.adb ${GNAT_BIN_SRCDIR} || die
498     cp -v ${SRCDIR}/gcc/ada/xutil.ad{s,b} ${GNAT_BIN_SRCDIR} || die
499     gnatmake xtreeprs || die
500     gnatmake xsinfo || die
501     gnatmake xeinfo || die
502     gnatmake xnmake || die
503     fi
504     fi
505    
506     cd ${SRCDIR}/build
507     local myconf
508    
509     # Straight from the GCC install doc:
510     # "GCC has code to correctly determine the correct value for target
511     # for nearly all native systems. Therefore, we highly recommend you
512     # not provide a configure target when configuring a native compiler."
513     if [[ ${CHOST} != ${CTARGET} ]]
514     then
515     myconf+=" --target=${CTARGET}"
516     fi
517    
518     if lang_enabled java
519     then
520     myconf+=" --enable-java-awt=gtk
521     --enable-gtk-cairo
522     --enable-libgcj-multifile
523     --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
524     --with-fastjar=/usr/bin/fastjar
525     --enable-hash-synchronization"
526     # disable mutilib for java
527     myconf+=" --disable-libjava-multilib"
528     # java home, must be the same of java-gcj-compat
529     myconf+=" --with-java-home=/usr/$(mlibdir)/jvm/java-${JAVA_PVER}/jre"
530     fi
531    
532     # use isl backend
533     myconf+=" --enable-cloog-backend=isl"
534    
535     # suppress installation of libiberty, as we will be
536     # using the one from binutils
537     myconf+=" --disable-install-libiberty"
538    
539     # gcc >= 4.3 has now configure flags for uri and version - yeah!
540     AR=ar \
541     ../configure \
542     --with-bugurl="http://bugs.magellan-linux.de/" \
543     --with-pkgversion="Magellan-Linux" \
544     --build=${CHOST} \
545     --host=${CHOST} \
546     --prefix=/usr \
547     --sbindir=/usr/bin \
548     --mandir=/usr/share/man \
549     --infodir=/usr/share/info \
550     --libdir=/usr/$(mlibdir) \
551     --libexecdir=/usr/$(mlibdir) \
552     --enable-shared \
553     --enable-threads=posix \
554     --enable-__cxa_atexit \
555     --enable-clocale=gnu \
556     --enable-checking=release \
557     --with-system-zlib \
558     --enable-long-long \
559     --enable-cstdio=stdio \
560     --enable-languages=${MyLanguages} \
561     --disable-libstdcxx-pch \
562     --enable-gnu-unique-object \
563     --enable-lto \
564     --enable-plugin \
565     --enable-gold \
566     --with-plugin-ld=ld.gold \
567     --enable-ld=default \
568     --enable-linker-build-id \
569     --disable-install-libiberty \
570     ${myconf} \
571     || die
572    
573     # parallel builds seems to break sometimes on x86_64
574     local myopts
575     [[ ${ARCH} = x86_64 ]] && myopts=-j1
576    
577     # enable bootstrap if requested
578     local target
579     [[ ${GCC_BOOTSTRAP} = 1 ]] && target="bootstrap-lean"
580    
581     mmake ${myopts} ${target} || die
582     }
583    
584     src_install_gcc()
585     {
586     local i
587     local bin
588    
589     cd ${SRCDIR}/build
590     minstalldir /$(mlibdir) || die
591    
592     # install all targets
593     make DESTDIR=${BINDIR} install || die
594    
595     # move gdb scripts to a proper location and to pretty-print ldconfig
596     minstalldir /usr/share/gdb/auto-load/usr/$(mlibdir) || die
597     mv -v ${BINDIR}/usr/$(mlibdir)/libstdc++*gdb.py* ${BINDIR}/usr/share/gdb/auto-load/usr/$(mlibdir)/ || die
598     # multilib as well
599     if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
600     then
601     minstalldir /usr/share/gdb/auto-load/usr/lib || die
602     mv -v ${BINDIR}/usr/lib/libstdc++*gdb.py* ${BINDIR}/usr/share/gdb/auto-load/usr/lib/ || die
603     fi
604    
605     # deletes libstdc++ && libgcc_s && libssp && libgomp libmudflap && libquadmath && libitm && libatomic && libasan
606     rm -v ${BINDIR}/usr/$(mlibdir)/libgcc_s.so* || die
607     mmake -j1 -C ${CHOST}/libssp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
608     mmake -j1 -C ${CHOST}/libgomp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
609     mmake -j1 -C ${CHOST}/libmudflap DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
610     mmake -j1 -C ${CHOST}/libquadmath DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
611     mmake -j1 -C ${CHOST}/libitm DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
612     mmake -j1 -C ${CHOST}/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
613     mmake -j1 -C ${CHOST}/libsanitizer/asan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
614     if [[ ${ARCH} = x86_64 ]]
615     then
616     mmake -j1 -C ${CHOST}/libsanitizer/tsan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
617     fi
618     mmake -j1 -C ${CHOST}/libstdc++-v3/src DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
619     if [[ $(mlibdir) != lib ]]
620     then
621     rm -v ${BINDIR}/usr/lib/libgcc_s.so* || die
622     mmake -j1 -C ${CHOST}/32/libssp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
623     mmake -j1 -C ${CHOST}/32/libgomp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
624     mmake -j1 -C ${CHOST}/32/libmudflap DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
625     mmake -j1 -C ${CHOST}/32/libquadmath DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
626     mmake -j1 -C ${CHOST}/32/libitm DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
627     mmake -j1 -C ${CHOST}/32/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
628     mmake -j1 -C ${CHOST}/32/libsanitizer/asan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
629     # only 64bit exist
630     # mmake -j1 -C ${CHOST}/32//libsanitizer/tsan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
631     mmake -j1 -C ${CHOST}/32/libstdc++-v3/src DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
632     fi
633     mdelete /usr/share/info/libgomp.info || die
634     mdelete /usr/share/info/libitm.info || die
635     mdelete /usr/share/info/libquadmath.info || die
636     find ${BINDIR}/usr/share/locale -name libstdc++.mo | xargs --no-run-if-empty --verbose rm -v || die
637    
638     # deletes all java specific
639     if lang_enabled java
640     then
641     mmake -j1 -C ${CHOST}/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
642     if [[ $(mlibdir) != lib ]]
643     then
644     mmake -j1 -C ${CHOST}/32/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
645     fi
646     rm -v ${BINDIR}/usr/$(mlibdir)/libgcj_bc.so* || die
647     rm -rv ${BINDIR}/usr/include/c++/${PVER}/{gcj,gnu,java{,x},org,sun} || die
648     rm -rv ${BINDIR}/usr/$(mlibdir)/gcj* || die
649     mdelete /usr/$(mlibdir)/logging.properties || die
650     mdelete /usr/$(mlibdir)/libgcj.spec || die
651     rm -v ${BINDIR}/usr/$(mlibdir)/pkgconfig/libgcj*.pc || die
652     mdelete -r /usr/$(mlibdir)/security || die
653     mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ecj1 || die
654     mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/jc1 || die
655     mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/jvgenmain || die
656     mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/gcj || die
657     rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/{{jawt,jni}{,_md},jvmpi}.h || die
658     if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
659     then
660     rm -v ${BINDIR}/usr/lib/libgcj_bc.so* || die
661     rm -rv ${BINDIR}/usr/lib/gcj* || die
662     mdelete /usr/lib/logging.properties || die
663     mdelete -r /usr/lib/security || die
664     fi
665     mdelete /usr/share/info/cp-tools.info || die
666     mdelete /usr/share/info/gcj.info || die
667     mdelete -r /usr/share/java || die
668     mdelete -r /usr/share/gcc-${PVER}/python/libjava || die
669     for i in aot-compile gappletviewer gc-analyze gcj gcj-dbtool gcjh gij gjar \
670     gjarsigner gjavah gjdoc gkeytool gnative2ascii gorbd grmic grmid grmiregistry \
671     gserialver gtnameserv jcf-dump jv-convert rebuild-gcj-db ${CHOST}-gcj
672     do
673     if [ -f ${BINDIR}/usr/bin/${i} ]
674     then
675     mdelete /usr/bin/${i} || die
676     fi
677     if [ -f ${BINDIR}/usr/share/man/man1/${i}.1 ]
678     then
679     mdelete /usr/share/man/man1/${i}.1 || die
680     fi
681     done
682     fi
683    
684     # deletes all ada specific
685     if lang_enabled ada
686     then
687     rm -v ${BINDIR}/usr/bin/gnat* || die
688     mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/gnat1 || die
689     mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib || die
690     mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adainclude || die
691     if [[ $(mlibdir) != lib ]]
692     then
693     mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib || die
694     mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adainclude || die
695     fi
696     rm -v ${BINDIR}/usr/share/info/gnat*.info || die
697     fi
698    
699     # deletes all fortran specific
700     if lang_enabled fortran
701     then
702     mmake -j1 -C ${CHOST}/libgfortran DESTDIR=${BINDIR} uninstall || die
703     if [[ $(mlibdir) != lib ]]
704     then
705     mmake -j1 -C ${CHOST}/32/libgfortran DESTDIR=${BINDIR} uninstall || die
706     fi
707     mdelete /usr/bin/gfortran || die
708     mdelete /usr/bin/${CHOST}-gfortran || die
709     mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/f951 || die
710     mdelete /usr/share/info/gfortran.info || die
711     mdelete /usr/share/man/man1/gfortran.1 || die
712     fi
713    
714     # deletes all go specific
715     if lang_enabled go
716     then
717     mmake -j1 -C ${CHOST}/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
718     if [[ $(mlibdir) != lib ]]
719     then
720     mmake -j1 -C ${CHOST}/32/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
721     fi
722     mdelete /usr/bin/gccgo || die
723     mdelete /usr/bin/${CHOST}-gccgo || die
724     mdelete -r /usr/$(mlibdir)/go || die
725     mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/go1 || die
726     mdelete /usr/$(mlibdir)/libgobegin.a || die
727     if [[ $(mlibdir) != lib ]]
728     then
729     mdelete -r /usr/lib/go || die
730     mdelete /usr/lib/libgobegin.a || die
731     fi
732     mdelete /usr/share/info/gccgo.info || die
733     mdelete /usr/share/man/man1/gccgo.1 || die
734     fi
735    
736     # deletes all objc + obj-c++
737     if lang_enabled objc
738     then
739     rm -v ${BINDIR}/usr/$(mlibdir)/libobjc.so* || die
740     rm -v ${BINDIR}/usr/$(mlibdir)/libobjc.{a,la} || die
741     if [[ $(mlibdir) != lib ]]
742     then
743     rm -v ${BINDIR}/usr/lib/libobjc.so* || die
744     rm -v ${BINDIR}/usr/lib/libobjc.{a,la} || die
745     fi
746     mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/cc1obj || die
747     mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/objc || die
748    
749     if lang_enabled obj-c++
750     then
751     mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/cc1objplus || die
752     fi
753     fi
754    
755     # versionize all bins and symlink them
756     versionize_all_bins || die
757    
758     mlink ../usr/bin/cpp-${PVER} /usr/$(mlibdir)/cpp || die
759     # this one is needed on multilib systems.
760     # rpcgen may not find the cpp compiler correctly if not in /lib/cpp
761     if [[ $(mlibdir) != lib ]]
762     then
763     minstalldir /usr/lib || die
764     mlink ../usr/bin/cpp-${PVER} /usr/lib/cpp || die
765     fi
766     mlink gcc-${PVER} /usr/bin/cc || die
767    
768     # fix all .la files
769     # they may contain invalid libpathes which are not needed
770     local la
771     for la in $(find ${BINDIR} -name \*.la)
772     do
773     fix_la_file ${la} || die ${la}
774     done
775    
776     # remove /lib dirs to be usr-move compat
777     if [[ -d ${BINDIR}/$(mlibdir) ]]
778     then
779     rm -rv ${BINDIR}/$(mlibdir) || die
780     fi
781     if [[ $(mlibdir) != lib ]]
782     then
783     if [[ -d ${BINDIR}/lib ]]
784     then
785     rm -rv ${BINDIR}/lib || die
786     fi
787     fi
788     }
789    
790     src_install_libgcc()
791     {
792     cd ${SRCDIR}/build
793     mmake -j1 -C ${CHOST}/libgcc DESTDIR=${BINDIR} install-shared || die
794     if [[ $(mlibdir) != lib ]]
795     then
796     mmake -j1 -C${CHOST}/32/libgcc DESTDIR=${BINDIR} install-shared || die
797     fi
798     mdelete -r /usr/$(mlibdir)/gcc || die
799     }
800    
801     src_install_libssp()
802     {
803     cd ${SRCDIR}/build
804     mmake -j1 -C ${CHOST}/libssp DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
805     if [[ $(mlibdir) != lib ]]
806     then
807     mmake -j1 -C ${CHOST}/32/libssp DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
808     fi
809     }
810    
811     src_install_libgomp()
812     {
813     cd ${SRCDIR}/build
814     mmake -j1 -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
815     if [[ $(mlibdir) != lib ]]
816     then
817     mmake -j1 -C ${CHOST}/32/libgomp DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
818     fi
819     mmake -j1 -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-info || die
820     }
821    
822     src_install_libmudflap()
823     {
824     cd ${SRCDIR}/build
825     mmake -j1 -C ${CHOST}/libmudflap DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
826     if [[ $(mlibdir) != lib ]]
827     then
828     mmake -j1 -C ${CHOST}/32/libmudflap DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
829     fi
830     }
831    
832     src_install_libquadmath()
833     {
834     cd ${SRCDIR}/build
835     mmake -j1 -C ${CHOST}/libquadmath DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
836     if [[ $(mlibdir) != lib ]]
837     then
838     mmake -j1 -C ${CHOST}/32/libquadmath DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
839     fi
840     mmake -j1 -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-info || die
841     }
842    
843     src_install_libitm()
844     {
845     cd ${SRCDIR}/build
846     mmake -j1 -C ${CHOST}/libitm DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
847     if [[ $(mlibdir) != lib ]]
848     then
849     mmake -j1 -C ${CHOST}/32/libitm DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
850     fi
851     mmake -j1 -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-info || die
852     }
853    
854     src_install_libatomic()
855     {
856     cd ${SRCDIR}/build
857     mmake -j1 -C ${CHOST}/libatomic DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
858     if [[ $(mlibdir) != lib ]]
859     then
860     mmake -j1 -C ${CHOST}/32/libatomic DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
861     fi
862     }
863    
864     src_install_libasan()
865     {
866     cd ${SRCDIR}/build
867     mmake -j1 -C ${CHOST}//libsanitizer/asan DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
868     if [[ $(mlibdir) != lib ]]
869     then
870     mmake -j1 -C ${CHOST}/32//libsanitizer/asan DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
871     fi
872     }
873    
874     src_install_libtsan()
875     {
876     cd ${SRCDIR}/build
877     mmake -j1 -C ${CHOST}//libsanitizer/tsan DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
878     # only 64bit exist
879     # if [[ $(mlibdir) != lib ]]
880     # then
881     # mmake -j1 -C ${CHOST}/32//libsanitizer/tsan DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
882     # fi
883     }
884    
885     src_install_libstdc++()
886     {
887     cd ${SRCDIR}/build
888     mmake -j1 -C ${CHOST}/libstdc++-v3/src DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
889     if [[ $(mlibdir) != lib ]]
890     then
891     mmake -j1 -C ${CHOST}/32/libstdc++-v3/src DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
892     fi
893     mmake -j1 -C ${CHOST}/libstdc++-v3/po DESTDIR=${BINDIR} install || die
894     }
895    
896     if lang_enabled java
897     then
898     src_install_libgcj()
899     {
900     cd ${SRCDIR}/build
901     mmake -j1 -C ${CHOST}/libjava DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
902     if [[ $(mlibdir) != lib ]]
903     then
904     mmake -j1 -C ${CHOST}/32/libjava DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
905     fi
906     }
907    
908     src_install_gcc-gcj()
909     {
910     cd ${SRCDIR}/build
911    
912     # install only java targets
913     make DESTDIR=${BINDIR} install-target-libjava || die
914     make -C gcc DESTDIR=${BINDIR} java.install-common || die
915     make -C gcc DESTDIR=${BINDIR} java.install-man || die
916    
917     # missing bins
918     minstallexec gcc/jc1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
919     minstallexec gcc/jvgenmain /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
920    
921     # remove libraries already included elsewhere
922     mmake -j1 -C ${CHOST}/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
923     rm -v ${BINDIR}/usr/$(mlibdir)/libgcc_s.so* || die
924     rm -v ${BINDIR}/usr/$(mlibdir)/libgcj_bc.so* || die
925     if [[ $(mlibdir) != lib ]]
926     then
927     mmake -j1 -C ${CHOST}/32/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
928     rm -v ${BINDIR}/usr/lib/libgcc_s.so.* || die
929     rm -v ${BINDIR}/usr/lib/libgcj_bc.so.* || die
930     fi
931    
932     # versionize all bins and symlink them
933     versionize_all_bins || die
934     }
935     fi
936    
937     if lang_enabled ada
938     then
939     src_install_libgnat()
940     {
941     cd ${SRCDIR}/build
942     mmake -C gcc DESTDIR=${BINDIR} ada.install-common || die
943     if [[ $(mlibdir) != lib ]]
944     then
945     # install 32bit libgnat
946     # make tries to execute the libs, which fails
947     # we override the INSTALL commands to *not* do that
948     mmake -C ${CHOST}/32/libada DESTDIR=${BINDIR} INSTALL="install" INSTALL_DATA="install -m0644" install-gnatlib || die
949     fi
950     zapmost ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib libgnarl*.* libgnat*.* || die
951    
952     # move so-libs to the right location
953     mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl-${PVER%.*}.so /usr/$(mlibdir) || die
954     mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat-${PVER%.*}.so /usr/$(mlibdir) || die
955     rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/lib{gnarl,gnat}.so || die
956     mlink libgnarl-${PVER%.*}.so /usr/$(mlibdir)/libgnarl.so || die
957     mlink libgnat-${PVER%.*}.so /usr/$(mlibdir)/libgnat.so || die
958     mlink ../../../../libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl-${PVER%.*}.so || die
959     mlink ../../../../libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat-${PVER%.*}.so || die
960     mlink ../../../../libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl.so || die
961     mlink ../../../../libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat.so || die
962    
963     mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adainclude || die
964    
965     if [[ $(mlibdir) != lib ]]
966     then
967     zapmost ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib libgnarl*.* libgnat*.* || die
968    
969     # move so-libs to the right location
970     minstalldir /usr/lib || die
971     mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl-${PVER%.*}.so /usr/lib || die
972     mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat-${PVER%.*}.so /usr/lib || die
973     rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/lib{gnarl,gnat}.so || die
974     mlink libgnarl-${PVER%.*}.so /usr/lib/libgnarl.so || die
975     mlink libgnat-${PVER%.*}.so /usr/lib/libgnat.so || die
976     mlink ../../../../../../lib/libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl-${PVER%.*}.so || die
977     mlink ../../../../../../lib/libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat-${PVER%.*}.so || die
978     mlink ../../../../../../lib/libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl.so || die
979     mlink ../../../../../../lib/libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat.so || die
980    
981     mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adainclude || die
982     fi
983    
984     # remove other
985     mdelete -r /usr/bin || die
986     }
987    
988     src_install_gcc-gnat()
989     {
990     cd ${SRCDIR}/build
991     mmake -C gcc DESTDIR=${BINDIR} ada.install-common || die
992     if [[ $(mlibdir) != lib ]]
993     then
994     # install 32bit libgnat
995     # make tries to execute the libs, which fails
996     # we override the INSTALL commands to *not* do that
997     mmake -C ${CHOST}/32/libada DESTDIR=${BINDIR} INSTALL="install" INSTALL_DATA="install -m0644" install-gnatlib || die
998     fi
999     mmake -C gcc DESTDIR=${BINDIR} ada.install-info || die
1000     minstallexec gcc/gnat1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER} || die
1001    
1002     # remove libraries already included elsewhere
1003     rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl*.* || die
1004     rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat*.* || die
1005     if [[ $(mlibdir) != lib ]]
1006     then
1007     rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl*.* || die
1008     rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat*.* || die
1009     fi
1010    
1011     # versionize all bins and symlink them
1012     versionize_all_bins || die
1013     }
1014     fi
1015    
1016     if lang_enabled fortran
1017     then
1018     src_install_libgfortran()
1019     {
1020     cd ${SRCDIR}/build
1021     mmake -j1 -C ${CHOST}/libgfortran DESTDIR=${BINDIR} install || die
1022     if [[ $(mlibdir) != lib ]]
1023     then
1024     mmake -j1 -C ${CHOST}/32/libgfortran DESTDIR=${BINDIR} install || die
1025     fi
1026     }
1027    
1028     src_install_gcc-gfortran()
1029     {
1030     cd ${SRCDIR}/build
1031    
1032     # omp headers needed by fortran
1033     mmake -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-nodist_fincludeHEADERS || die
1034     mmake -C gcc DESTDIR=${BINDIR} fortran.install-common || die
1035     mmake -C gcc DESTDIR=${BINDIR} fortran.install-man || die
1036     mmake -C gcc DESTDIR=${BINDIR} fortran.install-info || die
1037     # missing binaries
1038     minstallexec gcc/f951 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/f951 || die
1039     mlink gfortran /usr/bin/f95 || die
1040    
1041     # remove libraries already included elsewhere
1042     mmake -C ${CHOST}/libgomp DESTDIR=${BINDIR} uninstall-nodist_fincludeHEADERS || die
1043    
1044     # versionize all bins and symlink them
1045     versionize_all_bins || die
1046     }
1047     fi
1048    
1049     if lang_enabled go
1050     then
1051     src_install_libgo()
1052     {
1053     cd ${SRCDIR}/build
1054     mmake -j1 -C ${CHOST}/libgo DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
1055     if [[ $(mlibdir) != lib ]]
1056     then
1057     mmake -j1 -C ${CHOST}/32/libgo DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
1058     fi
1059     }
1060    
1061     src_install_gcc-go()
1062     {
1063     cd ${SRCDIR}/build
1064     mmake DESTDIR=${BINDIR} install-target-libgo || die
1065     mmake -C gcc DESTDIR=${BINDIR} go.install-common || die
1066     mmake -C gcc DESTDIR=${BINDIR} go.install-man || die
1067     mmake -C gcc DESTDIR=${BINDIR} go.install-info || die
1068     minstallexec gcc/go1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1069    
1070     # remove libraries already included elsewhere
1071     mmake -j1 -C ${CHOST}/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1072     mmake -j1 -C ${CHOST}/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1073     if [[ $(mlibdir) != lib ]]
1074     then
1075     mmake -j1 -C ${CHOST}/32/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1076     mmake -j1 -C ${CHOST}/32/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1077     fi
1078    
1079     # versionize all bins and symlink them
1080     versionize_all_bins || die
1081     }
1082     fi
1083    
1084     if lang_enabled objc
1085     then
1086     src_install_libobjc()
1087     {
1088     cd ${SRCDIR}/build
1089     mmake -j1 -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-libs || die
1090     if [[ $(mlibdir) != lib ]]
1091     then
1092     mmake -j1 -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-libs || die
1093     fi
1094     }
1095    
1096     src_install_gcc-objc()
1097     {
1098     cd ${SRCDIR}/build
1099     mmake -j1 -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-headers || die
1100     if [[ $(mlibdir) != lib ]]
1101     then
1102     mmake -j1 -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-headers || die
1103     fi
1104     minstalldir /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1105     minstallexec gcc/cc1obj /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1106     }
1107    
1108     if lang_enabled obj-c++
1109     then
1110     src_install_gcc-objc++()
1111     {
1112     cd ${SRCDIR}/build
1113     minstalldir /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1114     minstallexec gcc/cc1objplus /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1115     }
1116     fi
1117     fi