ilyakurdyukov / e2k-ports Goto Github PK
View Code? Open in Web Editor NEWPerformance patches and build fixes for Elbrus 2000 (e2k) architecture.
Performance patches and build fixes for Elbrus 2000 (e2k) architecture.
Глянул патч для glib2.0, я так понял он добавляет возможность использовать всякие g_autoptr
в lcc
Однако вот пытаюсь собрать libdnf-0.70.0
и там лезет
lcc: "/home/omv/libdnf/BUILD/libdnf-0.70.0/libdnf/dnf-lock.cpp", line 226: error #254:
type name is not allowed
g_autoptr(GError) error_local = NULL;
^
lcc: "/home/omv/libdnf/BUILD/libdnf-0.70.0/libdnf/dnf-lock.cpp", line 226: error #20:
identifier "g_autoptr" is undefined
g_autoptr(GError) error_local = NULL;
^
в участках кода типа
static guint
dnf_lock_get_pid(DnfLock *lock, const gchar *filename, GError **error)
{
gboolean ret;
guint64 pid;
gchar *endptr = NULL;
g_autoptr(GError) error_local = NULL;
g_autofree gchar *contents = NULL;
g_return_val_if_fail(DNF_IS_LOCK(lock), FALSE);
/* file doesn't exists */
ret = g_file_test(filename, G_FILE_TEST_EXISTS);
if (!ret) {
g_set_error_literal(error,
DNF_ERROR,
DNF_ERROR_INTERNAL_ERROR,
"lock file not present");
return 0;
}
Можно подсказать куда копнуть тут? Проблема в glib2.0 или непосредственно в libdnf?
Пример упавшей сборки
https://file-store.rosalinux.ru/api/v1/file_stores/295646e84de0ec62a601993c58219e1509cd7b69
Спасибо вам за патчи, многое помогает и собирается без проблем. Вот захотел qt6 т.к. много где требуется, а вот на Эльбрус ОС 7.1 с компилятором lcc 1.26.16. не собирается, что странно т.к. на Альте видимо всё отлично.
1я ошибка. Смог решить просто закоментив 110 и 111 строку:
lcc: "/root/dev/qtbase/build/include/QtGui/6.2.4/QtGui/qpa/../../../../../../src/gui/kernel/qplatformintegration.h", строка 111: ошибка #247:
шаблон класса "QNativeInterface::Private::QInterfaceProxy" уже описан
struct QInterfaceProxy : public QInterfaceProxyImp<R, I, func, Args...> {};
2я ошибка. Не понял, как решить:
lcc: "/root/dev/qtbase/src/gui/accessible/linux/qspi_constant_mappings.cpp", строка 80: ошибка #20:
идентификатор "ATSPI_STATE_READ_ONLY" не определен
setSpiStateBit(&spiState, ATSPI_STATE_READ_ONLY);
Попробовал применить патч для 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)
Добрый день!
Первоначально я написал это в комментарии к коммиту, но чтобы там не затерялось, выношу в issue.
Проблема
e2k-ports/onetbb-2021.2-e2k.patch
Lines 52 to 58 in 6fcb942
может быть связана связана с инициализацией переменной mallocInitialized
:
https://github.com/oneapi-src/oneTBB/blob/0815661e4c08e4fcaf772d31c1313c63d629a32e/src/tbbmalloc/frontend.cpp#L1944
Багрепорт: oneapi-src/oneTBB#558
Инициализация std::atomic<>
с помощью {0}
не потокобезопасна в C++11 и новее. Если инициализация и первое использование окажутся в разных потоках, то значение может быть перезаписано и будет ошибка.
Для Visual Studio помогает удаление {0}
, но это тоже не совсем согласуется со стандартом (код с удаленным {0}
проходит все тесты на GCC-7,8,9,10, Clang 10,11,12 и в соответствующих AppleClang).
В C++20 есть std::atomic_ref
, но он поддерживается очень не всеми компиляторами.
патч для webkit https://github.com/ilyakurdyukov/e2k-ports/blob/main/webkitgtk-2.34.3-e2k.patch
сегфолтит epiphany
bt full
проверил на разных версиях, каждый раз одна и та же ошибка
0x0000455563445920 in JSC::MarkedBlock::Handle::sweep(JSC::FreeList*) () from /usr/lib64/libjavascriptcoregtk-4.0.so.18
(gdb) bt full
#0 0x0000455563445920 in JSC::MarkedBlock::Handle::sweep(JSC::FreeList*) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#1 0x000045556336a360 in JSC::BlockDirectory::sweep() () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#2 0x000045556344a458 in JSC::MarkedSpace::sweepBlocks() () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#3 0x0000455563390780 in JSC::Heap::sweepSynchronously() () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#4 0x00004555633a6f98 in JSC::Heap::finalize() () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#5 0x00004555633a03d8 in JSC::Heap::handleNeedFinalize(unsigned int) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#6 0x00004555633a04f0 in JSC::Heap::handleNeedFinalize() () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#7 0x000045556339d3b0 in JSC::Heap::finishChangingPhase(JSC::GCConductor) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#8 0x000045556339d190 in JSC::Heap::changePhase(JSC::GCConductor, JSC::CollectorPhase) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#9 0x000045556339b6b0 in JSC::Heap::runEndPhase(JSC::GCConductor) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#10 0x00004555633971d0 in JSC::Heap::runCurrentPhase(JSC::GCConductor, JSC::CurrentThreadState*) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#11 0x00004555633be380 in WTF::ScopedLambdaFunctor<void (JSC::CurrentThreadState&), JSC::Heap::collectInMutatorThread()::{lambda(JSC::CurrentThreadState&)#1}>::implFunction(void*, JSC::CurrentThreadState&) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#12 0x000045556342da48 in JSC::callWithCurrentThreadState(WTF::ScopedLambda<void (JSC::CurrentThreadState&)> const&) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#13 0x000045556339d808 in JSC::Heap::collectInMutatorThread() () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#14 0x000045556339f838 in JSC::Heap::stopIfNecessarySlow(unsigned int) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#15 0x000045556339f5e8 in JSC::Heap::stopIfNecessarySlow() () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#16 0x0000455563427218 in JSC::LocalAllocator::allocateSlowCase(JSC::Heap&, JSC::GCDeferralContext*, JSC::AllocationFailureMode) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#17 0x0000455562e58280 in void* JSC::tryAllocateCellHelper<JSC::JSFinalObject>(JSC::Heap&, unsigned long, JSC::GCDeferralContext*, JSC::AllocationFailureMode) ()
at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#18 0x00004555636541e8 in JSC::constructEmptyObject(JSC::JSGlobalObject*) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#19 0x00004555646d1118 in JSC::LiteralParser<char16_t>::parse(JSC::ParserState) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#20 0x0000455564477118 in JSC::JSONParse(JSC::JSGlobalObject*, WTF::String const&) () at /usr/lib64/libjavascriptcoregtk-4.0.so.18
#21 0x000045555d9be650 in () at /usr/lib64/libwebkit2gtk-4.0.so.37
#22 0x000045555d9bf2a0 in () at /usr/lib64/libwebkit2gtk-4.0.so.37
#23 0x000045555a578380 in () at /usr/lib64/libwebkit2gtk-4.0.so.37
#24 0x000045555a6fc3b8 in () at /usr/lib64/libwebkit2gtk-4.0.so.37
#25 0x000045555a6fc8c8 in webkit_user_content_filter_store_save () at /usr/lib64/libwebkit2gtk-4.0.so.37
#26 0x000045555575e6d0 in () at /usr/lib64/epiphany/libephymain.so
#27 0x0000455556c41d08 in () at /usr/lib64/libgio-2.0.so.0
#28 0x00004555570aedf0 in () at /usr/lib64/libglib-2.0.so.0
#29 0x00004555570a63c8 in () at /usr/lib64/libglib-2.0.so.0
#30 0x00004555570a8d78 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#31 0x00004555570a9600 in () at /usr/lib64/libglib-2.0.so.0
#32 0x00004555570a9868 in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#33 0x0000455556cefae8 in g_application_run () at /usr/lib64/libgio-2.0.so.0
#34 0x0000000000017930 in main ()
2 момента:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.