Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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