aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-core/cacao/cacao-1.6.1/cacao-1.6.1-do-not-rely-on-absolute-paths.patch
blob: 2b046cf826745f1a2cf89fe9b35bc7d2c902be0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
java.in: Do not use hardcode paths

Cacao uses hardcoded paths to various files, if these paths are not
provided. This causes issues when sharing sstate with otherwise
identical workers, if build time paths are not identical.

Signed-off-by: Erkka Kääriä <erkka.kaaria@intel.com>

Upstream-Status: Inappropriate [Yocto-specific fixes]

---
 cacao-1.6.1/src/scripts/java.in | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git cacao-1.6.1/src/scripts/java.in cacao-1.6.1/src/scripts/java.in
index 0790f02..2118de7 100644
--- cacao-1.6.1/src/scripts/java.in
+++ cacao-1.6.1/src/scripts/java.in
@@ -22,5 +22,17 @@
 ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 ## 02110-1301, USA.

-IFS=""
-exec $(dirname ${0})/cacao ${1+"$@"}
+SH_DIR=`dirname "$0"`
+CURRENT_DIR=`cd "${SH_DIR}" && pwd`
+
+# if this shell script is invoked through symlink, we get invalid paths. As getting the real path to this file is
+# very painful using only /bin/sh, python is used instead.
+PYTHON_STR="import os; print os.path.dirname(os.path.realpath(os.readlink(\"${CURRENT_DIR}/java\"))) if os.path.islink(\"${CURRENT_DIR}/java\") else \"${CURRENT_DIR}\""
+REAL_DIR=`python -c "${PYTHON_STR}"`
+
+PARENT_DIR=`dirname ${REAL_DIR}`
+
+export BOOTCLASSPATH="${PARENT_DIR}/share/cacao/vm.zip:${PARENT_DIR}/share/classpath/glibj.zip"
+LIBRARY_PATH="-Djava.library.path=${PARENT_DIR}/lib/classpath"
+exec ${REAL_DIR}/cacao ${LIBRARY_PATH} ${1+"$@"}
+
--
2.7.4