FlagShip
Tech Info  

 

Using Visual FlagShip 6.x and 7.x with 64bit Linux

FlagShip is ported on 32bit Linux, since it ensures so compatibility to all current x86 Linux versions. Also, 32bit code is commonly faster than 64bit code (the only significant 64bit advantage is, that the kernel can address more than 3GB RAM). You can use FlagShip 6.x also for development on 64bit x86 based Linux system (AMD64, Xeon, Core2, Centrino etc) :

1. install 32bit libraries from your 64bit Linux distribution

For details, please refer to your system manual/documentation or e.g. to
http://www.amd.com/us-en/assets/content_type/DownloadableAssets/dwamd_AMD64_Porting_FAQ.pdf
or http://www-uxsup.csx.cam.ac.uk/pub/doc/suse/suse9.3/suselinux-adminguide_en/cha.64bit.html

which says:

To develop binaries for the other architecture on a biarch architecture, the respective libraries for the second architecture must additionally be installed. These packages are called (in SuSE) rpmname-32bit . For development, you also need the respective headers and libraries from the rpmname-devel packages and the development libraries for the second architecture from rpmname-devel-32bit.

To install 32bit compatibility packages in 64-bit SuSE distribution, use yast and select "32-Bit Runtime Environment" pattern.
In 64-bit Ubuntu or Debian distribution, follow the instruction in http://ubuntuforums.org/showthread.php?t=474790 or in http://alioth.debian.org/docman/view.php/30192/21/debian-amd64-howto.html#id271960. For Ubuntu, follow the instruction in info, for RedHat and Fedora in info and for SuSE in info

2. add the switch -m32 to CCNAME in FS6config file (VFS6 only)

VFS6 only: once the 32-bit libraries are installed on your 64-bit system, add the switch -m32 to cc (gcc) in line#13 of /usr/local/FlagShip6/etc/FS6config file (VFS6) to read e.g.
CCNAME : cc -pipe -m32

3. check the library path

The 32bit system libs are usually installed in the common /usr/lib and 64bit libs in /usr/lib64. This is the case e.g. in SuSE, RedHat and Fedora 64bit distribution, where no additional compiler switches are required. In some other 64bit Linux distributions like Ubuntu, Debian etc, the 32bit system libs are located in the /usr/lib32 and 64bit libs in /usr/lib. In such a case, you need to add the switch -L/usr/lib32 (or whichever 32bit directory is used) in front of MACRO1 in line#17 of the FS6config file. Note that the order of lib dirs is significant for linker search (hence 32bit must be in front).

The above steps are required for development stage only. You and your customers will be able to execute the application on 32bit and 64bit Linux systems. All the required run-time 32bit dynamic libs are usually installed automatically also on 64bit systems - if not so, install them according to step 1 above. When your application is linked statically, no additional libraries are required.

Use the BACK button in the header of your browser to return to previous page,
or go to FlagShip home page or to general Linux info.

Last updated: 21-Jan-2010