1 #!/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 2007 Sun Microsystems, Inc. All rights reserved. 25 # Use is subject to license terms. 26 # 27 # ident "%Z%%M% %I% %E% SMI" 28 # 29 # Generate a proto area suitable for the current architecture ($(MACH)) 30 # sufficient to support the sgs build. 31 # 32 # Currently, the following releases are supported: 33 # 5.11, 5.10, and 5.9. 34 # 35 36 if [ "X$CODEMGR_WS" = "X" -o "X$MACH" = "X" ] ; then 37 echo "usage: CODEMGR_WS and MACH environment variables must be set" 38 exit 1 39 fi 40 41 RELEASE=$1 42 43 if [ "X$RELEASE" = "X" ] ; then 44 echo "usage: proto release" 45 exit 1; 46 fi 47 48 IS_THIS_UNIFIED=1 49 50 case $RELEASE in 51 "5.11") break;; 52 "5.10") break;; 53 "5.9") IS_THIS_UNIFIED=0; break;; 54 *) 55 echo "usage: unsupported release $RELEASE specified" 56 exit 1;; 57 esac 58 59 dirs=" $CODEMGR_WS/proto \ 60 $CODEMGR_WS/proto/root_$MACH \ 61 $CODEMGR_WS/proto/root_$MACH/lib \ 62 $CODEMGR_WS/proto/root_$MACH/usr \ 63 $CODEMGR_WS/proto/root_$MACH/usr/demo \ 64 $CODEMGR_WS/proto/root_$MACH/usr/lib \ 65 $CODEMGR_WS/proto/root_$MACH/usr/lib/abi \ 66 $CODEMGR_WS/proto/root_$MACH/usr/lib/link_audit \ 67 $CODEMGR_WS/proto/root_$MACH/usr/lib/mdb \ 68 $CODEMGR_WS/proto/root_$MACH/usr/lib/mdb/proc \ 69 $CODEMGR_WS/proto/root_$MACH/usr/lib/pics \ 70 $CODEMGR_WS/proto/root_$MACH/usr/4lib \ 71 $CODEMGR_WS/proto/root_$MACH/usr/bin \ 72 $CODEMGR_WS/proto/root_$MACH/usr/ccs \ 73 $CODEMGR_WS/proto/root_$MACH/usr/ccs/bin \ 74 $CODEMGR_WS/proto/root_$MACH/usr/include \ 75 $CODEMGR_WS/proto/root_$MACH/usr/include/sys \ 76 $CODEMGR_WS/proto/root_$MACH/usr/xpg4 \ 77 $CODEMGR_WS/proto/root_$MACH/usr/xpg4/bin \ 78 $CODEMGR_WS/proto/root_$MACH/etc \ 79 $CODEMGR_WS/proto/root_$MACH/etc/lib \ 80 $CODEMGR_WS/proto/root_$MACH/opt \ 81 $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld \ 82 $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/bin \ 83 $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/doc \ 84 $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/lib \ 85 $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/man \ 86 $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/man/man1 \ 87 $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/man/man1l \ 88 $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/man/man3t \ 89 $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/man/man3l \ 90 $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/man/man3x" 91 92 # 93 # Add 64bit directories 94 # 95 MACH64="" 96 if [ $MACH = "sparc" ]; then 97 MACH64="sparcv9"; 98 fi 99 if [ $MACH = "i386" ]; then 100 MACH64="amd64"; 101 fi 102 if [ "${MACH64}x" != x ]; then 103 104 dirs="$dirs \ 105 $CODEMGR_WS/proto/root_$MACH/lib/$MACH64 \ 106 $CODEMGR_WS/proto/root_$MACH/usr/bin/$MACH64 \ 107 $CODEMGR_WS/proto/root_$MACH/usr/ccs/bin/$MACH64 \ 108 $CODEMGR_WS/proto/root_$MACH/usr/lib/$MACH64 \ 109 $CODEMGR_WS/proto/root_$MACH/usr/lib/abi/$MACH64 \ 110 $CODEMGR_WS/proto/root_$MACH/usr/lib/link_audit/$MACH64 \ 111 $CODEMGR_WS/proto/root_$MACH/usr/lib/mdb/proc/$MACH64 \ 112 $CODEMGR_WS/proto/root_$MACH/usr/lib/pics/$MACH64 \ 113 $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/bin/$MACH64 \ 114 $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/lib/$MACH64 \ 115 " 116 fi 117 118 for dir in `echo $dirs` 119 do 120 if [ ! -d $dir ] ; then 121 echo $dir 122 mkdir $dir 123 chmod 777 $dir 124 fi 125 done 126 127 # We need a local copy of libc_pic.a (we should get this from the parent 128 # workspace, but as we can't be sure how the proto area is constructed there 129 # simply take it from a stashed copy on the linkers server. If 130 # LINKERS_EXPORT is defined, we use it. Failing that, we fall over 131 # to linkers.central. 132 if [ "$LINKERS_EXPORT" = "" ]; then 133 LINKERS_EXPORT=/net/linkers.central/export 134 fi 135 136 if [ $MACH = "sparc" ]; then 137 PLATS="sparc sparcv9" 138 elif [ $MACH = "i386" ]; then 139 PLATS="i386 amd64" 140 else 141 echo "Unknown Mach: $MACH - no libc_pic.a provided!" 142 PLATS="" 143 fi 144 145 for p in $PLATS 146 do 147 SRCLIBCDIR=${SRC}/lib/libc/$p 148 if [ ! -d $SRCLIBCDIR ]; then 149 mkdir -p $SRCLIBCDIR 150 fi 151 if [ ! -f $SRCLIBCDIR/libc_pic.a ]; then 152 cp $LINKERS_EXPORT/big/libc_pic/$RELEASE/$p/libc_pic.a \ 153 $SRCLIBCDIR 154 fi 155 done 156 157 SYSLIB=$CODEMGR_WS/proto/root_$MACH/lib 158 USRLIB=$CODEMGR_WS/proto/root_$MACH/usr/lib 159 160 if [ ! -h $USRLIB/ld.so.1 ]; then 161 rm -f $USRLIB/ld.so.1 162 ln -s ../../lib/ld.so.1 $USRLIB/ld.so.1 163 echo "$USRLIB/ld.so.1 -> ../../lib/ld.so.1" 164 fi 165 166 # 167 # In addition create some 64 symlinks so that dependencies referenced 168 # from our test environment will map back to the appropriate libraries. 169 # 170 if [ ! -h $SYSLIB/64 ] ; then 171 rm -f $SYSLIB/64 172 ln -s $MACH64 $SYSLIB/64 173 echo "$SYSLIB/64 -> $SYSLIB/$MACH64" 174 fi 175 if [ ! -h $USRLIB/64 ] ; then 176 rm -f $USRLIB/64 177 ln -s $MACH64 $USRLIB/64 178 echo "$USRLIB/64 -> $USRLIB/$MACH64" 179 fi 180 if [ ! -h $USRLIB/link_audit/64 ] ; then 181 rm -f $USRLIB/link_audit/64 182 ln -s $MACH64 $USRLIB/link_audit/64 183 echo "$USRLIB/link_audit/64 -> $USRLIB/link_audit/$MACH64" 184 fi 185 if [ ! -h $USRLIB/64/ld.so.1 ]; then 186 rm -f $USRLIB/64/ld.so.1 187 ln -s ../../../lib/64/ld.so.1 $USRLIB/64/ld.so.1 188 echo "$USRLIB/64/ld.so.1 -> ../../../lib/64/ld.so.1" 189 fi 190 191 # 192 # 193 # 194 if [ $IS_THIS_UNIFIED = 0 ] ; then 195 rm -fr $CODEMGR_WS/proto/root_$MACH/lib 196 ln -s $CODEMGR_WS/proto/root_$MACH/usr/lib $CODEMGR_WS/proto/root_$MACH/lib 197 fi