1 #
   2 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
   3 # Use is subject to license terms.
   4 #
   5 # CDDL HEADER START
   6 #
   7 # The contents of this file are subject to the terms of the
   8 # Common Development and Distribution License (the "License").
   9 # You may not use this file except in compliance with the License.
  10 #
  11 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  12 # or http://www.opensolaris.org/os/licensing.
  13 # See the License for the specific language governing permissions
  14 # and limitations under the License.
  15 #
  16 # When distributing Covered Code, include this CDDL HEADER in each
  17 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  18 # If applicable, add the following below this CDDL HEADER, with the
  19 # fields enclosed by brackets "[]" replaced with your own identifying
  20 # information: Portions Copyright [yyyy] [name of copyright owner]
  21 #
  22 # CDDL HEADER END
  23 #
  24 
  25 # Installing the wrong architecture of runtime linker will immediately
  26 # brick the system. Catch this case and refuse to do it.
  27 if [ "$PKG_INSTALL_ROOT" = '' -o "$PKG_INSTALL_ROOT" = '/' ]; then
  28     SYSARCH=`uname -p`
  29     if [ "$SYSARCH" != "$ARCH" ]; then
  30         echo "***"
  31         echo "*** Cannot install $ARCH linker into root of $SYSARCH system."
  32         echo "***"
  33         exit 1
  34     fi
  35 fi
  36 
  37 if [ -d $BASEDIR/$SGSBACKUPDIR ];
  38 then
  39     echo "***"
  40     echo "*** Previous version of SUNWonld already installed. Use"
  41     echo "***     # pkgrm SUNWonld"
  42     echo "*** to remove it before installing a newer version, or"
  43     echo "*** use an admin file to force an overwrite."
  44     echo "***"
  45     exit 1
  46 fi
  47 
  48 # As of Nevada build snv_104, we require the mmapobj() system call.
  49 # Installing on a system that lacks it will break rtld and brick the system.
  50 elfdump -sN.dynsym /lib/libc.so.1 | grep mmapobj > /dev/null
  51 if [ $? != 0 ];
  52 then
  53     echo "***"
  54     echo "*** System lacks required mmapobj() system call"
  55     echo "*** Nevada snv_104 or newer is required."
  56     echo "***"
  57     exit 1
  58 fi
  59 
  60 exit 0