问题
Couldn't find actual release notes that point out the exact difference between QNX 6.5.1 and 6.6.0. I know that Photon's not supported anymore.
So far, I've got SDP 6.6.0 but it might be that I need my software also to run on 6.5.0. So what is the actual backward compatibility level to 6.5.0? Some state that "6.6 is binary compatible with 6.5" [1] - can anyone support this with official documents?
Since QNX follows the POSIX standard, I suppose that the APIs are the same and should be indeed provide backwards compatibility. So the programs created for 6.6.0 should basically also run on 6.5.0, right?
回答1:
Differences I discovered so far.
- using SDP 6.6.0 (i486-pc-nto-qnx6.6.0-g++) and running software on QNX 6.5.0:
- gcc stack protector has to be disabled:
qcc .. -fno-stack-protector
(see also here) - when using
dlopen()
[1] to link against shared libraries SDP 6.6.0 will uselibcpp.so.5
while QNX 6.5.0 only provideslibcpp.so.4
.
- gcc stack protector has to be disabled:
Additionally: I found a forum thread where Ryan Mansfield (QNX compiler lead maintainer, I think) says:
One problem [one] might hit trying to get 6.6.0 binaries to run on 6.5.0, is that everything is built is with
-fstack-protector
, which relies on support in libc. This wasn't in the 6.5.0 libc but IIRC, 6.5.0SP1 added.
回答2:
What you're asking about is 'forward' compatibility. 6.6.0 is backwards compatible with earlier versions of QNX which means software written on 6.5 or 6.4 will run on 6.6.
If you need sw to run on older systems, it is better to build it on the OS at that version level and still be able to deploy your sw on later versions of the OS.
来源:https://stackoverflow.com/questions/30460288/whats-the-difference-between-qnx-6-5-0sp1-and-6-6-0-backwards-compatibility