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 36if [ "X$CODEMGR_WS" = "X" -o "X$MACH" = "X" ] ; then 37 echo "usage: CODEMGR_WS and MACH environment variables must be set" 38 exit 1 39fi 40 41RELEASE=$1 42 43if [ "X$RELEASE" = "X" ] ; then 44 echo "usage: proto release" 45 exit 1; 46fi 47 48IS_THIS_UNIFIED=1 49 50case $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;; 57esac 58 59dirs=" $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# 95MACH64="" 96if [ $MACH = "sparc" ]; then 97 MACH64="sparcv9"; 98fi 99if [ $MACH = "i386" ]; then 100 MACH64="amd64"; 101fi 102if [ "${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 " 116fi 117 118for dir in `echo $dirs` 119do 120 if [ ! -d $dir ] ; then 121 echo $dir 122 mkdir $dir 123 chmod 777 $dir 124 fi 125done 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. 132if [ "$LINKERS_EXPORT" = "" ]; then 133 LINKERS_EXPORT=/net/linkers.central/export 134fi 135 136if [ $MACH = "sparc" ]; then 137 PLATS="sparc sparcv9" 138elif [ $MACH = "i386" ]; then 139 PLATS="i386 amd64" 140else 141 echo "Unknown Mach: $MACH - no libc_pic.a provided!" 142 PLATS="" 143fi 144 145for p in $PLATS 146do 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 155done 156 157SYSLIB=$CODEMGR_WS/proto/root_$MACH/lib 158USRLIB=$CODEMGR_WS/proto/root_$MACH/usr/lib 159 160if [ ! -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" 164fi 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# 170if [ ! -h $SYSLIB/64 ] ; then 171 rm -f $SYSLIB/64 172 ln -s $MACH64 $SYSLIB/64 173 echo "$SYSLIB/64 -> $SYSLIB/$MACH64" 174fi 175if [ ! -h $USRLIB/64 ] ; then 176 rm -f $USRLIB/64 177 ln -s $MACH64 $USRLIB/64 178 echo "$USRLIB/64 -> $USRLIB/$MACH64" 179fi 180if [ ! -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" 184fi 185if [ ! -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" 189fi 190 191# 192# 193# 194if [ $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 197fi 198