Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
118 user(s) are online (70 user(s) are browsing Forums)

Members: 0
Guests: 118

more...

Headlines

 
  Register To Post  

« 1 ... 4 5 6 (7) 8 9 10 ... 20 »
Re: Qt 6 progress
Not too shy to talk
Not too shy to talk


See User information
@alfkil

If my and AOrganizer's math is right, it's 10AM Saturday
12/4 US Eastern time. I'd be glad to join. Dunno how
I can help, expect to be a user. ;D

Cool! ..in any case.

Thanks,

PJS

Go to top
Re: Qt 6 progress
Just popping in
Just popping in


See User information
I'd like to be present (4 PM local tima - Italy).

Memento audere semper!
Go to top
Re: Qt 6 progress
Just popping in
Just popping in


See User information
+1

Go to top
Re: Qt 6 progress
Just can't stay away
Just can't stay away


See User information
Yep, I'll be glad too to watch/see such stream!!!!

Go to top
Re: Qt 6 progress
Not too shy to talk
Not too shy to talk


See User information
@alfkil

+1 :)

Sinan - AmigaOS4 Beta-Tester
- AmigaOne X5000
- AmigaOne A1222
- Sam460ex
Go to top
Re: Qt 6 progress
Just can't stay away
Just can't stay away


See User information
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
Go to top
Re: Qt 6 progress
Home away from home
Home away from home


See User information
@alfkil
You probably mean that one instead: https://www.youtube.com/watch?v=fOpTrd6gNz0 ?:)

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Qt 6 progress
Just can't stay away
Just can't stay away


See User information
@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 Func1typename Func2>
    static 
inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *senderFunc1 signal,
                                     const 
typename QtPrivate::FunctionPointer<Func2>::Object *receiverFunc2 slot,
                                     
Qt::ConnectionType type Qt::AutoConnection)
    {
        
typedef QtPrivate::FunctionPointer<Func1SignalType;
        
typedef QtPrivate::FunctionPointer<Func2SlotType;

(... 
bla bla ...)

        return 
connectImpl(senderreinterpret_cast<void **>(&signal),
                           
receiverreinterpret_cast<void **>(&slot),
                           new 
QtPrivate::QSlotObject<Func2typename QtPrivate::List_Left<typename SignalType::ArgumentsSlotType::ArgumentCount>::Value,
                                           
typename SignalType::ReturnType>(slot),
                            
typetypes, &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
Go to top
Re: Qt 6 progress
Just can't stay away
Just can't stay away


See User information
Found this :

Article

It 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??

Go to top
Re: Qt 6 progress
Just popping in
Just popping in


See User information
@alfkil

I wish I could help with this one but it's outside the scope of my abilities.

Go to top
Re: Qt 6 progress
Just popping in
Just popping in


See User information
I don't know much about this shared objects in AOS4, but shouldn't they show up in exe as "undefined". In Linux

objdump -T `which kate` | grep -i staticmeta | grep -i lineedit

shows:

0000000000000000 DO *UND* 0000000000000000 Qt_5 _ZN9QLineEdit16staticMetaObjectE
0000000000000000 DO *UND* 0000000000000000 _ZN9KLineEdit16staticMetaObjectE

Maybe check with some other AOS4 programs which use shared objects, to see how the shared symbols in the exe appear there.

Go to top
Re: Qt 6 progress
Just can't stay away
Just can't stay away


See User information
@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. ':(

Go to top
Re: Qt 6 progress
Just popping in
Just popping in


See User information
@Georg

I don't think so... since linux and amigaos4 uses ELF as binary format they are compatible with one another, so linux can easily parse the amigaos4 exec.

Go to top
Re: Qt 6 progress
Just can't stay away
Just can't stay away


See User information
@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.

Go to top
Re: Qt 6 progress
Home away from home
Home away from home


See User information
@alfkil

I don't know enough about C++ but if I were dynamic linking a C program and had the issue you describe I would think that some structure had been declared 'static' in my program that should have been 'extern' .


Go to top
Re: Qt 6 progress
Home away from home
Home away from home


See User information
@alfkil

Quote:

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.


It's essentially saying that this symbol should be put in .bss with this much space. You would find lines like that interleaved with other code in the assembly output.

Using a really bad and probably not quite accurate ARexx analogy

address FOO

changes the address for all commands

address FOO command

only for that line.


Go to top
Re: Qt 6 progress
Just popping in
Just popping in


See User information
@alfkil

that's not possible since it is defined in the ELF format documents (You can't define your own that easily), I would suggest getting this or similar documents

https://refspecs.linuxfoundation.org/

and look at elf.pdf (v. 1.2), elfspec_ppc.pdf (PPC Specifc and contains some DWARF information specific for the PPC), there are additional docs there (gabi41) that are interesting but not relevant (IMHO).

Go to top
Re: Qt 6 progress
Just can't stay away
Just can't stay away


See User information
@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.

Go to top
Re: Qt 6 progress
Home away from home
Home away from home


See User information
@alfkil
Will be youtube chat enabled today?:) So far seems disabled

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Qt 6 progress
Just can't stay away
Just can't stay away


See User information
@kas1e

I don't know how to turn it on. I am in YouTube Studio, and the options for chat are shaded. :(

Go to top

  Register To Post
« 1 ... 4 5 6 (7) 8 9 10 ... 20 »

 




Currently Active Users Viewing This Thread: 1 ( 0 members and 1 Anonymous Users )




Powered by XOOPS 2.0 © 2001-2023 The XOOPS Project