Home | History | Annotate | Download | only in gcc
      1 #! /usr/bin/sh
      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 (the "License").
      7 # You may not use this file except in compliance with the License.
      8 #
      9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     10 # or http://www.opensolaris.org/os/licensing.
     11 # See the License for the specific language governing permissions
     12 # and limitations under the License.
     13 #
     14 # When distributing Covered Code, include this CDDL HEADER in each
     15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     16 # If applicable, add the following below this CDDL HEADER, with the
     17 # fields enclosed by brackets "[]" replaced with your own identifying
     18 # information: Portions Copyright [yyyy] [name of copyright owner]
     19 #
     20 # CDDL HEADER END
     21 #
     22 
     23 #
     24 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
     25 # Use is subject to license terms.
     26 #
     27 
     28 #
     29 #ident	"@(#)install-sfw	1.21	09/06/04 SMI"
     30 #
     31 
     32 #
     33 # XXX - clean this up at some point
     34 
     35 . ${SRC}/tools/install.subr
     36 
     37 # The gcc makefiles install the stuff for us.  We just need to clean
     38 # up the permissions, etc.
     39 
     40 SOL_REV=`uname -r | sed "s,^5\.,2\.,"`
     41 
     42 if [ "$MACH" = "sparc" ]; then
     43 	MACHNAME=sparc-sun-solaris${SOL_REV}
     44 else
     45 	MACHNAME=i386-pc-solaris${SOL_REV}
     46 fi
     47 
     48 GCCVER=3.4.3	# for easy updating
     49 
     50 # First, nuke the "fixincludes" headers that gcc installs.
     51 # We need to create these on the install machine at
     52 # package install time.
     53 # Except any files part of gcc, like the objc
     54 # include files. This could be automated but the list is
     55 # probably fairly static and smaller than the code to cleanup
     56 # what fixincludes might do.
     57 #
     58 # note gcc has its own stddef.h but when fixincludes is
     59 # run by pkgadd the system one replaces it (something
     60 # about wchar_t) so we don't ship that one for now.
     61 
     62 ls -d ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/include/* \
     63     | grep -v objc \
     64     | grep -v stdarg.h \
     65     | grep -v unwind.h \
     66     | grep -v emmintrin.h \
     67     | grep -v pmmintrin.h \
     68     | grep -v mmintrin.h \
     69     | grep -v iso646.h \
     70     | grep -v xmmintrin.h \
     71     | grep -v stdbool.h \
     72     | grep -v float.h \
     73     | xargs rm -rf
     74 
     75 # Nothing pretty here - just a brute-force changing of
     76 # all the perms.  First the non-architecture-specific
     77 # pieces, then the architecture=specific stuff.
     78 
     79 
     80 # directories
     81 chmod 755 ${ROOT}/usr/sfw/include/c++
     82 chmod 755 ${ROOT}/usr/sfw/include/c++/${GCCVER}
     83 chmod 755 ${ROOT}/usr/sfw/include/c++/${GCCVER}/backward
     84 chmod 755 ${ROOT}/usr/sfw/include/c++/${GCCVER}/bits
     85 chmod 755 ${ROOT}/usr/sfw/include/c++/${GCCVER}/debug
     86 chmod 755 ${ROOT}/usr/sfw/include/c++/${GCCVER}/ext
     87 chmod 755 ${ROOT}/usr/sfw/lib/gcc
     88 chmod 755 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/include/objc
     89 chmod 755 ${ROOT}/usr/sfw/libexec/gcc
     90 
     91 # files
     92 
     93 for i in \
     94     gcc.info \
     95     cpp.info \
     96     gccint.info \
     97     gccinstall.info \
     98     g77.info \
     99     cppinternals.info
    100 do
    101     /usr/sfw/bin/install-info --dir-file=${ROOT}/usr/sfw/share/info/dir \
    102 	${ROOT}/usr/sfw/share/info/${i}
    103 done
    104 
    105 chmod 444 ${ROOT}/usr/sfw/share/info/gcc.info
    106 chmod 444 ${ROOT}/usr/sfw/share/info/cpp.info
    107 chmod 444 ${ROOT}/usr/sfw/share/info/gccint.info
    108 chmod 444 ${ROOT}/usr/sfw/share/info/gccinstall.info
    109 chmod 444 ${ROOT}/usr/sfw/share/info/cppinternals.info
    110 chmod 444 ${ROOT}/usr/sfw/share/info/g77.info
    111 
    112 chmod 555 ${ROOT}/usr/sfw/bin/gccbug
    113 
    114 for i in \
    115     c++ \
    116     cpp \
    117     g++ \
    118     gcc \
    119     g77 \
    120     gcov
    121 do
    122     chmod 755 ${ROOT}/usr/sfw/bin/${i}
    123     ${SRC}/tools/post_process ${ROOT}/usr/sfw/bin/${i}
    124     chmod 555 ${ROOT}/usr/sfw/bin/${i}
    125 done
    126 
    127 find ${ROOT}/usr/sfw/include/c++/${GCCVER} -type d -exec chmod 755 {} \;
    128 find ${ROOT}/usr/sfw/include/c++/${GCCVER} -type f -exec chmod 444 {} \;
    129 find ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/include -type f -exec chmod 444 {} \;
    130 
    131 for i in libgcc_s.so.1 libstdc++.so.6.0.3 libg2c.so.0.0.0 libobjc.so.1.0.0
    132 do
    133     chmod 755 ${ROOT}/usr/sfw/lib/${i}
    134     ${SRC}/tools/post_process_so ${ROOT}/usr/sfw/lib/${i}
    135     chmod 555 ${ROOT}/usr/sfw/lib/${i}
    136 done
    137 
    138 chmod 555 ${ROOT}/usr/sfw/lib/libiberty.a
    139 chmod 444 ${ROOT}/usr/sfw/lib/libstdc++.a
    140 chmod 555 ${ROOT}/usr/sfw/lib/libg2c.a
    141 chmod 555 ${ROOT}/usr/sfw/lib/libobjc.a
    142 chmod 555 ${ROOT}/usr/sfw/lib/libobjc.la
    143 chmod 555 ${ROOT}/usr/sfw/lib/libfrtbegin.a
    144 chmod 555 ${ROOT}/usr/sfw/lib/libg2c.la
    145 
    146 rm -f /tmp/sed$$
    147 echo "/^dependency_libs/c\\
    148 dependency_libs=' -L/usr/sfw/lib -lgcc_s -lm'" >/tmp/sed$$
    149 
    150 sed -f /tmp/sed$$ ${ROOT}/usr/sfw/lib/libstdc++.la > ${ROOT}/usr/sfw/lib/libstdc++.la.1
    151 mv ${ROOT}/usr/sfw/lib/libstdc++.la.1 ${ROOT}/usr/sfw/lib/libstdc++.la
    152 chmod 555 ${ROOT}/usr/sfw/lib/libstdc++.la
    153 
    154 sed -f /tmp/sed$$ ${ROOT}/usr/sfw/lib/libsupc++.la > ${ROOT}/usr/sfw/lib/libsupc++.la.1
    155 mv ${ROOT}/usr/sfw/lib/libsupc++.la.1 ${ROOT}/usr/sfw/lib/libsupc++.la
    156 chmod 555 ${ROOT}/usr/sfw/lib/libsupc++.la
    157 
    158 rm -f /tmp/sed$$
    159 
    160 chmod 555 ${ROOT}/usr/sfw/lib/libsupc++.a
    161 
    162 MANSCRIPT=sunman-stability
    163 
    164 for i in \
    165     cpp.1 \
    166     g++.1 \
    167     gcc.1 \
    168     g77.1 \
    169     gcov.1
    170 do
    171     _install M ${i}.sunman ${ROOT}/usr/sfw/share/man/man1/${i} 444
    172 done
    173 
    174 for i in \
    175     fsf-funding.7 \
    176     gfdl.7 \
    177     gpl.7
    178 do
    179     _install M ${i}.sunman ${ROOT}/usr/sfw/share/man/man7/${i} 444
    180 done
    181 
    182 # arch-specific
    183 
    184 chmod 755 ${ROOT}/usr/sfw/include/c++/${GCCVER}/${MACHNAME}
    185 chmod 755 ${ROOT}/usr/sfw/include/c++/${GCCVER}/${MACHNAME}/bits
    186 chmod 755 ${ROOT}/usr/sfw/include/c++/${GCCVER}/${MACHNAME}/bits/stdc++.h.gch
    187 chmod 755 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}
    188 chmod 755 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}
    189 chmod 755 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools
    190 chmod 755 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include
    191 chmod 755 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/include
    192 chmod 755 ${ROOT}/usr/sfw/libexec/gcc/${MACHNAME}
    193 chmod 755 ${ROOT}/usr/sfw/libexec/gcc/${MACHNAME}/${GCCVER}
    194 chmod 755 ${ROOT}/usr/sfw/libexec/gcc/${MACHNAME}/${GCCVER}/install-tools
    195 
    196 for i in \
    197     ${MACHNAME}-c++ \
    198     ${MACHNAME}-g++ \
    199     ${MACHNAME}-gcc \
    200     ${MACHNAME}-gcc-${GCCVER}
    201 do
    202     chmod 755 ${ROOT}/usr/sfw/bin/${i}
    203     ${SRC}/tools/post_process ${ROOT}/usr/sfw/bin/${i}
    204     chmod 555 ${ROOT}/usr/sfw/bin/${i}
    205 done
    206 
    207 chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/crtbegin.o
    208 chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/crtend.o
    209 chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/gmon.o
    210 
    211 chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/gsyslimits.h
    212 chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include/README
    213 chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include/float.h
    214 chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include/iso646.h
    215 chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include/limits.h
    216 chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include/stdarg.h
    217 chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include/stdbool.h
    218 chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include/stddef.h
    219 chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include/unwind.h
    220 chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include/varargs.h
    221 chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/mkheaders.conf
    222 chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/libgcc.a
    223 chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/libgcc_eh.a
    224 chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/libgcov.a
    225 chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/specs
    226 
    227 for i in \
    228     cc1 \
    229     cc1obj \
    230     cc1plus \
    231     f771 \
    232     collect2
    233 do
    234     chmod 755 ${ROOT}/usr/sfw/libexec/gcc/${MACHNAME}/${GCCVER}/${i}
    235     ${SRC}/tools/post_process ${ROOT}/usr/sfw/libexec/gcc/${MACHNAME}/${GCCVER}/${i}
    236     chmod 555 ${ROOT}/usr/sfw/libexec/gcc/${MACHNAME}/${GCCVER}/${i}
    237 done
    238 
    239 
    240 for script in \
    241     ${ROOT}/usr/sfw/libexec/gcc/${MACHNAME}/${GCCVER}/install-tools/fixinc.sh \
    242     ${ROOT}/usr/sfw/libexec/gcc/${MACHNAME}/${GCCVER}/install-tools/mkheaders
    243 do
    244 	rm -f ${script}.orig
    245 	mv ${script} ${script}.orig
    246 	sed \
    247 	    -e s,'^#!/bin/sh','#!/bin/ksh', \
    248 	    < ${script}.orig \
    249 	    > ${script}
    250 	rm -f ${script}.orig
    251 	chmod 555 ${script}
    252 done
    253 
    254 chmod 555 ${ROOT}/usr/sfw/libexec/gcc/${MACHNAME}/${GCCVER}/install-tools/fixincl
    255 
    256 if [ "$MACH" = "sparc" ]; then
    257 	chmod 755 ${ROOT}/usr/sfw/lib/sparcv9
    258 	rm -f ${ROOT}/usr/sfw/libexec/gcc/sparc-sun-solaris${SOL_REV}/${GCCVER}/as
    259 	ln -s ../../../../../gnu/sparc-sun-solaris${SOL_REV}/bin/as ${ROOT}/usr/sfw/libexec/gcc/sparc-sun-solaris${SOL_REV}/${GCCVER}/as
    260 	rm -f ${ROOT}/usr/sfw/lib/sparcv9/libgcc_s.so
    261 	ln -s libgcc_s.so.1 ${ROOT}/usr/sfw/lib/sparcv9/libgcc_s.so
    262 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libgcc_s.so.1
    263 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libiberty.a
    264 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libstdc++.a
    265 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libg2c.a
    266 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libfrtbegin.a
    267 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libg2c.la
    268 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libobjc.a
    269 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libobjc.la
    270 
    271 	rm -f /tmp/sed$$
    272 	echo "/^dependency_libs/c\\
    273 dependency_libs=' -L/usr/sfw/lib/sparcv9 -lgcc_s -lm'" >/tmp/sed$$
    274 
    275 	sed -f /tmp/sed$$ ${ROOT}/usr/sfw/lib/sparcv9/libstdc++.la > ${ROOT}/usr/sfw/lib/sparcv9/libstdc++.la.1
    276 	mv ${ROOT}/usr/sfw/lib/sparcv9/libstdc++.la.1 ${ROOT}/usr/sfw/lib/sparcv9/libstdc++.la
    277 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libstdc++.la
    278 
    279 	sed -f /tmp/sed$$ ${ROOT}/usr/sfw/lib/sparcv9/libsupc++.la > ${ROOT}/usr/sfw/lib/sparcv9/libsupc++.la.1
    280 	mv ${ROOT}/usr/sfw/lib/sparcv9/libsupc++.la.1 ${ROOT}/usr/sfw/lib/sparcv9/libsupc++.la
    281 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libsupc++.la
    282 	rm -f /tmp/sed$$
    283 
    284 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libstdc++.so.6.0.3
    285 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libsupc++.a
    286 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libg2c.so.0.0.0
    287 	chmod 555 ${ROOT}/usr/sfw/lib/sparcv9/libobjc.so.1.0.0
    288 	chmod 755 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/sparcv9
    289 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/crt1.o
    290 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/crti.o
    291 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/crtn.o
    292 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/gcrt1.o
    293 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/sparcv9/crt1.o
    294 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/crtfastmath.o
    295 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/sparcv9/crti.o
    296 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/sparcv9/crtn.o
    297 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/sparcv9/gcrt1.o
    298 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/sparcv9/crtfastmath.o
    299 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/sparcv9/crtbegin.o
    300 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/sparcv9/crtend.o
    301 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/sparcv9/gmon.o
    302 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/sparcv9/libgcc.a
    303 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/sparcv9/libgcc_eh.a
    304 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/sparcv9/libgcov.a
    305 else
    306 	chmod 755 ${ROOT}/usr/sfw/lib/amd64
    307 	rm -f ${ROOT}/usr/sfw/libexec/gcc/i386-pc-solaris${SOL_REV}/${GCCVER}/as
    308 	ln -s ../../../../../gnu/i386-pc-solaris${SOL_REV}/bin/as ${ROOT}/usr/sfw/libexec/gcc/i386-pc-solaris${SOL_REV}/${GCCVER}/as
    309 	rm -f ${ROOT}/usr/sfw/lib/amd64/libgcc_s.so
    310 	ln -s libgcc_s.so.1 ${ROOT}/usr/sfw/lib/amd64/libgcc_s.so
    311 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libgcc_s.so.1
    312 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libiberty.a
    313 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libstdc++.a
    314 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libg2c.a
    315 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libg2c.la
    316 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libobjc.a
    317 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libobjc.la
    318 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libfrtbegin.a
    319 
    320 	rm -f /tmp/sed$$
    321 	echo "/^dependency_libs/c\\
    322 dependency_libs=' -L/usr/sfw/lib/amd64 -lgcc_s -lm'" >/tmp/sed$$
    323 	sed -f /tmp/sed$$ ${ROOT}/usr/sfw/lib/amd64/libstdc++.la > ${ROOT}/usr/sfw/lib/amd64/libstdc++.la.1
    324 	mv ${ROOT}/usr/sfw/lib/amd64/libstdc++.la.1 ${ROOT}/usr/sfw/lib/amd64/libstdc++.la
    325 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libstdc++.la
    326 sed -f /tmp/sed$$ ${ROOT}/usr/sfw/lib/amd64/libsupc++.la >${ROOT}/usr/sfw/lib/amd64/libsupc++.la.1
    327 
    328 	mv ${ROOT}/usr/sfw/lib/amd64/libsupc++.la.1 ${ROOT}/usr/sfw/lib/amd64/libsupc++.la
    329 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libsupc++.la
    330 	rm -f /tmp/sed$$
    331 
    332 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libstdc++.so.6.0.3
    333 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libg2c.so.0.0.0
    334 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libobjc.so.1.0.0
    335 	chmod 555 ${ROOT}/usr/sfw/lib/amd64/libsupc++.a
    336 	chmod 755 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/amd64
    337 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/amd64/crtbegin.o
    338 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/amd64/crtend.o
    339 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/amd64/gmon.o
    340 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/amd64/libgcc.a
    341 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/amd64/libgcc_eh.a
    342 	chmod 555 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/amd64/libgcov.a
    343 	chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include/emmintrin.h
    344 	chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include/mmintrin.h
    345 	chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include/pmmintrin.h
    346 	chmod 444 ${ROOT}/usr/sfw/lib/gcc/${MACHNAME}/${GCCVER}/install-tools/include/xmmintrin.h
    347 fi
    348 
    349 exit 0
    350