aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-core/openjdk/openjdk-8-common.inc
AgeCommit message (Collapse)Author
2018-10-02openjdk-8: use openjdk-commonRichard Leitner
As openjdk-common.inc now serves all OpenJDK version let openjdk-8-common require it. Furthermore remove the now duplicated lines. Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
2018-10-02openjdk-8: use openjdk_build_helper's ARCH translation functionsRichard Leitner
As the openjdk_build_helper now provides the ARCH translation function use those and drop the local ones. Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
2018-08-14openjdk-8: gcc-8 fix #4: undefined behaviour (hotspot)André Draszik
Using gcc-8, Hotspot is being miscompiled, resulting in non- working binaries. The reason is undefined behaviour, which gcc-8 even warns about and errors out. We have so far have taped over those warnings, but it turns out that we simply cannot do that. Add patches to address undefined behaviour causing miscompilation of hotsport. This also means we can remove the -Wno-error=return-type C compiler flag again which was recently added in error in commit 52fb41cec7d5 ("openjdk-8: fix build for gcc8.x") only hiding the compiler warnings/errors that were flagging the incorrect code in the first place. With these patches applied, the openjdk-8 ARM port works again: | RESULTS: | RESULTS - ping.PingTest.test_ping - Testcase 964: PASSED (0.04s) | RESULTS - ssh.SSHTest.test_ssh - Testcase 224: PASSED (0.68s) | RESULTS - java.JavaTest.test_java_exists - Testcase -1: PASSED (0.14s) | RESULTS - java.JavaTest.test_java_jar_comp_mode - Testcase -1: FAILED (5.13s) | RESULTS - java.JavaTest.test_java_jar_int_mode - Testcase -1: PASSED (4.48s) | RESULTS - java.JavaTest.test_java_jar_works - Testcase -1: PASSED (4.44s) | RESULTS - java.JavaTest.test_java_version - Testcase -1: PASSED (3.66s) | RESULTS - javac.JavacTest.test_javac_exists - Testcase -1: PASSED (0.13s) | RESULTS - javac.JavacTest.test_javac_works - Testcase -1: PASSED (30.87s) | SUMMARY: | openjdk-8-test-image () - Ran 9 tests in 50.263s The java.JavaTest.test_java_jar_comp_mode failure can be ignored for now, as that test verifies compiled mode which is not available on arm. The testcase must be fixed instead. (We need to refresh one unrelated existing patch to avoid patch fuzz warnings) Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
2018-08-13openjdk-build-helper: move c compiler flags retrieval to here (from openjdk-8)André Draszik
Icedtea 7 and OpenJDK 7 will need to apply new compiler flags for certain compiler version without breaking support for older (host) compilers. Move here so that the same code can be re-used. Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
2018-08-13java.bbclass: move openjdk/icedtea specific code into new classAndré Draszik
The code moved is not relevant to anything using java, just for compiling java itself. It doesn't make sense to have here. Move it into openjdk-build-helper Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
2018-08-13openjdk-8: gcc-8 fix #3: working binariesAndré Draszik
Similar to the existing gcc-6 and gcc-7 support, we need to add the same specific compiler flags to avoid miscompilation on gcc-8: -fno-lifetime-dse -fno-delete-null-pointer-checks With this, bitbake -c testimage openjdk-8-test-image works again for x86_64 and aarch64: RESULTS: RESULTS - ping.PingTest.test_ping - Testcase 964: PASSED (0.12s) RESULTS - ssh.SSHTest.test_ssh - Testcase 224: PASSED (1.20s) RESULTS - java.JavaTest.test_java_exists - Testcase -1: PASSED (0.15s) RESULTS - java.JavaTest.test_java_jar_comp_mode - Testcase -1: PASSED (41.98s) RESULTS - java.JavaTest.test_java_jar_int_mode - Testcase -1: PASSED (1.76s) RESULTS - java.JavaTest.test_java_jar_works - Testcase -1: PASSED (2.13s) RESULTS - java.JavaTest.test_java_version - Testcase -1: PASSED (1.51s) RESULTS - javac.JavacTest.test_javac_exists - Testcase -1: PASSED (0.11s) RESULTS - javac.JavacTest.test_javac_works - Testcase -1: PASSED (17.64s) SUMMARY: openjdk-8-test-image () - Ran 9 tests in 67.112s openjdk-8-test-image - OK - All required tests passed NOTE: armv5e still doesn't work with gcc v8, and other arches weren't tested. Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
2018-08-13openjdk-8: gcc-8 fix #2: silence build warnings/errors (return-type)André Draszik
Similar to the patch just reverted, we silence the build warnings regarding return type of functions, but we only do this for gcc versions where it matters, now that our infrastructure for doing so works again: | <<PKGBUILDDIR>>/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp:223:32: error: control reaches end of non-void function [-Werror=return-type] | #define BREAKPOINT ::breakpoint() | ~~~~~~~~~~~~^~ | <<PKGBUILDDIR>>/hotspot/src/share/vm/utilities/debug.hpp:192:3: note: in expansion of macro 'BREAKPOINT' | BREAKPOINT; \ | ^~~~~~~~~~ | <<PKGBUILDDIR>>/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp:197:2: note: in expansion of macro 'ShouldNotReachHere' | ShouldNotReachHere(); | ^~~~~~~~~~~~~~~~~~ etc. Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
2018-08-13openjdk-8: fix infrastructure for version host gcc != cross gcc (again)André Draszik
Building OpenJDK-8 (target) with an older host compiler (gcc < 6) does not work as the build errors with error messages regarding unrecognized gcc command line options. As part of the (cross) build particularly, OpenJDK-8 builds a host tool (adlc) using the host gcc. We have a patch, openjdk8-fix-adlc-flags.patch, that tries to make the adlc build use the correct / intended compiler flags. This doesn't work right now, as that build still sees compiler flags intended for / understood by the gcc version used for the actual cross compile only. The reason is that while we have infrastructure in place to add compiler flags based on the compiler version, we add all of them unconditionally to CFLAGS / CXXFLAGS directly but above patch uses TARGET_CFLAGS / TARGET_CXXFLAGS to filter out unwanted BUILD_CFLAGS / BUILD_CXXFLAGS from CFLAGS / CXXFLAGS, In other words above patch cannot do what it intends to do and all compiler version specific flags (-fno-lifetime-dse & -fno-delete-null-pointer-checks) end up in CFLAGS / CXXFLAGS. So far, this was only affecting people using host gcc < 6, but upcoming patches adding support for gcc >= 8 will add even more compiler flags that even gcc < 7 don't support - it's time to finally address this. We fix the issue by adding the compiler version specific flags to BUILD_CFLAGS / BUILD_CXXFLAGS and TARGET_CFLAGS / TARGET_CXXFLAGS as necessary, so that above patch can work as intended. We now support all necessary combinations: * -native builds * -target builds * host tools built using the native compiler during the -target build A similar but different patch existed here before as commit 6801f6d4e19c ("openjdk-8-common: Fix the issue of building failed adlc on host with gcc < 6") but was reverted subsequently due to reportedly still(?) having (new?) issues with older compilers. This patch here is different from the older patch in that it *doesn't* set the cflags during a python_anonymous() function, and thus it guarantees deterministic execution order. This change here was tested to work using host gcc versions 4.8.4 and 6.3.0 and 7.3.0 Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
2018-08-13openjdk-8: remove superfluous compiler flag (-std=gnu++98)André Draszik
These days, OpenJDK-8 adds this to the build itself, no need to do it again here in the recipe. Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
2018-07-31openjdk-8: 'do_unpack_remove_X11_wrappers' confuses pyro bitbake parserMatthew McClain
When building without X11 support on the sumo or master branches of meta-java with the pyro branch of poky, meta-oe, etc, the recipe fails to parse. Renaming the function to anything else allows the recipe to be parsed. The problem appears to be the word "_remove_". Signed-off-by: Matthew McClain <mmcclain@uplogix.com> Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
2018-07-10openjdk-8: correct the typo mistakefan.xin
Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com> Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
2018-06-19set SUMMARY instead of DESCRIPTIONAndré Draszik
Short descriptions should go into SUMMARY (DESCRIPTION will get the same value if not set.) Signed-off-by: André Draszik <andre.draszik@jci.com> Tested-by: Richard Leitner <richard.leitner@skidata.com> Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
2018-06-19openjdk-8: give downloaded files a more descriptive nameAndré Draszik
Rather than using the HG (mercurial) changeset IDs directly, add a more descriptive part to the file name. This can help with download cache management. Signed-off-by: André Draszik <andre.draszik@jci.com> Tested-by: Richard Leitner <richard.leitner@skidata.com> Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
2018-03-06openjdk-8: add aarch64 supportAndré Draszik
This is using the aarch64 port to make it work, which is at version u161b15. We also add one patch to make this work with musl, too. Because the aarch64 port is fetched from a different repository, the version specific include has been split so as to have all common parts (URIs, patches, configuration bits) in one single file, and version specific bits (checksum, mercurial commit ID), in another file, to ease maintenance, and make distinguishing easier. Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
2018-03-05openjdk-8: rework do_patch (pt 2 - use bitbake variable overrides)André Draszik
This currently uses a hand-crafted solution to distinguish between common, native-only and and target-only patches. That is a bit hard to follow as patches are being applied in strange order, and is also non-standard. Instead, we can just use bitbake variable overrides. This makes it much easier to work with this recipe, as: * it is clear in which order patches are going to be applied by looking at the recipe * it is clear which patches are meant to be common, for build, or target * old patches that are still lying around in WORKDIR (e.g. because rm_work is not enabled), but that have been removed from SRC_URI are no longer incorrectly applied * if patches fail to apply, we know exactly which patch has failed * we can use PATCHTOOL = without any ill effects Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
2018-03-05openjdk-8: rework do_patch (pt 1 - X11 wrappers)André Draszik
X11 wrappers are currently being deleted using a custom do_patch[postfuncs]. This is confusing to say the least, as e.g. naming implies this is done after ./configure has run. At the moment, this also happens halfway through patches have been applied, i.e. some patches are being applied, then the X11 wrappers are deleted, then more patches are being applied. Streamline this so that the unneeded wrappers are removed as part of do_unpack[postfuncs]. Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
2018-03-05openjdk-8: Upgrade to u162b12André Draszik
- openjdk8-fix-zero-mode-crash.patch was a backport -> dropped - remaining patches -> refreshed - license checksum change due to address change in license file (see patch) Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
2018-03-05openjdk-8: doesn't compile on aarch64André Draszik
OpenJDK's build system just doesn't support it (it somehow picks compiler flags for am64 builds, which are invalid for aarch64). Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
2018-03-05openjdk-8: clarify a bitbake warningAndré Draszik
We get a bitbake warning during recipe building complaining about unsupported architectures unconditionally. That check is relevant only for shark builds, so it is quite confusing for non-shark builds. Make the warning conditional on whether shark builds are enabled or not. Signed-off-by: André Draszik <andre.draszik@jci.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
2018-02-26openjdk-8: strip leading non digit chars from GCCVERSIONrockoMax Krummenacher
When using the linaro cross toolchain GCCVERSION is set to "linaro-6.2%", i.e. the first char is not GCC's major version. Thus needed compiler options for GCC 6 are not set. Fix at least this case by stripping GCCVERSION up to the first numeric char. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> (cherry picked from commit 1fbdc60eaccaa29c2942d479f8068b722e7b5bf3) Signed-off-by: Maxin B. John <maxin.john@intel.com>
2017-10-09Revert "openjdk-8-common: Fix the issue of building failed adlc on host with ↵Maxin B. John
gcc < 6" This reverts commit 6801f6d4e19c88dabd5a02dfbbf69a2dcc8e079c.
2017-10-02openjdk-8-common: Fix the issue of building failed adlc on host with gcc < 6Fupan Li
The patch recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-adlc-flags.patch had tried to fix this issue, and it tried to filter out the TARGET_FLAGS/TARGET_ CXXFLGAS, but for the flags such as "-fno-lifetime-dse" was added to CFLAGS/CXXFLAGS, directly, thus that patch failed to filter it out. To fix this issue, it's better to add those GCC version specific flags to BUILD_CFLAGS/ BUILD_CXXFLAGS and TARGET_CFLAGS/TARGET_CXXFLAGS separatedly, thus that patch can work as expected. Signed-off-by: Fupan Li <fupan.li@windriver.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
2017-09-26openjdk-8-common: Fix warning evaluating CFLAGSRicardo Ribalda Delgado
Code is (on my opinion) simpler, making use of the dumpversion flag, instead of calling the pre-processor via a pipe. Flag has been tested on both clang gcc: ricardo@neopili:~/curro/qt5022/build-qt5022-pyro/repo/java$ gcc-4.8 -dumpversion 4.8 ricardo@neopili:~/curro/qt5022/build-qt5022-pyro/repo/java$ gcc-4.9 -dumpversion 4.9.3 ricardo@neopili:~/curro/qt5022/build-qt5022-pyro/repo/java$ gcc-5 -dumpversion 5.4.1 ricardo@neopili:~/curro/qt5022/build-qt5022-pyro/repo/java$ gcc-6 -dumpversion 6.4.0 ricardo@neopili:~/curro/qt5022/build-qt5022-pyro/repo/java$ gcc-7 -dumpversion 7 ricardo@neopili:~/curro/qt5022/build-qt5022-pyro/repo/java$ clang-4.0 -dumpversion 4.2.1 Without this patch: WARNING: /home/ricardo/curro/qt5022/build-qt5022-pyro/repo/yocto/../java/recipes-core/openjdk/openjdk-8-native_102b14.bb: Unable to export ${CXXFLAGS}: Failure expanding variable CXXFLAGS, expression was -isystem/home/ricardo/curro/qt5022/build-qt5022-pyro/build/tmp/work/x86_64-linux/openjdk-8-native/102b14-r0/recipe-sysroot-native/usr/include -O2 -pipe -D_GLIBCXX_USE_CXX11_ABI=0 ${@version_specific_cflags(d)} ${@jdk_cpp_options(d)} which triggered exception IndexError: string index out of range WARNING: /home/ricardo/curro/qt5022/build-qt5022-pyro/repo/yocto/../java/recipes-core/openjdk/openjdk-8-native_102b14.bb: Unable to export ${CFLAGS}: Failure expanding variable CFLAGS, expression was -isystem/home/ricardo/curro/qt5022/build-qt5022-pyro/build/tmp/work/x86_64-linux/openjdk-8-native/102b14-r0/recipe-sysroot-native/usr/include -O2 -pipe -Wno-error=deprecated-declarations ${@version_specific_cflags(d)} ${@jdk_cpp_options(d)} which triggered exception IndexError: string index out of range Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
2017-09-26openjdk-8-native: Fix sigsegv with gcc7Ricardo Ribalda Delgado
OpenJDK does not build properly with GCC7. Add the same workaround that we have for GCC6. Without this patch: | # | # A fatal error has been detected by the Java Runtime Environment: | # | # SIGSEGV (0xb) at pc=0x00007fcad0efcd5b, pid=17206, tid=0x00007fcab264c700 | # | # JRE version: OpenJDK Runtime Environment (8.0_102-b14) (build 1.8.0_102-internal-b14) | # Java VM: OpenJDK 64-Bit Server VM (25.102-b14 mixed mode linux-amd64 compressed oops) | # Problematic frame: | # V [libjvm.so+0x78bd5b] Node::Node(unsigned int)+0x2b | # | # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again | # | # An error report file with more information is saved as: | # /home/ricardo/curro/qt5022/build-qt5022-pyro/build/tmp/work/x86_64-linux/openjdk-8-native/102b14-r0/build/hs_err_pid17206.log | [thread 140508549912320 also had an error] | | [error occurred during error reporting , id 0xb] | | # | # If you would like to submit a bug report, please visit: | # http://bugreport.java.com/bugreport/crash.jsp | # Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
2016-12-06move from bb.data.getVar(x, d, 1) to d.getVar(x, True)Cody P Schafer
bb.data.getVar was removed, need to use the modern mechanism. Signed-off-by: Cody P Schafer <dev@codyps.com> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2016-08-30Reimplement helper method for parallelizing JDK buildsKyle Russell
Simplifies duplicated implementation across multiple recipes that all inherited from java.bbclass. Previously implementation was not flexible in supporting other make job-limiting flags (like -l for load) that are typically passed in through PARALLEL_MAKE. (OpenJDK doesn't know about these other flags that might have gotten tagged on after the value for -j.) Signed-off-by: Kyle Russell <bkylerussell@gmail.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
2016-08-09openjdk-8: ignore wrong GCCVERSION-flagSven Ebenfeld
During my recipe parsing, GCCVERSION in the cross case seems to be 'l' this leads to a ValueError during recipe parsing. Therefore check type before trying to parse the version flag. Signed-off-by: Sven Ebenfeld <sven.ebenfeld@vaillant-group.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
2016-07-22openjdk-8: fix compiler detectionPatrick Ohly
When GCC is at version 4 or 5, parsing the recipe fails with: ERROR: ExpansionError during parsing .../ostro-os/meta-java/recipes-core/openjdk/openjdk-8_72b05.bb ... bb.data_smart.ExpansionError: Failure expanding variable CFLAGS, expression was -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=.../ostro-os/build/tmp-glibc/work/corei7-64-ostro- linux/openjdk-8/72b05-r0=/usr/src/debug/openjdk-8/72b05-r0 -fdebug-prefix-map=.../ostro-os/build/tmp-glibc/sysroots/x86_64-linux= -fdebug-prefix-map=.../ostro-os/build/tmp-glibc/sysroots/intel-corei7-64= -fstack-protector-strong -D_FORTIFY_SOURCE=2 ${ <at> version_specific_cflags(d)} -Wno-error=deprecated-declarations which triggered exception TypeError: can only join an iterable That's because FLAGS_GCC<version> may be unset, thus leading to d.getVar() returning None and ''.join(extraflags) failing. The join() is also redundant: extraflags already is a string. It happened to work because Python treats a string as sequence of single-character strings, and thus ''.join() re-created the original string. Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2016-07-18openjdk-8: Detect compiler versionDaniel McGregor
Some supported hosts still use GCC 4.X. These don't support the flags needed to make GCC 6 work, so check the GCC version and add appropriate compiler flags. This implementation will append flags for any gcc version, but it's only used for GCC 6 right now. Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2016-07-18openjdk-7, openjdk-8: use vardeps to fix shared stateDaniel McGregor
Previously if PARALLEL_MAKE changed, so did the task signature for do_configure. Use vardepsvalue so that the signature remains constant. Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
2016-06-30openjdk-8: make GCC6 happyDaniel McGregor
GCC 6 sets the default C++ standard to C++14 and introduces dead store elimination by default. OpenJDK 8 is not ready for either of these changes, so set the C++ standard back to gnu++98 and disable dead store elimination. Switched to using --with-extra-cflags, cxxflags, and ldflags. The added patch fixes building when using those flags, and are needed to get CFLAGS into the JDK build in the native case. Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2016-06-30openjdk-8: Add update version and build number to the java binariesBernhard Dick
The OpenJDK builds did not include the update version and build number leading to problems when applications check for the minimum needed version. This commit fixes it by adding the update version and build number to the configure parameters. Signed-off-by: Bernhard Dick <bernhard@bdick.de> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2016-06-20replace base_contains by bb.utils.containsMaxin B. John
Replace all instances of base_contains with bb.utils.contains to avoid warnings. Signed-off-by: Maxin B. John <maxin.john@intel.com>
2015-12-08openjdk-8: add recipes for openjdk-8 and openjre-8Jens Rehsack
This adds openjdk-8 for native and target builds and allows a stripped openjre-8 being built as well instead of trying to cherry-pick jre components from jdk-image. The recipes allow building openjdk-8 with or without: * x11 * cups * alsa/pulseaudio and let packager enable unlimited-crypto, if desired. To support certificate based java libraries, cacerts is created based on ca-certificates from OE-core. Since there can be only one PROVIDES for virtual/java-native and virtual/javac-native, move the provides to openjdk-8-native (I think everyone agrees it's a better choice than ecj-bootstrap-native). Plus: Applying a fix from openjdk-9 repository which fixes build issues using gcc5 Signed-off-by: Jens Rehsack <sno@netbsd.org> Signed-off-by: Maxin B. John <maxin.john@intel.com>