backward compatibility between 2.5 and 2.4

backward compatibility between 2.5 and 2.4

Post by Dave McCow » Fri, 17 May 1996 04:00:00



Hello,

I am looking for information regarding backward compatibility between
Solaris versions 2.5 and 2.4. I created an executable on 2.5, but I get the
following error when running this executable on 2.4:

ld.so.1: ./a.out: fatal: relocation error: symbol not found: _memset:
referenced in ./a.out
Killed

An entry for _memset does not exist in the symbol table for /lib/libc.so on
2.4. The executable is not linked statically because the socket libraries are
incompatible. What do I need to do to ensure backward binary compatibility?
Answerbook focuses on SunOS 4.x versus SunOS 5.x, where else can I look?

Thanks,

David McCowan
Raptor Systems                  phone:  (617)487-7700 x161

Waltham MA 02154
--
David McCowan
Raptor Systems                  phone:  (617)487-7700 x161

Waltham MA 02154

 
 
 

backward compatibility between 2.5 and 2.4

Post by Bryan O'Sulliv » Fri, 17 May 1996 04:00:00



Quote:McCowan) writes:

d> I am looking for information regarding backward compatibility between
d> Solaris versions 2.5 and 2.4. I created an executable on 2.5, but I
d> get the following error when running this executable on 2.4:

d> ld.so.1: ./a.out: fatal: relocation error: symbol not found: _memset:
d> referenced in ./a.out
d> Killed

d> An entry for _memset does not exist in the symbol table for
d> /lib/libc.so on 2.4. The executable is not linked statically
d> because the socket libraries are incompatible. What do I need to do
d> to ensure backward binary compatibility?

If you want your programs to run under Solaris 2.4 and above, you must
compile them under 2.4.  You may find that 70% of the programs you
build under 2.5 will work under 2.4, but you cannot rely on this being
the case.

        <b

--
Let us pray:
What a Great System.
Please Do Not Crash.


 
 
 

backward compatibility between 2.5 and 2.4

Post by Bart Smaalde » Sat, 18 May 1996 04:00:00


In order to build an application for use on 2.n, build on release
<= 2.n.  Building on release 2.n+1 may cause (in this case did cause)
you to have a dependancy on a new feature in 2.n+1, which won't work
on the older release.

In general, we support forward compatibility for dynamically linked
applications, but not backward compatibility.

We're planning on introducing some new technology to help make it
clear what releases a particular application will run on as part
of 2.6.  

Hope this helps -

- Bart

---
Bart Smaalders                  Solaris Clustering      SunSoft

http://playground.sun.com/~barts                   2550 Garcia Ave
                                                        Mt View, CA 94043-1100

 
 
 

backward compatibility between 2.5 and 2.4

Post by Alan L. Stang » Sat, 18 May 1996 04:00:00



> We're planning on introducing some new technology to help make it
> clear what releases a particular application will run on as part
> of 2.6.

Which brings up the question:  what is planned to be added to 2.6 and when
can we expect to see it?  I ask this because on June 5 last year Jeff
Bonwick had posted the following article giving an overview of 2.5.
Is a similar list available for 2.6?

Thanks.

Here's a brief summary of the high points:

New Features:

    Hardware support:
        UltraSPARC platform support
        PCI support

    Networking:
        NFS Version 3
        NFS over TCP
        Dynamic IP addressing for PPP
        Multithreaded automounter
        4.4BSD-compatible telnet
        Version 8 sendmail
        Faster, cleaner, *much* more robust network file locking (lockd/statd)

    Security:
        ACLs (Access Control Lists)
        NIS+ Password Aging

    Standards:
        POSIX threads (P1003.1c)
        Commands and utilities for SPEC-1170 (XCU4.2)
        CDE (Common Desktop Environment)
        Kodak Color Management System
        X/Open Federated Naming

    Performance analysis and debugging tools:
        Integrated kernel/user-level tracing tools (see prex(1))
        Process analysis tools (see proc(1))
        Thread library debugging (libthread_db)
        Scoping/versioning linker

    Administration:
        All-new admintool
        Cache-only Clients
        cachefs statistics (see cachefsstat(1M))

Features that were formerly unbundled or patched that are now standard:

        PCMCIA support
        SPARCstorage Array support
        Kernel Asynchronous I/O
        In-kernel telnetd/rlogind to support hundreds of users
                (smaller, faster, and better in 2.5)

Performance Improvements:

    Pipes: new pipe implementation 5 times faster than 2.4.

    Standard I/O: fread(3S) and fwrite(3S) 4 times faster than 2.4.

    Timesharing: dramatically improved due to low-level VM rewrite,
        in-kernel telnet/rlogin support, per-processor kernel memory
        allocation, and breakup of global locks in ufs, tmpfs and VM.

    Name service cache: speeds up name service lookups -- whether from
        NIS, NIS+, DNS, or just local files like /etc/passwd -- by two
        orders of magnitude (even more for large files or slow networks).

    Kernel memory comsumption: reduced by roughly a megabyte on
        most platforms (sun4m, sun4d, and i86pc).

    SPARC hardware multiply and divide support: most recent SPARC CPUs
        provide this, but existing code doesn't take advantage of it.
        In 2.5 calls to .mul and .div (etc) are transparently turned
        into multiply and divide instructions if the CPU supports it.

    NFS: roughly 10% faster.

    Window system: 10-20% faster due to fast pipes and reduced
        kernel memory consumption.

Compatibility: (bcopy is back!)

    Source code:
        Popular library routines from SunOS 4.x are now first-class
        interfaces in libc:
            memory:
                bcmp, bcopy, bzero, index, rindex
            random numbers:
                random, srandom, initstate, setstate
            process control:
                killpg, getpriority, setpriority, ualarm, usleep,
                wait3, wait4, getrusage, getwd, setregid, setreuid
            regular expresssions:
                re_comp, re_exec
            standard i/o:
                setbuffer, setlinebuf
            miscellaneous:
                ftime, getdtablesize, gethostod, gethostname,
                sethostname, getpagesize, reboot

    Shell scripts:
        Popular commands from SunOS 4.x are now in /usr/bin:
            arch, hostid, hostname, mach, pagesize

    Makefiles:
        /usr/ccs/bin/ranlib provided as a simple "exit 0" command.

    SunOS 4.x applications:
        Dynamically linked apps have been supported since 2.0;
        support for statically linked apps was added in 2.3;
        support for mixed dynamic/static apps is new in 2.5.

Ship dates:

        Preliminary Solaris 2.5 Beta CDs were distributed at the
        developer's conference in May 1995.  Official Beta CDs
        (the same thing plus a few last-minute bug fixes) are
        in the works now.

        The exact date for Solaris 2.5 FCS (the final product)
        has not been set.  It should be sometime this Fall.

Disclaimer:

        This is not an official Sun document.  This is my current
        best estimate of the feature content and performance of
        Solaris 2.5 based on the features we have integrated
        thus far and the benchmarks we have run most recently.
        Any or all of this is subject to change without notice.

Jeff Bonwick
Solaris Performance

--

 
 
 

backward compatibility between 2.5 and 2.4

Post by Kevin Clar » Sat, 18 May 1996 04:00:00




>Which brings up the question:  what is planned to be added to 2.6 and when
>can we expect to see it?  I ask this because on June 5 last year Jeff
>Bonwick had posted the following article giving an overview of 2.5.
>Is a similar list available for 2.6?

We get spanked for doing that. Complain long and loud that our customers want
to have intelligent discourse with Sun engineers. Maybe they'll take off the
shackles.

I can say there are some neat things in the Solaris under development. I'd get
in trouble for saying it is Solaris 2.6 though because what we decide to call
it is a marketing decision. I'd bet on something like HP-UX or AIX. :^)

I can say it is running (right now)

SunOS on297 5.6 on297-gate:05/13/96 sun4u sparc SUNW,Ultra-Enterprise

And it is running really well.

--
===============================================================
| Kevin Clarke - Solaris Perf   |       "To err is human,     |

===============================================================

 
 
 

backward compatibility between 2.5 and 2.4

Post by Bryan O'Sulliv » Sat, 18 May 1996 04:00:00



a> For example, we're gearing up to build a system with >20 TBytes of
a> disk and > 1 PByte of near line store in a HSM.  It's for analyzing
a> large amounts of nuclear physics data.  For something of this
a> scope, any head's up we can get on features and future directions
a> is very beneficial to us.  The biggest thing is 64 bits in the
a> OS....since we need >32 bits to address everything.

Sun has announced that it will make 64-bit kernel asynchronous I/O
available in the near future with the next release of Solaris.  You
should see support for large filesystems, files and datasets early
next year.  For more details, see the following URLs:

http://www.Sun.COM/sunworldonline/swol-03-1996/swol-03-sunsoft.html
http://www.Sun.COM/sunsoft/events/presentations/SPG3.Goyal/SPG3.Goyal...

        <b

--
Let us pray:
What a Great System.
Please Do Not Crash.

 
 
 

backward compatibility between 2.5 and 2.4

Post by Alan L. Stang » Sat, 18 May 1996 04:00:00





> >Which brings up the question:  what is planned to be added to 2.6 and when
> >can we expect to see it?  I ask this because on June 5 last year Jeff
> >Bonwick had posted the following article giving an overview of 2.5.
> >Is a similar list available for 2.6?

> We get spanked for doing that. Complain long and loud that our customers want
> to have intelligent discourse with Sun engineers. Maybe they'll take off the
> shackles.

This is too bad actually.  I think we have a lot of things that we can
point at as "problems" or "challenges".  For example, we're gearing up to
build a system with >20 TBytes of disk and > 1 PByte of near line store
in a HSM.  It's for analyzing large amounts of nuclear physics data.
For something of this scope, any head's up we can get on features and
future directions is very beneficial to us.  The biggest thing is 64 bits in
the OS....since we need >32 bits to address everything.

Actually...what's the status of a 2.6 alpha/beta release?  It was about
a year ago that we got our first 2.5 pre-release....

Even better, I've been using a SunATM 2.0 card for a few weeks now in my
desktop system.  Are there any pointers or reference docs for squeezing more
bang out of it?

Quote:> I can say there are some neat things in the Solaris under development. I'd get
> in trouble for saying it is Solaris 2.6 though because what we decide to call
> it is a marketing decision. I'd bet on something like HP-UX or AIX. :^)

> I can say it is running (right now)

> SunOS on297 5.6 on297-gate:05/13/96 sun4u sparc SUNW,Ultra-Enterprise

> And it is running really well.

I regulary search SunSolve Online for certain keywords like 5.6 and 2.6 and
"performance" and ....it's been very informative to say the least.

--

 
 
 

backward compatibility between 2.5 and 2.4

Post by R. Stewart Ell » Sun, 19 May 1996 04:00:00


 >In order to build an application for use on 2.n, build on release
 ><= 2.n.  Building on release 2.n+1 may cause (in this case did cause)
 >you to have a dependancy on a new feature in 2.n+1, which won't work
 >on the older release.

Is it possible to set up a 2.5 system so that it does not use the new BSD
compat stuff and will use only the headers from 2.4?  Or will I always have
to keep a 2.4 machine to generate compatible binaries?  Or has someone
developed a set of macros that disable all the new bsd src compat features
in 2.5?

 >In general, we support forward compatibility for dynamically linked
 >applications, but not backward compatibility.

 >We're planning on introducing some new technology to help make it
 >clear what releases a particular application will run on as part
 >of 2.6.  

 >Hope this helps -

 >- Bart

 >---
 >Bart Smaalders                     Solaris Clustering      SunSoft

 >http://playground.sun.com/~barts                      2550 Garcia Ave
 >                                                   Mt View, CA 94043-1100

--
  R.Stewart(Stew) Ellis, Assoc.Prof., (Off)810-762-9765   ___________________
  Humanities & Social Science,  GMI Eng.& Mgmt.Inst. ()  /   _____  ______
  Flint, MI 48504    Free speech and free software!  /\ /        / /  /  / /

 
 
 

backward compatibility between 2.5 and 2.4

Post by Alan L. Stang » Tue, 21 May 1996 04:00:00



> Sun has announced that it will make 64-bit kernel asynchronous I/O
> available in the near future with the next release of Solaris.  You
> should see support for large filesystems, files and datasets early
> next year.  For more details, see the following URLs:

> http://www.Sun.COM/sunworldonline/swol-03-1996/swol-03-sunsoft.html
> http://www.Sun.COM/sunsoft/events/presentations/SPG3.Goyal/SPG3.Goyal...

Thanks for the links.  I hadn't seen the second one.

A related question involving the transition to 64 bits.  Will the same
transition occur at the same time for the Intel and PowerPC processors?

We're planning to run Solaris on Intel as the Pentium Pro is competitive
on our codes and also much cheaper (The codes are more integer than FP).
But we need to know the Solaris is going to be there in a form "identical"
to that on the Sparc's.  (note that "identical" is a local definition the essentially
says that 'all the stuff we use on the sparc's needs to be on the Intel platform
and powerpc platform as well).

--

 
 
 

backward compatibility between 2.5 and 2.4

Post by Bryan O'Sulliv » Thu, 23 May 1996 04:00:00



Quote:Ellis) writes:

e> Is it possible to set up a 2.5 system so that it does not use the
e> new BSD compat stuff and will use only the headers from 2.4?  Or
e> will I always have to keep a 2.4 machine to generate compatible
e> binaries?  Or has someone developed a set of macros that disable
e> all the new bsd src compat features in 2.5?

No.  The library incompatibilities from 2.5 to 2.4 have, in general,
nothing to do with BSD stuff.  The 2.5 linker is considerably
different to the 2.4 linker (mostly to allow for munging that CDE
uses), and the libraries themselves are different to the 2.4
libraries.  For example, if you look in libc.so on a 2.5 system, you
will see that memcpy is a weak function that resolves to the global
function _memcpy.  In the 2.4 libc, however, memcpy is a global
function.  This means that if you try to compile a program that uses
memcpy under 2.5 and run it under 2.4, you may get bitten by an
unresolved symbol error at some arbitrary point during runtime.

Note, once more, that it is safe to run binaries compiled on 2.4 or
earlier under 2.5, but it is *not* necessarily safe to run binaries
compiled on 2.5 or later under 2.4 or earlier.

        <b
--
Let us pray:
What a Great System.
Please Do Not Crash.

 
 
 

backward compatibility between 2.5 and 2.4

Post by Dave Mille » Fri, 24 May 1996 04:00:00



> ...

>No.  The library incompatibilities from 2.5 to 2.4 have, in general,
>nothing to do with BSD stuff.  The 2.5 linker is considerably
>different to the 2.4 linker (mostly to allow for munging that CDE
>uses)

This implies that there could be some (performance?) problem with running CDE
under 2.4 (as we are here) - is this so?

--
D.M.Miller, Computer Services Group
Dynamics Division, GEC-Marconi Radar & Defence Systems Ltd
The Grove, Warren Lane, Stanmore, Middlesex, HA7 4LY, UK

I'm speaking for myself - not my employer

 
 
 

backward compatibility between 2.5 and 2.4

Post by Bryan O'Sulliv » Thu, 30 May 1996 04:00:00



d> This implies that there could be some (performance?) problem with
d> running CDE under 2.4 (as we are here) - is this so?

No.

        <b

--
Let us pray:
What a Great System.
Please Do Not Crash.

 
 
 

1. GCC and backward compatibility: Solaris 2.6 -> 2.5

Does anyone have experience compiling code with gcc on
one version of Solaris and running the binaries on an
earlier version?

I found that there were backward compatibility problems
between Solaris 2.4 and 2.5:  Binaries compiled with gcc
under 2.5 would sometimes fail under 2.4.  The main culprit
seemed to be shared libraries -- as of Solaris 2.5, Sun
moved some functions from libucb.so to libc.so, and
dynamically linked executables that used these functions
would fail to load.

I'm wondering if there are similar gotchas when taking
a binary compiled under 2.6 (or later) and trying to run
it under 2.5.

Thanks in advance for any insights.

--------------------------------------------------------------------
Warren Jones              | To keep every cog and wheel is the first
Fluke Corporation         | precaution of intelligent tinkering.
Everett, Washington, USA  |                          -- Aldo Leopold

2. MAC 0S 9x and FREEBSD

3. Downward Binary Compatibility from 2.5 to 2.4 and 2.3

4. TIMER in Script??

5. 2.4: Minor build fix for ext3 (2.4 and 2.5)

6. DEBIAN BUGS

7. Is Solaris 2.4 really backward compatible with 4.1.3 apps?

8. MITSUMI QUAD SPEED CD-ROM DRIVER

9. 4.8-R libc stdio backward binary compatibility

10. GLIBC and Backward Compatibility

11. Help: backward compatibility problems with SunOS 5.1

12. C compiler backward compatibility

13. Backward compatibility of linux libraries?