OpenQNX :: The QNX Community Portal

Jul 06, 2008 - 12:39 AM
Google
  Web openqnx.com   
     Create an account Home · Submit News · QNX Forums · QNX Download · Search   
_
Main Menu
Who's Online
There are 41 unlogged users and 0 registered users online.

You can log-in or register for a user account here.

Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
Michael Tasche
Post subject: Binary compatibility  PostPosted: Oct 08, 2007 - 02:31 PM
Guest





Hi all,

I have just noticed, that my C applications have loosed binary
compatibility to 6.2.1, since I build them under 6.3.0 SP3.
Since SP3 the binaries contain the symbol __cxa_finalize, which is not
part of the 6.2.1 libc.so.
e.g.:
ntoppc-nm hello | grep cxa
w __cxa_finalize

Binaries, build with 6.3.0 SP3, cannot be used under 6.2.1. You get
"unknown symbol: __cxa_finalize"

Binaries, build with 6.3.0 SP2, do not contain the above symbol and run
without problems under 6.2.1.

Was this intended?
I thought, if we loose binary compatibility, there would be a version
increment of e.g. libc.so.2 to libc.so.3.

Up to now I delivered only one binary, for customers using QNX
6.1.x...6.3.x.

Perhaps someone can clarify, how many binaries I have to deliver, to
support QNX 6.x.x.

Kind Regards
Michael
 
   
Reply with quote Back to top
Igor Kovalenko
Post subject: Re: Binary compatibility  PostPosted: Oct 09, 2007 - 07:51 AM
Guest





They've probably just found out about it from your post.

"Michael Tasche" <michael.tasche@esd-electronics.com> wrote in message
news:8jrpt4-u9u.ln1@comm.esd...
Quote:
Hi all,

I have just noticed, that my C applications have loosed binary
compatibility to 6.2.1, since I build them under 6.3.0 SP3.
Since SP3 the binaries contain the symbol __cxa_finalize, which is not
part of the 6.2.1 libc.so.
e.g.:
ntoppc-nm hello | grep cxa
w __cxa_finalize

Binaries, build with 6.3.0 SP3, cannot be used under 6.2.1. You get
"unknown symbol: __cxa_finalize"

Binaries, build with 6.3.0 SP2, do not contain the above symbol and run
without problems under 6.2.1.

Was this intended?
I thought, if we loose binary compatibility, there would be a version
increment of e.g. libc.so.2 to libc.so.3.

Up to now I delivered only one binary, for customers using QNX
6.1.x...6.3.x.

Perhaps someone can clarify, how many binaries I have to deliver, to
support QNX 6.x.x.

Kind Regards
Michael
 
   
Reply with quote Back to top
Mario Charest
Post subject: Re: Binary compatibility  PostPosted: Oct 09, 2007 - 03:51 PM
Guest





"Michael Tasche" <michael.tasche@esd-electronics.com> wrote in message
news:8jrpt4-u9u.ln1@comm.esd...
Quote:
Hi all,

I have just noticed, that my C applications have loosed binary
compatibility to 6.2.1, since I build them under 6.3.0 SP3.
Since SP3 the binaries contain the symbol __cxa_finalize, which is not
part of the 6.2.1 libc.so.
e.g.:

I'm not sure but I beleive __cxa stuff is related to C++. Are you using
C++ code ( directly or indirectlry ), if so there is a new cpp library with
6.3.0 SP?
 
   
Reply with quote Back to top
Michael Tasche
Post subject: Re: Binary compatibility  PostPosted: Oct 09, 2007 - 05:58 PM
Guest





Mario Charest schrieb:
Quote:
"Michael Tasche" <michael.tasche@esd-electronics.com> wrote in message
news:8jrpt4-u9u.ln1@comm.esd...
Hi all,

I have just noticed, that my C applications have loosed binary
compatibility to 6.2.1, since I build them under 6.3.0 SP3.
Since SP3 the binaries contain the symbol __cxa_finalize, which is not
part of the 6.2.1 libc.so.
e.g.:

I'm not sure but I beleive __cxa stuff is related to C++. Are you using
C++ code ( directly or indirectlry ), if so there is a new cpp library with
6.3.0 SP?

No c++ code. The call executes the atexit handlers and seems to be
called from the c startup (crtbegin.o) since SP3.
 
   
Reply with quote Back to top
David Gibbs
Post subject: Re: Binary compatibility  PostPosted: Oct 09, 2007 - 08:55 PM
Guest





Michael Tasche <michael.tasche@esd-electronics.com> wrote:
Quote:
Hi all,

I have just noticed, that my C applications have loosed binary
compatibility to 6.2.1, since I build them under 6.3.0 SP3.

We do not generally promise (nor expect) that binaries built with a
later version of our dev tools will run on an earlier version of our OS.

-David
--
David Gibbs
QNX Training Services
dagibbs@qnx.com
 
   
Reply with quote Back to top
Frank Liu
Post subject: Re: Binary compatibility  PostPosted: Oct 09, 2007 - 09:08 PM
Guest





Michael Tasche <michael.tasche@esd-electronics.com> wrote:
Quote:
Hi all,

I have just noticed, that my C applications have loosed binary
compatibility to 6.2.1, since I build them under 6.3.0 SP3.

Binary compatibility usually means if it was built on an older
OS, it can still run on the newer OS. Not the other way around.

If you want the greatest compatibility, you should probably build
it on the oldest OS Smile
 
   
Reply with quote Back to top
Michael Tasche
Post subject: Re: Binary compatibility  PostPosted: Oct 11, 2007 - 09:46 AM
Guest





David Gibbs schrieb:
Quote:
Michael Tasche <michael.tasche@esd-electronics.com> wrote:
Hi all,

I have just noticed, that my C applications have loosed binary
compatibility to 6.2.1, since I build them under 6.3.0 SP3.

We do not generally promise (nor expect) that binaries built with a
later version of our dev tools will run on an earlier version of our OS.
I understand that, but was there really a need to make this change in a

way, that we loose binary compatibility for every "Hello World"?

Well, I will try, to make my own cxa_xxx functions, which dlsym the the
originals from the 6.3 libc's.
Btw can someone explain the "weak" attribute of the cxa_xx symbols?


ntoppc-nm hello | grep cxa
w __cxa_finalize

Btw can someone explain the "w" attribute of the above symbol ?

-Michael


Quote:

-David
 
   
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Powered by PNphpBB2 © 2003-2007 The PNphpBB Group
Credits
All logos and trademarks in this site are property of their respective owners. The comments are property of their posters.
Powered by OpenQNX: The QNX Community Portal Site
QNX and the QNX logo are registered trademarks of QNX Software Systems.