8153294: Solaris devkit uses linker from system instead of in devkit
Reviewed-by: tbell, ihse
This commit is contained in:
parent
6f44bbc940
commit
c6109771f1
@ -175,6 +175,16 @@ AC_DEFUN([FLAGS_SETUP_SYSROOT_FLAGS],
|
|||||||
$1SYSROOT_CFLAGS="-I-xbuiltin -I[$]$1SYSROOT/usr/include"
|
$1SYSROOT_CFLAGS="-I-xbuiltin -I[$]$1SYSROOT/usr/include"
|
||||||
$1SYSROOT_LDFLAGS="-L[$]$1SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
|
$1SYSROOT_LDFLAGS="-L[$]$1SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
|
||||||
-L[$]$1SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR"
|
-L[$]$1SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR"
|
||||||
|
# If the devkit contains the ld linker, make sure we use it.
|
||||||
|
AC_PATH_PROG(SOLARIS_LD, ld, , $DEVKIT_TOOLCHAIN_PATH:$DEVKIT_EXTRA_PATH)
|
||||||
|
# Make sure this ld is runnable.
|
||||||
|
if test -f "$SOLARIS_LD"; then
|
||||||
|
if "$SOLARIS_LD" -V > /dev/null 2> /dev/null; then
|
||||||
|
$1SYSROOT_LDFLAGS="[$]$1SYSROOT_LDFLAGS -Yl,$(dirname $SOLARIS_LD)"
|
||||||
|
else
|
||||||
|
AC_MSG_WARN([Could not run $SOLARIS_LD found in devkit, reverting to system ld])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
$1SYSROOT_CFLAGS="--sysroot=[$]$1SYSROOT"
|
$1SYSROOT_CFLAGS="--sysroot=[$]$1SYSROOT"
|
||||||
|
@ -768,7 +768,7 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
linux_x64: "gcc4.9.2-OEL6.4+1.2",
|
linux_x64: "gcc4.9.2-OEL6.4+1.2",
|
||||||
macosx_x64: "Xcode6.3-MacOSX10.9+1.0",
|
macosx_x64: "Xcode6.3-MacOSX10.9+1.0",
|
||||||
solaris_x64: "SS12u4-Solaris11u1+1.0",
|
solaris_x64: "SS12u4-Solaris11u1+1.0",
|
||||||
solaris_sparcv9: "SS12u4-Solaris11u1+1.0",
|
solaris_sparcv9: "SS12u4-Solaris11u1+1.1",
|
||||||
windows_x64: "VS2013SP4+1.0",
|
windows_x64: "VS2013SP4+1.0",
|
||||||
linux_aarch64: "gcc-linaro-aarch64-linux-gnu-4.8-2013.11_linux+1.0",
|
linux_aarch64: "gcc-linaro-aarch64-linux-gnu-4.8-2013.11_linux+1.0",
|
||||||
linux_arm: (input.profile != null && input.profile.indexOf("hflt") >= 0
|
linux_arm: (input.profile != null && input.profile.indexOf("hflt") >= 0
|
||||||
|
@ -73,7 +73,8 @@ DEVKIT_NAME=SS${SOLARIS_STUDIO_VERSION}-Solaris${SOLARIS_VERSION}
|
|||||||
DEVKIT_ROOT=${BUILD_DIR}/${DEVKIT_NAME}
|
DEVKIT_ROOT=${BUILD_DIR}/${DEVKIT_NAME}
|
||||||
BUNDLE_NAME=${DEVKIT_NAME}.tar.gz
|
BUNDLE_NAME=${DEVKIT_NAME}.tar.gz
|
||||||
BUNDLE=${BUILD_DIR}/${BUNDLE_NAME}
|
BUNDLE=${BUILD_DIR}/${BUNDLE_NAME}
|
||||||
INSTALL_ROOT=${BUILD_DIR}/install-root
|
INSTALL_ROOT=${BUILD_DIR}/install-root-$SOLARIS_VERSION
|
||||||
|
INSTALL_ROOT_TOOLS=${BUILD_DIR}/install-root-tools-$SOLARIS_VERSION
|
||||||
SYSROOT=${DEVKIT_ROOT}/sysroot
|
SYSROOT=${DEVKIT_ROOT}/sysroot
|
||||||
SOLARIS_STUDIO_SUBDIR=SS${SOLARIS_STUDIO_VERSION}
|
SOLARIS_STUDIO_SUBDIR=SS${SOLARIS_STUDIO_VERSION}
|
||||||
SOLARIS_STUDIO_DIR=${DEVKIT_ROOT}/${SOLARIS_STUDIO_SUBDIR}
|
SOLARIS_STUDIO_DIR=${DEVKIT_ROOT}/${SOLARIS_STUDIO_SUBDIR}
|
||||||
@ -92,17 +93,27 @@ else
|
|||||||
echo "Skipping installing packages"
|
echo "Skipping installing packages"
|
||||||
fi
|
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
|
if [ ! -d $SYSROOT ]; then
|
||||||
echo "Copying from $INSTALL_ROOT to $SYSROOT"
|
echo "Copying from $INSTALL_ROOT to $SYSROOT"
|
||||||
mkdir -p $SYSROOT
|
mkdir -p $SYSROOT
|
||||||
cp -rH $INSTALL_ROOT/lib $SYSROOT/
|
cp -rH $INSTALL_ROOT/lib $SYSROOT/
|
||||||
mkdir $SYSROOT/usr $DEVKIT_ROOT/gnu
|
mkdir $SYSROOT/usr
|
||||||
# Some of the tools in sysroot are needed in the OpenJDK build but cannot be
|
|
||||||
# run from their current location due to relative runtime paths in the
|
|
||||||
# binaries. Move the sysroot/usr/bin directory to the outer bin and have them
|
|
||||||
# be runnable from there to force them to link to the system libraries
|
|
||||||
cp -rH $INSTALL_ROOT/usr/bin $DEVKIT_ROOT
|
|
||||||
cp -rH $INSTALL_ROOT/usr/gnu/bin $DEVKIT_ROOT/gnu/
|
|
||||||
cp -rH $INSTALL_ROOT/usr/lib $SYSROOT/usr/
|
cp -rH $INSTALL_ROOT/usr/lib $SYSROOT/usr/
|
||||||
cp -rH $INSTALL_ROOT/usr/include $SYSROOT/usr/
|
cp -rH $INSTALL_ROOT/usr/include $SYSROOT/usr/
|
||||||
pkg -R $INSTALL_ROOT list > $SYSROOT/pkg-list.txt
|
pkg -R $INSTALL_ROOT list > $SYSROOT/pkg-list.txt
|
||||||
@ -110,10 +121,36 @@ else
|
|||||||
echo "Skipping copying to $SYSROOT"
|
echo "Skipping copying to $SYSROOT"
|
||||||
fi
|
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
|
||||||
|
else
|
||||||
|
echo "Skipping copying to tools dir $DEVKIT_ROOT/tools"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ ! -d $SOLARIS_STUDIO_DIR ]; then
|
if [ ! -d $SOLARIS_STUDIO_DIR ]; then
|
||||||
echo "Copying Solaris Studio from $SOLARIS_STUDIO_SRC"
|
echo "Copying Solaris Studio from $SOLARIS_STUDIO_SRC"
|
||||||
cp -rH $SOLARIS_STUDIO_SRC ${SOLARIS_STUDIO_DIR%/*}
|
mkdir -p ${SOLARIS_STUDIO_DIR}
|
||||||
mv ${SOLARIS_STUDIO_DIR%/*}/${SOLARIS_STUDIO_SRC##*/} $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
|
# 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
|
# installed by default on all Solaris systems. Sneak it in from the sysroot to
|
||||||
# make it run OOTB on more systems.
|
# make it run OOTB on more systems.
|
||||||
@ -123,10 +160,9 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Copying gnu make to $DEVKIT_ROOT/bin"
|
echo "Copying gnu make to $DEVKIT_ROOT/bin"
|
||||||
mkdir -p $DEVKIT_ROOT/bin
|
cp $GNU_MAKE $DEVKIT_ROOT/tools/usr/bin/
|
||||||
cp $GNU_MAKE $DEVKIT_ROOT/bin/
|
if [ ! -e $DEVKIT_ROOT/tools/usr/bin/gmake ]; then
|
||||||
if [ ! -e $DEVKIT_ROOT/bin/gmake ]; then
|
ln -s make $DEVKIT_ROOT/tools/usr/bin/gmake
|
||||||
ln -s make $DEVKIT_ROOT/bin/gmake
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create the devkit.info file
|
# Create the devkit.info file
|
||||||
@ -136,7 +172,7 @@ rm -f $INFO_FILE
|
|||||||
echo "# This file describes to configure how to interpret the contents of this devkit" >> $INFO_FILE
|
echo "# This file describes to configure how to interpret the contents of this devkit" >> $INFO_FILE
|
||||||
echo "DEVKIT_NAME=\"Solaris Studio $SOLARIS_STUDIO_VERSION - Solaris $SOLARIS_VERSION - $ARCH\"" >> $INFO_FILE
|
echo "DEVKIT_NAME=\"Solaris Studio $SOLARIS_STUDIO_VERSION - Solaris $SOLARIS_VERSION - $ARCH\"" >> $INFO_FILE
|
||||||
echo "DEVKIT_TOOLCHAIN_PATH=\"\$DEVKIT_ROOT/$SOLARIS_STUDIO_SUBDIR/bin:\$DEVKIT_ROOT/bin\"" >> $INFO_FILE
|
echo "DEVKIT_TOOLCHAIN_PATH=\"\$DEVKIT_ROOT/$SOLARIS_STUDIO_SUBDIR/bin:\$DEVKIT_ROOT/bin\"" >> $INFO_FILE
|
||||||
echo "DEVKIT_EXTRA_PATH=\"\$DEVKIT_ROOT/bin\"" >> $INFO_FILE
|
echo "DEVKIT_EXTRA_PATH=\"\$DEVKIT_ROOT/tools/usr/bin\"" >> $INFO_FILE
|
||||||
echo "DEVKIT_SYSROOT=\"\$DEVKIT_ROOT/sysroot\"" >> $INFO_FILE
|
echo "DEVKIT_SYSROOT=\"\$DEVKIT_ROOT/sysroot\"" >> $INFO_FILE
|
||||||
|
|
||||||
if [ ! -e $BUNDLE ]; then
|
if [ ! -e $BUNDLE ]; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user