Porting applications to Linux Standard Base made easy
Use the Linux Standard Base Development Kit to reduce overall LSB conformance testing time and cost.

by Rajesh Banginwar, systems architect, and Nilesh Jain, Channel Sotware Operation, Intel Corp.

The Linux Standard Base (LSB) specifies the binary interface between an application and a runtime environment. This paper discusses the LSB Development Kit (LDK) consisting of a build environment and associated tools to assist software developers in building/porting their applications to the LSB interface. The developers will be able to use the build environment on their development machines, catching the LSB porting issues early in the development cycle and reducing overall LSB conformance testing time and cost. The associated tools include the application and package checkers to test for LSB conformance of application binaries and RPM packages.

The paper starts with the discussion of advantages the build environment provides by showing how it simplifies application development/porting for LSB conformance. With the availability of this additional build environment from LSB working group, the application developers will find the task of porting applications to LSB much easier. We use the standard Linux/UNIX chroot utility to create a controlled environment to keep check on the API usage by the application during the build to ensure LSB conformance.

After discussing the build environment implementation details, the paper briefly talks about the associated tools for validating binaries and RPM packages for LSB conformance. We conclude with couple of case studies that demonstrate usage of the build environment as well as the associated tools described in the paper.

Linux Standard Base overview
The Linux Standard Base (LSB) [1] specifies the binary interface between an application and a runtime environment. The LSB Specification consists of a generic portion gLSB, and an architecture-specific portion, archLSB. As names suggest, gLSBs contain everything that is common across all architectures, and archLSBs contain the things that are specific to each processor architecture, such as the machine instruction set and C library symbol versions.

As much as possible, the LSB builds on existing standards, including the Single UNIX Specification (SUS), which has evolved from POSIX, the System V Interface Definition (SVID), Itanium® C++ ABI, and the System V Application Binary Interface (ABI). LSB adds the formal listing of what interfaces are available in which library as well as the data structures and constants associated with them.


components of LSB 3.0

Figure 1: LSB Components—Components of Linux Standard Base (LSB) 3.0 (click image to enlarge)

Figure 1 shows the components of LSB 3.0 including the set of libraries covered in the specification. For applications to be LSB compliant, they are allowed to import only the specified symbols from these libraries. If application needs additional libraries, they either need to be statically linked or bundled as part of the application.

If you're interested in this topic, these articles may be helpful:

Linux + mainframe +integration: a formula for success?
by Mark Lillycrop, CEO, Arcati Ltd. If the lack of integration and ...
Using Intel C++ Compiler 8.0 with the Eclipse Integrated Development Environment on Linux systems
Intel Corp. The Eclipse Project is an open-source software-developm...
Intel® C++ Compiler for Linux
Gain optimal performance from your Linux* applications running on the ...

Related Jobs:

Sr. R&D Engineer I #5098 - India - Hyderabad - Synopsys, Inc.
IN40-Hyderabad - R&D Engineering --------------------------------...
Applications Developer 2 #IRC281116 - CA - Redwood Shores - Oracle
Objective: Oracle Purchasing is part of the Industry Leading Advanced...
Software Development Engineer in Test #149341 - WA - Redmond - Microsoft Corporation
Wires? We don’t need no stinking wires! The Windows Device Experience ...
Applications Developer 2 #IRC281114 - CA - Redwood Shores - Oracle
Objective: Oracle Purchasing is part of the Industry Leading Advanced...
Applications Developer 2 #IRC282915 - CA - Redwood Shores - Oracle
Product Lifecycle Management is one of the fastest growing areas in en...
Software Development Snr Manager #IRC279137 - CA - Redwood Shores - Oracle
Responsible for managing the team of talanted developers and deliverin...
Applications Developer 3 #IRC288863 - MA - Cambridge - Oracle
Oracle is committed to growing our Retail Business Unit to a position...
Group Program Manager #149992 - WA - Redmond - Microsoft Corporation
Have you had a friend or family member who has been frustrated in deal...
Applications Developer 3 #IRC281156 - MN - Minneapolis - Oracle
We are looking for a Java developer for our J2EE-based enterprise soft...
Software Developer 4 #IRC283088 - CA - Pleasanton - Oracle
PeopleTools is the runtime and design time tools for development and r...