NeXT Computers

NeXT Computer, Inc. => NEXTSTEP / OPENSTEP Software => Topic started by: ardi on June 14, 2014, 09:31:54 am

Title: Binary compatibility across NS 3.x and OS 4.x ?
Post by: ardi on June 14, 2014, 09:31:54 am
Some important point I didn't find at the faqs is binary compatibility across different OS versions.

For example, will a NS 3.1 executable run in NS 3.3?

Will a NS 3.3 executable run in OS 4.2?

(I mean, provided all of them run on the same architecture, or at least they're mach multiarch binaries with the proper targets included).

Didn't find any info about these points anywhere.
Title: Binary compatibility across NS 3.x and OS 4.x ?
Post by: t-rexky on June 14, 2014, 11:35:29 am
A generic answer: 3.1 to 3.3 is generally a 'yes' while 3.3 to 4.2 is generally a 'no'.

There was a fundamental change in the way libraries work between NEXTSTEP and OPENSTEP: in NS they are very much like SCO and the old Unix shlibs while in OS they are very much like OS X dylibs.  You can run NS binaries on OS if you place the required NS shlibs into the expected path location on the OS machine.

There is a much closer source code compatibility though.
Title: Binary compatibility across NS 3.x and OS 4.x ?
Post by: ardi on June 14, 2014, 12:46:56 pm
Ok, thanks!
Title: Binary compatibility across NS 3.x and OS 4.x ?
Post by: kb7sqi on June 14, 2014, 03:15:51 pm
Quote from: "t-rexky"A generic answer: 3.1 to 3.3 is generally a 'yes' while 3.3 to 4.2 is generally a 'no'.

There was a fundamental change in the way libraries work between NEXTSTEP and OPENSTEP: in NS they are very much like SCO and the old Unix shlibs while in OS they are very much like OS X dylibs.  You can run NS binaries on OS if you place the required NS shlibs into the expected path location on the OS machine.

There is a much closer source code compatibility though.


Actually, most of the time OS 4.2 will run a NS 3.x binary just fine & can link to the libs.  It's mostly backwards compatible.  But you can't take OS 4.2 binaries & run them on NS3.3.  Most of the software I compile is on NS 3.3 quad-fat using the stock compiler, that way it'll run on pretty much anything.  If you compile something on OS 4.2 & link to the libs you created on NS3.3, it do it fine, but might throw out some minor warnings which can be ignored.  

A big warning though, if you installed t-rexky's awesome cctools update,   you're going to loose the ability to use libraries compiled w/ those cctools on a stock system.  The binaries/exacutables work fine, not the libs.  Since there's a difference in how ar links the libraries, the stock ar completely chokes on those libraries.  T-rexky's cctools open the way to porting more/newer software, but @ a price. There needs to be a discussion on what's best way to have the best of both worlds. :-)  Take care

Steve, kb7sqi
Title: Binary compatibility across NS 3.x and OS 4.x ?
Post by: ardi on June 16, 2014, 08:52:04 am
Ok, thanks a lot for this clarification!