From a28d6dc7ffbeb6f1ba4f400d85570de457f798cb Mon Sep 17 00:00:00 2001 From: pojavlauncher Date: Thu, 1 Jul 2021 08:19:37 +0700 Subject: [PATCH] Add RPATH to dylib --- ios_fixpath.sh | 22 ++++++++++++++++++++++ removejdkdebuginfo.sh | 22 +++++++++++++--------- 2 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 ios_fixpath.sh diff --git a/ios_fixpath.sh b/ios_fixpath.sh new file mode 100644 index 0000000..de285f3 --- /dev/null +++ b/ios_fixpath.sh @@ -0,0 +1,22 @@ +#!/bin/bash +set -e + +libpath=openjdk/build/${JVM_PLATFORM}-${TARGET_JDK}-normal-${JVM_VARIANTS}-${JDK_DEBUG_LEVEL}/jdk/lib +newlibpath=/usr/lib/jvm/java-8-openjdk/lib + +for dafile in $(find jdkout/jre/lib -name "*.dylib"); do + for dafile2 in $(find jdkout/jre/lib -name "*.dylib" | xargs basename); do + if [ "$dafile2" != "libjvm.dylib" ] && [ "$dafile2" != "libjsig.dylib" ]; then + export changecmd+=" -change $PWD/$libpath/$dafile2 @rpath/$dafile2" + fi + done + install_name_tool -add_rpath $newlibpath/server -add_rpath $newlibpath/jli \ + -add_rpath $newlibpath $changecmd $dafile +done + +for dafile in $(find jreout -name "*.dylib"); do + install_name_tool -add_rpath $newlibpath/server -add_rpath $newlibpath/jli \ + -add_rpath $newlibpath $changecmd $dafile +done + +echo $changecmd diff --git a/removejdkdebuginfo.sh b/removejdkdebuginfo.sh index 90c9557..2eefc4f 100755 --- a/removejdkdebuginfo.sh +++ b/removejdkdebuginfo.sh @@ -10,13 +10,6 @@ imagespath=openjdk/build/${JVM_PLATFORM}-${TARGET_JDK}-normal-${JVM_VARIANTS}-${ rm -rf dizout jreout jdkout mkdir dizout -if [ "$BUILD_IOS" == "1" ]; then - find $imagespath -name "*.dylib" -exec ldid -Sios-sign-entitlements.xml {} \; - for bindir in $(find $imagespath -name "bin"); do - ldid -Sios-sign-entitlements.xml ${bindir}/* - done -fi - cp -r $imagespath/j2re-image jreout cp -r $imagespath/j2sdk-image jdkout @@ -29,5 +22,16 @@ mv jreout/lib/${TARGET_JDK}/libfreetype.dylib.6 jreout/lib/${TARGET_JDK}/libfree # find jreout -name "*.diz" | xargs -- rm # mv jreout/lib/${TARGET_JDK}/libfontmanager.diz.keep jreout/lib/${TARGET_JDK}/libfontmanager.diz -find jdkout -name "*.diz" | xargs -- rm -find jreout -name "*.diz" -exec mv {} dizout/ \; +find jreout -name "*.diz" -delete +find jdkout -name "*.diz" -exec mv {} dizout/ \; + +if [ "$BUILD_IOS" == "1" ]; then + newlibpath=/usr/lib/jvm/java-8-openjdk/lib + for dafile in $(find j*out -name "*.dylib"); do + install_name_tool -add_rpath $newlibpath/server -add_rpath $newlibpath/jli \ + -add_rpath $newlibpath $changecmd $dafile + ldid -Sios-sign-entitlements.xml $dafile + done + ldid -Sios-sign-entitlements.xml jreout/bin/* + ldid -Sios-sign-entitlements.xml jdkout/jre/bin/* +fi