Список аргументов слишком длинный - сборка Android 2.2.3_r1 не удалась - PullRequest
0 голосов
/ 07 марта 2012

Я скачал Android 2.2.3_r1 и настроил среду сборки.

Я сделал специальное изменение, чтобы создать вывод на USB-накопителе, добавив следующую строку в файл buildspec.mk и поместив его в исходный каталог (файл содержит только эту строку, поскольку я хочу только изменить выходной каталог) .

OUT_DIR:=/media/SHANTHA/ANDROID

Процесс сборки выполняется с помощью следующих команд в следующем порядке:

  1. source build/envsetup.sh
  2. lunch full-eng
  3. make -j4

Когда я запускаю make -j4, он заканчивается через довольно долгое время следующими строками в конце трассы.

...
...
target Prelink: libthread_db (/media/SHANTHA/ANDROID/target/product/generic/symbols/system/lib/libthread_db.so)
target StaticLib: libwebcore (/media/SHANTHA/ANDROID/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/libwebcore.a)
make: execvp: /bin/bash: Argument list too long
make: *** [/media/SHANTHA/ANDROID/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/libwebcore.a] Error 127
make: *** Waiting for unfinished jobs....
shantha@shantha:~/ANDROID_S$ 

Трассировка указывает на ошибку как make: execvp: /bin/bash: Argument list too long

Это большая помощь, если кто-то может помочь мне решить эту проблему.

1 Ответ

2 голосов
/ 13 сентября 2012

У меня тоже была эта проблема при сборке WebKit.

Мое решение состояло в том, чтобы загрузить исходные коды ядра, изменив строку 14 в include / linux / binfmts.h из

# определить MAX_ARG_STRLEN (PAGE_SIZE * 32)

до

# определить MAX_ARG_STRLEN (PAGE_SIZE * 64)

скомпилируйте и установите ядро ​​и перезагрузите компьютер.

Однако проблема этого решения заключается в том, что каждому запущенному процессу требуется больше памяти. Но вы можете загрузить это ядро ​​только для сборки Android.

...