Specifications

Red Hat Enterprise Linux to Oracle Solaris Porting Guide
11
Hence, for a large application, understanding which files within the source distribution are actually
getting used to build the application for the given deployment scenario can help limit the scope of the
porting activity.
Classification of Code
Before starting the actual porting process, it is good to segregate the code based on the amount of
migration effort required for each unit. This will allow you to estimate the overall effort required for
the migration. For example, if 80 percent of the code is portable (for example, Java) and if 10 percent
is scripts, only the remaining 10 percent of the code might have bigger porting challenges and need
more attention.
The easiest way to arrive at this estimate is to segregate code based on the programming languages
used for coding, and then evaluate each one of them separately for porting complexities. For example,
as a thumb rule, code written in Java, Perl scripts, and shell scripts might present fewer challenges
compared to native modules written in the C, C++, or Visual C programming languages. Needless to
say, you might come across projects with exceptions. The porting of scripts is one such area which
needs careful planning and assessment. The following section discusses in more detail the potential
issues during script migration.
Scripts and Other Portable Components
The Perl utility is popular as a scripting tool because of its power and flexibility as well as its availability
on most platforms. However, the shell is still the scripting tool of choice for most developers, primarily
because of its availability across a variety of platforms and environments.
When assessing shell scripts, check each command for the following conditions:
The command is unavailable on Oracle Solaris 11.
The command is in a different location and the location is not in the user’s path.
Multiple implementations of the command are available on the system (legacy, GNU, XPG4, XPG6,
and so on) and PATH is picking up the right ones.
The command uses an option that does not exist on Oracle Solaris 11.
The command uses an option that has different functionality on Oracle Solaris 11.
The output of the command is different and is redirected.
Build Environment Dependencies
It is very important to choose the right set of tools and build environment in order to reduce the
migration effort to the barest minimum. It should be noted that almost all the open source build tools
(GNU/GPL) and utilities popularly used on RHEL are also available on Oracle Solaris 11. It is also
important to note that Oracle Solaris Studio 12.x and bundled utilities provide a very powerful build
environment that can help you get the most out of your applications on Oracle Solaris and Oracle