Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 20090 - (show 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 # $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