I've been working on many aspect of porting
NOMAD,
DZero,
CLE0
software among different platforms. Recently I worked on a port of 800+ packages
from Solaris to Linux for CLEO collaboration.
Three platform has been officially supported:
- Tru64/OSF1
- SunOS 2.6 and Solaris 2.8, 9, 10
- Linux, RedHat 9, RedHat Enterprise 3, 4, Scientific Linux
There were several categories
solved during this transition:
- compiler/preprocessor/linker bugs
- STL-related bugs
- OS-specific bugs
- user-related bugs.
The table below summirizes a platform specific compiler options applied
during this transition:
Tool/OS |
Tru64 |
Solaris |
Linux |
compiler |
cxx/f77 |
CC/f77 |
g++/g77 |
version |
Compaq v6.2/Digital X5.2 |
Sun WorkShop 6, v5.3 |
v3.2.2 |
debugger |
ladebug |
dbx |
gdb |
C++ flags |
cxx -O -Wall -nopt -nocompress |
CC -instances=global -KPIC -mt -O |
g++ -I- -O -fPIC |
Fortran flags |
f77 -O -u static |
f77 -O -u -KPIC -mt |
f77 -I- -O -fPIC -MM -fno-automatic -fno-second-underscore -finit-local-zero |
A common set of Makefile rules has been applied to every package. A particular
example can be found
here (please note that all rights are reserved by CLEO collaboration and Cornell University).
We successfully deployed over 800 packages between Tru64, Solaris and Linux platforms.