Magellan Linux

Contents of /trunk/core/gcc/gcc-4.9.1-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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