FlagShip
Tech Info  

 

CentOS 5 to 7

tested with   version :   Centos 5.5 x86 and x64   Centos 7 x64   check: CD or DVD label
  kernel :   2.6.18   3.10.0   check: uname -a
  gcc : 4.1.2   4.8.3   check: cc -v
  glibc : 2.5   2.17   check: /lib/libc.so.6
  X11 : Xorg 7.1.1   Xorg 1.15.0   check: Xorg -version

CentOS home page: http://www.centos.org

Linux Installation Hints:

  • Packages: in addition to default suggestions and your choices,
    • select Applications → Add/Remove Software and install "Development Libraries " and "Development Tools "
    • for static linking, install also "X Software Development" package
    • for running executables in Terminal i/o mode using "newfswin" script, you will need installed csh/tcsh package.
     
    • For 64-bit CentOS distribution, standard 32bit packages are installed automatically by above, so no additonal settings are required
    • See also this 64bit info for further requirements. Since 32bit libs are available in /usr/lib (and 64bit libs in /usr/lib/64), you don't need to change the -L path in FS7config

Installation of Visual FlagShip 7.1.x:

  • Install the rpm based package fs7linux-71*-kernel26-rpm.tgz, see the first-steps booklet for installation details.
  • The main FlagShip directory is /usr/local/FlagShip7
  • CentOS supply all required static libraries in packages suggested above, so you may compile both dynamically (default) and statically (using the -stat compiler switch). If you get get some warnings at the end of FlagShip installation, or linker errors at static linking, post-install the required packages noted above.
  • With Centos 7/64bit, you need to install some 32bit libraries, invoke "sudo yum install glibc.i686 glibc-devel.i686 glibc-devel libSM.i686 libXrender.i686 libXft.i686 fontconfig.i686 libICE.i686 libXext.i686 libjpeg-turbo.i686 libgcc.i686 libstdc++.i686" and add symbolic links "su ; cd /lib ; ln -s libICE.so.6 libICE.so ; ln -s libXft.so.2 libXft.so ; ln -s libfontconfig.so.1 libfontconfig.so ; ln -s libXext.so.6 libXext.so ; ln -s libstdc++.so.6 libstdc++.so ; ln -s libjpeg.so.62 libjpeg.so ; exit"
  • For GUI mode, there are very few default fonts in Centos, best to install at least msttcore-fonts.

Using FlagShip:

  • Please read the First-Steps booklet for step-by-step tutorial.
  • If in X/GUI environment (Gnome, KDE etc): open console/terminal window.
  • Compile your sources as described in fsman section FSC, e.g. "FlagShip myapp*.prg", a short help is available via "FlagShip –h". Note the case sensitive names in Unix/Linux.
  • Watch for displayed compiler and linker errors, and fix if any.
  • If everything is ok, execute (see fsman section FSC):
    ./a.out            # in GUI mode
    newfswin ./a.out   # for Textual i/o mode in X11 environment
  • The on-line manual is available by entering "fsman &" in KDE/Gnome console for GUI mode, or "newfswin fsman -io=t" for textual mode. Printable manual in .pdf format is available for a free download.
  • Step-by-step instruction for converting available applications to GUI is given in fsman section LNG.9.6
  • Examples are available in /usr/local/FlagShip7/examples and .../tools directory. Best to copy them to your working directory.
  • On problems or questions, please check the on-line manual and FAQ first. If your problem persist, contact FlagShip support - we grant free tech support not only for the licensed, but also for the Test/Eval version.

Known Issues :

  • If the PC-8 semi-graphic characters are displayed in textual mode as Ä's (A-umlaut) etc, you eiter may either
    - start the application via newfswin, newfscons or newfsterm (see above and Release Notes in fsman) which automatically sets the proper environment, or
    - disable Unicode i.e. set the environment variable "LANG=en_EN", invoke "/bin/unicode_off", and start the application via newfswin script.
    See also and/or test with /usr/local/FlagShip7/examples/boxcommand.prg

  • If the last character in the manual pages seems to be missing in GUI mode, select Courier[adobe] via Menu→Options→Font→Input/Output or assign other font via command-line parameter, see fsman -h for furtehr details.

  • When compiling large sources, you may get compiler error "** Warning: C compiler not invoked" but without any displayed syntax error. This is caused by insufficient stack size (stack overflow in yacc/lex parser) for large source files or many continuation statements (check the displayed source code line). You may increase the stack by e.g. "uname -s 30000". If you get here a message "ulimit: stack size: cannot modify limit..." you need to set (as su/root/sudo) "uname -Hs 30000", then re-open the user terminal, and set "uname -s 30000" anew. You may add this also in your ~/.bashrc script for an automatic set at login.


Notes for Linux with enabled SELinux
  • if you get "error while loading shared libraries: /usr/lib/libFlagShip6.so: cannot restore segment prot after reloc: Permission denied" at the time of invoking dynamically linked executable, you need to modify the SELinux policy to permit loading of shared libraries. This is a RedHat & Fedora feature. Go into System -> Administration -> Security level, select the SELinux tab, expand the Compatibility category, and tick the box next to Allow the use of shared libraries with text relocation. Alternatively, invoke in terminal: su -c "chcon -t textrel_shlib_t /usr/local/FlagShip7/lib/libFlagShip7*.so"

Additional Info:

Since FlagShip translates the Xbase code to C code as an intermediate step and requires object compatible libs during the linking stage, C compilers, utilities and libraries must be chosen with great care, otherwise upredictable errors may occur.

The C compiler (and the optional static libs) is required only in the developing phase, it is not required for the user of your application, which only needs the by FlagShip produced executable (i.e. your own application executables, see also fsman section SYS.1.2 for distribution hints).


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: 20-Oct-2015