Who's Online |
47 user(s) are online ( 40 user(s) are browsing Forums)
Members: 1
Guests: 46
MartinW,
more...
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/12/11 18:38
#201
|
Just can't stay away
|
@Georg
Thanks for your thorough code review. I will do an update and brush over as soon as that seems timely. For the time being, I have just done the code as quickly as possible for things to function minimally. Of course I need to brush over things, when everything is up and running. Thanks! :)
@thread
Has there been a discussion on rpaths?? It seems to not do anything to the linking process, when stuff is added here, and it would be quite useful to have this feature for qt programs.
@trgswe
I have checked the specification, and you are absolutely right, that it doesn't specify anything along the lines of what I am suggesting. This doesn't mean, though, that there are not some kinds of interpretive discrepancies present in the actual implementations (the build/runtime linkers respectively). I will probably have to check the compiler sources themselves (dreadful...).
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/12/9 13:07
#202
|
Just can't stay away
|
@thread
Thanks to all who supported! And sorry for the sound issue!
I will spend the next weeks fixing up an SDK for release. Once I succeed, I will test everything thouroughly and then do a fresh stream. Sounds issue has been fixed.
The setting for age restriction has been changed, but sadly the on-stream chat has been lost. :(
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/12/4 12:17
#203
|
Just can't stay away
|
@emeck Thanks! It works up, but I screwed up the link, so the new stream is here: Qt 6 Stream on YouTube
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/12/4 11:37
#204
|
Just can't stay away
|
@kas1e
I don't know how to turn it on. I am in YouTube Studio, and the options for chat are shaded. :(
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/12/1 20:28
#205
|
Just can't stay away
|
@trgswe
Thanks, that's really useful info! I really want to check it out, because I think there is some problem in this, that we need to fix. Building and running the shared version of Qt should be elementary and not elicit problems like this. By the way, I have a workaround, that consist in reverting to the old (Qt 4 and 5) notation for QObject::connect(), and this shows, that my theory is explanatorily correct in at least some respect.
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/12/1 16:45
#206
|
Just can't stay away
|
@trgswe
That's not what I meant. What I am saying is, that linux and gcc might have updated their symbol interpreter. Maybe the AmigaOS runtime linker (the code responsible for linking exe and .so at runtime) is behind in some respect.
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/12/1 16:04
#207
|
Just can't stay away
|
@George
You are exactly right. And that's why my theory is, that there has been some development in the interpretation of the elf binaries in later gcc versions. The AmigaOS runtime linker doesn't know about these and interprets them spuriously. The strange thing is, that it doesn't complain, that there is multiple instances of the same symbol. This hints at some peculiarity in the case. I think, that it is doubtful, that we are going to find a solution without having someone look at the runtime from the inside. ':(
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/11/27 14:22
#208
|
Just can't stay away
|
Found this : ArticleIt states the following : Quote:
.bss The .bss directive changes the current section to .bss.
.bss symbol, integer Define symbol in the .bss section and add integer bytes to the value of the location counter for .bss. When issued with arguments, the .bss directive does not change the current section to .bss. Integer must be positive.
It is quite hard to understand the "does not change the current section to .bss" part. Why would it not do that? Perhaps this the clue to the 'solution' to the above - that the AmigaOS linker doesn't interpret these correctly by instead give priority to the empty version of the structure. Ideas??
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/11/26 12:29
#209
|
Just can't stay away
|
@kas1e Yes :). @thread Guys, I need help again. There is some obscure link problem along the lines of the discussion link i posted above. I have a hard time pinning down, what needs to be done, but basically it seems, that the template functions of parent classes in libQt6Gui.so and libQt6Widgtes.so are not linked to the meta objects in the classes of the app. For instance, in textedit.cpp we have
textEdit = new QTextEdit(this);
connect(textEdit, &QTextEdit::currentCharFormatChanged,
this, &TextEdit::currentCharFormatChanged);
This is done using QObject::connect(), which is defined like this :
template <typename Func1, typename Func2>
static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
const typename QtPrivate::FunctionPointer<Func2>::Object *receiver, Func2 slot,
Qt::ConnectionType type = Qt::AutoConnection)
{
typedef QtPrivate::FunctionPointer<Func1> SignalType;
typedef QtPrivate::FunctionPointer<Func2> SlotType;
(... bla bla ...)
return connectImpl(sender, reinterpret_cast<void **>(&signal),
receiver, reinterpret_cast<void **>(&slot),
new QtPrivate::QSlotObject<Func2, typename QtPrivate::List_Left<typename SignalType::Arguments, SlotType::ArgumentCount>::Value,
typename SignalType::ReturnType>(slot),
type, types, &SignalType::Object::staticMetaObject);
}
Notice, that the staticMetaObject is located in the moc code of QTextEdit, which is part of libQt6Widgets.so. When linking statically ( - this is the hypothesis - ) the reference goes through, and the signal will be connected. When linking dynamically, this for some reason breaks. The strange thing ( and now it gets really hairy ) is, that when you look at the symbol table of the textedit executable, you have this : Quote: 01068f3c g O .bss 0000001c _ZN9QTextEdit16staticMetaObjectE@@Qt_6
And the symbol table of libQt6Widgets.so : Quote:
107221a4 g O .data.rel.ro 0000001c _ZN9QTextEdit16staticMetaObjectE
This part, I don't understand. Please help me out! :) EDIT : To abreviate - .bss is an empty, non-initialized line of data-bytes, whereas .data is a line of data-bytes initialized by set values in the data-segment of the object. This is really strange, because what appears to be, is that an empty structure has been allocated for the staticMetaObject in the executable code, whereas it should have been linked to a set structure in the .data section of the libQt6Widgets.so shared object. Could this be confirmed by anyone familiar with the concepts? Is this a strange compile bug, or is there some logical explanation/solution??
Edited by alfkil on 2021/11/26 13:41:30 Edited by alfkil on 2021/11/26 14:17:51 Edited by alfkil on 2021/11/26 14:21:19 Edited by alfkil on 2021/11/26 18:04:38 Edited by alfkil on 2021/11/28 2:13:10
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/11/25 21:40
#210
|
Just can't stay away
|
Thanks all! :) I have scheduled the stream like this : Qt 6 Live Stream on YouTube
Edited by alfkil on 2021/11/26 12:17:31
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/11/24 20:18
#211
|
Just can't stay away
|
@all Cool! So good to see so generous backup. I promise, I will do a good stream :). I will, as Walkero suggests, use YouTube to stream instead of Twitch. I think this solution is better for my linux setup. The service has not been set up for broadcast yet (there is a 24 hour initiation pause). As soon as it is ready to broadcast, I will send suitable notification.
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/11/23 12:39
#212
|
Just can't stay away
|
@ thread
Guys - I want to do a streaming event. I haven't set up anything technical yet (apart from testing the physical equipment), but I have decided on a date and time :
Saturday December 4th at 16:00 (4 PM - GMT +1)
Let me know, if that suits you. If you are interested in taking part, of course. It could be cool to gather at least a few people, and with the time frame in order, I would try and have a finalized product, so for enabling people's own experiments.
Edited by alfkil on 2021/11/23 19:06:44
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/11/23 10:57
#213
|
Just can't stay away
|
@kas1e I am pretty sure, that at least IExec and IDOS are included in the startup code. So it would mean trouble, if I defined them by hand. I am doing a shared build now to see, if it solves some of the problems with linking the web engine. I am so sure, that it will, that I am ready to take on problems with the amiga build. I am guessing, that they will mostly be related to paths. EDIT : To answer my own question - I found this line in the CMake complex : Quote:
set(CMAKE_REQUIRED_LINK_OPTIONS "-Wl,--no-undefined")
It basically tells the linker to complain about undefined symbols. The symbols mentioned above are all included in the amigaos specific startup code, so the linker needs to disregard those. EDIT : I think we have been here before : rpath-linkIt seems, that the dynamic linker doesn't read the rpath. Can this be confirmed?? EDIT : After manual assign, this is the result : emutls.. which is because of this : libstdc++.so has wrong versionIf I copy libstdc++.so and libgcc.so from adtools (build version 11) it links correctly. But sadly the unix path module (-lunix) seems to have stopped working (same as -lauto, I guess). Is there any good way to re-enable unix paths?? It is quite essential for not having to change entirely the way Qt 6 works... EDIT : So, the problem was not with -lunix after all - as a matter of fact this works quite well. No, instead it was a missing reference in qlibraryinfo.cpp : Quote:
return QString::fromLocal8Bit(QT_CONFIGURE_PREFIX_PATH);
... has to be insterted for __amigaos4__ in that function. Now, signals have a hickup when switching to dynamic linking. This phenomenon is discussed in this thread : invisible dynamic symbols related to missing signals in Qt
Edited by alfkil on 2021/11/23 11:28:00 Edited by alfkil on 2021/11/23 11:28:28 Edited by alfkil on 2021/11/23 15:28:38 Edited by alfkil on 2021/11/23 15:39:37 Edited by alfkil on 2021/11/23 15:42:32 Edited by alfkil on 2021/11/23 15:57:04 Edited by alfkil on 2021/11/24 14:40:37 Edited by alfkil on 2021/11/24 14:41:29 Edited by alfkil on 2021/11/24 18:50:20 Edited by alfkil on 2021/11/24 18:50:52
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/11/22 20:34
#214
|
Just can't stay away
|
@walkero
But -lauto doesn't work with dynamic linking, or??
EDIT : Ah, now I remember... These should be included in the startup code, right?? And because I am linking a library, this is not included by the linker. So what I am looking for is some flag to switch off warnings for undefined symbols...
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/11/22 16:29
#215
|
Just can't stay away
|
Thanks for all the input. I will handle things with care.
Now : I have started building everything again, this time with dynamic linking. I have reached the point, where the linker complains, that it has undefined symbols like IDOS, IExec, INewlib etc.
Is there a generic solution to this, or do I need to set up manual code bits to open these interfaces manually? I am thinking IExec... and INewlib...
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/11/19 16:16
#216
|
Just can't stay away
|
@ferrels & kas1e
Both are correct, and I have noticed the compiler switch. At this point, there are so many things going on, so many switches to keep track of, that even if I make it with an actual executable, it will be magical. And just to make it clear : I have not given up, I am simply giving it a break in fear of overload. There is plenty of time, maybe I will push it to next year, maybe, maybe... ;)
EDIT : And just to comment on the link - I am pretty sure, that the responsible is static vs shared. This should be fixable.
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/11/17 19:25
#217
|
Just can't stay away
|
@virgola Quote:
Well, meanwhile you'll wait to have such an important answer, you could take a break from that monster and try to port a STL 3D model viewer based on QT:
This is interesting. I definetely want to work out some more of the 3D bindings offered by Qt. I am watching this at the moment : QtQuick3DOnly caveat is that Qt really wants to use the EGL layering libraries. It is quite rudimentary what we have in os4 ogles2, and that means doing a lot of stuff by hand, that ends up being quite complicated and work consuming. That, and the fact, that there seems to be bugs preventing workability (see earlier posts regarding ogles2).
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/11/17 17:54
#218
|
Just can't stay away
|
@Skateman Thank you very much! @spotUP Yes. It is quite large, you know... And lot's of potential loose ends. Like big endian not being supported in the renderer and the v8 bytecode generator. But hey, if we just dive in, it might end up in our ball park...
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/11/17 13:43
#219
|
Just can't stay away
|
@pjs Thank you Pj's! It is highly appreciated. At this point, I think it best to take a break from the webengine and do some tricks with the actual Qt codebase instead. I will be aiming for some kind of preliminary release and a stream event within the next few weeks. Stay put!
|
|
|
|
Re: Qt 6 progress
|
Posted on: 2021/11/16 13:34
#220
|
Just can't stay away
|
@thread Guys... I need help. I have built the entire chrome source base necessary for creating libQt6WebEngineCore.a. But there is some problem with the build system. Instead of being 256 MB large, it only comes out 900 kb, so obviously something has been left out. I am looking at the build files and ... it is quite complicated, because it uses a combination of CMake and the google build tool 'gn'. If someone has the time to look at the repos and just give some kind of preliminary evaluation of what could go wrong with such a build. I am hair-raisingly close to being, ehm, tired. It would be so good to at least have a complete build before taking a break. EDIT : This file should be responsible for the coupling between the two build systems : CMakeLists.txtMake sure to notice, that the chromium base is in submodule inside src/3rdparty. EDIT : I think, maybe, that the Ninja is the problem. What do you think ? Quote:
add_gn_command( CMAKE_TARGET WebEngineCore NINJA_TARGETS QtWebEngineCore convert_dict GN_TARGET ${buildGn} GN_ARGS "${gnArgArg}" BUILDDIR ${buildDir}/${config}/${arch} MODULE core )
Edited by alfkil on 2021/11/16 14:45:52 Edited by alfkil on 2021/11/16 15:16:34
|
|
|
|