Magellan Linux

Contents of /smage/trunk/core/gcc/gcc-4.9.0-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5653 - (show annotations) (download)
Tue May 13 12:26:36 2014 UTC (10 years, 1 month ago) by niro
File size: 43918 byte(s)
auto added: ver bump to 4.9.0-r1
1 # $Id$
2
3 PNAME="gcc"
4 PVER="4.9.0"
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++
19
20 # 1=bootstrap the whole gcc suite, using bootstrap-lean method
21 # 0=no bootstrap, use this only for quick builds to test something but never for release
22 GCC_BOOTSTRAP="1"
23
24 # 1=bootstrap ada, using precompiled gnat binaries
25 # 0=no bootstrap, build ada with system gnat - requires sys-dev/gcc-gnat
26 ADA_BOOTSTRAP="0"
27
28 # 1=enable dev split packages
29 # 0=disable dev split packages
30 ENABLE_DEV_PACKAGES="1"
31
32 SPLIT_PACKAGES="libgcc libssp libgomp libquadmath libitm libatomic libstdc++ libasan liblsan 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 liblsan libubsan-dev libcirlkrts-dev libvtv-dev"
38 fi
39
40 # thread sanitizer is only available on x86_64
41 if [[ ${ARCH} = x86_64 ]]
42 then
43 SPLIT_PACKAGES+=" libtsan"
44 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
45 then
46 SPLIT_PACKAGES+=" libtsan-dev"
47 fi
48 fi
49
50 # always enable gcc
51 SPLIT_PACKAGES+=" gcc"
52
53 # helper functions
54 lang_enabled()
55 {
56 local lang="$1"
57
58 if [[ ${MyLanguages//${lang}} != ${MyLanguages} ]]
59 then
60 return 0
61 else
62 return 1
63 fi
64 }
65
66 install_gcc_library()
67 {
68 local library="$1"
69
70 cd ${SRCDIR}/build
71 mmake -j1 -C ${CHOST}/${library} DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
72 if [[ $(mlibdir) != lib ]]
73 then
74 if [ -d ${CHOST}/32/${library} ]
75 then
76 mmake -j1 -C ${CHOST}/32/${library} DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
77 fi
78 fi
79 }
80
81 versionize_all_bins()
82 {
83 local bin
84
85 for bin in $(find ${BINDIR}/usr/bin -type f)
86 do
87 echo ${bin}
88 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.24
153 >= dev-libs/isl-0.12
154 >= dev-libs/cloog-0.18
155 >= dev-libs/elfutils-0.158"
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 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
166 then
167 DEPEND_x86_64="${DEPEND_x86_64}
168 >= sys-libs/libtsan-dev-${PVER}"
169 fi
170 SPECIAL_VARS="DEPEND_x86_64"
171
172 if lang_enabled java
173 then
174 SPLIT_PACKAGES+=" libgcj"
175 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
176 then
177 SPLIT_PACKAGES+=" libgcj-dev"
178 fi
179 SPLIT_PACKAGES+=" gcc-gcj"
180 LIBGCJ_DEPEND="${GLIBC_DEPEND}
181 ${ZLIB_DEPEND}"
182 JAVA_DEPEND="${COMMON_DEPEND}
183 >= dev-java/eclipse-ecj-3.6
184 >= dev-java/fastjar-0.98
185 >= sys-apps/file-5
186 >= app-arch/unzip-6
187 >= app-arch/zip-3
188 >= media-libs/alsa-lib-1.0.27
189 >= x11-libs/libSM-1.2
190 >= x11-libs/libXtst-1.2
191 >= dev-libs/glib2-2.38
192 >= x11-libs/gtk2+-2.24
193 >= media-libs/libart_lgpl-2.3.21"
194
195 # provided java version
196 JAVA_PVER="1.5.0-gcj-1.5.0.0"
197 fi
198
199 if lang_enabled ada
200 then
201 SPLIT_PACKAGES+=" libgnat"
202 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
203 then
204 SPLIT_PACKAGES+=" libgnat-dev"
205 fi
206 SPLIT_PACKAGES+=" gcc-gnat"
207 LIBGNAT_DEPEND="${GLIBC_DEPEND}"
208 ADA_DEPEND="${COMMON_DEPEND}"
209 if [[ ${ADA_BOOTSTRAP} = 1 ]]
210 then
211 GNAT_BIN_x86="gnatboot-4.3-i686.tar.bz2"
212 GNAT_BIN_x86_64="gnatboot-4.3-amd64.tar.bz2"
213 GNAT_BIN="$(eval echo \$GNAT_BIN_${ARCH/i*86/x86})"
214 GNAT_BIN_SRCDIR="${BUILDDIR}/gnat"
215 SRC_URI+=( mirror://${PNAME}/${GNAT_BIN_x86} )
216 SRC_URI+=( mirror://${PNAME}/${GNAT_BIN_x86_64} )
217 fi
218 fi
219
220 if lang_enabled fortran
221 then
222 SPLIT_PACKAGES+=" libgfortran"
223 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
224 then
225 SPLIT_PACKAGES+=" libgfortran-dev"
226 fi
227 SPLIT_PACKAGES+=" gcc-gfortran"
228 LIBGFORTRAN_DEPEND="${GLIBC_DEPEND}"
229 FORTRAN_DEPEND="${COMMON_DEPEND}"
230 fi
231
232 if lang_enabled go
233 then
234 SPLIT_PACKAGES+=" libgo"
235 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
236 then
237 SPLIT_PACKAGES+=" libgo-dev"
238 fi
239 SPLIT_PACKAGES+=" gcc-go"
240 LIBGO_DEPEND="${GLIBC_DEPEND}"
241 GO_DEPEND="${COMMON_DEPEND}"
242 fi
243
244 if lang_enabled objc
245 then
246 SPLIT_PACKAGES+=" libobjc"
247 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
248 then
249 SPLIT_PACKAGES+=" libobjc-dev"
250 fi
251 SPLIT_PACKAGES+=" gcc-objc"
252 LIBOBJC_DEPEND="${GLIBC_DEPEND}"
253 OBJC_DEPEND="${COMMON_DEPEND}"
254
255 if lang_enabled obj-c++
256 then
257 SPLIT_PACKAGES+=" gcc-objc++"
258 OBJCPP_DEPEND="${COMMON_DEPEND}"
259 fi
260 fi
261
262 SDEPEND="${LIBGCC_DEPEND}
263 ${LIBSSP_DEPEND}
264 ${LIBGOMP_DEPEND}
265 ${LIBQUADMATH_DEPEND}
266 ${LIBITM_DEPEND}
267 ${LIBATOMIC_DEPEND}
268 ${LIBASAN_DEPEND}
269 ${LIBLSAN_DEPEND}
270 ${LIBUBSAN_DEPEND}
271 ${LIBTSAN_DEPEND}
272 ${LIBCILKRTS_DEPEND}
273 ${LIBVTV_DEPEND}
274 ${LIBSTDCPP_DEPEND}
275 ${GCC_DEPEND}
276 ${LIBGCJ_DEPEND}
277 ${JAVA_DEPEND}
278 ${LIBGNAT_DEPEND}
279 ${ADA_DEPEND}
280 ${LIBGFORTRAN_DEPEND}
281 ${FORTRAN_DEPEND}
282 ${LIBGO_DEPEND}
283 ${GO_DEPEND}
284 ${LIBOBJC_DEPEND}
285 ${OBJC_DEPEND}
286 ${OBJCPP_DEPEND}
287 >= virtual/kernel-headers"
288
289 if [[ ${ADA_BOOTSTRAP} != 1 ]]
290 then
291 # add gnat to SDEPEND
292 SDEPEND="${SDEPEND}
293 >= sys-dev/gcc-gnat-4.9"
294 fi
295
296 SRCFILE="${PNAME}-${PVER}.tar.bz2"
297 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
298
299 # you better off when not using distcc to compile
300 # your new compiler :) maybe not all are the same
301 msetfeature "!distcc"
302
303 sminclude mtools cleanutils libtool
304
305 SRC_URI=(
306 ${SRC_URI[*]}
307 gnu://${PNAME}/${PNAME}-${PVER}/${SRCFILE}
308 mirror://${PNAME}/${SRCFILE}
309 mirror://${PNAME}/${PNAME}-4.5.1-no-fixincludes.patch
310 mirror://${PNAME}/${PNAME}-4.7.1-libada-pic.patch
311 mirror://${PNAME}/${PNAME}-4.8-filename-output.patch
312 mirror://${PNAME}/${PNAME}-4.9-tree-ssa-threadedge.patch.patch
313 )
314
315 UP2DATE="updatecmd 'http://ftp.gnu.org/gnu/${PNAME}/?C=M;O=A' | grep '\[DIR\]' | sed -n 's:.*${PNAME}-\(.*\)/.*:\1:;$ p'"
316
317 # gcc don't like strong CFLAGS
318 export CFLAGS="${CFLAGS//-O?} -O2"
319 export CXXFLAGS="${CFLAGS}"
320
321 # check for crosscompile or export default CHOST
322 if [[ -z ${CTARGET} ]]
323 then
324 # no crosscompile defined
325 export CTARGET=${CHOST}
326 else
327 # use crosscompile host
328 export CTARGET=${CTARGET}
329 fi
330
331 split_info_gcc()
332 {
333 DESCRIPTION="Modern C/C++ compiler written by the GNU people."
334
335 DEPEND="== sys-libs/libgcc-${PVER}
336 == sys-libs/libssp-${PVER}
337 == sys-libs/libgomp-${PVER}
338 == sys-libs/libquadmath-${PVER}
339 == sys-libs/libitm-${PVER}
340 == sys-libs/libatomic-${PVER}
341 == sys-libs/libstdc++-${PVER}
342 == sys-libs/libasan-${PVER}
343 == sys-libs/liblsan-${PVER}
344 == sys-libs/libubsan-${PVER}
345 == sys-libs/libcilkrts-${PVER}
346 $(marchdepend)
347 ${GCC_DEPEND}"
348
349 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
350 then
351 DEPEND="${DEPEND}
352 == sys-libs/libgcc-dev-${PVER}
353 == sys-libs/libssp-dev-${PVER}
354 == sys-libs/libgomp-dev-${PVER}
355 == sys-libs/libquadmath-dev-${PVER}
356 == sys-libs/libitm-dev-${PVER}
357 == sys-libs/libatomic-dev-${PVER}
358 == sys-libs/libstdc++-dev-${PVER}
359 == sys-libs/libasan-dev-${PVER}
360 == sys-libs/liblsan-dev-${PVER}
361 == sys-libs/libubsan-dev-${PVER}
362 == sys-libs/libcilkrts-dev-${PVER}"
363 fi
364 }
365
366 split_info_libgcc()
367 {
368 DESCRIPTION="GCC shared support library."
369 DEPEND="${LIBGCC_DEPEND}"
370 PCAT="sys-libs"
371 }
372
373 split_info_libgcc-dev()
374 {
375 DESCRIPTION="Development files for libgcc."
376 DEPEND="== sys-libs/libgcc-${PVER}"
377 PCAT="sys-libs"
378 }
379
380 split_info_libssp()
381 {
382 DESCRIPTION="Stack Smashing Protection library from GCC."
383 DEPEND="${LIBSSP_DEPEND}"
384 PCAT="sys-libs"
385 }
386
387 split_info_libssp-dev()
388 {
389 DESCRIPTION="Development files for libssp."
390 DEPEND="== sys-libs/libssp-${PVER}"
391 PCAT="sys-libs"
392 }
393
394 split_info_libgomp()
395 {
396 DESCRIPTION="GNU OpenMP runtime library."
397 DEPEND="${LIBGOMP_DEPEND}"
398 PCAT="sys-libs"
399 }
400
401 split_info_libgomp-dev()
402 {
403 DESCRIPTION="Development files for libgomp."
404 DEPEND="== sys-libs/libgomp-${PVER}"
405 PCAT="sys-libs"
406 }
407
408 split_info_libquadmath()
409 {
410 DESCRIPTION="GCC __float128 shared support library."
411 DEPEND="${LIBQUADMATH_DEPEND}"
412 PCAT="sys-libs"
413 }
414
415 split_info_libquadmath-dev()
416 {
417 DESCRIPTION="Development files for libquadmath."
418 DEPEND="== sys-libs/libquadmath-${PVER}"
419 PCAT="sys-libs"
420 }
421
422 split_info_libitm()
423 {
424 DESCRIPTION="The GNU Transactional Memory library."
425 DEPEND="${LIBITM_DEPEND}"
426 PCAT="sys-libs"
427 }
428
429 split_info_libitm-dev()
430 {
431 DESCRIPTION="Development files for libitm."
432 DEPEND="== sys-libs/libitm-${PVER}"
433 PCAT="sys-libs"
434 }
435
436 split_info_libatomic()
437 {
438 DESCRIPTION="The GNU Atomic library."
439 DEPEND="${LIBATOMIC_DEPEND}"
440 PCAT="sys-libs"
441 }
442
443 split_info_libatomic-dev()
444 {
445 DESCRIPTION="Development files for libatomic."
446 DEPEND="== sys-libs/libatomic-${PVER}"
447 PCAT="sys-libs"
448 }
449
450 split_info_libasan()
451 {
452 DESCRIPTION="The Address Sanitizer runtime library."
453 DEPEND="== sys-libs/libgcc-${PVER}
454 == sys-libs/libstdc++-${PVER}
455 ${LIBASAN_DEPEND}"
456 PCAT="sys-libs"
457 }
458
459 split_info_libasan-dev()
460 {
461 DESCRIPTION="Development files for libasan."
462 DEPEND="== sys-libs/libasan-${PVER}"
463 PCAT="sys-libs"
464 }
465
466 split_info_liblsan()
467 {
468 DESCRIPTION="The Leak Sanitizer runtime library."
469 DEPEND="== sys-libs/libgcc-${PVER}
470 == sys-libs/libstdc++-${PVER}
471 ${LIBLSAN_DEPEND}"
472 PCAT="sys-libs"
473 }
474
475 split_info_liblsan-dev()
476 {
477 DESCRIPTION="Development files for liblsan."
478 DEPEND="== sys-libs/liblsan-${PVER}"
479 PCAT="sys-libs"
480 }
481
482 split_info_libubsan()
483 {
484 DESCRIPTION="The Undefined behavior Sanitizer runtime library."
485 DEPEND="== sys-libs/libgcc-${PVER}
486 == sys-libs/libstdc++-${PVER}
487 ${LIBUBSAN_DEPEND}"
488 PCAT="sys-libs"
489 }
490
491 split_info_libubsan-dev()
492 {
493 DESCRIPTION="Development files for libubsan."
494 DEPEND="== sys-libs/libubsan-${PVER}"
495 PCAT="sys-libs"
496 }
497
498 split_info_libtsan()
499 {
500 DESCRIPTION="The Thread Sanitizer runtime library."
501 DEPEND="== sys-libs/libgcc-${PVER}
502 == sys-libs/libstdc++-${PVER}
503 ${LIBTSAN_DEPEND}"
504 PCAT="sys-libs"
505 }
506
507 split_info_libtsan-dev()
508 {
509 DESCRIPTION="Development files for libtsan."
510 DEPEND="== sys-libs/libtsan-${PVER}
511 == sys-libs/libgcc-dev-${PVER}
512 == sys-libs/libstdc++-dev-${PVER}"
513 PCAT="sys-libs"
514 }
515
516 split_info_libcilkrts()
517 {
518 DESCRIPTION="The Cilk+ runtime library."
519 DEPEND="== sys-libs/libgcc-${PVER}
520 == sys-libs/libstdc++-${PVER}
521 ${LIBCILKRTS_DEPEND}"
522 PCAT="sys-libs"
523 }
524
525 split_info_libcilkrts-dev()
526 {
527 DESCRIPTION="Development files for libcilkrts."
528 DEPEND="== sys-libs/libcilkrts-${PVER}
529 == sys-libs/libgcc-dev-${PVER}
530 == sys-libs/libstdc++-dev-${PVER}"
531 PCAT="sys-libs"
532 }
533
534 split_info_libvtv()
535 {
536 DESCRIPTION="Vtable Verification runtime library."
537 DEPEND="${LIBVTV_DEPEND}"
538 PCAT="sys-libs"
539 }
540
541 split_info_libvtv-dev()
542 {
543 DESCRIPTION="Development files for libvtv."
544 DEPEND="== sys-libs/libvtv-${PVER}"
545 PCAT="sys-libs"
546 }
547
548 split_info_libstdc++()
549 {
550 DESCRIPTION="Standard GNU C and C++ libraries."
551 DEPEND="== sys-libs/libgcc-${PVER}
552 ${LIBSTDCPP_DEPEND}"
553 PCAT="sys-libs"
554 }
555
556 split_info_libstdc++-dev()
557 {
558 DESCRIPTION="Development files for libstdc++."
559 DEPEND="== sys-libs/libstdc++-${PVER}
560 == sys-libs/libgcc-dev-${PVER}"
561 PCAT="sys-libs"
562 }
563
564 if lang_enabled java
565 then
566 split_info_libgcj()
567 {
568 DESCRIPTION="Java runtime library for GCC."
569 DEPEND="== sys-libs/libgcc-${PVER}
570 ${LIBGCJ_DEPEND}"
571 PCAT="sys-libs"
572 }
573
574 split_info_libgcj-dev()
575 {
576 DESCRIPTION="Development files for libgcj."
577 DEPEND="== sys-libs/libgcj-${PVER}
578 == sys-libs/libgcc-dev-${PVER}"
579 PCAT="sys-libs"
580 }
581
582 split_info_gcc-gcj()
583 {
584 DESCRIPTION="Java support for GCC."
585 DEPEND="== sys-libs/libgcc-${PVER}
586 == sys-libs/libstdc++-${PVER}
587 == sys-libs/libgcj-${PVER}
588 == sys-dev/gcc-${PVER}
589 ${JAVA_DEPEND}"
590 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
591 then
592 DEPEND="${DEPEND}
593 == sys-libs/libgcc-dev-${PVER}
594 == sys-libs/libstdc++-dev-${PVER}
595 == sys-libs/libgcj-dev-${PVER}"
596 fi
597 }
598 fi
599
600 if lang_enabled ada
601 then
602 split_info_libgnat()
603 {
604 DESCRIPTION="Gnu Ada 95 library which is needed to run Ada programs."
605 DEPEND="== sys-libs/libgcc-${PVER}
606 ${LIBGNAT_DEPEND}"
607 PCAT="sys-libs"
608 }
609
610 split_info_libgnat-dev()
611 {
612 DESCRIPTION="Development files for libgnat."
613 DEPEND="== sys-libs/libgnat-${PVER}
614 == sys-libs/libgcc-dev-${PVER}"
615 PCAT="sys-libs"
616 }
617
618 split_info_gcc-gnat()
619 {
620 DESCRIPTION="Ada 95 support for GCC."
621 DEPEND="== sys-libs/libgcc-${PVER}
622 == sys-libs/libstdc++-${PVER}
623 == sys-libs/libgnat-${PVER}
624 == sys-dev/gcc-${PVER}
625 ${ADA_DEPEND}"
626 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
627 then
628 DEPEND="${DEPEND}
629 == sys-libs/libgcc-dev-${PVER}
630 == sys-libs/libstdc++-dev-${PVER}
631 == sys-libs/libgnat-dev-${PVER}"
632 fi
633 }
634 fi
635
636 if lang_enabled fortran
637 then
638 split_info_libgfortran()
639 {
640 DESCRIPTION="Gnu Fortran library which is needed to run Fortran programs."
641 DEPEND="== sys-libs/libquadmath-${PVER}
642 ${LIBGFORTRAN_DEPEND}"
643 PCAT="sys-libs"
644 }
645
646 split_info_libgfortran-dev()
647 {
648 DESCRIPTION="Development files for libgfortran."
649 DEPEND="== sys-libs/libgfortran-${PVER}
650 == sys-libs/libquadmath-dev-${PVER}"
651 PCAT="sys-libs"
652 }
653
654 split_info_gcc-gfortran()
655 {
656 DESCRIPTION="Fortran support for GCC."
657 DEPEND="== sys-libs/libgcc-${PVER}
658 == sys-libs/libstdc++-${PVER}
659 == sys-libs/libgfortran-${PVER}
660 == sys-dev/gcc-${PVER}
661 ${FORTRAN_DEPEND}"
662 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
663 then
664 DEPEND="${DEPEND}
665 == sys-libs/libgcc-dev-${PVER}
666 == sys-libs/libstdc++-dev-${PVER}
667 == sys-libs/libgfortran-dev-${PVER}"
668 fi
669 }
670 fi
671
672 if lang_enabled go
673 then
674 split_info_libgo()
675 {
676 DESCRIPTION="Go library which is needed to run Go programs."
677 DEPEND="== sys-libs/libgcc-${PVER}
678 ${LIBGO_DEPEND}"
679 PCAT="sys-libs"
680 }
681
682 split_info_libgo-dev()
683 {
684 DESCRIPTION="Development files for libgo."
685 DEPEND="== sys-libs/libgo-${PVER}
686 == sys-libs/libgcc-dev-${PVER}"
687 PCAT="sys-libs"
688 }
689
690 split_info_gcc-go()
691 {
692 DESCRIPTION="Go support for GCC."
693 DEPEND="== sys-libs/libgcc-${PVER}
694 == sys-libs/libstdc++-${PVER}
695 == sys-libs/libgo-${PVER}
696 == sys-dev/gcc-${PVER}
697 ${GO_DEPEND}"
698 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
699 then
700 DEPEND="${DEPEND}
701 == sys-libs/libgcc-dev-${PVER}
702 == sys-libs/libstdc++-dev-${PVER}
703 == sys-libs/libgo-dev-${PVER}"
704 fi
705 }
706 fi
707
708 if lang_enabled objc
709 then
710 split_info_libobjc()
711 {
712 DESCRIPTION="Objective-C library which is needed to run Objective-C programs."
713 DEPEND="== sys-libs/libgcc-${PVER}
714 ${LIBOBJC_DEPEND}"
715 PCAT="sys-libs"
716 }
717
718 split_info_libobjc-dev()
719 {
720 DESCRIPTION="Development files for libobjc."
721 DEPEND="== sys-libs/libobjc-${PVER}
722 == sys-libs/libgcc-dev-${PVER}"
723 PCAT="sys-libs"
724 }
725
726 split_info_gcc-objc()
727 {
728 DESCRIPTION="Objective-C support for GCC."
729 DEPEND="== sys-libs/libgcc-${PVER}
730 == sys-libs/libstdc++-${PVER}
731 == sys-libs/libobjc-${PVER}
732 == sys-dev/gcc-${PVER}
733 ${OBJC_DEPEND}"
734 }
735
736 if lang_enabled obj-c++
737 then
738 split_info_gcc-objc++()
739 {
740 DESCRIPTION="Objective-C++ support for GCC."
741 DEPEND="== sys-libs/libgcc-${PVER}
742 == sys-libs/libstdc++-${PVER}
743 == sys-libs/libobjc-${PVER}
744 == sys-dev/gcc-${PVER}
745 == sys-dev/gcc-objc-${PVER}
746 ${OBJCPP_DEPEND}"
747 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
748 then
749 DEPEND="${DEPEND}
750 == sys-libs/libgcc-dev-${PVER}
751 == sys-libs/libstdc++-dev-${PVER}
752 == sys-libs/libobjc-dev-${PVER}"
753 fi
754 }
755 fi
756 fi
757
758 src_prepare()
759 {
760 munpack ${SRCFILE} || die
761
762 if lang_enabled ada
763 then
764 if [[ ${ADA_BOOTSTRAP} = 1 ]]
765 then
766 # setup binary ada if boostrap is enabled
767 install -d ${GNAT_BIN_SRCDIR} || die
768 munpack ${GNAT_BIN} ${GNAT_BIN_SRCDIR} || die
769 # gnat wrapper has problems with quotation
770 sed -i \
771 -e "/-DREVISION/d" \
772 -e "/-DDEVPHASE/d" \
773 -e "s: -DDATESTAMP=\$(DATESTAMP_s)::" \
774 ${SRCDIR}/gcc/Makefile.in || die
775 sed -i \
776 -e "s: DATESTAMP DEVPHASE REVISION::" \
777 -e "s:PKGVERSION:\"\":" \
778 ${SRCDIR}/gcc/version.c || die
779 fi
780 cd ${SRCDIR}
781 fi
782
783 cd ${SRCDIR}
784
785 # generic fixes
786 mpatch ${PNAME}-4.5.1-no-fixincludes.patch || die
787
788 # fix pic issues
789 mpatch ${PNAME}-4.7.1-libada-pic.patch || die
790
791 # fix filename information with imacros enabled
792 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57653
793 mpatch ${PNAME}-4.8-filename-output.patch || die
794
795 # fix ffmpeg flac playback code generation
796 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60902
797 mpatch ${PNAME}-4.9-tree-ssa-threadedge.patch.patch || die
798
799 # suppress installation of libffi, we're using libffi3 instead
800 sed -i 's/\(install.*:\) install-.*recursive/\1/' libffi/Makefile.in || die
801 sed -i 's/\(install-data-am:\).*/\1/' libffi/include/Makefile.in || die
802
803 install -d ${SRCDIR}/build || die
804 }
805
806 src_compile()
807 {
808 if lang_enabled ada
809 then
810 if [[ ${ADA_BOOTSTRAP} = 1 ]]
811 then
812 # export binary gnat pathes
813 export PATH="${GNAT_BIN_SRCDIR}/usr/bin:${PATH}"
814 export CC="${GNAT_BIN_SRCDIR}/usr/bin/gnatgcc"
815 # CPATH is supposed to be applied for any language, thus
816 # superseding either of C/CPLUS/OBJC_INCLUDE_PATHs
817 export CPATH="${GNAT_BIN_SRCDIR}/usr/lib/include"
818 export LIB_DIR="${GNAT_BIN_SRCDIR}/usr/lib"
819 export LDFLAGS="-L${GNAT_BIN_SRCDIR}/usr/lib"
820 export LIBRARY_PATH="${GNAT_BIN_SRCDIR}/usr/lib"
821 export ADA_OBJECTS_PATH="${GNAT_BIN_SRCDIR}/usr/lib/adalib"
822 export ADA_INCLUDE_PATH="${GNAT_BIN_SRCDIR}/usr/lib/adainclude"
823
824 # prepare some tools
825 cd ${GNAT_BIN_SRCDIR}
826 cp -v ${SRCDIR}/gcc/ada/xtreeprs.adb ${GNAT_BIN_SRCDIR} || die
827 cp -v ${SRCDIR}/gcc/ada/csinfo.adb ${GNAT_BIN_SRCDIR} || die
828 cp -v ${SRCDIR}/gcc/ada/ceinfo.adb ${GNAT_BIN_SRCDIR} || die
829 cp -v ${SRCDIR}/gcc/ada/xsinfo.adb ${GNAT_BIN_SRCDIR} || die
830 cp -v ${SRCDIR}/gcc/ada/xeinfo.adb ${GNAT_BIN_SRCDIR} || die
831 cp -v ${SRCDIR}/gcc/ada/xnmake.adb ${GNAT_BIN_SRCDIR} || die
832 cp -v ${SRCDIR}/gcc/ada/xutil.ad{s,b} ${GNAT_BIN_SRCDIR} || die
833 gnatmake xtreeprs || die
834 gnatmake xsinfo || die
835 gnatmake xeinfo || die
836 gnatmake xnmake || die
837 fi
838 fi
839
840 cd ${SRCDIR}/build
841 local myconf
842
843 # Straight from the GCC install doc:
844 # "GCC has code to correctly determine the correct value for target
845 # for nearly all native systems. Therefore, we highly recommend you
846 # not provide a configure target when configuring a native compiler."
847 if [[ ${CHOST} != ${CTARGET} ]]
848 then
849 myconf+=" --target=${CTARGET}"
850 fi
851
852 if lang_enabled java
853 then
854 myconf+=" --enable-java-awt=gtk
855 --enable-gtk-cairo
856 --enable-libgcj-multifile
857 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
858 --with-fastjar=/usr/bin/fastjar
859 --enable-hash-synchronization"
860 # disable mutilib for java
861 myconf+=" --disable-libjava-multilib"
862 # java home, must be the same of java-gcj-compat
863 myconf+=" --with-java-home=/usr/$(mlibdir)/jvm/java-${JAVA_PVER}/jre"
864 fi
865
866 # use isl backend
867 myconf+=" --enable-cloog-backend=isl"
868
869 # suppress installation of libiberty, as we will be
870 # using the one from binutils
871 myconf+=" --disable-install-libiberty"
872
873 # gcc >= 4.3 has now configure flags for uri and version - yeah!
874 AR=ar \
875 ../configure \
876 --with-bugurl="http://bugs.magellan-linux.de/" \
877 --with-pkgversion="Magellan-Linux" \
878 --build=${CHOST} \
879 --host=${CHOST} \
880 --prefix=/usr \
881 --sbindir=/usr/bin \
882 --mandir=/usr/share/man \
883 --infodir=/usr/share/info \
884 --libdir=/usr/$(mlibdir) \
885 --libexecdir=/usr/$(mlibdir) \
886 --enable-shared \
887 --enable-threads=posix \
888 --enable-__cxa_atexit \
889 --enable-clocale=gnu \
890 --enable-checking=release \
891 --with-system-zlib \
892 --enable-long-long \
893 --enable-cstdio=stdio \
894 --enable-languages=${MyLanguages} \
895 --disable-libstdcxx-pch \
896 --enable-gnu-unique-object \
897 --enable-lto \
898 --enable-plugin \
899 --enable-gold \
900 --with-plugin-ld=ld.gold \
901 --enable-ld=default \
902 --enable-linker-build-id \
903 --disable-install-libiberty \
904 ${myconf} \
905 || die
906
907 # parallel builds seems to break sometimes on x86_64
908 local myopts
909 [[ ${ARCH} = x86_64 ]] && myopts=-j1
910
911 # enable bootstrap if requested
912 local target
913 [[ ${GCC_BOOTSTRAP} = 1 ]] && target="bootstrap-lean"
914
915 mmake ${myopts} ${target} || die
916 }
917
918 src_install_gcc()
919 {
920 local i
921 local bin
922
923 cd ${SRCDIR}/build
924 minstalldir /$(mlibdir) || die
925
926 # install all targets
927 make DESTDIR=${BINDIR} install || die
928
929 # move gdb scripts to a proper location and to pretty-print ldconfig
930 minstalldir /usr/share/gdb/auto-load/usr/$(mlibdir) || die
931 mv -v ${BINDIR}/usr/$(mlibdir)/libstdc++*gdb.py* ${BINDIR}/usr/share/gdb/auto-load/usr/$(mlibdir)/ || die
932 # multilib as well
933 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
934 then
935 minstalldir /usr/share/gdb/auto-load/usr/lib || die
936 mv -v ${BINDIR}/usr/lib/libstdc++*gdb.py* ${BINDIR}/usr/share/gdb/auto-load/usr/lib/ || die
937 fi
938
939 # deletes libstdc++ && libgcc_s && libssp && libgomp && libquadmath && libitm && libatomic && libasan && && liblsan &&libubsan && libcilkrts && libvtv
940 rm -v ${BINDIR}/usr/$(mlibdir)/libgcc_s.so* || die
941 mmake -j1 -C ${CHOST}/libssp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
942 mmake -j1 -C ${CHOST}/libgomp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
943 mmake -j1 -C ${CHOST}/libquadmath DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
944 mmake -j1 -C ${CHOST}/libitm DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
945 mmake -j1 -C ${CHOST}/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
946 mmake -j1 -C ${CHOST}/libsanitizer/asan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
947 mmake -j1 -C ${CHOST}/libsanitizer/lsan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
948 mmake -j1 -C ${CHOST}/libsanitizer/ubsan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
949 mmake -j1 -C ${CHOST}/libcilkrts DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
950 mmake -j1 -C ${CHOST}/libvtv DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
951 if [[ ${ARCH} = x86_64 ]]
952 then
953 mmake -j1 -C ${CHOST}/libsanitizer/tsan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
954 fi
955 mmake -j1 -C ${CHOST}/libstdc++-v3/src DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
956 if [[ $(mlibdir) != lib ]]
957 then
958 rm -v ${BINDIR}/usr/lib/libgcc_s.so* || die
959 mmake -j1 -C ${CHOST}/32/libssp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
960 mmake -j1 -C ${CHOST}/32/libgomp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
961 mmake -j1 -C ${CHOST}/32/libquadmath DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
962 mmake -j1 -C ${CHOST}/32/libitm DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
963 mmake -j1 -C ${CHOST}/32/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
964 mmake -j1 -C ${CHOST}/32/libsanitizer/asan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
965 mmake -j1 -C ${CHOST}/32/libsanitizer/lsan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
966 mmake -j1 -C ${CHOST}/32/libsanitizer/ubsan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
967 mmake -j1 -C ${CHOST}/32/libcilkrts DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
968 mmake -j1 -C ${CHOST}/32/libvtv DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
969 # only 64bit exist
970 # mmake -j1 -C ${CHOST}/32//libsanitizer/tsan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
971 mmake -j1 -C ${CHOST}/32/libstdc++-v3/src DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
972 fi
973 mdelete /usr/share/info/libgomp.info || die
974 mdelete /usr/share/info/libitm.info || die
975 mdelete /usr/share/info/libquadmath.info || die
976 find ${BINDIR}/usr/share/locale -name libstdc++.mo | xargs --no-run-if-empty --verbose rm -v || die
977
978 # deletes all java specific
979 if lang_enabled java
980 then
981 mmake -j1 -C ${CHOST}/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
982 if [[ $(mlibdir) != lib ]]
983 then
984 mmake -j1 -C ${CHOST}/32/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
985 fi
986 rm -v ${BINDIR}/usr/$(mlibdir)/libgcj_bc.so* || die
987 rm -rv ${BINDIR}/usr/include/c++/${PVER}/{gcj,gnu,java{,x},org,sun} || die
988 rm -rv ${BINDIR}/usr/$(mlibdir)/gcj* || die
989 mdelete /usr/$(mlibdir)/logging.properties || die
990 mdelete /usr/$(mlibdir)/libgcj.spec || die
991 rm -v ${BINDIR}/usr/$(mlibdir)/pkgconfig/libgcj*.pc || die
992 mdelete -r /usr/$(mlibdir)/security || die
993 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ecj1 || die
994 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/jc1 || die
995 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/jvgenmain || die
996 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/gcj || die
997 rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/{{jawt,jni}{,_md},jvmpi}.h || die
998 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
999 then
1000 rm -v ${BINDIR}/usr/lib/libgcj_bc.so* || die
1001 rm -rv ${BINDIR}/usr/lib/gcj* || die
1002 mdelete /usr/lib/logging.properties || 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 rm -v ${BINDIR}/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 rm -v ${BINDIR}/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 rm -v ${BINDIR}/usr/$(mlibdir)/libobjc.so* || die
1080 rm -v ${BINDIR}/usr/$(mlibdir)/libobjc.{a,la} || die
1081 if [[ $(mlibdir) != lib ]]
1082 then
1083 rm -v ${BINDIR}/usr/lib/libobjc.so* || die
1084 rm -v ${BINDIR}/usr/lib/libobjc.{a,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 rm -rv ${BINDIR}/$(mlibdir) || die
1120 fi
1121 if [[ $(mlibdir) != lib ]]
1122 then
1123 if [[ -d ${BINDIR}/lib ]]
1124 then
1125 rm -rv ${BINDIR}/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
1265 src_install_libasan()
1266 {
1267 src_install_libasan-common || die
1268 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1269 then
1270 keep_dev_package_libs 'libasan.so.*' || die
1271 fi
1272 }
1273
1274 src_install_libasan-dev()
1275 {
1276 src_install_libasan-common || die
1277 delete_dev_package_libs 'libasan.so.*' || die
1278 }
1279
1280 src_install_liblsan-common()
1281 {
1282 install_gcc_library "libsanitizer/lsan" || die
1283 }
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
1307 src_install_libubsan()
1308 {
1309 src_install_libubsan-common || die
1310 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1311 then
1312 keep_dev_package_libs 'libubsan.so.*' || die
1313 fi
1314 }
1315
1316 src_install_libubsan-dev()
1317 {
1318 src_install_libubsan-common || die
1319 delete_dev_package_libs 'libubsan.so.*' || die
1320 }
1321
1322 src_install_libtsan-common()
1323 {
1324 install_gcc_library "libsanitizer/tsan" || die
1325 }
1326
1327 src_install_libtsan()
1328 {
1329 src_install_libtsan-common || die
1330 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1331 then
1332 keep_dev_package_libs 'libtsan.so.*' || die
1333 fi
1334 }
1335 src_install_libtsan-dev()
1336 {
1337 src_install_libtsan-common || die
1338 delete_dev_package_libs 'libtsan.so.*' || die
1339 }
1340
1341 src_install_libcilkrts-common()
1342 {
1343 install_gcc_library "libcilkrts" || die
1344 }
1345
1346 src_install_libcilkrts()
1347 {
1348 src_install_libcilkrts-common || die
1349 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1350 then
1351 keep_dev_package_libs 'libcilkrts.so.*' || die
1352 fi
1353 }
1354
1355 src_install_libcilkrts-dev()
1356 {
1357 src_install_libcilkrts-common || die
1358 delete_dev_package_libs 'libcilkrts.so.*' || die
1359 }
1360
1361 src_install_libvtv-common()
1362 {
1363 install_gcc_library "libvtv" || die
1364 }
1365
1366 src_install_libvtv()
1367 {
1368 src_install_libvtv-common || die
1369 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1370 then
1371 keep_dev_package_libs 'libvtv.so.*' || die
1372 fi
1373 }
1374
1375 src_install_libvtv-dev()
1376 {
1377 src_install_libvtv-common || die
1378 delete_dev_package_libs 'libvtv.so.*' || die
1379 }
1380
1381 src_install_libstdc++-common()
1382 {
1383 install_gcc_library "libstdc++-v3/src" || die
1384 mmake -j1 -C ${CHOST}/libstdc++-v3/po DESTDIR=${BINDIR} install || die
1385 }
1386
1387 src_install_libstdc++()
1388 {
1389 src_install_libstdc++-common || die
1390 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1391 then
1392 keep_dev_package_libs 'libstdc++.so.*' || die
1393 fi
1394 }
1395
1396 src_install_libstdc++-dev()
1397 {
1398 src_install_libstdc++-common || die
1399 delete_dev_package_libs 'libstdc++.so.*' || die
1400 }
1401
1402 if lang_enabled java
1403 then
1404 src_install_libgcj-common()
1405 {
1406 install_gcc_library "libjava"
1407 }
1408
1409 src_install_libgcj()
1410 {
1411 src_install_libgcj-common || die
1412 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1413 then
1414 keep_dev_package_libs 'libgcj_bc.so.* libgcj-tools.so.* libgcj.so.* libgij.so.*' || die
1415 fi
1416 }
1417
1418 src_install_libgcj-dev()
1419 {
1420 src_install_libgcj-common || die
1421 delete_dev_package_libs 'libgcj_bc.so.* libgcj-tools.so.* libgcj.so.* libgij.so.*' || die
1422 }
1423
1424 src_install_gcc-gcj()
1425 {
1426 cd ${SRCDIR}/build
1427
1428 # install only java targets
1429 make DESTDIR=${BINDIR} install-target-libjava || die
1430 make -C gcc DESTDIR=${BINDIR} java.install-common || die
1431 make -C gcc DESTDIR=${BINDIR} java.install-man || die
1432
1433 # missing bins
1434 minstallexec gcc/jc1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1435 minstallexec gcc/jvgenmain /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1436
1437 # remove libraries already included elsewhere
1438 mmake -j1 -C ${CHOST}/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1439 rm -v ${BINDIR}/usr/$(mlibdir)/libgcc_s.so* || die
1440 rm -v ${BINDIR}/usr/$(mlibdir)/libgcj_bc.so* || die
1441 if [[ $(mlibdir) != lib ]]
1442 then
1443 mmake -j1 -C ${CHOST}/32/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1444 rm -v ${BINDIR}/usr/lib/libgcc_s.so.* || die
1445 rm -v ${BINDIR}/usr/lib/libgcj_bc.so.* || die
1446 fi
1447
1448 # versionize all bins and symlink them
1449 versionize_all_bins || die
1450 }
1451 fi
1452
1453 if lang_enabled ada
1454 then
1455 src_install_libgnat-common()
1456 {
1457 cd ${SRCDIR}/build
1458 mmake -C gcc DESTDIR=${BINDIR} ada.install-common || die
1459 if [[ $(mlibdir) != lib ]]
1460 then
1461 # install 32bit libgnat
1462 # make tries to execute the libs, which fails
1463 # we override the INSTALL commands to *not* do that
1464 mmake -C ${CHOST}/32/libada DESTDIR=${BINDIR} INSTALL="install" INSTALL_DATA="install -m0644" install-gnatlib || die
1465 fi
1466 zapmost ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib libgnarl*.* libgnat*.* || die
1467
1468 # move so-libs to the right location
1469 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl-${PVER%.*}.so /usr/$(mlibdir) || die
1470 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat-${PVER%.*}.so /usr/$(mlibdir) || die
1471 rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/lib{gnarl,gnat}.so || die
1472 mlink libgnarl-${PVER%.*}.so /usr/$(mlibdir)/libgnarl.so || die
1473 mlink libgnat-${PVER%.*}.so /usr/$(mlibdir)/libgnat.so || die
1474 mlink ../../../../libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl-${PVER%.*}.so || die
1475 mlink ../../../../libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat-${PVER%.*}.so || die
1476 mlink ../../../../libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl.so || die
1477 mlink ../../../../libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat.so || die
1478
1479 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adainclude || die
1480
1481 if [[ $(mlibdir) != lib ]]
1482 then
1483 zapmost ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib libgnarl*.* libgnat*.* || die
1484
1485 # move so-libs to the right location
1486 minstalldir /usr/lib || die
1487 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl-${PVER%.*}.so /usr/lib || die
1488 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat-${PVER%.*}.so /usr/lib || die
1489 rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/lib{gnarl,gnat}.so || die
1490 mlink libgnarl-${PVER%.*}.so /usr/lib/libgnarl.so || die
1491 mlink libgnat-${PVER%.*}.so /usr/lib/libgnat.so || die
1492 mlink ../../../../../../lib/libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl-${PVER%.*}.so || die
1493 mlink ../../../../../../lib/libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat-${PVER%.*}.so || die
1494 mlink ../../../../../../lib/libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl.so || die
1495 mlink ../../../../../../lib/libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat.so || die
1496
1497 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adainclude || die
1498 fi
1499
1500 # remove other
1501 mdelete -r /usr/bin || die
1502 }
1503
1504 src_install_libgnat()
1505 {
1506 src_install_libgnat-common || die
1507 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1508 then
1509 keep_dev_package_libs "libgnarl-${PVER%.*}.so libgnarl.so libgnat-${PVER%.*}.so libgnat.so" || die
1510 fi
1511 }
1512
1513 src_install_libgnat-dev()
1514 {
1515 src_install_libgnat-common || die
1516 delete_dev_package_libs "libgnarl-${PVER%.*}.so libgnarl.so libgnat-${PVER%.*}.so libgnat.so" || die
1517 }
1518
1519 src_install_gcc-gnat()
1520 {
1521 cd ${SRCDIR}/build
1522 mmake -C gcc DESTDIR=${BINDIR} ada.install-common || die
1523 if [[ $(mlibdir) != lib ]]
1524 then
1525 # install 32bit libgnat
1526 # make tries to execute the libs, which fails
1527 # we override the INSTALL commands to *not* do that
1528 mmake -C ${CHOST}/32/libada DESTDIR=${BINDIR} INSTALL="install" INSTALL_DATA="install -m0644" install-gnatlib || die
1529 fi
1530 mmake -C gcc DESTDIR=${BINDIR} ada.install-info || die
1531 minstallexec gcc/gnat1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER} || die
1532
1533 # remove libraries already included elsewhere
1534 rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl*.* || die
1535 rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat*.* || die
1536 if [[ $(mlibdir) != lib ]]
1537 then
1538 rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl*.* || die
1539 rm -v ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat*.* || die
1540 fi
1541
1542 # versionize all bins and symlink them
1543 versionize_all_bins || die
1544 }
1545 fi
1546
1547 if lang_enabled fortran
1548 then
1549 src_install_libgfortran-common()
1550 {
1551 install_gcc_library "libgfortran"
1552 }
1553
1554 src_install_libgfortran()
1555 {
1556 src_install_libgfortran-common || die
1557 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1558 then
1559 keep_dev_package_libs 'libgfortran.so.*' || die
1560 fi
1561 }
1562
1563 src_install_libgfortran-dev()
1564 {
1565 src_install_libgfortran-common || die
1566 delete_dev_package_libs 'libgfortran.so.*' || die
1567 }
1568
1569 src_install_gcc-gfortran()
1570 {
1571 cd ${SRCDIR}/build
1572
1573 # omp headers needed by fortran
1574 mmake -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-nodist_fincludeHEADERS || die
1575 mmake -C gcc DESTDIR=${BINDIR} fortran.install-common || die
1576 mmake -C gcc DESTDIR=${BINDIR} fortran.install-man || die
1577 mmake -C gcc DESTDIR=${BINDIR} fortran.install-info || die
1578 # missing binaries
1579 minstallexec gcc/f951 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/f951 || die
1580 mlink gfortran /usr/bin/f95 || die
1581
1582 # remove libraries already included elsewhere
1583 mmake -C ${CHOST}/libgomp DESTDIR=${BINDIR} uninstall-nodist_fincludeHEADERS || die
1584
1585 # versionize all bins and symlink them
1586 versionize_all_bins || die
1587 }
1588 fi
1589
1590 if lang_enabled go
1591 then
1592 src_install_libgo-common()
1593 {
1594 install_gcc_library "libgo" || die
1595 }
1596
1597 src_install_libgo()
1598 {
1599 src_install_libgo-common || die
1600 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1601 then
1602 keep_dev_package_libs 'libgo.so.*' || die
1603 fi
1604 }
1605
1606 src_install_libgo-dev()
1607 {
1608 src_install_libgo-common || die
1609 delete_dev_package_libs 'libgo.so.*' || die
1610 }
1611
1612 src_install_gcc-go()
1613 {
1614 cd ${SRCDIR}/build
1615 mmake DESTDIR=${BINDIR} install-target-libgo || die
1616 mmake -C gcc DESTDIR=${BINDIR} go.install-common || die
1617 mmake -C gcc DESTDIR=${BINDIR} go.install-man || die
1618 mmake -C gcc DESTDIR=${BINDIR} go.install-info || die
1619 minstallexec gcc/go1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1620
1621 # remove libraries already included elsewhere
1622 mmake -j1 -C ${CHOST}/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1623 mmake -j1 -C ${CHOST}/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1624 if [[ $(mlibdir) != lib ]]
1625 then
1626 mmake -j1 -C ${CHOST}/32/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1627 mmake -j1 -C ${CHOST}/32/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1628 fi
1629
1630 # versionize all bins and symlink them
1631 versionize_all_bins || die
1632 }
1633 fi
1634
1635 if lang_enabled objc
1636 then
1637 src_install_libobjc-common()
1638 {
1639 install_gcc_library "libobjc" || die
1640 }
1641
1642 src_install_libobjc()
1643 {
1644 cd ${SRCDIR}/build
1645 mmake -j1 -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-libs || die
1646 if [[ $(mlibdir) != lib ]]
1647 then
1648 mmake -j1 -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-libs || die
1649 fi
1650
1651 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1652 then
1653 keep_dev_package_libs 'libobjc.so.*' || die
1654 fi
1655 }
1656
1657 src_install_libobjc-dev()
1658 {
1659 cd ${SRCDIR}/build
1660 mmake -j1 -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-libs || die
1661 if [[ $(mlibdir) != lib ]]
1662 then
1663 mmake -j1 -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-libs || die
1664 fi
1665 delete_dev_package_libs 'libobjc.so.*' || die
1666 }
1667
1668 src_install_gcc-objc()
1669 {
1670 cd ${SRCDIR}/build
1671 mmake -j1 -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-headers || die
1672 if [[ $(mlibdir) != lib ]]
1673 then
1674 mmake -j1 -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-headers || die
1675 fi
1676 minstalldir /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1677 minstallexec gcc/cc1obj /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1678 }
1679
1680 if lang_enabled obj-c++
1681 then
1682 src_install_gcc-objc++()
1683 {
1684 cd ${SRCDIR}/build
1685 minstalldir /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1686 minstallexec gcc/cc1objplus /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1687 }
1688 fi
1689 fi