Summary: | Request for Support for ARM in Java (java-config) & Sun's Java SE for Embedded | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | John L. Poole <prestopoole> |
Component: | New packages | Assignee: | Java team <java> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | arm, bernhard, chithanh, lannocc, siarhei.siamashka, xaviermiller |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | ARM | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | build log |
Description
John L. Poole
2010-02-18 17:12:01 UTC
Created attachment 220187 [details]
build log
Dunno, what does the java team have to say here? That 90 day trial kinda sucks, isn't there any other alternative? (In reply to comment #2) > Dunno, what does the java team have to say here? > > That 90 day trial kinda sucks, isn't there any other alternative? > icedtea would be the way to go. It seems that they have support for arm. The bootstrapping will be the difficult bit. Is it legal to bootstrap with Sun's environment to generate a icedtea6 binary and use that binary thereafter to bootstrap icedtea6 sources? Even if you want to use icedtea for Java-RTE there is the same failure from java-config: * ERROR: dev-java/java-config-2.1.10 failed (install phase): * arch config not found Is there a way to getting this working correctly for ARM architecture? The same situation with java-config-2.1.11: * ERROR: dev-java/java-config-2.1.11 failed (install phase): * arch config not found the same situation... newins: Need two arguments, old file and new file * ERROR: dev-java/java-config-2.1.10 failed (install phase): * arch config not found Any idea for workaround? I will also welcome this feature. Hi! Can confirm that 'dev-java/java-config' does not work: beaglebone ~ # emerge java-config ... !!! newins: config/jdk-defaults-arm.conf does not exist * ERROR: dev-java/java-config-2.1.10 failed (install phase): * arch config not found * * Call stack: * ebuild.sh, line 85: Called src_install * environment, line 5013: Called die * The specific snippet of code: * newins config/jdk-defaults-${ARCH}.conf jdk-defaults.conf || die "arch config not found" * * If you need support, post the output of 'emerge --info =dev-java/java-config-2.1.10', * the complete build log and the output of 'emerge -pqv =dev-java/java-config-2.1.10'. * The complete build log is located at '/var/tmp/portage/dev-java/java-config-2.1.10/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-java/java-config-2.1.10/temp/environment'. * S: '/var/tmp/portage/dev-java/java-config-2.1.10/work/java-config-2.1.10' * QA Notice: file does not exist: * * newins: config/jdk-defaults-arm.conf does not exist Tested on a BeagleBone (TI AM335X): beaglebone ~ # uname -a Linux beaglebone 3.2.0 #1 Mon Apr 2 01:37:19 CEST 2012 armv7l ARMv7 Processor rev 2 (v7l) am335xevm GNU/Linux We would strongly advocate to have _ANY_ sort of Java on the BeagleBone. But since config-java fails, Sun-/Oracle-/IcedTea-JVM fail too. Best Wishes, andy *** Bug 392129 has been marked as a duplicate of this bug. *** Added to trunk and ebuild, using icedtea as default. 10 May 2012; Ralph Sennhauser <sera@gentoo.org> java-config-2.1.11-r3.ebuild: Backport missing jdk-defaults.conf for arm #305773 and amd64-fbsd #415397 Thanks. *** Bug 396361 has been marked as a duplicate of this bug. *** Now I am on a BeagleBone and find the status of this bug marked "Resolved Fixed". Yet, when I try: emerge dev-java/icedtea-bin I get: ============= START =============== >>> Failed to emerge dev-java/java-config-2.1.10, Log file: >>> '/var/tmp/portage/dev-java/java-config-2.1.10/temp/build.log' * Messages for package dev-java/java-config-2.1.10: * ERROR: dev-java/java-config-2.1.10 failed (install phase): * arch config not found * * Call stack: * ebuild.sh, line 85: Called src_install * environment, line 5227: Called die * The specific snippet of code: * newins config/jdk-defaults-${ARCH}.conf jdk-defaults.conf || die "arch config not found" * * If you need support, post the output of `emerge --info '=dev-java/java-config-2.1.10'`, * the complete build log and the output of `emerge -pqv '=dev-java/java-config-2.1.10'`. * The complete build log is located at '/var/tmp/portage/dev-java/java-config-2.1.10/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-java/java-config-2.1.10/temp/environment'. * Working directory: '/var/tmp/portage/dev-java/java-config-2.1.10/work/java-config-2.1.10' * S: '/var/tmp/portage/dev-java/java-config-2.1.10/work/java-config-2.1.10' ============= END =============== It seems to me the issue of ARM not being supported is still unresolved, at least in this case under the BeagleBone. I am unable to discern from the prior comments how this bug was fixed. Can someone explain to me what the fix was and what I should do to move past the above error message. Since this bug was a generic request for java on ARM and the status was changed to "RESOLVED FIXED" and I'm finding what appears to be the same problem on another ARM platform, I'm changing the status to something other and am guessing the "CONFIRMED" basically reopens this bug. I can confirm, that emerging java on an ARM-platform like the BeagleBone does not work yet! Use java-config-2.1.11-r3. It's not flagged with the ARM keyword yet but it installed for me. Keyworded ~arm: app-admin/eselect-ecj-0.7 dev-java/ecj-gcj-3.6 dev-java/gcj-jdk-4.6.3 dev-java/java-config-2.1.2 virtual/jdk-1.5.0 virtual/jre-1.5-0-r1 Unmasked the java flag in arm profile. There is a new JDK 7 for ARM available from Oracle in case someone wants to package it: https://blogs.oracle.com/henrik/entry/oracle_releases_jdk_for_linux Hi, thank you very much for the quick reply. After adding ~arm to java-config-2.1.11-r3, i got these dependencies: beaglebone portage # emerge =dev-java/java-config-2.1.11-r3 Calculating dependencies... done! [ebuild N ] sys-libs/libstdc++-v3-3.3.6 USE="nls (-multilib)" [ebuild N ] dev-java/java-config-wrapper-0.16 [ebuild N ] virtual/libstdc++-3.3 [ebuild N *] dev-java/java-config-2.1.11-r3 [ebuild N f *] dev-java/ibm-jdk-bin-1.5.0.12_p5-r1 USE="-X (-alsa) -doc -examples -javacomm (-nsplugin) -odbc" [ebuild N ~] virtual/jdk-1.5.0 [ebuild N ~] virtual/jre-1.5.0-r1 my keywords look like this: beaglebone ~ # cat /etc/portage/package.accept_keywords =sys-apps/ifplugd-0.28-r9 ~arm =dev-java/java-config-2.1.11-r3 ** =virtual/jdk-1.5.0 ~arm =virtual/jre-1.5.0-r1 ~arm =dev-java/ibm-jdk-bin-1.5.0.12_p5-r1 ** beaglebone ~ # cat /etc/portage/package.license >=dev-java/ibm-jdk-bin-1.5.0.12_p5-r1:1.5 IBM-J1.5 Unfortunately sys-libs/libstdc++-v3-3.3.6 refuses to compile with the following error: /var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/config/arm/lib1funcs.asm: Assembler messages: /var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/config/arm/lib1funcs.asm:159: Warning: ignoring attempt to redefine built-in register 'ip' /var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/config/arm/lib1funcs.asm:160: Warning: ignoring attempt to redefine built-in register 'sp' /var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/config/arm/lib1funcs.asm:161: Warning: ignoring attempt to redefine built-in register 'lr' /var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/config/arm/lib1funcs.asm:162: Warning: ignoring attempt to redefine built-in register 'pc' /usr/armv7a-unknown-linux-gnueabi/bin/ld: unrecognised emulation mode: armelf_linux Supported emulations: armelf_linux_eabi armelfb_linux_eabi collect2: ld returned 1 exit status make[2]: *** [libgcc/./_udivsi3.oS] Error 1 make[2]: Leaving directory `/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/gcc' make[1]: *** [libgcc.a] Error 2 make[1]: Leaving directory `/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build/gcc' make: *** [all-gcc] Error 2 emake failed * ERROR: sys-libs/libstdc++-v3-3.3.6 failed (compile phase): * (no error message) * * Call stack: * ebuild.sh, line 85: Called src_compile * environment, line 2709: Called die * The specific snippet of code: * emake all-target-libstdc++-v3 || die * * If you need support, post the output of `emerge --info '=sys-libs/libstdc++-v3-3.3.6'`, * the complete build log and the output of `emerge -pqv '=sys-libs/libstdc++-v3-3.3.6'`. * The complete build log is located at '/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/temp/environment'. * Working directory: '/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build' * S: '/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/gcc-3.3.6' >>> Failed to emerge sys-libs/libstdc++-v3-3.3.6, Log file: >>> '/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/temp/build.log' * Messages for package sys-libs/libstdc++-v3-3.3.6: * ERROR: sys-libs/libstdc++-v3-3.3.6 failed (compile phase): * (no error message) * * Call stack: * ebuild.sh, line 85: Called src_compile * environment, line 2709: Called die * The specific snippet of code: * emake all-target-libstdc++-v3 || die * * If you need support, post the output of `emerge --info '=sys-libs/libstdc++-v3-3.3.6'`, * the complete build log and the output of `emerge -pqv '=sys-libs/libstdc++-v3-3.3.6'`. * The complete build log is located at '/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/temp/environment'. * Working directory: '/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/build' * S: '/var/tmp/portage/sys-libs/libstdc++-v3-3.3.6/work/gcc-3.3.6' Right at the moment i have no clue what's wrong with the emulation mode here. Maybe my Keywords are not yet correct, since libstdc++-v3-3.3.6 seems to be a bit outdated. It would be great if someone could provide advice. Thanks :) Best wishes, andy I, too, followed the helpful advice and installed java-config-2.1.11-r3 and had additional packages such as those described in Comment #18. Since the roadblock here has been resolved using java-config-2.1.11-r3, this bug has come to an end. I'll research the sys-libs/libstdc issue and see if other bugs already cover the problem and if not, then open a new bug. Please use java-config-2.1.12 which is keyworded ~arm now, along with the other packages in comment 17. ibm-jdk-bin will not work on arm. bone temp # emerge dev-java/java-config -p These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] sys-libs/libstdc++-v3-3.3.6 USE="nls (-multilib)" [ebuild N ] virtual/libstdc++-3.3 [ebuild N ~] dev-java/java-config-2.1.12 [ebuild N f *] dev-java/ibm-jdk-bin-1.5.0.12_p5-r1 USE="-X (-alsa) -doc -examples -javacomm (-nsplugin) -odbc" [ebuild N ~] virtual/jdk-1.5.0 [ebuild N ~] virtual/jre-1.5.0-r1 * IMPORTANT: 5 news items need reading for repository 'gentoo'. * Use eselect news to read news items. bone temp # I'm blocked as I cannot build sys-libs/libstdc++-v3-3.3.6, see Bug #435370. You probably still have old java entries in /etc/portage/package.{accept,}keywords Remove them to let portage's autounmask figure out the correct packages to emerge =java-config-2.1.12 I do not have a "package.accept" file and I cleaned out the package.keywords. Here's what a proposed emerge will do: bone temp # emerge =dev-java/java-config-2.1.12 -p These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] sys-libs/libstdc++-v3-3.3.6 USE="nls (-multilib)" [ebuild N ] virtual/libstdc++-3.3 [ebuild N ~] dev-java/java-config-2.1.12 [ebuild N f *] dev-java/ibm-jdk-bin-1.5.0.12_p5-r1 USE="-X (-alsa) -doc -examples -javacomm (-nsplugin) -odbc" [ebuild N ~] virtual/jdk-1.5.0 [ebuild N ~] virtual/jre-1.5.0-r1 The following keyword changes are necessary to proceed: #required by dev-java/java-config-2.1.12, required by dev-java/ibm-jdk-bin-1.5.0.12_p5-r1, required by virtual/jdk-1.5.0 =virtual/jre-1.5.0-r1 ~arm #required by virtual/jre-1.5.0-r1, required by dev-java/java-config-2.1.12, required by dev-java/ibm-jdk-bin-1.5.0.12_p5-r1 =virtual/jdk-1.5.0 ~arm #required by =dev-java/java-config-2.1.12 (argument) =dev-java/java-config-2.1.12 ~arm #required by virtual/jdk-1.5.0, required by virtual/jre-1.5.0-r1, required by dev-java/java-config-2.1.12, required by =dev-java/java-config-2.1.12 (argument) =dev-java/ibm-jdk-bin-1.5.0.12_p5-r1 ** NOTE: The --autounmask-keep-masks option will prevent emerge from creating package.unmask or ** keyword changes. * IMPORTANT: 5 news items need reading for repository 'gentoo'. * Use eselect news to read news items. bone temp # cat /etc/portage/package.keywords bone temp # ls /etc/portage bin package.keywords package.license package.use postsync.d savedconfig bone temp # (In reply to comment #23) Try to emerge gcj-jdk instead, it should pull in java-config as a dependency (did for me). Alternately, see if `emerge --nodeps java-config` works, as libstdc++ does not appear to be a (direct) dependency. I tried: emerge gcj-jdk it failed with: running install_egg_info Writing /var/tmp/portage/dev-java/java-config-2.1.10/temp/images/2.7/usr/lib/python2.7/site-packages/java_config-2.1.10-py2.7.egg-info * Generating '/usr/bin/depend-java-query' wrapper script * Generating '/usr/bin/gjl' wrapper script * Generating '/usr/bin/java-config-2' wrapper script !!! newins: config/jdk-defaults-arm.conf does not exist * ERROR: dev-java/java-config-2.1.10 failed (install phase): * arch config not found So I tried: bone temp # emerge =dev-java/java-config-2.1.12 -p These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ~] app-admin/eselect-ecj-0.7 [ebuild NS ~] sys-devel/gcc-4.6.3 [4.5.3-r2] USE="cxx fortran gcj gtk mudflap nls nptl openmp (-altivec) -bootstrap -build -doc (-fixed-point) -go -graphite (-hardened) (-libssp) (-multilib) -multislot -nocxx -nopie -nossp -objc -objc++ -objc-gc -test -vanilla" [ebuild N ~] dev-java/java-config-2.1.12 [ebuild N ~] dev-java/ecj-gcj-3.6 USE="native" [ebuild N ~] dev-java/gcj-jdk-4.6.3 [ebuild N ~] virtual/jdk-1.5.0 [ebuild N ~] virtual/jre-1.5.0-r1 The following keyword changes are necessary to proceed: #required by dev-java/java-config-2.1.12, required by dev-java/gcj-jdk-4.6.3, required by virtual/jdk-1.5.0 =virtual/jre-1.5.0-r1 ~arm #required by virtual/jre-1.5.0-r1, required by dev-java/java-config-2.1.12, required by dev-java/gcj-jdk-4.6.3 =virtual/jdk-1.5.0 ~arm #required by =dev-java/java-config-2.1.12 (argument) =dev-java/java-config-2.1.12 ~arm * IMPORTANT: 5 news items need reading for repository 'gentoo'. * Use eselect news to read news items. bone temp # That will not work as I am unable to build gcc (I cannot remember if I have a bug for that or not). So finally I tried: bone temp # emerge --nodeps =dev-java/java-config-2.1.12 -p These are the packages that would be merged, in order: [ebuild N ~] dev-java/java-config-2.1.12 The following keyword changes are necessary to proceed: #required by =dev-java/java-config-2.1.12 (argument) =dev-java/java-config-2.1.12 ~arm * IMPORTANT: 5 news items need reading for repository 'gentoo'. * Use eselect news to read news items. bone temp # So I did this to successfully install dev-java/java-config: emerge --nodeps =dev-java/java-config-2.1.12 Thank you for your help and persistence. (In reply to comment #25) Yeah, you should have unmasked dev-java/java-config-2.1.12 first regardless of which approach you use, as that's the version that works on ARM (mentioned here already). As you can see, your first attempt was trying to install a version that's known not to work. Glad to hear you've made some progress. (In reply to comment #25) You will have to recompile GCC if you want to build gcj-jdk. This is the only JDK I have successfully merged onto my ARM (Raspberry Pi). It actually just now finished, taking a couple days and using nearly 1GB of swap (this board has only 256MB physical RAM). I'd be interested to here if you get a different JDK running. |