QUOTE(pgas @ Mar 8 2006, 10:52 PM)
This is qtopia 1.7, Sharp ROM is using 1.5.x so apps from the Sharp ROM won't all just run unless compat libs can be created
Actually I don't think the version of qtopia is so much a problem as the fact that pdaxrom uses softfloat, newer libc/ gcc version.
Forgive my ignorance -- what exactly is the problem with soft-float vs hard-float and the glibc/gcc versions?
I'll try to answer my own question here, but I don't know if I'm right.
Googling gave me this: Re: [Familiar] xscale & soft-float vs hard-float
, and the next reply was also interesting.
Soft-float is faster and more flexible, though the price you pay for that is incompatibility with all current binaries and libraries.
Obviously soft float is done in software; what about hard float? The implication is it is done in hardware, but the Z doesn't have a float point co-processor. Is it just that the CPU has a slow system to do the math, but clever software is faster?
Can a system run applications with both soft and hard floats, simultaneously? They would need to use different libraries -- but we've already got a problem with different versions of libc. Could we use old-libc-hardfloat and new-libc-softfloat? Do the two need to speak to each other, or can they co-exist happily, so long as applications are linked to the correct one?
Now then, differences in gcc -- is the difference just that calling conventions have changed? Is the compiler version not an issue on Windows because the ABI (Application Binary Interface) is the same?
Two other, related questions: how the heck is a compatability library built? (I presume it maps calls to an old library with older calling conventions and parameters onto a newer library with new calling conventions and parameters. [I'd really like to know what it does when the number or types of parameters to a function change ... that must be a huge pain])
Lastly, and I recognize that emulation would be painfully slow, if done in the normal way, but, could a program be written that could scan an executable and replace older calls with newer ones [I think emulator writers like to call this "dynamic recompilation"]? And, if this could be done in theory, what kind of effort would it require in practice?
Well, that's a lot of questions. If anyone even partially knows the answers, or can point me to them, I'd love to be less ignorant.