< prev index next >

make/devkit/createSolarisDevkit12.6.sh

Print this page

        

*** 1,8 **** #!/bin/bash # ! # Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License version 2 only, as # published by the Free Software Foundation. Oracle designates this --- 1,8 ---- #!/bin/bash # ! # Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License version 2 only, as # published by the Free Software Foundation. Oracle designates this
*** 27,61 **** # This script creates a devkit for building OpenJDK on Solaris by copying # part of a Solaris Studio installation and cretaing a sysroot by installing # a limited set of system packages. It is assumed that a suitable pkg # publisher is configured for the system where the script is executed. # # The Solaris Studio installation must contain at least these packages: ! # developer/solarisstudio-124/backend 12.4-1.0.6.0 i-- ! # developer/solarisstudio-124/c++ 12.4-1.0.10.0 i-- ! # developer/solarisstudio-124/cc 12.4-1.0.4.0 i-- ! # developer/solarisstudio-124/library/c++-libs 12.4-1.0.10.0 i-- ! # developer/solarisstudio-124/library/math-libs 12.4-1.0.0.1 i-- ! # developer/solarisstudio-124/library/studio-gccrt 12.4-1.0.0.1 i-- ! # developer/solarisstudio-124/studio-common 12.4-1.0.0.1 i-- ! # developer/solarisstudio-124/studio-ja 12.4-1.0.0.1 i-- ! # developer/solarisstudio-124/studio-legal 12.4-1.0.0.1 i-- ! # developer/solarisstudio-124/studio-zhCN 12.4-1.0.0.1 i-- ! # In particular backend 12.4-1.0.6.0 contains a critical patch for the sparc ! # version. # # erik.joelsson@oracle.com ! USAGE="$0 <Solaris Studio installation> <Path to gnu make binary>" ! if [ "$1" = "" ] || [ "$2" = "" ]; then echo $USAGE exit 1 fi ! SOLARIS_STUDIO_VERSION=12u4 ! SOLARIS_VERSION=11u1 case `uname -p` in i*) ARCH=x86 ;; sparc*) --- 27,66 ---- # This script creates a devkit for building OpenJDK on Solaris by copying # part of a Solaris Studio installation and cretaing a sysroot by installing # a limited set of system packages. It is assumed that a suitable pkg # publisher is configured for the system where the script is executed. # + # Note that you will need to be able to sudo to root to run the pkg install + # part of this script. It should not affect the running system, but only + # install in a separate temporary image. + # # The Solaris Studio installation must contain at least these packages: ! # developer/developerstudio-126/backend 12.6-1.0.0.0 i-- ! # developer/developerstudio-126/c++ 12.6-1.0.0.0 i-- ! # developer/developerstudio-126/cc 12.6-1.0.0.0 i-- ! # developer/developerstudio-126/dbx (solarisstudio) 12.6-1.0.0.0 i-- ! # developer/developerstudio-126/library/c++-libs 12.6-1.0.0.0 i-- ! # developer/developerstudio-126/library/math-libs 12.6-1.0.0.0 i-- ! # developer/developerstudio-126/library/c-libs 12.6-1.0.0.0 i-- ! # developer/developerstudio-126/library/studio-gccrt 12.6-1.0.0.0 i-- ! # developer/developerstudio-126/studio-common 12.6-1.0.0.0 i-- ! # developer/developerstudio-126/studio-ja 12.6-1.0.0.0 i-- ! # developer/developerstudio-126/studio-legal 12.6-1.0.0.0 i-- ! # developer/developerstudio-126/studio-zhCN 12.6-1.0.0.0 i-- # # erik.joelsson@oracle.com ! USAGE="$0 <Solaris Studio installation>" ! if [ "$1" = "" ]; then echo $USAGE exit 1 fi ! SOLARIS_STUDIO_VERSION=12u6 ! SOLARIS_VERSION=11u3 ! SOLARIS_ENTIRE_VERSION=0.5.11-0.175.3.20.0.6.0 case `uname -p` in i*) ARCH=x86 ;; sparc*)
*** 62,82 **** ARCH=sparc ;; esac SOLARIS_STUDIO_SRC=$1 - GNU_MAKE=$2 SCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)" BUILD_DIR="${SCRIPT_DIR}/../../build/devkit" DEVKIT_NAME=SS${SOLARIS_STUDIO_VERSION}-Solaris${SOLARIS_VERSION} DEVKIT_ROOT=${BUILD_DIR}/${DEVKIT_NAME} BUNDLE_NAME=${DEVKIT_NAME}.tar.gz BUNDLE=${BUILD_DIR}/${BUNDLE_NAME} INSTALL_ROOT=${BUILD_DIR}/install-root-$SOLARIS_VERSION - INSTALL_ROOT_TOOLS=${BUILD_DIR}/install-root-tools-$SOLARIS_VERSION SYSROOT=${DEVKIT_ROOT}/sysroot SOLARIS_STUDIO_SUBDIR=SS${SOLARIS_STUDIO_VERSION} SOLARIS_STUDIO_DIR=${DEVKIT_ROOT}/${SOLARIS_STUDIO_SUBDIR} # Extract the publisher from the system --- 67,85 ----
*** 86,116 **** if [ ! -d $INSTALL_ROOT ]; then echo "Creating $INSTALL_ROOT and installing packages" pkg image-create $INSTALL_ROOT pkg -R $INSTALL_ROOT set-publisher -P -g ${PUBLISHER_URI} solaris ! pkg -R $INSTALL_ROOT install --accept $(cat solaris11.1-package-list.txt) else echo "Skipping installing packages" fi - # Since we have implicitly been running 11.2 tools for a long time, we need - # to pick them for the tools dir in the devkit. Create a separate install-root - # for it. - if [ ! -d $INSTALL_ROOT_TOOLS ]; then - echo "Creating $INSTALL_ROOT_TOOLS and installing packages" - pkg image-create $INSTALL_ROOT_TOOLS - pkg -R $INSTALL_ROOT_TOOLS set-publisher -P -g ${PUBLISHER_URI} solaris - sudo pkg -R $INSTALL_ROOT_TOOLS install --accept \ - entire@0.5.11-0.175.2.5.0.5.0 \ - system/linker \ - developer/base-developer-utilities \ - developer/gnu-binutils - else - echo "Skipping installing tools packages" - fi - if [ ! -d $SYSROOT ]; then echo "Copying from $INSTALL_ROOT to $SYSROOT" mkdir -p $SYSROOT cp -rH $INSTALL_ROOT/lib $SYSROOT/ mkdir $SYSROOT/usr --- 89,105 ---- if [ ! -d $INSTALL_ROOT ]; then echo "Creating $INSTALL_ROOT and installing packages" pkg image-create $INSTALL_ROOT pkg -R $INSTALL_ROOT set-publisher -P -g ${PUBLISHER_URI} solaris ! sudo pkg -R $INSTALL_ROOT install --accept entire@$SOLARIS_ENTIRE_VERSION \ ! system/install developer/gnu-binutils system/library/mmheap system/picl \ ! developer/assembler else echo "Skipping installing packages" fi if [ ! -d $SYSROOT ]; then echo "Copying from $INSTALL_ROOT to $SYSROOT" mkdir -p $SYSROOT cp -rH $INSTALL_ROOT/lib $SYSROOT/ mkdir $SYSROOT/usr
*** 120,145 **** else echo "Skipping copying to $SYSROOT" fi if [ ! -d $DEVKIT_ROOT/tools ]; then - echo "Copying from $INSTALL_ROOT_TOOLS to $DEVKIT_ROOT/tools" # Some of the tools in sysroot are needed in the OpenJDK build. We need # to copy them into a tools dir, including their specific libraries. ! mkdir -p $DEVKIT_ROOT/tools/usr/bin/sparcv9 $DEVKIT_ROOT/tools/lib/sparcv9 \ ! $DEVKIT_ROOT/tools/usr/gnu/bin ! cp $INSTALL_ROOT_TOOLS/usr/bin/{ar,nm,strip,ld,ldd} \ $DEVKIT_ROOT/tools/usr/bin/ ! cp $INSTALL_ROOT_TOOLS/usr/bin/sparcv9/{ar,nm,strip,ld,ldd} \ ! $DEVKIT_ROOT/tools/usr/bin/sparcv9/ ! cp $INSTALL_ROOT_TOOLS/usr/sbin/dtrace $DEVKIT_ROOT/tools/usr/bin/ ! cp $INSTALL_ROOT_TOOLS/usr/sbin/sparcv9/dtrace $DEVKIT_ROOT/tools/usr/bin/sparcv9/ ! cp -rH $INSTALL_ROOT_TOOLS/usr/gnu/bin/* $DEVKIT_ROOT/tools/usr/gnu/bin/ ! cp $INSTALL_ROOT_TOOLS/lib/{libelf.so*,libld.so*,liblddbg.so*} \ ! $DEVKIT_ROOT/tools/lib/ ! cp $INSTALL_ROOT_TOOLS/lib/sparcv9/{libelf.so*,libld.so*,liblddbg.so*} \ ! $DEVKIT_ROOT/tools/lib/sparcv9/ for t in $(ls $DEVKIT_ROOT/tools/usr/gnu/bin); do if [ -f $DEVKIT_ROOT/tools/usr/gnu/bin/$t ]; then ln -s ../gnu/bin/$t $DEVKIT_ROOT/tools/usr/bin/g$t fi done --- 109,128 ---- else echo "Skipping copying to $SYSROOT" fi if [ ! -d $DEVKIT_ROOT/tools ]; then # Some of the tools in sysroot are needed in the OpenJDK build. We need # to copy them into a tools dir, including their specific libraries. ! mkdir -p $DEVKIT_ROOT/tools/usr/bin $DEVKIT_ROOT/tools/lib/sparcv9 \ ! $DEVKIT_ROOT/tools/usr/gnu/bin $DEVKIT_ROOT/tools/usr/bin/sparcv9 ! cp $INSTALL_ROOT/usr/bin/{as,ar,nm,strip,ld,pigz,ldd} \ $DEVKIT_ROOT/tools/usr/bin/ ! cp $INSTALL_ROOT/usr/sbin/dtrace $DEVKIT_ROOT/tools/usr/bin/ ! cp $INSTALL_ROOT/usr/sbin/sparcv9/dtrace $DEVKIT_ROOT/tools/usr/bin/sparcv9/ ! cp -rH $INSTALL_ROOT/usr/gnu/bin/* $DEVKIT_ROOT/tools/usr/gnu/bin/ ! cp $INSTALL_ROOT/lib/sparcv9/{libelf.so*,libld.so*,liblddbg.so*} $DEVKIT_ROOT/tools/lib/sparcv9/ for t in $(ls $DEVKIT_ROOT/tools/usr/gnu/bin); do if [ -f $DEVKIT_ROOT/tools/usr/gnu/bin/$t ]; then ln -s ../gnu/bin/$t $DEVKIT_ROOT/tools/usr/bin/g$t fi done
*** 149,172 **** if [ ! -d $SOLARIS_STUDIO_DIR ]; then echo "Copying Solaris Studio from $SOLARIS_STUDIO_SRC" mkdir -p ${SOLARIS_STUDIO_DIR} cp -rH $SOLARIS_STUDIO_SRC/. ${SOLARIS_STUDIO_DIR}/ ! # Solaris Studio 12.4 requires /lib/libmmheap.so.1 to run, but this lib is not ! # installed by default on all Solaris systems. Sneak it in from the sysroot to ! # make it run OOTB on more systems. cp $SYSROOT/lib/libmmheap.so.1 $SOLARIS_STUDIO_DIR/lib/compilers/sys/ else echo "Skipping copying of Solaris Studio" fi - echo "Copying gnu make to $DEVKIT_ROOT/bin" - cp $GNU_MAKE $DEVKIT_ROOT/tools/usr/bin/ - if [ ! -e $DEVKIT_ROOT/tools/usr/bin/gmake ]; then - ln -s make $DEVKIT_ROOT/tools/usr/bin/gmake - fi - # Create the devkit.info file echo Creating devkit.info INFO_FILE=$DEVKIT_ROOT/devkit.info rm -f $INFO_FILE echo "# This file describes to configure how to interpret the contents of this devkit" >> $INFO_FILE --- 132,152 ---- if [ ! -d $SOLARIS_STUDIO_DIR ]; then echo "Copying Solaris Studio from $SOLARIS_STUDIO_SRC" mkdir -p ${SOLARIS_STUDIO_DIR} cp -rH $SOLARIS_STUDIO_SRC/. ${SOLARIS_STUDIO_DIR}/ ! # Solaris Studio 12.6 requires libmmheap.so.1 and libsunmath.so.1 to run, but ! # these libs are not installed by default on all Solaris systems. ! # Sneak them in from the sysroot to make it run OOTB on more systems. ! cp $SYSROOT/lib/libsunmath.so.1 $SOLARIS_STUDIO_DIR/lib/compilers/sys/ ! cp $SYSROOT/lib/sparcv9/libsunmath.so.1 $SOLARIS_STUDIO_DIR/lib/compilers/sys/sparcv9/ cp $SYSROOT/lib/libmmheap.so.1 $SOLARIS_STUDIO_DIR/lib/compilers/sys/ + cp $SYSROOT/lib/sparcv9/libmmheap.so.1 $SOLARIS_STUDIO_DIR/lib/compilers/sys/sparcv9/ else echo "Skipping copying of Solaris Studio" fi # Create the devkit.info file echo Creating devkit.info INFO_FILE=$DEVKIT_ROOT/devkit.info rm -f $INFO_FILE echo "# This file describes to configure how to interpret the contents of this devkit" >> $INFO_FILE
*** 174,184 **** echo "DEVKIT_TOOLCHAIN_PATH=\"\$DEVKIT_ROOT/$SOLARIS_STUDIO_SUBDIR/bin:\$DEVKIT_ROOT/bin\"" >> $INFO_FILE echo "DEVKIT_EXTRA_PATH=\"\$DEVKIT_ROOT/tools/usr/bin\"" >> $INFO_FILE echo "DEVKIT_SYSROOT=\"\$DEVKIT_ROOT/sysroot\"" >> $INFO_FILE if [ ! -e $BUNDLE ]; then echo "Creating $BUNDLE from $DEVKIT_ROOT" ! cd $DEVKIT_ROOT/.. ! tar zcf $BUNDLE $DEVKIT_NAME else echo "Skipping creation of $BUNDLE" fi --- 154,167 ---- echo "DEVKIT_TOOLCHAIN_PATH=\"\$DEVKIT_ROOT/$SOLARIS_STUDIO_SUBDIR/bin:\$DEVKIT_ROOT/bin\"" >> $INFO_FILE echo "DEVKIT_EXTRA_PATH=\"\$DEVKIT_ROOT/tools/usr/bin\"" >> $INFO_FILE echo "DEVKIT_SYSROOT=\"\$DEVKIT_ROOT/sysroot\"" >> $INFO_FILE if [ ! -e $BUNDLE ]; then + GZIP=$(command -v pigz) + if [ -z "$GZIP" ]; then + GZIP="gzip" + fi echo "Creating $BUNDLE from $DEVKIT_ROOT" ! (cd $DEVKIT_ROOT && tar cf - . | $GZIP - > "$BUNDLE") else echo "Skipping creation of $BUNDLE" fi
< prev index next >