Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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