I've noticed there is no linux x86 target from adoptopenjdk.
Is it scheduled to add this ?
There is yes, we were producing these and then stopped a few weeks ago, this is a bug.
Great ! Is downloading from https://adoptopenjdk.net/releases.html will be automatically added ?
@gchauvet - to clarify - are you talking about 32-bit x86?
yes, 32-bit x86.
Hmmm I didn't think we had ever produced them but maybe @karianna's seen something I missed ;-)
That's why I don't see this target on your release page :-)
Unfortunately, we have some users who always used a x86 32-bits linux :/
Ah apologies for some reason I saw ARM and not x86 - no I don't think we've ever built those..
I'm not sure if JDK11 can still be built on Linux/x86-32 ... Oracle don't release one on that platform, although JDK8 should build for it.
note: I've successfully build the linux x86-32bits target on my computer with your scripts.
However, i'm not able to build openJ9 variante (unsupported arch i686)
Thanks. Hopefully it won't prove too hard to make that work, although I don't think anyone's tried it for a while ;-)
note: I've successfully build the linux x86-32bits target on my computer with your scripts.
What OS did you use?
I build it on CentOS 6.10 (32 bits) and it works. I'll post the instructions here soon.
@rarguello Ubuntu Server 16.04.5 32 bits (Virtual Box)
I'm bundling Adopt builds with a couple products and since we started, we've had a few users asking about 32 bit Linux builds. Looking forward to this not only being added, but backfilled into previous versions as well.
Is someone able to champion this and help us setup the builds/provide additional hardware if needed?
I would also highly appreciate having OpenJDK11 for Linux x86 provided by AdoptOpenJDK.
What is the current state of AdoptOpenJDK11 for Linux x86? - As far as I know, there is already a Debian package for OpenJDK11 on x86 available. So I guess it should be possible to build it for this architecture as well.
Or have you discarded your plans in supporting this architecture?
I would also highly appreciate having OpenJDK11 for Linux x86 provided by AdoptOpenJDK.
What is the current state of AdoptOpenJDK11 for Linux x86? - As far as I know, there is already a Debian package for OpenJDK11 on x86 available. So I guess it should be possible to build it for this architecture as well.
Or have you discarded your plans in supporting this architecture?
We will be supporting 32bit on ARM as long as upstream also maintains it. We're working with our friends a Packet.net to get some beefier hardware to support this effort.
We will be supporting 32bit on ARM as long as upstream also maintains it.
Thanks for your response. I was asking about x86 (32bit) aka i386 or i686 - not ARM. Are you still planning to support this? - If yes, what's the current state or when do you think a binary is available on the website?
We will be supporting 32bit on ARM as long as upstream also maintains it.
Thanks for your response. I was asking about x86 (32bit) aka i386 or i686 - not ARM. Are you still planning to support this? - If yes, what's the current state or when do you think a binary is available on the website?
Good question, the typical answer at Adopt is "yes as long as upstream maintain it".
Thanks for your response - even if it does not answer all of my questions. ;)
I was playing around a little bit with your scripts (btw thanks for the great work) and was able to build OpenJDK11 for Linux x86 with not too much effort. I've published the resulting binaries into this GitHub project - maybe it's helpful for others, too. But I would definitely prefer to see an official package provided by AdoptOpenJDK in the future instead...
Are you building on 64 bit hosts or 32 bit hosts?
Are you building on 64 bit hosts or 32 bit hosts?
I've used Debian i386 in a virtual machine. I guess there are more elegant solutions - but it was enough for my first experiments / tests.
I'm looking to move a a Java component of mine to use AdoptOpenJDK, specifically the OpenJDK 8 LTS release. I also need 32-bit on x86 Linux. Is there a plan to officially support this? Thanks in advance.
I'm looking to move a a Java component of mine to use AdoptOpenJDK, specifically the OpenJDK 8 LTS release.
I don't know about the plans of the AdoptOpenJDK project about OpenJDK 8 on Linux x86. But for OpenJDK 8 you might try Liberica JDK or Zulu as an alternative.
For your information: OpenJDK 12 for Linux x86 also builds successfully with your scripts. I've added the binaries of OpenJDK 12+30 to the release page of my openjdk-linux-x86 repository.
@pinhead84 can you explore if you can build one a 64 bit host? We may struggle to source 32 bit hardware.
moving to TSC as this isn't a build issue
My understanding is that once the new Packet machine is up we'll be able to provide the hardware for this.
the packet machine is for arm32 not x86?
Ah sorry yep - missed that.
can you explore if you can build one a 64 bit host? We may struggle to source 32 bit hardware.
@gdams I'll give it a try with Docker. But it may take one or two days. I'm quite new to AdoptOpenJDK and still don't know much about your build infrastructure. Therefore let me know, if you have any other preferences / suggestions than Docker.
@pinhead84 you should be able to build it on a 64 bit host. Take a look at https://njr.sabi.net/2008/12/24/building-32-bit-openjdk-on-64-bit-red-hat-enterprise-linux-52/ for example.
Note that upstream OpenJDK support for 32 bit x86 has been dropped by Oracle (in JDK 9?). It's unclear whether anybody cares enough to keep it going upstream.
https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms
I know of at least two bugs specific to x86 32 bit intel:
https://bugs.openjdk.java.net/browse/JDK-8211100
https://bugs.openjdk.java.net/browse/JDK-8220198
So adding it for JDK 8 should be OK. I'm not sure JDK 11+ is ready. Unless there is a commitment from AdoptOpenJDK community to fix bugs/maintain i686 upstream.
Unless there is a commitment from AdoptOpenJDK community to fix bugs/maintain i686 upstream.
I would love to do this but this goes far beyond my skills.
I know of at least two bugs specific to x86 32 bit intel:
https://bugs.openjdk.java.net/browse/JDK-8211100
https://bugs.openjdk.java.net/browse/JDK-8220198
BellSoft also pointed to some issues in this Twitter message:
https://bugs.openjdk.java.net/browse/JDK-8206107
https://bugs.openjdk.java.net/browse/JDK-8217647
Both are already fixed. If I understand them correctly, they are still willing to provide a high quality i686 port. Assuming that BellSoft (or others) provide fixes to the upstream repository, could these be ported into AdoptOpenJDK?
Yes :-)
can you explore if you can build one a 64 bit host? We may struggle to source 32 bit hardware.
@gdams I was able to build OpenJDK i686 on a x86-64 system (Debian amd64) in two ways:
Using Docker with the files provided in the openjdk-linux-x86-docker repository.
Or natively by following these steps. In this case I had to make a little modification to your build script (prepareWorkspace.sh) to make Freetype compile for 32 bit. Maybe there is a better solution.
I'm sure, that there is room for improvements in both approaches. But hopefully it's sufficient for a proof of concept.
@pinhead84
Or natively by following these steps. In this case I had to make a little modification to your build script (prepareWorkspace.sh) to make Freetype compile for 32 bit. Maybe there is a better solution.
Can you share you patches with us? I'm keen to work out if this is something we can implement into your build scripts without breaking them on 64 bit platforms
@gdams Currently it's not really a patch. Just a modification with:
sed -i.bak 's|if ! (bash ./configure |if ! (CC="gcc -m32" bash ./configure |' \
"sbin/prepareWorkspace.sh"
I'll send you a pull request, that implements this change for i686 without breaking compatibility for other architectures.
Back to build you go.
I've put this in Backlog to indicate that we're happy for this to go ahead but are really relying on volunteers to make this happen
For your information: I recently discovered, that Azul Systems now provides OpenJDK 12 for Linux 32-bit x86. This surprises me a bit, especially that their build also to passes the TCK.
I recently discovered, that Azul Systems now provides OpenJDK 12 for Linux 32-bit x86.
The same applies to BellSoft. They confirmed via Twitter, that they're going to provide OpenJDK 11 for Linux i686 with the next 11.0.3 release in April. So I guess / hope the chances are getting better, that AdoptOpenJDK will also be able to provide builds for Linux i686 in the future.
@karianna
... we're happy for this to go ahead but are really relying on volunteers to make this happen
What kind of help by volunteers do you mean?
Correct me if I'm wrong, but shouldn't BellSoft / Azul publish their fixes for Linux i686 in order to fulfill the OpenJDK license? - Shouldn't these fixes become available in the OpenJDK repository?
Or do you need help regarding cross platform builds on amd64 systems?
The latter really ... At the moment if you try to run with the 32-bit option on a 64-bit system you get:
configure: The tested number of bits in the target (0) differs from the number of bits expected to be found in the target (32).
configure: I'll retry after setting the platforms compiler target bits flag to -m32
checking size of int *... 0
configure: error: The tested number of bits in the target (0) differs from the number of bits expected to be found in the target (32)
configure exiting with result code 1
I haven't had the time to diagnose it yet but if you know how to bypass that give us a shout :-)
I've documented the steps here. Basically starting the build with /usr/bin/linux32 -- ./makejdk-any-platform.sh lets the scripts think, that it is running on a 32 bit system. With this prefix OpenJDK 11 i686 compiled fine on my Debian amd64 system.
I don't really know, if this is a acceptable solution in the long run. But at least I hadn't to make any more changes to your build scripts besides #985. ;)
Hmmm hadn't thought about linux32 ... Good shout - I'll try it :-)
(As an FYI All our build machines are RHEL or CentOS v6/v7 which give us the widest compatibility with different glibc versions)
What news about this issue ?
Do you have enough volunteers?
@gchauvet We don't have anyone leading this effort as of yet - perhaps we can use @pinhead84 patch described above and x-compile on a 64 bit Linux host.
@sxa555 Does that seem reasonable?
We had to go with Liberica, https://bell-sw.com/pages/java-8u222, for Linux x86 32-bit support.
@sxa555 Did you manage to make any progress with using linux32 to build? Is there anything I (as a newbie to the AdoptOpenJDK project) can do to help out?
I think this will be important once jpackage will be available in JDK14
https://gitlab.com/Austcool-Walker/ajwsubuntu/-/raw/master/ubuntu/pool/main/a/adoptopenjdk-8-hotspot/adoptopenjdk-8-hotspot_8u252-b03-1_i386.deb I built an unofficial package just to demo its possible using qemu/kvm lubuntu.
simply requires an x86 virtual machine or host or docker and installing the needed i386 build dependencies.
Most helpful comment
Note that upstream OpenJDK support for 32 bit x86 has been dropped by Oracle (in JDK 9?). It's unclear whether anybody cares enough to keep it going upstream.
https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms
I know of at least two bugs specific to x86 32 bit intel:
https://bugs.openjdk.java.net/browse/JDK-8211100
https://bugs.openjdk.java.net/browse/JDK-8220198
So adding it for JDK 8 should be OK. I'm not sure JDK 11+ is ready. Unless there is a commitment from AdoptOpenJDK community to fix bugs/maintain i686 upstream.