Magellan Linux

Contents of /branches/R11-stable/core/gcc/gcc-4.8.3-r4.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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