FlagShip
|
![]() |
Linux compatibility and available portsIn the past few years, the development of Linux system matured very fast. Due of this, the compatibility of the basic system (kernel) and depending tools (compiler, utilities, libraries) is not fully continuous but was done in more or less incompatible steps.The first major step was the switch from "aout" based system (kernels 0.9 up to 1.2.12) to "elf" based system (starting from kernel 1.2.13 up to the current Linux release 2.2.x). The object code (and libraries) are incompatible for aout and elf systems, but the "aout" applications may be executed by the "elf" based system when required (kernel settings). Note: the "aout" is a Linux naming convention of the (older) system and for the used object format. It has nothing in common with the executable named "a.out" created by default by all Unix systems (also by the "elf" based Linux), when no other name is specified. Also the "elf" based Linux is developed further, so the system releases are not fully compatible to each other. Although the statically linked executables are usually cross compatible for all Linux "elf" versions, the dynamically linked are not, caused by significant differences in the libc.so (and other) libraries. Note: the libc.so dynamic library (located in the /usr/lib or /lib directory) is the main system Unix library, comparable e.g. to .DLLs of Win32-API on MS-Windows. Fortunately, to be able to detect the library version, the /usr/lib/libc.so is usually a symbolic link to /lib/libc.so.<release>. The new Linux Glibc based systems introduced /lib/libc.so.6 instead of libc.so, which is similarly a symbolic link to /lib/libc-<release>.so . In doubt, you may simply invoke "ls -l /lib/libc*" to determine your system base and "uname -a" to see the kernel release. Consequently, to ensure the full Linux compatibility, there are four different FlagShip ports available for Intel platform based Linux (here listed from newest to oldest):
Please choose the FlagShip port carefully according to your used Linux system. In doubt, check the availability and links of /lib/libc.so.6 ("ls -l /lib/libc*") and the used cc version ("cc -v") first, then order or download the corresponding FlagShip port. Note: the kernel release does usually not say anything about the used Linux, since you may re-compile nearly any kernel on nearly any Linux base. The only reliable criterion is the "Linux base" (named aout, Libc, Glibc, Glibc-2.1), i.e. the release of the libc.so* library. Warning: using a FlagShip port incompatible to your Linux system or with different cc may cause unpredictable behaviour, unresolved externals or even core dump or segmentation, since these Linux versions, compilers and libs are not fully compatible to each other. However the produced executables will most probably run well without problems also on other Linux sub-releases, especially if linked statically (the compilation is controlled by the FSconfig file located in the local or /etc directory). Requirements: Depending on the used Linux system and FlagShip port, you will need GNU C (gcc) or egcs compiler (including the accompanying libs) installed to be able to develop with FlagShip. Check with "cc -v".
Note: the C compiler is not required for the user of your application, which only needs the by FlagShip produced executable. See also section SYS.1.2 of the FlagShip manual for further details how to customize your application. The required disk space on the /usr file system is approx. 25 MBytes for the FlagShip installation. Check the available space with "df /usr". Although not strictly required, it is suggested also to install the ncurses/terminfo package. Licenses: There are free licenses for test/evaluation purposes or personal non-commercial use, as well as commercial licenses available. See the price list and license terms for additional details. When you already own FlagShip license and want to upgrade to another Linux system, contact your dealer or multisoft. |