Подтвердить что ты не робот

Создание Android из источников: неподдерживаемый reloc 43

Когда я компилирую Android 5.1.1, я получаю десятки таких ошибок:

...
...
...
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

и завершение процесса make завершается:

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

Я попытался создать источники с и без clang и с разными версиями clang. Но на новых ветвях требование clang - это требование, и make не запускается без него.

Что может быть неправильным?

4b9b3361

Ответ 1

Нужно применить этот патч, чтобы заставить вещи работать https://android-review.googlesource.com/#/c/223100/

Откройте build/core/clang/HOST_x86_common.mk файл в вашем исходном коде Android с некоторым редактором, добавьте эти строки, как указано в этой ссылке

Для Android Lollipop или любой более ранней версии, не забудьте оставить -no-integrated-as при применении этого патча. Убедитесь, что продолжение линии правильное (\ в конце каждой строки, кроме последней строки).

Но, -no-integrated-as удаляется в Зефир.

Ответ 2

Это работает для меня:
в файле /art/build/Android.common_build.mk, узнайте:

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

измените на:

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

Если он все еще не работает, попробуйте это в корневой путь вашего Android: cp /usr/bin/ld.gold prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld

Ответ 3

Проблемы возникают из-за несовместимого изменения binutils: добавлена ​​часть раздела. На некоторых платформах сборки есть новые binutils, а дерево сборки android - старое. Ошибка возникает из определения переменных вызова clang. Они не говорят clang использовать предоставленную цепочку сборки. Затем clang использует встроенную платформу binutils (здесь/usr/bin/as вместо предустановок, предоставленных как). Затем исправление подразумевает применение патча, на которое указывает mysticTot, а затем удаление всех двоичных файлов, созданных toolchain (в зависимости от того, где ошибка появляется, это может измениться, но удаление всех STATIC_LIBRARIES/SHARED_LIBRARIES/EXECUTABLES и т.д. В дереве должно это сделать). Также удалите кеш ccache (поскольку он сохраняет .o), затем перестройте. Исправление, предоставляемое Ov3r1oad, состоящее в замене предварительно созданной toolchain ld на native ld, не является решением, просто обходным путем и может быть опасным (номер секции микширования не очень хорош). Надеюсь, что это поможет.

Ответ 4

В качестве трудного решения я только что заменил готовый компоновщик с помощью soft link на /usr/bin/ld.gold. Здесь описано: https://bbs.archlinux.org/viewtopic.php?id=209698.

Ответ 5

Вы строите Arch Linux? С тех пор у меня такая же проблема. Мои предыдущие сборки были 3 дня назад, и все было в порядке. Сегодня все терпят неудачу.

Я вижу, что администратор обновил несколько пакетов 2 дня назад, особенно эти

[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 может быть виновником? (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808206)

также см. https://groups.google.com/d/msg/android-x86/U1XpL0tUpqw/y4W3wRCdJgAJ...