17c478bd9Sstevel@tonic-gate#!/bin/sh 27c478bd9Sstevel@tonic-gate# 37c478bd9Sstevel@tonic-gate# CDDL HEADER START 47c478bd9Sstevel@tonic-gate# 57c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the 65aefb655Srie# Common Development and Distribution License (the "License"). 75aefb655Srie# You may not use this file except in compliance with the License. 87c478bd9Sstevel@tonic-gate# 97c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 107c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing. 117c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions 127c478bd9Sstevel@tonic-gate# and limitations under the License. 137c478bd9Sstevel@tonic-gate# 147c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each 157c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 167c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the 177c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying 187c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner] 197c478bd9Sstevel@tonic-gate# 207c478bd9Sstevel@tonic-gate# CDDL HEADER END 217c478bd9Sstevel@tonic-gate# 225aefb655Srie 237c478bd9Sstevel@tonic-gate# 2431fdd7caSab196087# Copyright 2007 Sun Microsystems, Inc. All rights reserved. 257c478bd9Sstevel@tonic-gate# Use is subject to license terms. 267c478bd9Sstevel@tonic-gate# 277c478bd9Sstevel@tonic-gate# ident "%Z%%M% %I% %E% SMI" 287c478bd9Sstevel@tonic-gate# 297c478bd9Sstevel@tonic-gate# Generate a proto area suitable for the current architecture ($(MACH)) 307c478bd9Sstevel@tonic-gate# sufficient to support the sgs build. 317c478bd9Sstevel@tonic-gate# 327c478bd9Sstevel@tonic-gate# Currently, the following releases are supported: 33*46d4d531Srie# 5.11, 5.10, and 5.9. 347c478bd9Sstevel@tonic-gate# 357c478bd9Sstevel@tonic-gate 367c478bd9Sstevel@tonic-gateif [ "X$CODEMGR_WS" = "X" -o "X$MACH" = "X" ] ; then 37*46d4d531Srie echo "usage: CODEMGR_WS and MACH environment variables must be set" 387c478bd9Sstevel@tonic-gate exit 1 397c478bd9Sstevel@tonic-gatefi 407c478bd9Sstevel@tonic-gate 41*46d4d531SrieRELEASE=$1 42*46d4d531Srie 43*46d4d531Srieif [ "X$RELEASE" = "X" ] ; then 44*46d4d531Srie echo "usage: proto release" 45*46d4d531Srie exit 1; 46*46d4d531Sriefi 47*46d4d531Srie 48*46d4d531SrieIS_THIS_UNIFIED=1 49*46d4d531Srie 50*46d4d531Sriecase $RELEASE in 51*46d4d531Srie "5.11") break;; 52*46d4d531Srie "5.10") break;; 53*46d4d531Srie "5.9") IS_THIS_UNIFIED=0; break;; 54*46d4d531Srie *) 55*46d4d531Srie echo "usage: unsupported release $RELEASE specified" 56*46d4d531Srie exit 1;; 57*46d4d531Srieesac 58*46d4d531Srie 597c478bd9Sstevel@tonic-gatedirs=" $CODEMGR_WS/proto \ 607c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH \ 617c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/lib \ 627c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr \ 637c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/demo \ 647c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/lib \ 657c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/lib/abi \ 667c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/lib/link_audit \ 677c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/lib/mdb \ 687c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/lib/mdb/proc \ 697c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/lib/pics \ 707c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/4lib \ 717c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/bin \ 727c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/ccs \ 737c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/ccs/bin \ 747c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/include \ 757c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/include/sys \ 767c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/xpg4 \ 777c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/xpg4/bin \ 787c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/etc \ 797c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/etc/lib \ 807c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/opt \ 817c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld \ 827c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/bin \ 837c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/doc \ 847c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/lib \ 857c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/man \ 867c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/man/man1 \ 877c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/man/man1l \ 887c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/man/man3t \ 897c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/man/man3l \ 907c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/man/man3x" 917c478bd9Sstevel@tonic-gate 927c478bd9Sstevel@tonic-gate# 937c478bd9Sstevel@tonic-gate# Add 64bit directories 947c478bd9Sstevel@tonic-gate# 957c478bd9Sstevel@tonic-gateMACH64="" 967c478bd9Sstevel@tonic-gateif [ $MACH = "sparc" ]; then 977c478bd9Sstevel@tonic-gate MACH64="sparcv9"; 987c478bd9Sstevel@tonic-gatefi 997c478bd9Sstevel@tonic-gateif [ $MACH = "i386" ]; then 1007c478bd9Sstevel@tonic-gate MACH64="amd64"; 1017c478bd9Sstevel@tonic-gatefi 1027c478bd9Sstevel@tonic-gateif [ "${MACH64}x" != x ]; then 1037c478bd9Sstevel@tonic-gate 1047c478bd9Sstevel@tonic-gate dirs="$dirs \ 1057c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/lib/$MACH64 \ 1067c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/bin/$MACH64 \ 1077c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/ccs/bin/$MACH64 \ 1087c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/lib/$MACH64 \ 1097c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/lib/abi/$MACH64 \ 1107c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/lib/link_audit/$MACH64 \ 1117c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/lib/mdb/proc/$MACH64 \ 1127c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/usr/lib/pics/$MACH64 \ 1137c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/bin/$MACH64 \ 1147c478bd9Sstevel@tonic-gate $CODEMGR_WS/proto/root_$MACH/opt/SUNWonld/lib/$MACH64 \ 1157c478bd9Sstevel@tonic-gate " 1167c478bd9Sstevel@tonic-gatefi 1177c478bd9Sstevel@tonic-gate 1187c478bd9Sstevel@tonic-gatefor dir in `echo $dirs` 1197c478bd9Sstevel@tonic-gatedo 1207c478bd9Sstevel@tonic-gate if [ ! -d $dir ] ; then 1217c478bd9Sstevel@tonic-gate echo $dir 1227c478bd9Sstevel@tonic-gate mkdir $dir 1237c478bd9Sstevel@tonic-gate chmod 777 $dir 1247c478bd9Sstevel@tonic-gate fi 1257c478bd9Sstevel@tonic-gatedone 1267c478bd9Sstevel@tonic-gate 1277c478bd9Sstevel@tonic-gate# We need a local copy of libc_pic.a (we should get this from the parent 1287c478bd9Sstevel@tonic-gate# workspace, but as we can't be sure how the proto area is constructed there 1294d922dedSrie# simply take it from a stashed copy on the linkers server. If 1304d922dedSrie# LINKERS_EXPORT is defined, we use it. Failing that, we fall over 1314d922dedSrie# to linkers.central. 1324d922dedSrieif [ "$LINKERS_EXPORT" = "" ]; then 1334d922dedSrie LINKERS_EXPORT=/net/linkers.central/export 13431fdd7caSab196087fi 1357c478bd9Sstevel@tonic-gate 1367c478bd9Sstevel@tonic-gateif [ $MACH = "sparc" ]; then 1377c478bd9Sstevel@tonic-gate PLATS="sparc sparcv9" 1387c478bd9Sstevel@tonic-gateelif [ $MACH = "i386" ]; then 1397c478bd9Sstevel@tonic-gate PLATS="i386 amd64" 1407c478bd9Sstevel@tonic-gateelse 1417c478bd9Sstevel@tonic-gate echo "Unknown Mach: $MACH - no libc_pic.a provided!" 1427c478bd9Sstevel@tonic-gate PLATS="" 1437c478bd9Sstevel@tonic-gatefi 1447c478bd9Sstevel@tonic-gate 1457c478bd9Sstevel@tonic-gatefor p in $PLATS 1467c478bd9Sstevel@tonic-gatedo 1477c478bd9Sstevel@tonic-gate SRCLIBCDIR=${SRC}/lib/libc/$p 1487c478bd9Sstevel@tonic-gate if [ ! -d $SRCLIBCDIR ]; then 1497c478bd9Sstevel@tonic-gate mkdir -p $SRCLIBCDIR 1507c478bd9Sstevel@tonic-gate fi 1517c478bd9Sstevel@tonic-gate if [ ! -f $SRCLIBCDIR/libc_pic.a ]; then 1524d922dedSrie cp $LINKERS_EXPORT/big/libc_pic/$RELEASE/$p/libc_pic.a \ 1534d922dedSrie $SRCLIBCDIR 1547c478bd9Sstevel@tonic-gate fi 1557c478bd9Sstevel@tonic-gatedone 1567c478bd9Sstevel@tonic-gate 1575aefb655SrieSYSLIB=$CODEMGR_WS/proto/root_$MACH/lib 1587c478bd9Sstevel@tonic-gateUSRLIB=$CODEMGR_WS/proto/root_$MACH/usr/lib 1597c478bd9Sstevel@tonic-gate 1607c478bd9Sstevel@tonic-gateif [ ! -h $USRLIB/ld.so.1 ]; then 1617c478bd9Sstevel@tonic-gate rm -f $USRLIB/ld.so.1 1627c478bd9Sstevel@tonic-gate ln -s ../../lib/ld.so.1 $USRLIB/ld.so.1 1637c478bd9Sstevel@tonic-gate echo "$USRLIB/ld.so.1 -> ../../lib/ld.so.1" 1647c478bd9Sstevel@tonic-gatefi 1657c478bd9Sstevel@tonic-gate 1667c478bd9Sstevel@tonic-gate# 1677c478bd9Sstevel@tonic-gate# In addition create some 64 symlinks so that dependencies referenced 1687c478bd9Sstevel@tonic-gate# from our test environment will map back to the appropriate libraries. 1697c478bd9Sstevel@tonic-gate# 1705aefb655Srieif [ ! -h $SYSLIB/64 ] ; then 1715aefb655Srie rm -f $SYSLIB/64 1725aefb655Srie ln -s $MACH64 $SYSLIB/64 1735aefb655Srie echo "$SYSLIB/64 -> $SYSLIB/$MACH64" 1745aefb655Sriefi 1757c478bd9Sstevel@tonic-gateif [ ! -h $USRLIB/64 ] ; then 1767c478bd9Sstevel@tonic-gate rm -f $USRLIB/64 1775aefb655Srie ln -s $MACH64 $USRLIB/64 1785aefb655Srie echo "$USRLIB/64 -> $USRLIB/$MACH64" 1797c478bd9Sstevel@tonic-gatefi 1807c478bd9Sstevel@tonic-gateif [ ! -h $USRLIB/link_audit/64 ] ; then 1817c478bd9Sstevel@tonic-gate rm -f $USRLIB/link_audit/64 1825aefb655Srie ln -s $MACH64 $USRLIB/link_audit/64 1835aefb655Srie echo "$USRLIB/link_audit/64 -> $USRLIB/link_audit/$MACH64" 1847c478bd9Sstevel@tonic-gatefi 1857c478bd9Sstevel@tonic-gateif [ ! -h $USRLIB/64/ld.so.1 ]; then 1867c478bd9Sstevel@tonic-gate rm -f $USRLIB/64/ld.so.1 1875aefb655Srie ln -s ../../../lib/64/ld.so.1 $USRLIB/64/ld.so.1 1887c478bd9Sstevel@tonic-gate echo "$USRLIB/64/ld.so.1 -> ../../../lib/64/ld.so.1" 1897c478bd9Sstevel@tonic-gatefi 1907c478bd9Sstevel@tonic-gate 1917c478bd9Sstevel@tonic-gate# 1927c478bd9Sstevel@tonic-gate# 1937c478bd9Sstevel@tonic-gate# 1947c478bd9Sstevel@tonic-gateif [ $IS_THIS_UNIFIED = 0 ] ; then 1957c478bd9Sstevel@tonic-gate rm -fr $CODEMGR_WS/proto/root_$MACH/lib 1967c478bd9Sstevel@tonic-gate ln -s $CODEMGR_WS/proto/root_$MACH/usr/lib $CODEMGR_WS/proto/root_$MACH/lib 1977c478bd9Sstevel@tonic-gatefi 198