e2k-ports icon indicating copy to clipboard operation
e2k-ports copied to clipboard

qt5 patch ломает сборку на других архитектурах

Open fedya opened this issue 2 years ago • 8 comments

Попробовал применить патч для 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)

fedya avatar Aug 03 '22 12:08 fedya

Да, в патче для пятого не все правки изолированы. В Альте я применяю патчи для Эльбруса только для сборки под Эльбрус (%ifarch %e2k). И хотя я стараюсь чтобы патчи не вредили другим архитектурам - это сделано не во всех патчах.

В данном случае, возможно из-за правок к этим файлам:

mkspecs/features/toolchain.prf mkspecs/linux-icc/qmake.conf

Где я не знал как применить только для Эльбруса.

ilyakurdyukov avatar Aug 03 '22 12:08 ilyakurdyukov

А можно показать патчи для альта?

fedya avatar Aug 03 '22 13:08 fedya

Нет никаких специальных патчей для Альта, там файлы RPM spec с инструкциями для сборки пакетов, и в них я применяю патчи для Эльбруса только при сборке пакета под Эльбрус.

ilyakurdyukov avatar Aug 03 '22 13:08 ilyakurdyukov

Да я знаю как это работает Хочу увидеть Patch2000: qtbase-e2k.patch Patch1006: e2k-qt-5.15.patch

fedya avatar Aug 03 '22 15:08 fedya

В общем репозитории сейчас чёрт знает что, какой-то пустой файл.

Для Эльбруса есть отдельный закрытый репозиторий, большинство пакетов берётся прямо из Альта, отдельные из него. Если содержат патчи от МЦСТ (которые они закрывают под НДА, если не выложены на их сайте), или версия для Эльбруса отстаёт, или пакет в Альте закрыт для @everybody, и из-за этого сложно его обновлять.

Конкретно qt5 сейчас там версии qt5-base-common-5.15.2-alt12 + этот патч, все пакеты qt5 обновлял не я, так как это сложный процесс, когда надо пересобрать много пакетов одновременно и в правильной последовательности. Я исправляю ошибки компиляции.

ilyakurdyukov avatar Aug 03 '22 16:08 ilyakurdyukov

Для этого патча также добавлены флаги компиляции:

%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

И так как первого имени в открытом доступе нет, то возникает вопрос откуда вы о нём знаете.

ilyakurdyukov avatar Aug 03 '22 16:08 ilyakurdyukov

Ну да, утечки спеков через этот сайт: https://packages.altlinux.org/ru/sisyphus_e2k/srpms/qt5-base/specfiles/

P.S.: Уточнил что спеки из закрытого репозитория открыли сознательно.

ilyakurdyukov avatar Aug 03 '22 16:08 ilyakurdyukov

e2k-qt-5.15.patch и в закрытом репозитории пустой. Видимо, какой-то артефакт от прежних времён остался.

bircoph avatar Aug 03 '22 18:08 bircoph