Temurin-build: Ajouter la version Linux 32 bits x86

Créé le 27 nov. 2018  ·  51Commentaires  ·  Source: adoptium/temurin-build

J'ai remarqué qu'il n'y a pas de cible linux x86 d'adoptopenjdk.
Est-il prévu d'ajouter ceci?

enhancement help wanted new builds x-linux

Commentaire le plus utile

Notez que la prise en charge d'OpenJDK en amont pour 32 bits x86 a été abandonnée par Oracle (dans JDK 9?). On ne sait pas si quelqu'un s'en soucie suffisamment pour le maintenir en amont.
https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms

Je connais au moins deux bogues spécifiques à x86 32 bits Intel:
https://bugs.openjdk.java.net/browse/JDK-8211100
https://bugs.openjdk.java.net/browse/JDK-8220198

Donc, l'ajouter pour JDK 8 devrait être OK. Je ne suis pas sûr que JDK 11+ soit prêt. Sauf s'il y a un engagement de la communauté AdoptOpenJDK pour corriger les bogues / maintenir i686 en amont.

Tous les 51 commentaires

Il y a oui, nous les produisions puis nous nous sommes arrêtés il y a quelques semaines, c'est un bug.

Génial ! Le téléchargement depuis https://adoptopenjdk.net/releases.html sera-t-il automatiquement ajouté?

@gchauvet - pour clarifier - parlez-vous de x86 32 bits?

oui, x86 32 bits.

Hmmm je ne pensais pas que nous les avions jamais produits mais peut-être que @karianna a vu quelque chose que j'ai manqué ;-)

C'est pourquoi je ne vois pas cette cible sur votre page de publication :-)
Malheureusement, certains utilisateurs ont toujours utilisé un Linux x86 32 bits: /

Ah, excuses pour une raison quelconque, j'ai vu ARM et non x86 - non, je ne pense pas que nous ayons jamais construit ceux-ci.

Je ne sais pas si JDK11 peut toujours être construit sur Linux / x86-32 ... Oracle n'en publie pas sur cette plate-forme, bien que JDK8 devrait le construire.

Remarque: j'ai réussi à construire la cible linux x86-32bits sur mon ordinateur avec vos scripts.
Cependant, je ne parviens pas à construire openJ9 variante (arc non supporté i686)

Merci. J'espère que cela ne sera pas trop difficile à faire fonctionner, même si je ne pense pas que quiconque l'ait essayé depuis un moment ;-)

Remarque: j'ai réussi à construire la cible linux x86-32bits sur mon ordinateur avec vos scripts.

Quel système d'exploitation avez-vous utilisé?
Je le construis sur CentOS 6.10 (32 bits) et cela fonctionne. Je publierai les instructions ici bientôt.

@rarguello Ubuntu Server 16.04.5 32 bits (boîte virtuelle)

Je regroupe des versions Adopt avec quelques produits et depuis que nous avons commencé, quelques utilisateurs nous ont posé des questions sur les versions Linux 32 bits. Dans l'attente que cela soit non seulement ajouté, mais également rétabli dans les versions précédentes.

Quelqu'un est-il capable de défendre cela et de nous aider à configurer les versions / fournir du matériel supplémentaire si nécessaire?

J'apprécierais également beaucoup d'avoir OpenJDK11 pour Linux x86 fourni par AdoptOpenJDK.

Quel est l'état actuel d'AdoptOpenJDK11 pour Linux x86? - Autant que je sache, il existe déjà un paquet Debian pour OpenJDK11 sur x86 disponible. Je suppose donc qu'il devrait être possible de le construire également pour cette architecture.

Ou avez-vous abandonné vos projets de prise en charge de cette architecture?

J'apprécierais également beaucoup d'avoir OpenJDK11 pour Linux x86 fourni par AdoptOpenJDK.

Quel est l'état actuel d'AdoptOpenJDK11 pour Linux x86? - Autant que je sache, il existe déjà un paquet Debian pour OpenJDK11 sur x86 disponible. Je suppose donc qu'il devrait être possible de le construire également pour cette architecture.

Ou avez-vous abandonné vos projets de prise en charge de cette architecture?

Nous prendrons en charge le 32 bits sur ARM tant que l'amont le maintient également. Nous travaillons avec nos amis sur Packet.net pour obtenir du matériel plus robuste pour soutenir cet effort.

Nous prendrons en charge le 32 bits sur ARM tant que l'amont le maintient également.

Merci pour votre réponse. Je posais des questions sur x86 (32 bits) aka i386 ou i686 - pas ARM. Envisagez-vous toujours de soutenir cela? - Si oui, quel est l'état actuel ou quand pensez-vous qu'un binaire est disponible sur le site?

Nous prendrons en charge le 32 bits sur ARM tant que l'amont le maintient également.

Merci pour votre réponse. Je posais des questions sur x86 (32 bits) aka i386 ou i686 - pas ARM. Envisagez-vous toujours de soutenir cela? - Si oui, quel est l'état actuel ou quand pensez-vous qu'un binaire est disponible sur le site?

Bonne question, la réponse typique chez Adopt est "oui tant que l'amont le maintient".

Merci pour votre réponse - même si elle ne répond pas à toutes mes questions. ;)

Je jouais un peu avec vos scripts (btw merci pour l'excellent travail) et j'ai pu construire OpenJDK11 pour Linux x86 sans trop d'effort. J'ai publié les binaires résultants dans ce projet GitHub - peut-être que cela peut également être utile pour d'autres. Mais je préférerais certainement voir un package officiel fourni par AdoptOpenJDK à l'avenir à la place ...

Construisez-vous sur des hôtes 64 bits ou des hôtes 32 bits?

Construisez-vous sur des hôtes 64 bits ou des hôtes 32 bits?

J'ai utilisé Debian i386 dans une machine virtuelle. Je suppose qu'il existe des solutions plus élégantes - mais c'était suffisant pour mes premières expériences / tests.

Je cherche à déplacer l'un de mes composants Java pour utiliser AdoptOpenJDK, en particulier la version OpenJDK 8 LTS. J'ai également besoin de 32 bits sur Linux x86. Existe-t-il un plan pour soutenir officiellement cela? Merci d'avance.

Je cherche à déplacer l'un de mes composants Java pour utiliser AdoptOpenJDK, en particulier la version OpenJDK 8 LTS.

Je ne connais pas les plans du projet AdoptOpenJDK sur OpenJDK 8 sur Linux x86. Mais pour OpenJDK 8, vous pouvez essayer Liberica JDK ou Zulu comme alternative.

Pour votre information: OpenJDK 12 pour Linux x86 se construit également avec succès avec vos scripts. J'ai ajouté les binaires d'OpenJDK 12 + 30 à la page de référentiel openjdk-linux-x86 .

@ pinhead84 pouvez-vous explorer si vous pouvez en créer un sur un hôte 64 bits? Nous pouvons avoir du mal à trouver du matériel 32 bits.

passage à TSC car ce n'est pas un problème de construction

Je crois comprendre qu'une fois que la nouvelle machine Packet sera en place, nous serons en mesure de fournir le matériel pour cela.

la machine à paquets est pour arm32 pas x86?

Ah désolé ouais - j'ai raté ça.

pouvez-vous explorer si vous pouvez en créer un sur un hôte 64 bits? Nous pouvons avoir du mal à trouver du matériel 32 bits.

@gdams Je vais essayer avec Docker. Mais cela peut prendre un ou deux jours. Je suis assez nouveau sur AdoptOpenJDK et je ne sais toujours pas grand-chose de votre infrastructure de construction. Par conséquent, faites-moi savoir si vous avez d'autres préférences / suggestions que Docker.

@ pinhead84 vous devriez pouvoir le construire sur un hôte 64 bits. Jetez un œil à https://njr.sabi.net/2008/12/24/building-32-bit-openjdk-on-64-bit-red-hat-enterprise-linux-52/ par exemple.

Notez que la prise en charge d'OpenJDK en amont pour 32 bits x86 a été abandonnée par Oracle (dans JDK 9?). On ne sait pas si quelqu'un s'en soucie suffisamment pour le maintenir en amont.
https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms

Je connais au moins deux bogues spécifiques à x86 32 bits Intel:
https://bugs.openjdk.java.net/browse/JDK-8211100
https://bugs.openjdk.java.net/browse/JDK-8220198

Donc, l'ajouter pour JDK 8 devrait être OK. Je ne suis pas sûr que JDK 11+ soit prêt. Sauf s'il y a un engagement de la communauté AdoptOpenJDK pour corriger les bogues / maintenir i686 en amont.

Sauf s'il y a un engagement de la communauté AdoptOpenJDK pour corriger les bogues / maintenir i686 en amont.

J'adorerais faire cela mais cela va bien au-delà de mes compétences.

Je connais au moins deux bogues spécifiques à x86 32 bits Intel:
https://bugs.openjdk.java.net/browse/JDK-8211100
https://bugs.openjdk.java.net/browse/JDK-8220198

BellSoft a également signalé certains problèmes dans ce message Twitter :

https://bugs.openjdk.java.net/browse/JDK-8206107
https://bugs.openjdk.java.net/browse/JDK-8217647

Les deux sont déjà fixés. Si je les comprends bien, ils sont toujours prêts à fournir un port i686 de haute qualité. En supposant que BellSoft (ou d'autres) fournissent des correctifs au référentiel en amont, pourraient-ils être portés dans AdoptOpenJDK?

Oui :-)

pouvez-vous explorer si vous pouvez en créer un sur un hôte 64 bits? Nous pouvons avoir du mal à trouver du matériel 32 bits.

@gdams J'ai pu construire OpenJDK i686 sur un système x86-64 (Debian amd64) de deux manières:

  • Utilisation de Docker avec les fichiers fournis dans le référentiel openjdk-linux-x86-docker .

  • Ou nativement en suivant ces étapes . Dans ce cas, j'ai dû apporter une petite modification à votre script de construction ( prepareWorkspace.sh ) pour que Freetype compile pour 32 bits. Il existe peut-être une meilleure solution.

Je suis sûr qu'il y a place pour des améliorations dans les deux approches. Mais j'espère que c'est suffisant pour une preuve de concept.

@ pinhead84

Ou nativement en suivant ces étapes. Dans ce cas, j'ai dû apporter une petite modification à votre script de construction (prepareWorkspace.sh) pour que Freetype compile pour 32 bits. Il existe peut-être une meilleure solution.

Pouvez-vous partager vos patchs avec nous? Je suis impatient de savoir si c'est quelque chose que nous pouvons implémenter dans vos scripts de construction sans les casser sur les plates-formes 64 bits

@gdams Actuellement, ce n'est pas vraiment un patch. Juste une modification avec:

sed -i.bak 's|if ! (bash ./configure |if ! (CC="gcc -m32" bash ./configure |' \
    "sbin/prepareWorkspace.sh"

Je vous enverrai une pull request, qui implémente ce changement pour i686 sans rompre la compatibilité avec d'autres architectures.

De retour pour construire, vous partez.

J'ai mis cela dans Backlog pour indiquer que nous sommes heureux que cela se déroule, mais que nous comptons vraiment sur des bénévoles pour y parvenir.

Pour votre information: j'ai récemment découvert qu'Azul Systems fournissait maintenant OpenJDK 12 pour Linux 32 bits x86. Cela me surprend un peu, surtout que leur build passe également au TCK.

J'ai récemment découvert qu'Azul Systems fournissait maintenant OpenJDK 12 pour Linux 32 bits x86.

La même chose s'applique à BellSoft. Ils ont confirmé via Twitter qu'ils allaient fournir OpenJDK 11 pour Linux i686 avec la prochaine version 11.0.3 en avril. Donc j'imagine / j'espère que les chances s'améliorent, qu'AdoptOpenJDK sera également en mesure de fournir des builds pour Linux i686 à l'avenir.

@karianna

... nous sommes heureux que cela aille de l'avant, mais nous comptons vraiment sur des bénévoles pour y parvenir

De quel genre d'aide par des bénévoles parlez-vous?

Corrigez-moi si je me trompe, mais BellSoft / Azul ne devrait-il pas publier leurs correctifs pour Linux i686 afin de remplir la licence OpenJDK? - Ces correctifs ne devraient-ils pas devenir disponibles dans le référentiel OpenJDK?

Ou avez-vous besoin d'aide concernant les versions multiplateformes sur les systèmes amd64?

Ce dernier vraiment ... Pour le moment, si vous essayez d'exécuter avec l'option 32 bits sur un système 64 bits, vous obtenez:

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

Je n'ai pas encore eu le temps de le diagnostiquer mais si vous savez comment contourner cela, criez-nous :-)

J'ai documenté les étapes ici . Fondamentalement, démarrer la construction avec /usr/bin/linux32 -- ./makejdk-any-platform.sh permet aux scripts de penser qu'il fonctionne sur un système 32 bits. Avec ce préfixe OpenJDK 11 i686 compilé correctement sur mon système Debian amd64.

Je ne sais pas vraiment si c'est une solution acceptable à long terme. Mais au moins, je n'avais plus à apporter de modifications à vos scripts de construction en plus de # 985. ;)

Hmmm n'avait pas pensé à linux32 ... Bon cri - je vais l'essayer :-)
(En tant que FYI, toutes nos machines de construction sont RHEL ou CentOS v6 / v7, ce qui nous donne la compatibilité la plus large avec les différentes versions de la glibc)

Quelles nouvelles sur ce problème?
Avez-vous suffisamment de bénévoles?

@gchauvet Nous n'avons personne pour le moment à la tête de cet effort - peut-être pouvons-nous utiliser le patch @ pinhead84 décrit ci-dessus et x-compiler sur un hôte Linux 64 bits.

@ sxa555 Cela vous semble-t-il raisonnable?

Nous avons dû utiliser Liberica, https://bell-sw.com/pages/java-8u222 , pour le support Linux x86 32 bits.

@ sxa555 Avez-vous réussi à faire des progrès en utilisant linux32 pour construire? Est-ce que je peux faire quelque chose (en tant que débutant dans le projet AdoptOpenJDK) pour aider?

Je pense que ce sera important une fois que jpackage sera disponible dans JDK14

https://gitlab.com/Austcool-Walker/ajwsubuntu/-/raw/master/ubuntu/pool/main/a/adoptopenjdk-8-hotspot/adoptopenjdk-8-hotspot_8u252-b03-1_i386.deb J'ai construit un package non officiel juste pour faire une démonstration de son possible en utilisant qemu / kvm lubuntu.

nécessite simplement une machine virtuelle x86 ou un hôte ou un docker et l'installation des dépendances de build i386 nécessaires.

Cette page vous a été utile?
0 / 5 - 0 notes