Construire Android à partir de sources: reloc non supporté 43

Lorsque je compile Android 5.1.1, j'ai des dizaines d'erreurs comme ceci:

 ... ... ... libnativehelper/JniInvocation.cpp:165: error: unsupported reloc 43 libnativehelper/JniInvocation.cpp:165: error: unsupported reloc 43 libnativehelper/JniInvocation.cpp:165: error: unsupported reloc 43 libnativehelper/JniInvocation.cpp:165: error: unsupported reloc 43 

Et le processus de fabrication échoue finalement:

  • Modifier les actifs de l'application à l'aide de l'API Filegap's File
  • Comment publier le nom de l'appareil (Variable) sur WiFi, comme le font certaines applications de transfert de fichiers?
  • Compiler, Fournir, APK - Période de dépendance Android
  • Comment résoudre le problème «Entrez le mot de passe pour le stockage des informations d'identification»?
  • Google Chrome pour le débogage web à distance Android
  • Connexion automatique Bluetooth avec périphériques appariés
  •  clang: error: linker command failed with exit code 1 (use -v to see invocation) build/core/host_shared_library_internal.mk:44: recipe for target 'out/host/linux-x86/obj32/lib/libnativehelper.so' failed make: *** [out/host/linux-x86/obj32/lib/libnativehelper.so] Error 1 

    J'ai essayé de créer des sources avec et sans clang et avec différentes versions de clang. Mais sur les nouvelles branches, clang est une exigence et ne permet pas de démarrer sans elle.

    Toute aide est appréciée.

  • Comment afficher l'animation de progression de la charge pour une image?
  • Filtrer les messages de journal par PID ou le package d'application dans Android
  • Studio Android collé au projet Refreshing Gradle
  • Ne peut pas configurerInterval dans onLocationChanged
  • Gérer les boutons de bouton dans un DialogFragment
  • Est-il possible d'accéder au Fragment actuel affiché par un ViewPager?
  • 6 Solutions collect form web for “Construire Android à partir de sources: reloc non supporté 43”

    Il faut appliquer ce patch pour que les choses fonctionnent. https://android-review.googlesource.com/#/c/223100/

    Ouvrez le fichier build/core/clang/HOST_x86_common.mk dans votre répertoire de code source Android avec un éditeur, ajoutez ces lignes, comme indiqué dans ce lien

    Pour Android Lollipop ou toute autre version antérieure, assurez-vous de ne pas -no-integrated-as tout -no-integrated-as application de ce patch. Assurez-vous que les continuations de ligne sont correctes ( \ à la fin de chaque ligne sauf la dernière ligne).

    Mais, non -no-integrated-as est enlevé dans Marshmallow.

    Cela me fonctionne:
    Dans le fichier /art/build/Android.common_build.mk, découvrez:

     # Host. ART_HOST_CLANG := false ifneq ($(WITHOUT_HOST_CLANG),true) # By default, host builds use clang for better warnings. ART_HOST_CLANG := true endif 

    Passer à:

     # Host. ART_HOST_CLANG := false ifeq ($(WITHOUT_HOST_CLANG),false) # By default, host builds use clang for better warnings. ART_HOST_CLANG := true endif 

    Si cela ne marche pas, essayez ceci dans votre chemin de racine Android: cp /usr/bin/ld.gold prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld

    Les problèmes proviennent d'un changement incompatible dans binutils: certaines sections ont été ajoutées. Certaines plates-formes de construction ont le nouveau binutils et l'arborescence de version Android ont une ancienne. Le bug provient de la définition des variables d'invocation de clang. Cela ne permet pas à Clang d'utiliser la chaîne de construction fournie. Ensuite, clang utilise les binutils de la plate-forme de construction native (ici / usr / bin / as à la place des prebutilts fournis sous). Ensuite, le correctif implique l'application du patch pointu par mysticTot, puis l'élimination de tous les binaires produits par la chaîne d'outils (selon l'endroit où l'erreur apparaît, cela pourrait changer, mais en supprimant tous les STATIC_LIBRARIES / SHARED_LIBRARIES / EXECUTABLES etc. Dirs dans l'arbre devrait le faire). Supprimez également le cache de ccache (pendant qu'il stocke .o) puis reconstruisez. La réparation fournie par Ov3r1oad consistant à remplacer la chaîne d'outils pré-construite ld par l'native ld n'est pas une solution, juste une solution de contournement et pourrait être dangereuse (le numéro de section de mélange n'est pas bon). J'espère que cela vous aidera.

    Comme une solution difficile, je viens de remplacer le linker pré-construit avec le lien doux sur /usr/bin/ld.gold. Il est décrit ici: https://bbs.archlinux.org/viewtopic.php?id=209698 .

    Construisez-vous sur Arch Linux? J'ai le même problème depuis aujourd'hui. Mes compilations précédentes étaient il y a 3 jours et toutes étaient bien. Aujourd'hui, tous échouent.

    Je vois que l'administrateur a mis à jour certains paquets il y a 2 jours, en particulier ceux-ci

     [2016-03-16 15:29] [ALPM] upgraded glibc (2.22-3 -> 2.23-1) [2016-03-16 15:29] [ALPM] upgraded lib32-glibc (2.22-3.1 -> 2.23-1) [2016-03-16 15:29] [ALPM] upgraded lib32-gcc-libs (5.3.0-3 -> 5.3.0-5) [2016-03-16 15:29] [ALPM] upgraded gcc-libs-multilib (5.3.0-3 -> 5.3.0-5) [2016-03-16 15:29] [ALPM] upgraded libcap (2.24-2 -> 2.25-1) [2016-03-16 15:29] [ALPM] upgraded binutils (2.25.1-3 -> 2.26-3) [2016-03-16 15:29] [ALPM] upgraded gcc-multilib (5.3.0-3 -> 5.3.0-5) [2016-03-16 15:29] [ALPM] upgraded libcups (2.1.2-3 -> 2.1.3-1) 

    Binutils pourrait-il être le coupable? ( https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808206 )

    Voir aussi https://groups.google.com/d/msg/android-x86/U1XpL0tUpqw/y4W3wRCdJgAJ

    J'ai utilisé le patch lié dans la réponse sur un arbre Lollipop, mais maintenant j'ai eu un tas de fonctions non définies lors de la liaison. Le débogage d'un peu m'a permis de découvrir que la construction évolue pour les fichiers source c ++, mais génère des fichiers objet inutilisés de 513 octets pour les sources d'assemblage .S. http://pastebin.com/Q9hJ0Q7Y

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.