Budowanie Androida ze źródeł: nieobsługiwany reloc 43

Kiedy kompiluję Androida 5.1.1, dostaję dziesiątki błędów takich jak:

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

I proces tworzenia w końcu się nie powiedzie:

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
Próbowałem budować źródła z i bez clang, i z różnymi wersjami clang. Ale w nowszych gałęziach clang jest wymogiem i make nie zaczyna się bez niego. Co może być nie tak?
Author: stkent, 2016-03-17

5 answers

Należy zastosować tę łatkę, aby wszystko działało https://android-review.googlesource.com/#/c/223100/

Otwórz plik build/core/clang/HOST_x86_common.mk w katalogu z kodem źródłowym Androida za pomocą edytora dodaj te linie, jak wspomniano w tym linku

Dla Androida Lollipop lub dowolnej wcześniejszej wersji, upewnij się, aby zachować -no-integrated-as podczas stosowania tej poprawki. Upewnij się, że kontynuacje linii są prawidłowe (\ na końcu każdej linii z wyjątkiem ostatniej linii).

Ale, -no-integrated-as jest usuwany w piance.

 23
Author: mysticTot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-27 13:42:03

Dla mnie działa:
w pliku / art / build / Android. common_build. mk dowiesz się:

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

Zmień na:

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

Jeśli nadal nie działa,spróbuj tego w ścieżce głównej Androida: cp /usr/bin/ld.gold prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld

 21
Author: Gracker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-21 07:38:42

Problemy wynikają z niezgodnej zmiany w binutils: niektóre sekcje zostały dodane. Niektóre platformy build mają nowe binutils i Android build tree mają Stary. Błąd pochodzi z definicji zmiennych wywołujących clang. To nie każe clang ' owi używać dostarczonego łańcucha budowy. Następnie clang używa natywnej platformy binutils (tutaj / usr / bin / as zamiast prebuiltów dostarczonych jako). Następnie poprawka zakłada zastosowanie łatki wskazanej przez mystictota, a następnie usunięcie wszystkich binariów wyprodukowanych przez toolchain (w zależności od tego, gdzie pojawia się błąd, może się to zmienić, ale usunięcie wszystkich STATIC_LIBRARIES/SHARED_LIBRARIES/EXECUTABLES itp. Usuń również pamięć podręczną ccache (jak przechowuje .o) następnie odbudować. Poprawka dostarczona przez Ov3r1oad polegająca na zastąpieniu wstępnie wbudowanego toolchain ld natywnym ld nie jest rozwiązaniem, tylko obejściem i może być niebezpieczna (numer sekcji mieszania nie jest dobry). Mam nadzieję, że to pomoże.

 4
Author: Rémi Cohen-Scali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-22 12:07:19

W ramach obejścia problemu wymieniłem wstępnie wbudowany linker na soft link w /usr / bin / ld.złoto . Opisywany tutaj: https://bbs.archlinux.org/viewtopic.php?id=209698 .

 3
Author: Ov3r1oad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-23 09:26:03

Czy budujesz na Arch Linux? Mam ten sam problem od dzisiaj. Moje poprzednie budowle były 3 dni temu i były w porządku. Dzisiaj wszyscy zawodzą.

Widzę, że admin zaktualizował kilka pakietów 2 dni temu, szczególnie te

[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 może być winowajcą? ( https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808206 )

Zobacz też https://groups.google.com/d/msg/android-x86/U1XpL0tUpqw/y4W3wRCdJgAJ ...

 2
Author: Alexandre Dumont,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-17 23:41:26