Magellan Linux

Contents of /smage/trunk/core/gcc/gcc-4.8.4-r4.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5956 - (show annotations) (download)
Wed Mar 18 17:27:33 2015 UTC (9 years, 2 months ago) by niro
File size: 40937 byte(s)
-buildserver toolchain rebuild - phase2
1 # $Id$
2
3 PNAME="gcc"
4 PVER="4.8.4"
5 PBUILD="r4"
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++
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 # 1=enable dev split packages
29 # 0=disable dev split packages
30 ENABLE_DEV_PACKAGES="1"
31
32 SPLIT_PACKAGES="libgcc libssp libgomp libmudflap libquadmath libitm libatomic libstdc++ libasan"
33
34 # dev packages
35 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
36 then
37 SPLIT_PACKAGES+=" libgcc-dev libssp-dev libgomp-dev libmudflap-dev libquadmath-dev libitm-dev libatomic-dev libstdc++-dev libasan-dev"
38 fi
39
40 # thread sanitizer is only available on x86_64
41 if [[ ${ARCH} = x86_64 ]]
42 then
43 SPLIT_PACKAGES+=" libtsan"
44 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
45 then
46 SPLIT_PACKAGES+=" libtsan-dev"
47 fi
48 fi
49
50 # always enable gcc
51 SPLIT_PACKAGES+=" gcc"
52
53 # helper functions
54 lang_enabled()
55 {
56 local lang="$1"
57
58 if [[ ${MyLanguages//${lang}} != ${MyLanguages} ]]
59 then
60 return 0
61 else
62 return 1
63 fi
64 }
65
66 install_gcc_library()
67 {
68 local library="$1"
69
70 cd ${SRCDIR}/build
71 mmake -j1 -C ${CHOST}/${library} DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
72 if [[ $(mlibdir) != lib ]]
73 then
74 if [ -d ${CHOST}/32/${library} ]
75 then
76 mmake -j1 -C ${CHOST}/32/${library} DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
77 fi
78 fi
79 }
80
81 versionize_all_bins()
82 {
83 local bin
84
85 for bin in $(find ${BINDIR}/usr/bin -type f)
86 do
87 echo "${bin}"
88 # don't do this for already versionized bins
89 if [[ ${bin} = ${bin/-${PVER}} ]]
90 then
91 echo "Versionize ${bin} -> ${bin}-${PVER}"
92 mv ${bin} ${bin}-${PVER} || die
93 ln -snf $(basename ${bin}-${PVER}) ${bin} || die
94 fi
95 done
96 }
97
98 keep_dev_package_libs()
99 {
100 local libs="$@"
101
102 # cleanup, only keep the libs, everything else get provided by the dev-package
103 zapmost ${BINDIR}/usr/$(mlibdir) "${libs}" || die
104 # multilib as well
105 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
106 then
107 zapmost ${BINDIR}/usr/lib "${libs}" || die
108 fi
109
110 # cleanup the rest, keep only libs
111 zapmost ${BINDIR} /usr/$(mlibdir) $([[ $(mlibdir) != lib ]] && echo "/usr/lib") || die
112 }
113
114 delete_dev_package_libs()
115 {
116 local libs="$@"
117 local i
118
119 # cleanup, the solibs are provided by the non-dev package
120 for i in ${libs}
121 do
122 rm ${BINDIR}/usr/$(mlibdir)/${i} || die
123 # multilib as well
124 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
125 then
126 rm ${BINDIR}/usr/lib/${i} || die
127 fi
128 done
129 }
130
131 GLIBC_DEPEND=">= virtual/glibc"
132 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
133 then
134 GLIBCDEV_DEPEND=">= virtual/glibc-dev"
135 fi
136 ZLIB_DEPEND=">= sys-libs/zlib-1.2.8"
137 COMMON_DEPEND="${GLIBC_DEPEND}
138 ${ZLIB_DEPEND}
139 >= dev-libs/gmp-6.0
140 >= dev-libs/mpfr-3.1
141 >= dev-libs/mpc-1.0.2"
142 LIBGCC_DEPEND="${GLIBC_DEPEND}"
143 LIBSSP_DEPEND="${GLIBC_DEPEND}"
144 LIBGOMP_DEPEND="${GLIBC_DEPEND}"
145 LIBMUDFLAP_DEPEND="${GLIBC_DEPEND}"
146 LIBQUADMATH_DEPEND="${GLIBC_DEPEND}"
147 LIBITM_DEPEND="${GLIBC_DEPEND}"
148 LIBATOMIC_DEPEND="${GLIBC_DEPEND}"
149 LIBASAN_DEPEND="${GLIBC_DEPEND}"
150 LIBTSAN_DEPEND="${GLIBC_DEPEND}"
151 LIBSTDCPP_DEPEND="${GLIBC_DEPEND}"
152
153 GCC_DEPEND="${COMMON_DEPEND}
154 >= sys-dev/binutils-2.25
155 >= dev-libs/isl-0.12
156 >= dev-libs/cloog-0.18.2
157 >= dev-libs/elfutils-0.161"
158
159 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
160 then
161 GCC_DEPEND="${GCC_DEPEND}
162 ${GLIBCDEV_DEPEND}"
163 fi
164
165 # special handling for libtsan, only x86-64
166 DEPEND_x86_64=">= sys-libs/libtsan-${PVER}"
167 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
168 then
169 DEPEND_x86_64="${DEPEND_x86_64}
170 >= sys-libs/libtsan-dev-${PVER}"
171 fi
172 SPECIAL_VARS="DEPEND_x86_64"
173
174 if lang_enabled java
175 then
176 SPLIT_PACKAGES+=" libgcj"
177 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
178 then
179 SPLIT_PACKAGES+=" libgcj-dev"
180 fi
181 SPLIT_PACKAGES+=" gcc-gcj"
182 LIBGCJ_DEPEND="${GLIBC_DEPEND}
183 ${ZLIB_DEPEND}"
184 JAVA_DEPEND="${COMMON_DEPEND}
185 >= dev-java/eclipse-ecj-3.6
186 >= dev-java/fastjar-0.98
187 >= sys-apps/file-5
188 >= app-arch/unzip-6
189 >= app-arch/zip-3
190 >= media-libs/alsa-lib-1.0.28
191 >= x11-libs/libSM-1.2
192 >= x11-libs/libXtst-1.2
193 >= dev-libs/glib2-2.42
194 >= x11-libs/gtk2+-2.24
195 >= media-libs/libart_lgpl-2.3.21"
196
197 # provided java version
198 JAVA_PVER="1.5.0-gcj-1.5.0.0"
199 fi
200
201 if lang_enabled ada
202 then
203 SPLIT_PACKAGES+=" libgnat"
204 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
205 then
206 SPLIT_PACKAGES+=" libgnat-dev"
207 fi
208 SPLIT_PACKAGES+=" gcc-gnat"
209 LIBGNAT_DEPEND="${GLIBC_DEPEND}"
210 ADA_DEPEND="${COMMON_DEPEND}"
211 if [[ ${ADA_BOOTSTRAP} = 1 ]]
212 then
213 GNAT_BIN_x86="gnatboot-4.3-i686.tar.bz2"
214 GNAT_BIN_x86_64="gnatboot-4.3-amd64.tar.bz2"
215 GNAT_BIN="$(eval echo \$GNAT_BIN_${ARCH/i*86/x86})"
216 GNAT_BIN_SRCDIR="${BUILDDIR}/gnat"
217 SRC_URI+=( mirror://${PNAME}/${GNAT_BIN_x86} )
218 SRC_URI+=( mirror://${PNAME}/${GNAT_BIN_x86_64} )
219 fi
220 fi
221
222 if lang_enabled fortran
223 then
224 SPLIT_PACKAGES+=" libgfortran"
225 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
226 then
227 SPLIT_PACKAGES+=" libgfortran-dev"
228 fi
229 SPLIT_PACKAGES+=" gcc-gfortran"
230 LIBGFORTRAN_DEPEND="${GLIBC_DEPEND}"
231 FORTRAN_DEPEND="${COMMON_DEPEND}"
232 fi
233
234 if lang_enabled go
235 then
236 SPLIT_PACKAGES+=" libgo"
237 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
238 then
239 SPLIT_PACKAGES+=" libgo-dev"
240 fi
241 SPLIT_PACKAGES+=" gcc-go"
242 LIBGO_DEPEND="${GLIBC_DEPEND}"
243 GO_DEPEND="${COMMON_DEPEND}"
244 fi
245
246 if lang_enabled objc
247 then
248 SPLIT_PACKAGES+=" libobjc"
249 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
250 then
251 SPLIT_PACKAGES+=" libobjc-dev"
252 fi
253 SPLIT_PACKAGES+=" gcc-objc"
254 LIBOBJC_DEPEND="${GLIBC_DEPEND}"
255 OBJC_DEPEND="${COMMON_DEPEND}"
256
257 if lang_enabled obj-c++
258 then
259 SPLIT_PACKAGES+=" gcc-objc++"
260 OBJCPP_DEPEND="${COMMON_DEPEND}"
261 fi
262 fi
263
264 SDEPEND="${LIBGCC_DEPEND}
265 ${LIBSSP_DEPEND}
266 ${LIBGOMP_DEPEND}
267 ${LIBMUDFLAP_DEPEND}
268 ${LIBQUADMATH_DEPEND}
269 ${LIBITM_DEPEND}
270 ${LIBATOMIC_DEPEND}
271 ${LIBASAN_DEPEND}
272 ${LIBTSAN_DEPEND}
273 ${LIBSTDCPP_DEPEND}
274 ${GCC_DEPEND}
275 ${LIBGCJ_DEPEND}
276 ${JAVA_DEPEND}
277 ${LIBGNAT_DEPEND}
278 ${ADA_DEPEND}
279 ${LIBGFORTRAN_DEPEND}
280 ${FORTRAN_DEPEND}
281 ${LIBGO_DEPEND}
282 ${GO_DEPEND}
283 ${LIBOBJC_DEPEND}
284 ${OBJC_DEPEND}
285 ${OBJCPP_DEPEND}
286 >= virtual/kernel-headers"
287
288 if [[ ${ADA_BOOTSTRAP} != 1 ]]
289 then
290 # add gnat to SDEPEND
291 SDEPEND="${SDEPEND}
292 >= sys-dev/gcc-gnat-4.8"
293 fi
294
295 SRCFILE="${PNAME}-${PVER}.tar.bz2"
296 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
297
298 # you better off when not using distcc to compile
299 # your new compiler :) maybe not all are the same
300 msetfeature "!distcc"
301
302 sminclude mtools cleanutils libtool
303
304 SRC_URI=(
305 ${SRC_URI[*]}
306 gnu://${PNAME}/${PNAME}-${PVER}/${SRCFILE}
307 mirror://${PNAME}/${SRCFILE}
308 mirror://${PNAME}/${PNAME}-4.5.1-no-fixincludes.patch
309 )
310
311 UP2DATE="updatecmd 'http://ftp.gnu.org/gnu/${PNAME}/' | grep '\[DIR\].*${PNAME}' | sed 's:.*${PNAME}-\(.*\)/.*:\1:' | upsort_pipe"
312
313 # gcc don't like strong CFLAGS
314 export CFLAGS="${CFLAGS//-O?} -O2"
315 export CXXFLAGS="${CFLAGS}"
316
317 # check for crosscompile or export default CHOST
318 if [[ -z ${CTARGET} ]]
319 then
320 # no crosscompile defined
321 export CTARGET=${CHOST}
322 else
323 # use crosscompile host
324 export CTARGET=${CTARGET}
325 fi
326
327 split_info_gcc()
328 {
329 DESCRIPTION="Modern C/C++ compiler written by the GNU people."
330
331 DEPEND="== sys-libs/libgcc-${PVER}
332 == sys-libs/libssp-${PVER}
333 == sys-libs/libgomp-${PVER}
334 == sys-libs/libmudflap-${PVER}
335 == sys-libs/libquadmath-${PVER}
336 == sys-libs/libitm-${PVER}
337 == sys-libs/libatomic-${PVER}
338 == sys-libs/libstdc++-${PVER}
339 == sys-libs/libasan-${PVER}
340 $(marchdepend)
341 ${GCC_DEPEND}"
342
343 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
344 then
345 DEPEND="${DEPEND}
346 == sys-libs/libgcc-dev-${PVER}
347 == sys-libs/libssp-dev-${PVER}
348 == sys-libs/libgomp-dev-${PVER}
349 == sys-libs/libmudflap-dev-${PVER}
350 == sys-libs/libquadmath-dev-${PVER}
351 == sys-libs/libitm-dev-${PVER}
352 == sys-libs/libatomic-dev-${PVER}
353 == sys-libs/libstdc++-dev-${PVER}
354 == sys-libs/libasan-dev-${PVER}"
355 fi
356 }
357
358 split_info_libgcc()
359 {
360 DESCRIPTION="GCC shared support library."
361 DEPEND="${LIBGCC_DEPEND}"
362 PCAT="sys-libs"
363 }
364
365 split_info_libgcc-dev()
366 {
367 DESCRIPTION="Development files for libgcc."
368 DEPEND="== sys-libs/libgcc-${PVER}"
369 PCAT="sys-libs"
370 }
371
372 split_info_libssp()
373 {
374 DESCRIPTION="Stack Smashing Protection library from GCC."
375 DEPEND="${LIBSSP_DEPEND}"
376 PCAT="sys-libs"
377 }
378
379 split_info_libssp-dev()
380 {
381 DESCRIPTION="Development files for libssp."
382 DEPEND="== sys-libs/libssp-${PVER}"
383 PCAT="sys-libs"
384 }
385
386 split_info_libgomp()
387 {
388 DESCRIPTION="GNU OpenMP runtime library."
389 DEPEND="${LIBGOMP_DEPEND}"
390 PCAT="sys-libs"
391 }
392
393 split_info_libgomp-dev()
394 {
395 DESCRIPTION="Development files for libgomp."
396 DEPEND="== sys-libs/libgomp-${PVER}"
397 PCAT="sys-libs"
398 }
399
400 split_info_libmudflap()
401 {
402 DESCRIPTION="GCC mudflap shared support library."
403 DEPEND="${LIBMUDFLAP_DEPEND}"
404 PCAT="sys-libs"
405 }
406
407 split_info_libmudflap-dev()
408 {
409 DESCRIPTION="Development files for libmudflap."
410 DEPEND="== sys-libs/libmudflap-${PVER}"
411 PCAT="sys-libs"
412 }
413
414 split_info_libquadmath()
415 {
416 DESCRIPTION="GCC __float128 shared support library."
417 DEPEND="${LIBQUADMATH_DEPEND}"
418 PCAT="sys-libs"
419 }
420
421 split_info_libquadmath-dev()
422 {
423 DESCRIPTION="Development files for libquadmath."
424 DEPEND="== sys-libs/libquadmath-${PVER}"
425 PCAT="sys-libs"
426 }
427
428 split_info_libitm()
429 {
430 DESCRIPTION="The GNU Transactional Memory library."
431 DEPEND="${LIBITM_DEPEND}"
432 PCAT="sys-libs"
433 }
434
435 split_info_libitm-dev()
436 {
437 DESCRIPTION="Development files for libitm."
438 DEPEND="== sys-libs/libitm-${PVER}"
439 PCAT="sys-libs"
440 }
441
442 split_info_libatomic()
443 {
444 DESCRIPTION="The GNU Atomic library."
445 DEPEND="${LIBATOMIC_DEPEND}"
446 PCAT="sys-libs"
447 }
448
449 split_info_libatomic-dev()
450 {
451 DESCRIPTION="Development files for libatomic."
452 DEPEND="== sys-libs/libatomic-${PVER}"
453 PCAT="sys-libs"
454 }
455
456 split_info_libasan()
457 {
458 DESCRIPTION="The Address Sanitizer runtime library."
459 DEPEND="== sys-libs/libgcc-${PVER}
460 == sys-libs/libstdc++-${PVER}
461 ${LIBASAN_DEPEND}"
462 PCAT="sys-libs"
463 }
464
465 split_info_libasan-dev()
466 {
467 DESCRIPTION="Development files for libasan."
468 DEPEND="== sys-libs/libasan-${PVER}"
469 PCAT="sys-libs"
470 }
471
472 split_info_libtsan()
473 {
474 DESCRIPTION="The Thread Sanitizer runtime library."
475 DEPEND="== sys-libs/libgcc-${PVER}
476 == sys-libs/libstdc++-${PVER}
477 ${LIBTSAN_DEPEND}"
478 PCAT="sys-libs"
479 }
480
481 split_info_libtsan-dev()
482 {
483 DESCRIPTION="Development files for libtsan."
484 DEPEND="== sys-libs/libtsan-${PVER}
485 == sys-libs/libgcc-dev-${PVER}
486 == sys-libs/libstdc++-dev-${PVER}"
487 PCAT="sys-libs"
488 }
489
490 split_info_libstdc++()
491 {
492 DESCRIPTION="Standard GNU C and C++ libraries."
493 DEPEND="== sys-libs/libgcc-${PVER}
494 ${LIBSTDCPP_DEPEND}"
495 PCAT="sys-libs"
496 }
497
498 split_info_libstdc++-dev()
499 {
500 DESCRIPTION="Development files for libstdc++."
501 DEPEND="== sys-libs/libstdc++-${PVER}
502 == sys-libs/libgcc-dev-${PVER}"
503 PCAT="sys-libs"
504 }
505
506 if lang_enabled java
507 then
508 split_info_libgcj()
509 {
510 DESCRIPTION="Java runtime library for GCC."
511 DEPEND="== sys-libs/libgcc-${PVER}
512 ${LIBGCJ_DEPEND}"
513 PCAT="sys-libs"
514 }
515
516 split_info_libgcj-dev()
517 {
518 DESCRIPTION="Development files for libgcj."
519 DEPEND="== sys-libs/libgcj-${PVER}
520 == sys-libs/libgcc-dev-${PVER}"
521 PCAT="sys-libs"
522 }
523
524 split_info_gcc-gcj()
525 {
526 DESCRIPTION="Java support for GCC."
527 DEPEND="== sys-libs/libgcc-${PVER}
528 == sys-libs/libstdc++-${PVER}
529 == sys-libs/libgcj-${PVER}
530 == sys-dev/gcc-${PVER}
531 ${JAVA_DEPEND}"
532 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
533 then
534 DEPEND="${DEPEND}
535 == sys-libs/libgcc-dev-${PVER}
536 == sys-libs/libstdc++-dev-${PVER}
537 == sys-libs/libgcj-dev-${PVER}"
538 fi
539 }
540 fi
541
542 if lang_enabled ada
543 then
544 split_info_libgnat()
545 {
546 DESCRIPTION="Gnu Ada 95 library which is needed to run Ada programs."
547 DEPEND="== sys-libs/libgcc-${PVER}
548 ${LIBGNAT_DEPEND}"
549 PCAT="sys-libs"
550 }
551
552 split_info_libgnat-dev()
553 {
554 DESCRIPTION="Development files for libgnat."
555 DEPEND="== sys-libs/libgnat-${PVER}
556 == sys-libs/libgcc-dev-${PVER}"
557 PCAT="sys-libs"
558 }
559
560 split_info_gcc-gnat()
561 {
562 DESCRIPTION="Ada 95 support for GCC."
563 DEPEND="== sys-libs/libgcc-${PVER}
564 == sys-libs/libstdc++-${PVER}
565 == sys-libs/libgnat-${PVER}
566 == sys-dev/gcc-${PVER}
567 ${ADA_DEPEND}"
568 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
569 then
570 DEPEND="${DEPEND}
571 == sys-libs/libgcc-dev-${PVER}
572 == sys-libs/libstdc++-dev-${PVER}
573 == sys-libs/libgnat-dev-${PVER}"
574 fi
575 }
576 fi
577
578 if lang_enabled fortran
579 then
580 split_info_libgfortran()
581 {
582 DESCRIPTION="Gnu Fortran library which is needed to run Fortran programs."
583 DEPEND="== sys-libs/libquadmath-${PVER}
584 ${LIBGFORTRAN_DEPEND}"
585 PCAT="sys-libs"
586 }
587
588 split_info_libgfortran-dev()
589 {
590 DESCRIPTION="Development files for libgfortran."
591 DEPEND="== sys-libs/libgfortran-${PVER}
592 == sys-libs/libquadmath-dev-${PVER}"
593 PCAT="sys-libs"
594 }
595
596 split_info_gcc-gfortran()
597 {
598 DESCRIPTION="Fortran support for GCC."
599 DEPEND="== sys-libs/libgcc-${PVER}
600 == sys-libs/libstdc++-${PVER}
601 == sys-libs/libgfortran-${PVER}
602 == sys-dev/gcc-${PVER}
603 ${FORTRAN_DEPEND}"
604 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
605 then
606 DEPEND="${DEPEND}
607 == sys-libs/libgcc-dev-${PVER}
608 == sys-libs/libstdc++-dev-${PVER}
609 == sys-libs/libgfortran-dev-${PVER}"
610 fi
611 }
612 fi
613
614 if lang_enabled go
615 then
616 split_info_libgo()
617 {
618 DESCRIPTION="Go library which is needed to run Go programs."
619 DEPEND="== sys-libs/libgcc-${PVER}
620 ${LIBGO_DEPEND}"
621 PCAT="sys-libs"
622 }
623
624 split_info_libgo-dev()
625 {
626 DESCRIPTION="Development files for libgo."
627 DEPEND="== sys-libs/libgo-${PVER}
628 == sys-libs/libgcc-dev-${PVER}"
629 PCAT="sys-libs"
630 }
631
632 split_info_gcc-go()
633 {
634 DESCRIPTION="Go support for GCC."
635 DEPEND="== sys-libs/libgcc-${PVER}
636 == sys-libs/libstdc++-${PVER}
637 == sys-libs/libgo-${PVER}
638 == sys-dev/gcc-${PVER}
639 ${GO_DEPEND}"
640 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
641 then
642 DEPEND="${DEPEND}
643 == sys-libs/libgcc-dev-${PVER}
644 == sys-libs/libstdc++-dev-${PVER}
645 == sys-libs/libgo-dev-${PVER}"
646 fi
647 }
648 fi
649
650 if lang_enabled objc
651 then
652 split_info_libobjc()
653 {
654 DESCRIPTION="Objective-C library which is needed to run Objective-C programs."
655 DEPEND="== sys-libs/libgcc-${PVER}
656 ${LIBOBJC_DEPEND}"
657 PCAT="sys-libs"
658 }
659
660 split_info_libobjc-dev()
661 {
662 DESCRIPTION="Development files for libobjc."
663 DEPEND="== sys-libs/libobjc-${PVER}
664 == sys-libs/libgcc-dev-${PVER}"
665 PCAT="sys-libs"
666 }
667
668 split_info_gcc-objc()
669 {
670 DESCRIPTION="Objective-C support for GCC."
671 DEPEND="== sys-libs/libgcc-${PVER}
672 == sys-libs/libstdc++-${PVER}
673 == sys-libs/libobjc-${PVER}
674 == sys-dev/gcc-${PVER}
675 ${OBJC_DEPEND}"
676 }
677
678 if lang_enabled obj-c++
679 then
680 split_info_gcc-objc++()
681 {
682 DESCRIPTION="Objective-C++ support for GCC."
683 DEPEND="== sys-libs/libgcc-${PVER}
684 == sys-libs/libstdc++-${PVER}
685 == sys-libs/libobjc-${PVER}
686 == sys-dev/gcc-${PVER}
687 == sys-dev/gcc-objc-${PVER}
688 ${OBJCPP_DEPEND}"
689 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
690 then
691 DEPEND="${DEPEND}
692 == sys-libs/libgcc-dev-${PVER}
693 == sys-libs/libstdc++-dev-${PVER}
694 == sys-libs/libobjc-dev-${PVER}"
695 fi
696 }
697 fi
698 fi
699
700 src_prepare()
701 {
702 munpack ${SRCFILE} || die
703
704 if lang_enabled ada
705 then
706 if [[ ${ADA_BOOTSTRAP} = 1 ]]
707 then
708 # setup binary ada if boostrap is enabled
709 install -d ${GNAT_BIN_SRCDIR} || die
710 munpack ${GNAT_BIN} ${GNAT_BIN_SRCDIR} || die
711 # gnat wrapper has problems with quotation
712 sed -i \
713 -e "/-DREVISION/d" \
714 -e "/-DDEVPHASE/d" \
715 -e "s: -DDATESTAMP=\$(DATESTAMP_s)::" \
716 ${SRCDIR}/gcc/Makefile.in || die
717 sed -i \
718 -e "s: DATESTAMP DEVPHASE REVISION::" \
719 -e "s:PKGVERSION:\"\":" \
720 ${SRCDIR}/gcc/version.c || die
721 fi
722 cd ${SRCDIR}
723 fi
724
725 cd ${SRCDIR}
726
727 # generic fixes
728 mpatch ${PNAME}-4.5.1-no-fixincludes.patch || die
729
730 # suppress installation of libffi, we're using libffi3 instead
731 sed -i 's/\(install.*:\) install-.*recursive/\1/' libffi/Makefile.in || die
732 sed -i 's/\(install-data-am:\).*/\1/' libffi/include/Makefile.in || die
733
734 install -d ${SRCDIR}/build || die
735 }
736
737 src_compile()
738 {
739 if lang_enabled ada
740 then
741 if [[ ${ADA_BOOTSTRAP} = 1 ]]
742 then
743 # export binary gnat pathes
744 export PATH="${GNAT_BIN_SRCDIR}/usr/bin:${PATH}"
745 export CC="${GNAT_BIN_SRCDIR}/usr/bin/gnatgcc"
746 # CPATH is supposed to be applied for any language, thus
747 # superseding either of C/CPLUS/OBJC_INCLUDE_PATHs
748 export CPATH="${GNAT_BIN_SRCDIR}/usr/lib/include"
749 export LIB_DIR="${GNAT_BIN_SRCDIR}/usr/lib"
750 export LDFLAGS="-L${GNAT_BIN_SRCDIR}/usr/lib"
751 export LIBRARY_PATH="${GNAT_BIN_SRCDIR}/usr/lib"
752 export ADA_OBJECTS_PATH="${GNAT_BIN_SRCDIR}/usr/lib/adalib"
753 export ADA_INCLUDE_PATH="${GNAT_BIN_SRCDIR}/usr/lib/adainclude"
754
755 # prepare some tools
756 cd ${GNAT_BIN_SRCDIR}
757 cp -v ${SRCDIR}/gcc/ada/xtreeprs.adb ${GNAT_BIN_SRCDIR} || die
758 cp -v ${SRCDIR}/gcc/ada/csinfo.adb ${GNAT_BIN_SRCDIR} || die
759 cp -v ${SRCDIR}/gcc/ada/ceinfo.adb ${GNAT_BIN_SRCDIR} || die
760 cp -v ${SRCDIR}/gcc/ada/xsinfo.adb ${GNAT_BIN_SRCDIR} || die
761 cp -v ${SRCDIR}/gcc/ada/xeinfo.adb ${GNAT_BIN_SRCDIR} || die
762 cp -v ${SRCDIR}/gcc/ada/xnmake.adb ${GNAT_BIN_SRCDIR} || die
763 cp -v ${SRCDIR}/gcc/ada/xutil.ad{s,b} ${GNAT_BIN_SRCDIR} || die
764 gnatmake xtreeprs || die
765 gnatmake xsinfo || die
766 gnatmake xeinfo || die
767 gnatmake xnmake || die
768 fi
769 fi
770
771 cd ${SRCDIR}/build
772 local myconf
773
774 # Straight from the GCC install doc:
775 # "GCC has code to correctly determine the correct value for target
776 # for nearly all native systems. Therefore, we highly recommend you
777 # not provide a configure target when configuring a native compiler."
778 if [[ ${CHOST} != ${CTARGET} ]]
779 then
780 myconf+=" --target=${CTARGET}"
781 fi
782
783 if lang_enabled java
784 then
785 myconf+=" --enable-java-awt=gtk
786 --enable-gtk-cairo
787 --enable-libgcj-multifile
788 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
789 --with-fastjar=/usr/bin/fastjar
790 --enable-hash-synchronization"
791 # disable mutilib for java
792 myconf+=" --disable-libjava-multilib"
793 # java home, must be the same of java-gcj-compat
794 myconf+=" --with-java-home=/usr/$(mlibdir)/jvm/java-${JAVA_PVER}/jre"
795 fi
796
797 # use isl backend
798 myconf+=" --enable-cloog-backend=isl"
799
800 # suppress installation of libiberty, as we will be
801 # using the one from binutils
802 myconf+=" --disable-install-libiberty"
803
804 # gcc >= 4.3 has now configure flags for uri and version - yeah!
805 AR=ar \
806 ../configure \
807 --with-bugurl="http://bugs.magellan-linux.de/" \
808 --with-pkgversion="Magellan-Linux" \
809 --build=${CHOST} \
810 --host=${CHOST} \
811 --prefix=/usr \
812 --sbindir=/usr/bin \
813 --mandir=/usr/share/man \
814 --infodir=/usr/share/info \
815 --libdir=/usr/$(mlibdir) \
816 --libexecdir=/usr/$(mlibdir) \
817 --enable-shared \
818 --enable-threads=posix \
819 --enable-__cxa_atexit \
820 --enable-clocale=gnu \
821 --enable-checking=release \
822 --with-system-zlib \
823 --enable-long-long \
824 --enable-cstdio=stdio \
825 --enable-languages=${MyLanguages} \
826 --disable-libstdcxx-pch \
827 --enable-gnu-unique-object \
828 --enable-lto \
829 --enable-plugin \
830 --enable-gold \
831 --with-plugin-ld=ld.gold \
832 --enable-ld=default \
833 --enable-linker-build-id \
834 --disable-install-libiberty \
835 ${myconf} \
836 || die
837
838 # parallel builds seems to break sometimes on x86_64
839 local myopts
840 [[ ${ARCH} = x86_64 ]] && myopts=-j1
841
842 # enable bootstrap if requested
843 local target
844 [[ ${GCC_BOOTSTRAP} = 1 ]] && target="bootstrap-lean"
845
846 mmake ${myopts} ${target} || die
847 }
848
849 src_install_gcc()
850 {
851 local i
852 local bin
853
854 cd ${SRCDIR}/build
855 minstalldir /$(mlibdir) || die
856
857 # install all targets
858 make DESTDIR=${BINDIR} install || die
859
860 # move gdb scripts to a proper location and to pretty-print ldconfig
861 minstalldir /usr/share/gdb/auto-load/usr/$(mlibdir) || die
862 mmove ${BINDIR}/usr/$(mlibdir)/libstdc++\*gdb.py\* /usr/share/gdb/auto-load/usr/$(mlibdir)/ || die
863 # multilib as well
864 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
865 then
866 minstalldir /usr/share/gdb/auto-load/usr/lib || die
867 mmove ${BINDIR}/usr/lib/libstdc++\*gdb.py\* /usr/share/gdb/auto-load/usr/lib/ || die
868 fi
869
870 # deletes libstdc++ && libgcc_s && libssp && libgomp libmudflap && libquadmath && libitm && libatomic && libasan
871 mdelete /usr/$(mlibdir)/libgcc_s.so\* || die
872 mmake -j1 -C ${CHOST}/libssp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
873 mmake -j1 -C ${CHOST}/libgomp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
874 mmake -j1 -C ${CHOST}/libmudflap DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
875 mmake -j1 -C ${CHOST}/libquadmath DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
876 mmake -j1 -C ${CHOST}/libitm DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
877 mmake -j1 -C ${CHOST}/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
878 mmake -j1 -C ${CHOST}/libsanitizer/asan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
879 if [[ ${ARCH} = x86_64 ]]
880 then
881 mmake -j1 -C ${CHOST}/libsanitizer/tsan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
882 fi
883 mmake -j1 -C ${CHOST}/libstdc++-v3/src DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
884 if [[ $(mlibdir) != lib ]]
885 then
886 mdelete /usr/lib/libgcc_s.so\* || die
887 mmake -j1 -C ${CHOST}/32/libssp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
888 mmake -j1 -C ${CHOST}/32/libgomp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
889 mmake -j1 -C ${CHOST}/32/libmudflap DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
890 mmake -j1 -C ${CHOST}/32/libquadmath DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
891 mmake -j1 -C ${CHOST}/32/libitm DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
892 mmake -j1 -C ${CHOST}/32/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
893 mmake -j1 -C ${CHOST}/32/libsanitizer/asan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
894 # only 64bit exist
895 # mmake -j1 -C ${CHOST}/32//libsanitizer/tsan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
896 mmake -j1 -C ${CHOST}/32/libstdc++-v3/src DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
897 fi
898 mdelete /usr/share/info/libgomp.info || die
899 mdelete /usr/share/info/libitm.info || die
900 mdelete /usr/share/info/libquadmath.info || die
901 find ${BINDIR}/usr/share/locale -name libstdc++.mo | xargs --no-run-if-empty --verbose rm -v || die
902
903 # deletes all java specific
904 if lang_enabled java
905 then
906 mmake -j1 -C ${CHOST}/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
907 if [[ $(mlibdir) != lib ]]
908 then
909 mmake -j1 -C ${CHOST}/32/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
910 fi
911 mdelete /usr/$(mlibdir)/libgcj_bc.so\* || die
912 mdelete -r /usr/include/c++/${PVER}/gcj || die
913 mdelete -r /usr/include/c++/${PVER}/gnu || die
914 mdelete -r /usr/include/c++/${PVER}/java || die
915 mdelete -r /usr/include/c++/${PVER}/javax || die
916 mdelete -r /usr/include/c++/${PVER}/org || die
917 mdelete -r /usr/include/c++/${PVER}/sun || die
918 mdelete -r /usr/$(mlibdir)/gcj\* || die
919 mdelete /usr/$(mlibdir)/logging.properties || die
920 mdelete /usr/$(mlibdir)/libgcj.spec || die
921 mdelete /usr/$(mlibdir)/pkgconfig/libgcj\*.pc || die
922 mdelete -r /usr/$(mlibdir)/security || die
923 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ecj1 || die
924 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/jc1 || die
925 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/jvgenmain || die
926 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/gcj || die
927 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/jvmpi.h || die
928 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/jawt.h || die
929 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/jawt_md.h || die
930 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/jni.h || die
931 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/jni_md.h || die
932 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
933 then
934 mdelete /usr/lib/libgcj_bc.so\* || die
935 mdelete -r /usr/lib/gcj\* || die
936 mdelete /usr/lib/logging.properties || die
937 mdelete -r /usr/lib/security || die
938 fi
939 mdelete /usr/share/info/cp-tools.info || die
940 mdelete /usr/share/info/gcj.info || die
941 mdelete -r /usr/share/java || die
942 mdelete -r /usr/share/gcc-${PVER}/python/libjava || die
943 for i in aot-compile gappletviewer gc-analyze gcj gcj-dbtool gcjh gij gjar \
944 gjarsigner gjavah gjdoc gkeytool gnative2ascii gorbd grmic grmid grmiregistry \
945 gserialver gtnameserv jcf-dump jv-convert rebuild-gcj-db ${CHOST}-gcj
946 do
947 if [ -f ${BINDIR}/usr/bin/${i} ]
948 then
949 mdelete /usr/bin/${i} || die
950 fi
951 if [ -f ${BINDIR}/usr/share/man/man1/${i}.1 ]
952 then
953 mdelete /usr/share/man/man1/${i}.1 || die
954 fi
955 done
956 fi
957
958 # deletes all ada specific
959 if lang_enabled ada
960 then
961 mdelete /usr/bin/gnat\* || die
962 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/gnat1 || die
963 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib || die
964 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adainclude || die
965 if [[ $(mlibdir) != lib ]]
966 then
967 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib || die
968 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adainclude || die
969 fi
970 mdelete /usr/share/info/gnat\*.info || die
971 fi
972
973 # deletes all fortran specific
974 if lang_enabled fortran
975 then
976 mmake -j1 -C ${CHOST}/libgfortran DESTDIR=${BINDIR} uninstall || die
977 if [[ $(mlibdir) != lib ]]
978 then
979 mmake -j1 -C ${CHOST}/32/libgfortran DESTDIR=${BINDIR} uninstall || die
980 fi
981 mdelete /usr/bin/gfortran || die
982 mdelete /usr/bin/${CHOST}-gfortran || die
983 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/f951 || die
984 mdelete /usr/share/info/gfortran.info || die
985 mdelete /usr/share/man/man1/gfortran.1 || die
986 fi
987
988 # deletes all go specific
989 if lang_enabled go
990 then
991 mmake -j1 -C ${CHOST}/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
992 if [[ $(mlibdir) != lib ]]
993 then
994 mmake -j1 -C ${CHOST}/32/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
995 fi
996 mdelete /usr/bin/gccgo || die
997 mdelete /usr/bin/${CHOST}-gccgo || die
998 mdelete -r /usr/$(mlibdir)/go || die
999 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/go1 || die
1000 mdelete /usr/$(mlibdir)/libgobegin.a || die
1001 if [[ $(mlibdir) != lib ]]
1002 then
1003 mdelete -r /usr/lib/go || die
1004 mdelete /usr/lib/libgobegin.a || die
1005 fi
1006 mdelete /usr/share/info/gccgo.info || die
1007 mdelete /usr/share/man/man1/gccgo.1 || die
1008 fi
1009
1010 # deletes all objc + obj-c++
1011 if lang_enabled objc
1012 then
1013 mdelete /usr/$(mlibdir)/libobjc.so\* || die
1014 mdelete /usr/$(mlibdir)/libobjc.a || die
1015 mdelete /usr/$(mlibdir)/libobjc.la || die
1016 if [[ $(mlibdir) != lib ]]
1017 then
1018 mdelete /usr/lib/libobjc.so\* || die
1019 mdelete /usr/lib/libobjc.a || die
1020 mdelete /usr/lib/libobjc.la || die
1021 fi
1022 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/cc1obj || die
1023 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/objc || die
1024
1025 if lang_enabled obj-c++
1026 then
1027 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/cc1objplus || die
1028 fi
1029 fi
1030
1031 # versionize all bins and symlink them
1032 versionize_all_bins || die
1033
1034 mlink ../usr/bin/cpp-${PVER} /usr/$(mlibdir)/cpp || die
1035 # this one is needed on multilib systems.
1036 # rpcgen may not find the cpp compiler correctly if not in /lib/cpp
1037 if [[ $(mlibdir) != lib ]]
1038 then
1039 minstalldir /usr/lib || die
1040 mlink ../usr/bin/cpp-${PVER} /usr/lib/cpp || die
1041 fi
1042 mlink gcc-${PVER} /usr/bin/cc || die
1043
1044 # fix all .la files
1045 # they may contain invalid libpathes which are not needed
1046 local la
1047 for la in $(find ${BINDIR} -name \*.la)
1048 do
1049 fix_la_file ${la} || die ${la}
1050 done
1051
1052 # remove /lib dirs to be usr-move compat
1053 if [[ -d ${BINDIR}/$(mlibdir) ]]
1054 then
1055 mdelete -r /$(mlibdir) || die
1056 fi
1057 if [[ $(mlibdir) != lib ]]
1058 then
1059 if [[ -d ${BINDIR}/lib ]]
1060 then
1061 mdelete -r /lib || die
1062 fi
1063 fi
1064 }
1065
1066 src_install_libgcc-common()
1067 {
1068 cd ${SRCDIR}/build
1069 mmake -j1 -C ${CHOST}/libgcc DESTDIR=${BINDIR} install-shared || die
1070 if [[ $(mlibdir) != lib ]]
1071 then
1072 mmake -j1 -C${CHOST}/32/libgcc DESTDIR=${BINDIR} install-shared || die
1073 fi
1074 mdelete -r /usr/$(mlibdir)/gcc || die
1075 }
1076
1077 src_install_libgcc()
1078 {
1079 src_install_libgcc-common || die
1080 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1081 then
1082 keep_dev_package_libs 'libgcc_s.so.*' || die
1083 fi
1084 }
1085
1086 src_install_libgcc-dev()
1087 {
1088 src_install_libgcc-common || die
1089 delete_dev_package_libs 'libgcc_s.so.*' || die
1090 }
1091
1092 src_install_libssp-common()
1093 {
1094 install_gcc_library "libssp" || die
1095 }
1096
1097 src_install_libssp()
1098 {
1099 src_install_libssp-common || die
1100 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1101 then
1102 keep_dev_package_libs 'libssp.so.*' || die
1103 fi
1104 }
1105
1106 src_install_libssp-dev()
1107 {
1108 src_install_libssp-common || die
1109 delete_dev_package_libs 'libssp.so.*' || die
1110 }
1111
1112 src_install_libgomp-common()
1113 {
1114 install_gcc_library "libgomp" || die
1115 mmake -j1 -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-info || die
1116 }
1117
1118 src_install_libgomp()
1119 {
1120 src_install_libgomp-common || die
1121 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1122 then
1123 keep_dev_package_libs 'libgomp.so.*' || die
1124 fi
1125 }
1126
1127 src_install_libgomp-dev()
1128 {
1129 src_install_libgomp-common || die
1130 delete_dev_package_libs 'libgomp.so.*' || die
1131 }
1132
1133 src_install_libmudflap-common()
1134 {
1135 install_gcc_library "libmudflap" || die
1136 }
1137
1138 src_install_libmudflap()
1139 {
1140 src_install_libmudflap-common || die
1141 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1142 then
1143 keep_dev_package_libs 'libmudflap.so.*' || die
1144 fi
1145 }
1146
1147 src_install_libmudflap-dev()
1148 {
1149 src_install_libmudflap-common || die
1150 delete_dev_package_libs 'libmudflap.so.*' || die
1151 }
1152
1153 src_install_libquadmath-common()
1154 {
1155 install_gcc_library "libquadmath" || die
1156 mmake -j1 -C ${CHOST}/libquadmath DESTDIR=${BINDIR} install-info || die
1157 }
1158
1159 src_install_libquadmath()
1160 {
1161 src_install_libquadmath-common || die
1162 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1163 then
1164 keep_dev_package_libs 'libquadmath.so.*' || die
1165 fi
1166 }
1167
1168 src_install_libquadmath-dev()
1169 {
1170 src_install_libquadmath-common || die
1171 delete_dev_package_libs 'libquadmath.so.*' || die
1172 }
1173
1174 src_install_libitm-common()
1175 {
1176 install_gcc_library "libitm"
1177 mmake -j1 -C ${CHOST}/libitm DESTDIR=${BINDIR} install-info || die
1178 }
1179
1180 src_install_libitm()
1181 {
1182 src_install_libitm-common || die
1183 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1184 then
1185 keep_dev_package_libs 'libitm.so.*' || die
1186 fi
1187 }
1188
1189 src_install_libitm-dev()
1190 {
1191 src_install_libitm-common || die
1192 delete_dev_package_libs 'libitm.so.*' || die
1193 }
1194
1195 src_install_libatomic-common()
1196 {
1197 install_gcc_library "libatomic" || die
1198 }
1199
1200 src_install_libatomic()
1201 {
1202 src_install_libatomic-common || die
1203 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1204 then
1205 keep_dev_package_libs 'libatomic.so.*' || die
1206 fi
1207 }
1208
1209 src_install_libatomic-dev()
1210 {
1211 src_install_libatomic-common || die
1212 delete_dev_package_libs 'libatomic.so.*' || die
1213 }
1214
1215 src_install_libasan-common()
1216 {
1217 install_gcc_library "libsanitizer/asan" || die
1218 }
1219
1220
1221 src_install_libasan()
1222 {
1223 src_install_libasan-common || die
1224 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1225 then
1226 keep_dev_package_libs 'libasan.so.*' || die
1227 fi
1228 }
1229
1230 src_install_libasan-dev()
1231 {
1232 src_install_libasan-common || die
1233 delete_dev_package_libs 'libasan.so.*' || die
1234 }
1235
1236 src_install_libtsan-common()
1237 {
1238 install_gcc_library "libsanitizer/tsan" || die
1239 }
1240
1241 src_install_libtsan()
1242 {
1243 src_install_libtsan-common || die
1244 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1245 then
1246 keep_dev_package_libs 'libtsan.so.*' || die
1247 fi
1248 }
1249 src_install_libtsan-dev()
1250 {
1251 src_install_libtsan-common || die
1252 delete_dev_package_libs 'libtsan.so.*' || die
1253 }
1254
1255 src_install_libstdc++-common()
1256 {
1257 install_gcc_library "libstdc++-v3/src" || die
1258 mmake -j1 -C ${CHOST}/libstdc++-v3/po DESTDIR=${BINDIR} install || die
1259 }
1260
1261 src_install_libstdc++()
1262 {
1263 src_install_libstdc++-common || die
1264 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1265 then
1266 keep_dev_package_libs 'libstdc++.so.*' || die
1267 fi
1268 }
1269
1270 src_install_libstdc++-dev()
1271 {
1272 src_install_libstdc++-common || die
1273 delete_dev_package_libs 'libstdc++.so.*' || die
1274 }
1275
1276 if lang_enabled java
1277 then
1278 src_install_libgcj-common()
1279 {
1280 install_gcc_library "libjava"
1281 }
1282
1283 src_install_libgcj()
1284 {
1285 src_install_libgcj-common || die
1286 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1287 then
1288 keep_dev_package_libs 'libgcj_bc.so.* libgcj-tools.so.* libgcj.so.* libgij.so.*' || die
1289 fi
1290 }
1291
1292 src_install_libgcj-dev()
1293 {
1294 src_install_libgcj-common || die
1295 delete_dev_package_libs 'libgcj_bc.so.* libgcj-tools.so.* libgcj.so.* libgij.so.*' || die
1296 }
1297
1298 src_install_gcc-gcj()
1299 {
1300 cd ${SRCDIR}/build
1301
1302 # install only java targets
1303 make -C ${CHOST}/libjava DESTDIR=${BINDIR} install || die
1304 make -C gcc DESTDIR=${BINDIR} java.install-common || die
1305 make -C gcc DESTDIR=${BINDIR} java.install-man || die
1306
1307 # missing bins
1308 minstallexec gcc/jc1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1309 minstallexec gcc/jvgenmain /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1310
1311 # remove libraries already included elsewhere
1312 mmake -j1 -C ${CHOST}/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1313 mdelete /usr/$(mlibdir)/libgcj_bc.so\* || die
1314 if [[ $(mlibdir) != lib ]]
1315 then
1316 mmake -j1 -C ${CHOST}/32/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1317 mdelete /usr/lib/libgcj_bc.so\* || die
1318 fi
1319
1320 # versionize all bins and symlink them
1321 versionize_all_bins || die
1322 }
1323 fi
1324
1325 if lang_enabled ada
1326 then
1327 src_install_libgnat-common()
1328 {
1329 cd ${SRCDIR}/build
1330 mmake -C gcc DESTDIR=${BINDIR} ada.install-common || die
1331 if [[ $(mlibdir) != lib ]]
1332 then
1333 # install 32bit libgnat
1334 # make tries to execute the libs, which fails
1335 # we override the INSTALL commands to *not* do that
1336 mmake -C ${CHOST}/32/libada DESTDIR=${BINDIR} INSTALL="install" INSTALL_DATA="install -m0644" install-gnatlib || die
1337 fi
1338 zapmost ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib libgnarl*.* libgnat*.* || die
1339
1340 # move so-libs to the right location
1341 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl-${PVER%.*}.so /usr/$(mlibdir) || die
1342 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat-${PVER%.*}.so /usr/$(mlibdir) || die
1343 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl.so || die
1344 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat.so || die
1345 mlink libgnarl-${PVER%.*}.so /usr/$(mlibdir)/libgnarl.so || die
1346 mlink libgnat-${PVER%.*}.so /usr/$(mlibdir)/libgnat.so || die
1347 mlink ../../../../libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl-${PVER%.*}.so || die
1348 mlink ../../../../libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat-${PVER%.*}.so || die
1349 mlink ../../../../libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl.so || die
1350 mlink ../../../../libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat.so || die
1351
1352 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adainclude || die
1353
1354 if [[ $(mlibdir) != lib ]]
1355 then
1356 zapmost ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib libgnarl*.* libgnat*.* || die
1357
1358 # move so-libs to the right location
1359 minstalldir /usr/lib || die
1360 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl-${PVER%.*}.so /usr/lib || die
1361 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat-${PVER%.*}.so /usr/lib || die
1362 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl.so || die
1363 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat.so || die
1364 mlink libgnarl-${PVER%.*}.so /usr/lib/libgnarl.so || die
1365 mlink libgnat-${PVER%.*}.so /usr/lib/libgnat.so || die
1366 mlink ../../../../../../lib/libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl-${PVER%.*}.so || die
1367 mlink ../../../../../../lib/libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat-${PVER%.*}.so || die
1368 mlink ../../../../../../lib/libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl.so || die
1369 mlink ../../../../../../lib/libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat.so || die
1370
1371 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adainclude || die
1372 fi
1373
1374 # remove other
1375 mdelete -r /usr/bin || die
1376 }
1377
1378 src_install_libgnat()
1379 {
1380 src_install_libgnat-common || die
1381 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1382 then
1383 keep_dev_package_libs "libgnarl-${PVER%.*}.so libgnarl.so libgnat-${PVER%.*}.so libgnat.so" || die
1384 fi
1385 }
1386
1387 src_install_libgnat-dev()
1388 {
1389 src_install_libgnat-common || die
1390 delete_dev_package_libs "libgnarl-${PVER%.*}.so libgnarl.so libgnat-${PVER%.*}.so libgnat.so" || die
1391 }
1392
1393 src_install_gcc-gnat()
1394 {
1395 cd ${SRCDIR}/build
1396 mmake -C gcc DESTDIR=${BINDIR} ada.install-common || die
1397 if [[ $(mlibdir) != lib ]]
1398 then
1399 # install 32bit libgnat
1400 # make tries to execute the libs, which fails
1401 # we override the INSTALL commands to *not* do that
1402 mmake -C ${CHOST}/32/libada DESTDIR=${BINDIR} INSTALL="install" INSTALL_DATA="install -m0644" install-gnatlib || die
1403 fi
1404 mmake -C gcc DESTDIR=${BINDIR} ada.install-info || die
1405 minstallexec gcc/gnat1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER} || die
1406
1407 # remove libraries already included elsewhere
1408 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl\*.\* || die
1409 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat\*.\* || die
1410 if [[ $(mlibdir) != lib ]]
1411 then
1412 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl\*.\* || die
1413 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat\*.\* || die
1414 fi
1415
1416 # versionize all bins and symlink them
1417 versionize_all_bins || die
1418 }
1419 fi
1420
1421 if lang_enabled fortran
1422 then
1423 src_install_libgfortran-common()
1424 {
1425 install_gcc_library "libgfortran"
1426 }
1427
1428 src_install_libgfortran()
1429 {
1430 src_install_libgfortran-common || die
1431 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1432 then
1433 keep_dev_package_libs 'libgfortran.so.*' || die
1434 fi
1435 }
1436
1437 src_install_libgfortran-dev()
1438 {
1439 src_install_libgfortran-common || die
1440 delete_dev_package_libs 'libgfortran.so.*' || die
1441 }
1442
1443 src_install_gcc-gfortran()
1444 {
1445 cd ${SRCDIR}/build
1446
1447 # omp headers needed by fortran
1448 mmake -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-nodist_fincludeHEADERS || die
1449 mmake -C gcc DESTDIR=${BINDIR} fortran.install-common || die
1450 mmake -C gcc DESTDIR=${BINDIR} fortran.install-man || die
1451 mmake -C gcc DESTDIR=${BINDIR} fortran.install-info || die
1452 # missing binaries
1453 minstallexec gcc/f951 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/f951 || die
1454 mlink gfortran /usr/bin/f95 || die
1455
1456 # remove libraries already included elsewhere
1457 mmake -C ${CHOST}/libgomp DESTDIR=${BINDIR} uninstall-nodist_fincludeHEADERS || die
1458
1459 # versionize all bins and symlink them
1460 versionize_all_bins || die
1461 }
1462 fi
1463
1464 if lang_enabled go
1465 then
1466 src_install_libgo-common()
1467 {
1468 install_gcc_library "libgo" || die
1469 }
1470
1471 src_install_libgo()
1472 {
1473 src_install_libgo-common || die
1474 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1475 then
1476 keep_dev_package_libs 'libgo.so.*' || die
1477 fi
1478 }
1479
1480 src_install_libgo-dev()
1481 {
1482 src_install_libgo-common || die
1483 delete_dev_package_libs 'libgo.so.*' || die
1484 }
1485
1486 src_install_gcc-go()
1487 {
1488 cd ${SRCDIR}/build
1489 mmake DESTDIR=${BINDIR} install-target-libgo || die
1490 mmake -C gcc DESTDIR=${BINDIR} go.install-common || die
1491 mmake -C gcc DESTDIR=${BINDIR} go.install-man || die
1492 mmake -C gcc DESTDIR=${BINDIR} go.install-info || die
1493 minstallexec gcc/go1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1494
1495 # remove libraries already included elsewhere
1496 mmake -j1 -C ${CHOST}/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1497 mmake -j1 -C ${CHOST}/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1498 if [[ $(mlibdir) != lib ]]
1499 then
1500 mmake -j1 -C ${CHOST}/32/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1501 mmake -j1 -C ${CHOST}/32/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1502 fi
1503
1504 # versionize all bins and symlink them
1505 versionize_all_bins || die
1506 }
1507 fi
1508
1509 if lang_enabled objc
1510 then
1511 src_install_libobjc-common()
1512 {
1513 install_gcc_library "libobjc" || die
1514 }
1515
1516 src_install_libobjc()
1517 {
1518 cd ${SRCDIR}/build
1519 mmake -j1 -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-libs || die
1520 if [[ $(mlibdir) != lib ]]
1521 then
1522 mmake -j1 -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-libs || die
1523 fi
1524
1525 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1526 then
1527 keep_dev_package_libs 'libobjc.so.*' || die
1528 fi
1529 }
1530
1531 src_install_libobjc-dev()
1532 {
1533 cd ${SRCDIR}/build
1534 mmake -j1 -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-libs || die
1535 if [[ $(mlibdir) != lib ]]
1536 then
1537 mmake -j1 -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-libs || die
1538 fi
1539 delete_dev_package_libs 'libobjc.so.*' || die
1540 }
1541
1542 src_install_gcc-objc()
1543 {
1544 cd ${SRCDIR}/build
1545 mmake -j1 -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-headers || die
1546 if [[ $(mlibdir) != lib ]]
1547 then
1548 mmake -j1 -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-headers || die
1549 fi
1550 minstalldir /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1551 minstallexec gcc/cc1obj /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1552 }
1553
1554 if lang_enabled obj-c++
1555 then
1556 src_install_gcc-objc++()
1557 {
1558 cd ${SRCDIR}/build
1559 minstalldir /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1560 minstallexec gcc/cc1objplus /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1561 }
1562 fi
1563 fi