[РЕШЕНО] Ошибка сборки TWRP - ТОЛЬКО на Arch Linux

yurius
Это в bashrc надо или куда?
Это экспорт переменных для makepkg для сборки пакетов. Работает если надо собрать пакет другой версией gcc. Перед этим поставить нужную версию
например
pacman -S gcc7

Как передать версию для сборки TWRP я не знаю. Если при конфигурировании и сборке читаются переменные то должно тоже прокатить, но не уверен никогда этим не занимался
yurius
Исправил на strcpy, сделал меньше аргументов (как Я это прочитал и понял) - посыпались другие ошибки.
Я так и не понял, данные ошибки Werror=stringop-truncation, связанные со строками ушли? Это мне интересно для того, чтобы знать, можно ли применять этот способ в дальнейшем. Я же его проверить не могу. А то что посыпались другие ошибки, это закономерно, как уже и писал.
Ошибки не исчезают с опытом - они просто умнеют
Попробую. gcc7 уже стоит.

vs220
Если при конфигурировании и сборке читаются переменные то должно тоже прокатить, но не уверен никогда этим не занимался

Ну при сборке ядра например путь к тулчейну указывается как раз в основном мэйкфайле сорсов ядра таким образом:

CROSS_COMPILE=/home/yurius/aarch64-linux-android-4.9/bin/aarch64-linux-android-

, но это ТВРП, здесь всё несколько иначе, если не сказать "сильно иначе". Видимо, по умолчанию берётся системный gcc, также есть внутренний gcc (исхи ядра - это ж плевок весом в пару сотен мегабайт, там ничего нет), потому при сборке ТВРП я никогда не заботился о тулчейне. При сборке ТВРП забота только одна - правильно написать конфиг под конкретный девайс, весь успех зависит на 95% от него.
vasek
ошибки Werror=stringop-truncation, связанные со строками ушли?
Ушли, но только потому, что до них, видимо, просто не доходит очередь, потому что появились другие ошибки, связанные с заменой strncpy на strcpy. Либо эти последние ошибки вообще "приоритетны" перед Werror=stringop-truncation . Трудно сказать, я здесь не спец, а в ситуации полного незнания логика сбоит. Одно можно сказать с уверенностью: пока не было замены strncpy на strcpy, И в то время, когда был внесен флаг "-Wno-error=stringop-truncation", ошибка Werror=stringop-truncation никуда не исчезла. То есть, этот "антифлаг" не приводит к исчезновению ошибки - это совершенно точно.
Я бы поостерёгся так просто менять одну функцию на другую, а в особенности всё, что связанно с функциями mem**. При определённых условиях это конечно можно сделать, но для этого надо очень хорошо знать программу и структуры используемых данных. В противном случае "... отстрелите себе ногу ...".

vasek флаг -Werror применяется только для того, чтобы предупреждения компилятора воспринимались как ошибки. Его отключение позволит видеть все предупреждения, но не прерывать компиляцию. На мой взгляд это наиболее безопасный для будущей программы и щадящий для нервов режим, повторюсь, только на мой взгляд.
yurius, я просто описался в части strcpu. Правильная замена функций - strncpy – memcpy, strncat – strcat, разумеется с правкой аргументов, как описано в ссылке.
Ошибки не исчезают с опытом - они просто умнеют
alexandr05
При определённых условиях это конечно можно сделать, но для этого надо очень хорошо знать программу и структуры используемых данных. В противном случае "… отстрелите себе ногу …".
Прямо вот ногу? ) Да просто образ recovery.img не соберётся - всего и делов-то ) Или соберётся и не запустится. А здоровые исходники у меня ещё на двух ЖД лежат - если что напартачу, 3 минуты копировать.

vasek
Правильная замена функций - strncpy – memcpy, strncat – strcat, разумеется с правкой аргументов, как описано в ссылке.
Пока подвешу вопрос, в конце концов это не самоцель, есть на чём собирать нормально. 5-й андроид сейчас уже редко попадается для сборки ТВРП, и наверное правильно, что новые компиляторы на него уже и не ориентируются даже, так что, скорее всего, исправлять что-либо и смысла нет. Это всё равно, что сейчас с собой кассетный плеер носить и на барахолках кассеты покупать: теоретически можно, но смысла никакого. От сборки на исхах 4.4 для девайсов с Андроид-4 я уже отказываюсь со старта - это полный геморрой, хотя года полтора назад ещё нормально было. А сейчас даже java-6 для них не установишь - просто не ставится.
alexandr05
Werror применяется только для того, чтобы предупреждения компилятора воспринимались как ошибки. Его отключение позволит видеть все предупреждения, но не прерывать компиляцию.
Это мне известно. Просто рекомендуют этого не делать, что может привести к непредсказуемым результатам. А рекомендуют или править ошибки в исходниках или отключить конкретный варнинг/ошибку, что пропустит только конкретную ошибку, а не все.
Я обычно использую этот способ

alexandr05
Я бы поостерёгся так просто менять одну функцию на другую, а в особенности всё, что связанно с функциями mem**.
Здесь я с тобой согласен полностью. Но так же заменять советуют и в той ссылке, которую привел (кстати видел это и в других источниках).
А вообще это метод тыка. И разумеется, что если что то советовать, то нужно понимать, что там конкретно делается, чего мы и не знаем.
Ошибки не исчезают с опытом - они просто умнеют
yurius
Пока подвешу вопрос, в конце концов это не самоцель
Лучше его забыть и больше не заниматься, толку, имхо, не будет.
Ошибки не исчезают с опытом - они просто умнеют
alexandr05, на всякий случай кидаю ссылку, информация которой часто мне помогает, может пригодится и тебе. Если знаешь о ней, не обижайся.
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.