e2k-ports
e2k-ports copied to clipboard
qt5 patch ломает сборку на других архитектурах
Попробовал применить патч для qt5 Ну и получаю ошибку сборки на aarch64
In file included from global/qt_pch.h:56:
../../include/QtCore/../../src/corelib/thread/qbasicatomic.h: In instantiation of 'class QBasicAtomicInteger<long int>':
../../include/QtCore/../../src/corelib/thread/qatomic.h:59:7: required from 'class QAtomicInteger<long int>'
thread/qatomic.cpp:1754:1: required from here
global/qglobal.h:121:63: error: static assertion failed: template parameter is an integral of a size not supported on this platform
121 | # define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition), Message)
Да, в патче для пятого не все правки изолированы. В Альте я применяю патчи для Эльбруса только для сборки под Эльбрус (%ifarch %e2k
). И хотя я стараюсь чтобы патчи не вредили другим архитектурам - это сделано не во всех патчах.
В данном случае, возможно из-за правок к этим файлам:
mkspecs/features/toolchain.prf mkspecs/linux-icc/qmake.conf
Где я не знал как применить только для Эльбруса.
А можно показать патчи для альта?
Нет никаких специальных патчей для Альта, там файлы RPM spec с инструкциями для сборки пакетов, и в них я применяю патчи для Эльбруса только при сборке пакета под Эльбрус.
Да я знаю как это работает Хочу увидеть Patch2000: qtbase-e2k.patch Patch1006: e2k-qt-5.15.patch
В общем репозитории сейчас чёрт знает что, какой-то пустой файл.
Для Эльбруса есть отдельный закрытый репозиторий, большинство пакетов берётся прямо из Альта, отдельные из него. Если содержат патчи от МЦСТ (которые они закрывают под НДА, если не выложены на их сайте), или версия для Эльбруса отстаёт, или пакет в Альте закрыт для @everybody
, и из-за этого сложно его обновлять.
Конкретно qt5 сейчас там версии qt5-base-common-5.15.2-alt12 + этот патч, все пакеты qt5 обновлял не я, так как это сложный процесс, когда надо пересобрать много пакетов одновременно и в правильной последовательности. Я исправляю ошибки компиляции.
Для этого патча также добавлены флаги компиляции:
%add_optflags -mno-sse4.2 -mno-avx
И эти опции для configure: -no-sse4.2 -no-avx -no-avx2
Мой патч там лежит под первым именем, а второй пустой.
Patch2000: qtbase-e2k.patch
Patch1006: e2k-qt-5.15.patch
И так как первого имени в открытом доступе нет, то возникает вопрос откуда вы о нём знаете.
Ну да, утечки спеков через этот сайт: https://packages.altlinux.org/ru/sisyphus_e2k/srpms/qt5-base/specfiles/
P.S.: Уточнил что спеки из закрытого репозитория открыли сознательно.
e2k-qt-5.15.patch и в закрытом репозитории пустой. Видимо, какой-то артефакт от прежних времён остался.