From 4afce8c0adba43ab1df8a7b5f3fb27c5416951a3 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 2 Apr 2013 20:34:12 -0700 Subject: openjdk: Create a common inc file between openjdk 6 and 7 we hit below errors ERROR: The function get_jdk_arch defined in openjdk-7-common.inc was already declared in openjdk-6-common.inc. BitBake has a global python function namespace so shared functions should be declared in a common include file rather than being duplicated, or if the functions are different, please use different function names. ERROR: The function get_llvm_configure_arch defined in openjdk-7-common.inc was already declared in openjdk-6-c ommon.inc. BitBake has a global python function namespace so shared functions should be declared in a common in clude file rather than being duplicated, or if the functions are different, please use different function names This patch fixes the above Signed-off-by: Khem Raj --- recipes-core/openjdk/openjdk-common.inc | 77 +++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 recipes-core/openjdk/openjdk-common.inc (limited to 'recipes-core/openjdk/openjdk-common.inc') diff --git a/recipes-core/openjdk/openjdk-common.inc b/recipes-core/openjdk/openjdk-common.inc new file mode 100644 index 0000000..a993ea0 --- /dev/null +++ b/recipes-core/openjdk/openjdk-common.inc @@ -0,0 +1,77 @@ +DESCRIPTION = "Java runtime based upon the OpenJDK- and Icedtea Project" +HOMEPAGE = "http://icedtea.classpath.org" +LICENSE = "GPL-2.0-with-classpath-exception" +PRIORITY = "optional" +SECTION = "libs" + +ICEDTEA_VERSION = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[1].split("-")[1] or '1.0'}" + +S = "${WORKDIR}/${ICEDTEA}" +B = "${S}/build" + +DEPENDS_append_libc-uclibc = " virtual/libiconv " + +# The OpenJDK build with interpreter optimizations for ARM depends on a binary +# that generates constants for an assembler source file. There is no other +# way than to generate this on a pseudo machine. Cross-compiling would not help +# because structure sizes and/or alignment may differ. +DEPENDS_append = " qemu-native " + +inherit java autotools gettext qemu + +# OpenJDK uses slightly different names for certain arches. We need to know +# this to create some files which are expected by the build. +def get_jdk_arch(d): + import bb + + jdk_arch = bb.data.getVar('TRANSLATED_TARGET_ARCH', d, 1) + if jdk_arch == "x86-64": + jdk_arch = "amd64" + elif jdk_arch == "powerpc": + jdk_arch = "ppc" + elif jdk_arch == "powerpc64": + jdk_arch = "ppc64" + elif (jdk_arch == "i486" or jdk_arch == "i586" or jdk_arch == "i686"): + jdk_arch = "i386" + + return jdk_arch + +JDK_ARCH = "${@get_jdk_arch(d)}" +JDK_HOME = "${libdir_jvm}/${JDK_DIR}" +JDK_FAKE = "${WORKDIR}/fake-jdk" + +# A function that is needed in the Shark builds. +def get_llvm_configure_arch(d): + import bb; + + arch = bb.data.getVar('TRANSLATED_TARGET_ARCH', d, 1) + if arch == "x86-64" or arch == "i486" or arch == "i586" or arch == "i686": + arch = "x86" + elif arch == "arm": + arch = "arm" + elif arch == "mipsel" or arch == "mips": + arch = "mips" + elif arch == "powerpc" or arch == "powerpc64": + arch = "powerpc" + else: + bb.warn("%s does not support %s yet" % (bb.data.getVar('PN', d, 1), arch) ); + + return arch + +# Puts an OE specific string into the binary making it possible for the user +# to know where it comes from (and blame the right people ...). +DIST_ID = "Built for ${DISTRO}" +DIST_NAME = "${DISTRO}" +EXTRA_OEMAKE = 'DIST_NAME="${DIST_NAME}" DIST_ID="${DIST_ID}"' + +# llvm configure and compiles stuff + +export WANT_LLVM_RELEASE = "2.8" + +# Provides the target architecture to the configure script. +export LLVM_CONFIGURE_ARCH="${@get_llvm_configure_arch(d)}" + +# Large stack is required at least on x86_64 host, otherwise random segfaults appear: +QEMU = "${@qemu_target_binary(d)} ${QEMU_OPTIONS} -s 2097152 -L ${STAGING_DIR_TARGET} -E LD_LIBRARY_PATH=${STAGING_BASELIBDIR}" + +EXTRA_OEMAKE += 'QEMU="${QEMU}"' -- cgit v1.2.3-54-g00ecf