Magellan Linux

Contents of /trunk/core/gcc/gcc-4.9.2-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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