Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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