alexandr05 |
|
Темы:
16
Сообщения:
108
Участник с: 16 октября 2011
|
vasek, спасибо за инфу ( и да, знаю) |
vasek |
|
Темы:
47
Сообщения:
11853
Участник с: 17 февраля 2013
|
alexandr05Тогда без обид на старика ... ничего не имел в виду плохого.
Ошибки не исчезают с опытом - они просто умнеют
|
vasek |
|
Темы:
47
Сообщения:
11853
Участник с: 17 февраля 2013
|
Вообщем почитал я об изменениях в gcc 8 - добавили много предупреждений, одно из которых "-Wstringop-truncation" (при усечении строки, копируемой через strncat, strncpy и stpncpy) Почитать о нем можешь уже в приведенной ранее мной ссылке о предупреждениях а также и здесь Обсуждений этого предупреждения много и рекомендуют, если уверены в правильности, отключайте его, если не уверены, правьте. UPD - У функции strncpy есть один нюанс - наличие/отсутствие нулевого байта в конце скопированной строки (подробности можешь почитать здесь ) В части замены strncpy – memcpy заменять можно, но не везде, нужно смотреть. А вот в части замены strncat – strcat я был не прав, этого делать не нужно. Вообщем, раз компилировалось раньше нормально, то можно смело отключать это предупреждение
Ошибки не исчезают с опытом - они просто умнеют
|
yurius |
|
Темы:
82
Сообщения:
920
Участник с: 01 января 2018
|
Мужики, я сделал это! )) Точнее, посмотрев вот здесь - http://cppconf.ru/talks/day-2/track-c/4.pdf (самое начало страницы 16) просто тупо угадал, что делать. Точнее, ЧТО делать, более-менее было ясно - просто сменить компилятор с gcc8 на gcc7. А вот КАК это сделать - больше угадал, чем прочитал. Итак, РЕШЕНИЕ: 1) sudo pacman -S gcc7 2) Приводим Makefile в корне исходников к такому виду:
- то есть закомментирываем (или "закомментировываем"?...) -Werror 3) nano .../папка_с_исходниками/CMakeLists.txt - прописываем там такой текст:
4) Теперь главное (кто в теме сборки TWRP, тот понимает смысл первых двух команд): . build/envsetup.sh lunch omni_device_name-eng make -j3 recoveryimage CXX=g++-7 CC=gcc-7 - вот в этих последних двух флагах и заключается весь смысл! Результат - образ собрался, без всяких замен "strncpy" и прочей лабуды! ) |
vasek |
|
Темы:
47
Сообщения:
11853
Участник с: 17 февраля 2013
|
yuriusЭто не плохо, молодец. А уверен, что получится постоянно держать в системе gcc7? Луше осваивай исключение конкретных варнингов.
Ошибки не исчезают с опытом - они просто умнеют
|
yurius |
|
Темы:
82
Сообщения:
920
Участник с: 01 января 2018
|
vasekА что может этому помешать? Думаю, gcc9 выйдет ещё не скоро, а к тому времени необходимость сборки для 5-го Андроида отпадёт вовсе (либо буду собирать на Дебиане, на Кальке). А сильно драконить исходники - это лишний геморрой. Если бы других вариантов не было, тогда другое дело, а их уже целых два - приведенный выше, и сборка на других системах. Да и сейчас подавляющее большинство девайсов идут с Андроид 6+, а там всё в порядке.yuriusА уверен, что получится постоянно держать в системе gcc7? |
vs220 |
|
Темы:
25
Сообщения:
8524
Участник с: 16 августа 2009
|
vasekА какие проблемы ? Ставится параллельно штатному gcc (8.1.1) и никак ему не мешает, по умолчанию используется штатный для других версий задается через переменные или прописывается при сборке. В aur если что еще четвертая версия до сих пор есть |
vasek |
|
Темы:
47
Сообщения:
11853
Участник с: 17 февраля 2013
|
vs220Всегда считал, что пакет будет независим, если он тащит с собой все свое и не использут ничего из установленного в систему. Но если он использует что то из установленной системы (например, какие то библиотеки), то можно ожидать, что со временем он может и не запуситься. Значит я был не прав? UPD - Ну и лично для меня намного интереснее найти решение - больше будет и понимания и опыта.
Ошибки не исчезают с опытом - они просто умнеют
|
vs220 |
|
Темы:
25
Сообщения:
8524
Участник с: 16 августа 2009
|
vasekНужные ставятся по зависимостям. gcc7-libs для gcc7 Не должно быть проблем. По крайней мере gcc5 из аура у меня работает без проблем, так что как ТС и говорил пока исчезнет седьмая версия из реп или аур то про 6 андроид точно забудут. Ну а учиться всегда полезно, вот только даже мантейнеры не заморачиваются с правкой а просто собирают нужной версией, а для проприетарных так вообще не очень-то и подправиш cuda например использует седьмую версию |
vasek |
|
Темы:
47
Сообщения:
11853
Участник с: 17 февраля 2013
|
vs220В данном случае, возможно, это и есть наилучший выход (хотя, как написал, отключить конкретное появившееся предупреждение вроде бы то же не проблема). Мне иногда приходится пересобирать самому некоторые модули, которые написаны давно, а gcc постоянно бежит вперед и получаю кучу варнингов, что нагуглится, правлю, но большей частью выключаю конкретные варнинги (не ставить же мне каждый раз нужную версию gcc). Вот в данном случае и предложил отключить конкретное предупреждение -Wstringop-truncation, которое включили в gcc8.
Ошибки не исчезают с опытом - они просто умнеют
|