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.
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.
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]
24 # Copyright 2007 Sun Microsystems, Inc. All rights reserved.
25 # Use is subject to license terms.
27 # ident "%Z%%M% %I% %E% SMI"
29 # Generate a proto area suitable for the current architecture ($(MACH))
30 # sufficient to support the sgs build.
32 # Currently, the following releases are supported:
33 # 5.11, 5.10, and 5.9.
36 if [ "X$CODEMGR_WS" = "X" -o "X$MACH" = "X" ] ; then
37 echo "usage: CODEMGR_WS and MACH environment variables must be set"
43 if [ "X$RELEASE" = "X" ] ; then
44 echo "usage: proto release"
53 "5.9") IS_THIS_UNIFIED
=0; break;;
55 echo "usage: unsupported release $RELEASE specified"
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"
93 # Add 64bit directories
96 if [ $MACH = "sparc" ]; then
99 if [ $MACH = "i386" ]; then
102 if [ "${MACH64}x" != x
]; then
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 \
118 for dir
in `echo $dirs`
120 if [ ! -d $dir ] ; then
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
136 if [ $MACH = "sparc" ]; then
137 PLATS
="sparc sparcv9"
138 elif [ $MACH = "i386" ]; then
141 echo "Unknown Mach: $MACH - no libc_pic.a provided!"
147 SRCLIBCDIR
=${SRC}/lib
/libc
/$p
148 if [ ! -d $SRCLIBCDIR ]; then
151 if [ ! -f $SRCLIBCDIR/libc_pic.a
]; then
152 cp $LINKERS_EXPORT/big
/libc_pic
/$RELEASE/$p/libc_pic.a \
157 SYSLIB
=$CODEMGR_WS/proto
/root_
$MACH/lib
158 USRLIB
=$CODEMGR_WS/proto
/root_
$MACH/usr
/lib
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"
167 # In addition create some 64 symlinks so that dependencies referenced
168 # from our test environment will map back to the appropriate libraries.
170 if [ ! -h $SYSLIB/64 ] ; then
172 ln -s $MACH64 $SYSLIB/64
173 echo "$SYSLIB/64 -> $SYSLIB/$MACH64"
175 if [ ! -h $USRLIB/64 ] ; then
177 ln -s $MACH64 $USRLIB/64
178 echo "$USRLIB/64 -> $USRLIB/$MACH64"
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"
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"
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