summaryrefslogtreecommitdiffstats
path: root/recipes-core/cacao
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-core/cacao')
-rw-r--r--recipes-core/cacao/cacao-1.6.1/cacao-1.6.1-do-not-rely-on-absolute-paths.patch41
-rw-r--r--recipes-core/cacao/cacao-initial-native_0.98.bb1
-rw-r--r--recipes-core/cacao/cacao_1.6.1.bb21
-rw-r--r--recipes-core/cacao/files/cacao-0.9.8-do-not-rely-on-absolute-paths.patch33
4 files changed, 81 insertions, 15 deletions
diff --git a/recipes-core/cacao/cacao-1.6.1/cacao-1.6.1-do-not-rely-on-absolute-paths.patch b/recipes-core/cacao/cacao-1.6.1/cacao-1.6.1-do-not-rely-on-absolute-paths.patch
new file mode 100644
index 0000000..2b046cf
--- /dev/null
+++ b/recipes-core/cacao/cacao-1.6.1/cacao-1.6.1-do-not-rely-on-absolute-paths.patch
@@ -0,0 +1,41 @@
1java.in: Do not use hardcode paths
2
3Cacao uses hardcoded paths to various files, if these paths are not
4provided. This causes issues when sharing sstate with otherwise
5identical workers, if build time paths are not identical.
6
7Signed-off-by: Erkka Kääriä <erkka.kaaria@intel.com>
8
9Upstream-Status: Inappropriate [Yocto-specific fixes]
10
11---
12 cacao-1.6.1/src/scripts/java.in | 16 ++++++++++++++--
13 1 file changed, 14 insertions(+), 2 deletions(-)
14
15diff --git cacao-1.6.1/src/scripts/java.in cacao-1.6.1/src/scripts/java.in
16index 0790f02..2118de7 100644
17--- cacao-1.6.1/src/scripts/java.in
18+++ cacao-1.6.1/src/scripts/java.in
19@@ -22,5 +22,17 @@
20 ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21 ## 02110-1301, USA.
22
23-IFS=""
24-exec $(dirname ${0})/cacao ${1+"$@"}
25+SH_DIR=`dirname "$0"`
26+CURRENT_DIR=`cd "${SH_DIR}" && pwd`
27+
28+# if this shell script is invoked through symlink, we get invalid paths. As getting the real path to this file is
29+# very painful using only /bin/sh, python is used instead.
30+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}\""
31+REAL_DIR=`python -c "${PYTHON_STR}"`
32+
33+PARENT_DIR=`dirname ${REAL_DIR}`
34+
35+export BOOTCLASSPATH="${PARENT_DIR}/share/cacao/vm.zip:${PARENT_DIR}/share/classpath/glibj.zip"
36+LIBRARY_PATH="-Djava.library.path=${PARENT_DIR}/lib/classpath"
37+exec ${REAL_DIR}/cacao ${LIBRARY_PATH} ${1+"$@"}
38+
39--
402.7.4
41
diff --git a/recipes-core/cacao/cacao-initial-native_0.98.bb b/recipes-core/cacao/cacao-initial-native_0.98.bb
index 2a8ced5..caaf53c 100644
--- a/recipes-core/cacao/cacao-initial-native_0.98.bb
+++ b/recipes-core/cacao/cacao-initial-native_0.98.bb
@@ -15,6 +15,7 @@ SRC_URI = "\
15 file://cacao-0.98-initial.patch \ 15 file://cacao-0.98-initial.patch \
16 file://disable_hw_exceptions.patch \ 16 file://disable_hw_exceptions.patch \
17 file://cacao-0.9.8-initial-fix-gc-undefined-behaviour.patch \ 17 file://cacao-0.9.8-initial-fix-gc-undefined-behaviour.patch \
18 file://cacao-0.9.8-do-not-rely-on-absolute-paths.patch \
18 " 19 "
19 20
20# libjvm disabled - it would conflict with cacao-native installations 21# libjvm disabled - it would conflict with cacao-native installations
diff --git a/recipes-core/cacao/cacao_1.6.1.bb b/recipes-core/cacao/cacao_1.6.1.bb
index 83f216c..ec13cc5 100644
--- a/recipes-core/cacao/cacao_1.6.1.bb
+++ b/recipes-core/cacao/cacao_1.6.1.bb
@@ -11,7 +11,10 @@ DEPENDS = "zlib libtool classpath virtual/javac-native bdwgc"
11RPROVIDES_${PN} = "java2-runtime" 11RPROVIDES_${PN} = "java2-runtime"
12 12
13SRC_URI = "http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-${PV}/cacao-${PV}.tar.xz \ 13SRC_URI = "http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-${PV}/cacao-${PV}.tar.xz \
14 file://system-boehm-gc.patch" 14 file://system-boehm-gc.patch \
15 file://cacao-1.6.1-do-not-rely-on-absolute-paths.patch \
16"
17
15SRC_URI[md5sum] = "2c18478404afd1cffdd15ad1e9d85a57" 18SRC_URI[md5sum] = "2c18478404afd1cffdd15ad1e9d85a57"
16SRC_URI[sha256sum] = "eecc8bd1b528a028f43d9d1d0c06b97855bbf1d40e03826d911ebbc0b6971e12" 19SRC_URI[sha256sum] = "eecc8bd1b528a028f43d9d1d0c06b97855bbf1d40e03826d911ebbc0b6971e12"
17 20
@@ -23,13 +26,12 @@ REQUIRED_DISTRO_FEATURES_class-native := ""
23EXTRA_OECONF_class-native = "\ 26EXTRA_OECONF_class-native = "\
24 --enable-debug \ 27 --enable-debug \
25 --with-vm-zip=${datadir}/cacao/vm.zip \ 28 --with-vm-zip=${datadir}/cacao/vm.zip \
26 --disable-libjvm \
27 \
28 --with-java-runtime-library-classes=${datadir}/classpath/glibj.zip \ 29 --with-java-runtime-library-classes=${datadir}/classpath/glibj.zip \
29 --with-java-runtime-library-libdir=${libdir_jni}:${libdir} \ 30 --with-java-runtime-library-libdir=${libdir_jni}:${libdir} \
30 --with-jni_md_h=${includedir}/classpath \ 31 --with-jni_md_h=${includedir}/classpath \
31 --with-jni_h=${includedir}/classpath \ 32 --with-jni_h=${includedir}/classpath \
32 --disable-test-dependency-checks \ 33 --disable-test-dependency-checks \
34 --disable-libjvm \
33" 35"
34 36
35CACHED_CONFIGUREVARS_class-native += "ac_cv_prog_JAVAC=${STAGING_BINDIR_NATIVE}/ecj-initial" 37CACHED_CONFIGUREVARS_class-native += "ac_cv_prog_JAVAC=${STAGING_BINDIR_NATIVE}/ecj-initial"
@@ -37,11 +39,9 @@ CACHED_CONFIGUREVARS_class-native += "ac_cv_prog_JAVAC=${STAGING_BINDIR_NATIVE}/
37EXTRA_OECONF = "\ 39EXTRA_OECONF = "\
38 --with-vm-zip=${datadir}/cacao/vm.zip \ 40 --with-vm-zip=${datadir}/cacao/vm.zip \
39 --disable-libjvm \ 41 --disable-libjvm \
40 \
41 --with-build-java-runtime-library-classes=${STAGING_DATADIR}/classpath/glibj.zip \ 42 --with-build-java-runtime-library-classes=${STAGING_DATADIR}/classpath/glibj.zip \
42 --with-jni_h=${STAGING_INCDIR}/classpath \ 43 --with-jni_h=${STAGING_INCDIR}/classpath \
43 --with-jni_md_h=${STAGING_INCDIR}/classpath \ 44 --with-jni_md_h=${STAGING_INCDIR}/classpath \
44 \
45 --with-java-runtime-library-classes=${datadir}/classpath/glibj.zip \ 45 --with-java-runtime-library-classes=${datadir}/classpath/glibj.zip \
46 --with-java-runtime-library-libdir=${libdir_jni}:${libdir} \ 46 --with-java-runtime-library-libdir=${libdir_jni}:${libdir} \
47 --disable-test-dependency-checks \ 47 --disable-test-dependency-checks \
@@ -54,21 +54,12 @@ do_configure_prepend () {
54 mkdir -p src/mm/boehm-gc/m4 54 mkdir -p src/mm/boehm-gc/m4
55} 55}
56 56
57do_install_append () { 57do_install_append_class-target() {
58 rm ${D}/${bindir}/java 58 rm ${D}/${bindir}/java
59} 59}
60 60
61do_install_append_class-native () {
62 ln -sf cacao ${D}/${bindir}/java
63}
64
65FILES_${PN} = "${bindir}/${PN} ${libdir}/cacao/lib*.so ${libdir}/lib*.so* ${datadir}/${PN}" 61FILES_${PN} = "${bindir}/${PN} ${libdir}/cacao/lib*.so ${libdir}/lib*.so* ${datadir}/${PN}"
66FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/.debug/lib*.so*" 62FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/.debug/lib*.so*"
67FILES_${PN}-doc += "${datadir}/gc" 63FILES_${PN}-doc += "${datadir}/gc"
68 64
69ALTERNATIVE_${PN} = "java"
70ALTERNATIVE_LINK = "${bindir}/java"
71ALTERNATIVE_TARGET = "${bindir}/cacao"
72ALTERNATIVE_PRIORITY = "10"
73
74BBCLASSEXTEND = "native" 65BBCLASSEXTEND = "native"
diff --git a/recipes-core/cacao/files/cacao-0.9.8-do-not-rely-on-absolute-paths.patch b/recipes-core/cacao/files/cacao-0.9.8-do-not-rely-on-absolute-paths.patch
new file mode 100644
index 0000000..93bcc3e
--- /dev/null
+++ b/recipes-core/cacao/files/cacao-0.9.8-do-not-rely-on-absolute-paths.patch
@@ -0,0 +1,33 @@
1java.in: Do not use hardcode paths
2
3Cacao uses hardcoded paths to various files, if these paths are not
4provided. This causes issues when sharing sstate with otherwise
5identical workers, if build time paths are not identical.
6
7Signed-off-by: Erkka Kääriä <erkka.kaaria@intel.com>
8
9Upstream-Status: Inappropriate [Yocto-specific fixes]
10
11---
12 cacao-0.98/src/scripts/java.in | 8 +++++++-
13 1 file changed, 7 insertions(+), 1 deletion(-)
14
15diff --git cacao-0.98/src/scripts/java.in cacao-0.98/src/scripts/java.in
16index 8a402e4..1738897 100644
17--- cacao-0.98/src/scripts/java.in
18+++ cacao-0.98/src/scripts/java.in
19@@ -32,4 +32,10 @@
20 ##
21 ## $Id: java.in 5659 2006-10-04 10:37:09Z twisti $
22
23-exec cacao ${1+"$@"}
24+SH_DIR=`dirname "$0"`
25+CURRENT_DIR=`cd "${SH_DIR}" && pwd`
26+PARENT_DIR=`dirname ${CURRENT_DIR}`
27+export BOOTCLASSPATH="${PARENT_DIR}/share/cacao-initial/vm.zip:${PARENT_DIR}/share/classpath-initial/glibj.zip"
28+
29+LIBRARY_PATH="-Djava.library.path=${PARENT_DIR}/lib/classpath-initial"
30+exec cacao ${LIBRARY_PATH} ${1+"$@"}
31+
32--
332.7.4