1 #!/usr/bin/bash
2 #
3 # CDDL HEADER START
4 #
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License, Version 1.0 only
7 # (the "License"). You may not use this file except in compliance
8 # with the License.
9 #
10 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11 # or http://www.opensolaris.org/os/licensing.
12 # See the License for the specific language governing permissions
13 # and limitations under the License.
14 #
15 # When distributing Covered Code, include this CDDL HEADER in each
16 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17 # If applicable, add the following below this CDDL HEADER, with the
18 # fields enclosed by brackets "[]" replaced with your own identifying
19 # information: Portions Copyright [yyyy] [name of copyright owner]
20 #
21 # CDDL HEADER END
22 #
23 #
24 # Copyright 2014 OmniTI Computer Consulting, Inc. All rights reserved.
25 # Use is subject to license terms.
26 #
27 # Load support functions
28 . ../../lib/functions.sh
29
30 PROG=gcc
31 VER=4.4.4
32 COMMIT=bcf43ddb4958677ebd7dd6daba9d526d2865df10
33 VERHUMAN="$VER from ${COMMIT:0:10}"
34 PKG=developer/gcc44
35 SUMMARY="gcc ${VER} (richlowe il-4_4_4 branch)"
36 DESC="GCC with the patches from Codesourcery/Sun Microsystems used in the 3.4.3 and 4.3.3 shipped with Solaris. The il-* branches contain the Solaris patches rebased forward across GCC versions in an attempt to bring them up to date."
37
38 BUILDDIR=${PROG}-il-4_4_4
39
40 export LD_LIBRARY_PATH=/opt/gcc-${VER}/lib
41 # Build gcc44 only with itself...
42 PATH=/usr/perl5/5.16.1/bin:/opt/gcc-${VER}/bin:$PATH
43 export PATH
44
45 DEPENDS_IPS="developer/gcc44/libgmp-gcc44 developer/gcc44/libmpfr-gcc44 developer/gcc44/libmpc-gcc44
46 developer/gnu-binutils developer/library/lint developer/linker system/library/gcc-5-runtime"
47 BUILD_DEPENDS_IPS="$DEPENDS_IPS"
48
49 NO_PARALLEL_MAKE=1
50
51 # This stuff is in its own domain
52 PKGPREFIX=""
53
54 BUILDARCH=32
55 PREFIX=/opt/gcc-${VER}
56 reset_configure_opts
57 CC=gcc
58
59 LD_FOR_TARGET=/bin/ld
60 export LD_FOR_TARGET
61 LD_FOR_HOST=/bin/ld
62 export LD_FOR_HOST
63 LD=/bin/ld
64 export LD
65
66 HSTRING=i386-pc-solaris2.11
67
68 CONFIGURE_OPTS_32="--prefix=/opt/gcc-${VER}"
69 CONFIGURE_OPTS="--host ${HSTRING} --build ${HSTRING} --target ${HSTRING} \
70 --with-boot-ldflags=-R/opt/gcc-${VER}/lib \
71 --with-gmp=/opt/gcc-${VER} --with-mpfr=/opt/gcc-${VER} --with-mpc=/opt/gcc-${VER} \
72 --enable-languages=c,c++,fortran --without-gnu-ld --with-ld=/bin/ld \
73 --with-as=/usr/bin/gas --with-gnu-as --with-build-time-tools=/usr/gnu/${HSTRING}/bin"
74 LDFLAGS32="-R/opt/gcc-${VER}/lib"
75 export LD_OPTIONS="-zignore -zcombreloc -Bdirect -i"
76
77 init
78 download_source gcc44 ${PROG}-il-4_4_4
79 patch_source
80 prep_build
81 build
82
83 # Ick. For some bizarre reason, this gcc44 package doesn't properly push
84 # the LDFLAGS shown above into various subdirectories. Use elfedit to fix
85 # it.
86 ESTRING="dyn:runpath /opt/gcc-${VER}/lib:%o"
87 elfedit -e "${ESTRING}" ${TMPDIR}/${BUILDDIR}/host-${HSTRING}/gcc/cc1
88 elfedit -e "${ESTRING}" ${TMPDIR}/${BUILDDIR}/host-${HSTRING}/gcc/cc1plus
89 elfedit -e "${ESTRING}" ${TMPDIR}/${BUILDDIR}/host-${HSTRING}/gcc/f951
90
91 make_package gcc.mog
92 clean_up
93
94 # Vim hints
95 # vim:ts=4:sw=4:et: