Browse Prior Art Database

Encapsulating a Unix build environment to be able to create binaries that run on previous versions of the Operating System

IP.com Disclosure Number: IPCOM000015235D
Original Publication Date: 2002-Jan-29
Included in the Prior Art Database: 2003-Jun-20
Document File: 2 page(s) / 46K

Publishing Venue

IBM

Abstract

Disclosed here is a method and process for encapsulating a Unix build environment so that binaries for older versions of the vendors implementation can be created using the current version of the vendors implementation. The problem that is being solved is one that software products that get distributed are generally constructed (or built) based on a tuple of compiler, C run-time library, and CPU. For Unix Operating Systems, the C run-time library is an integral part of the OS, and changing the version of the OS changes the C run-time library. On traditional PC Operating Systems (the Windows family of OSes, OS/2, DOS) the C run-time library is supplied with the compiler. As an example it is possible to use a Windows NT 4.0 OS and build a binary that runs without any problems on the Windows NT 3.51 OS. The same is definitely NOT true for a Unix Operating System.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 43% of the total text.

Page 1 of 2

  Encapsulating a Unix build environment to be able to create binaries that run on previous versions of the Operating System

    Disclosed here is a method and process for encapsulating a Unix build environment so that binaries for older versions of the vendors implementation can be created using the current version of the vendors implementation. The problem that is being solved is one that software products that get distributed are generally constructed (or built) based on a tuple of compiler, C run-time library, and CPU. For Unix Operating Systems, the C run-time library is an integral part of the OS, and changing the version of the OS changes the C run-time library. On traditional PC Operating Systems (the Windows family of OSes, OS/2, DOS) the C run-time library is supplied with the compiler. As an example it is possible to use a Windows NT 4.0 OS and build a binary that runs without any problems on the Windows NT 3.51 OS. The same is definitely NOT true for a Unix Operating System.

    This invention allows for an arbitrary version of a vendors Unix to create binaries that will run on previous releases of that vendors Unix. This is done by encapsulating all the required system libraries, header files, and build tools so that when the build process is invoked, this encapsulated environment is utilized rather than the appropriate system libraries, header files, and build tools that are native to the current release of Unix. This would allow users to build binaries for a Solaris 2.3 OS using a Solaris 2.6 machine as the build platform.

    Software developers have always counted on a vendor to provide binary compatibility between releases of vendor Operating Systems. Because of this, and to keep the most customers happy, software development organizations generally adopt a lowest common development platform. Binaries built on these systems will run on newer releases of the same Operating System.

    Some distributed products make use of the Generic Build Environment (GBE) to hide all the low level detail on how a product is actually built from the developer. The developer does not have to worry about the appropriate compiler invocation, what build tools are available on what OS, or worry about writing platform specific build instructions. The GBE provides a uniform environment on all build platforms - whether they be Unix, OS/2 , Netware, or Windows - all the same commands/scripts/Makefiles work on all.

    This invention, the Encapsulated Build Environment (EBE) extends the GBE (but is not limited to only being used within the GBE) so that the developer need not be aware of the changes necessary to generate a binary for a previous version of the Operating System. The benefits to software development are three fold:

         1) Developers continue to use the GBE as they did before, and need not worry about how to generate code for an Operating System that is no longer available as a physical build machine.

         2) Because this invention can handle Operating System...