Re: Best way of compiling applications to run on older linux distros

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Tom Quarendon wrote:
Right.  Like most systems, it's backwards compatible but not forwards.
Forwards compatibility is in general impossible since APIs are added
from time to time.

But is works just fine on Windows. You compile specifying the os level you're targetting and all later APIs are #ifdeffed out so you can't use them. The resulting executable then works quite happily on the older version of the OS. All of the OS entry points have fixed IDs in the run time library, so there's no API compatibility, or ABI compatibility issues, only semantic ones, and generally they're pretty careful about that.

The issue we're having on linux seems to be to do with the dynamic loading hash table incompatbility, and the level of libstdc++ shared object.

Can't you just link statically? Then it's just a matter of being syscall compatible. Here's a tip, go grab yourself VMware or Sun's VM, then make a slew of VMs and install the distros you want in those. That way you don't need an actual box for each OS and you can build it natively. If what you are doing is professional and not just some hobby project you should just do it properly from the get-go.

Best is Sun's VM is free and just as quick as VMware (both rely on kernel modules to help run as much as possible natively on the cpu).

Tom

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux