Browse Prior Art Database

Seamless Execution of 32-64 bit Application Binaries

IP.com Disclosure Number: IPCOM000187629D
Original Publication Date: 2009-Sep-14
Included in the Prior Art Database: 2009-Sep-14
Document File: 1 page(s) / 60K

Publishing Venue

IBM

Abstract

Several application have 32 bit and 64 bit binaries. For example say lsstat and lsstat64. These binaries depend on bitness of kernel ( for example 64 bit application binary should be spawned on 64 bit kernel, and 32 bit application binary should be spawned on 32 bit kernel). The application binaries is invoked normally with 32 bit version ( say lsstat) and lsstat binary is loaded in the memory. Loader does the dependency resolution, symbol resolution, symbol relocation etc.... kernel then allocates all the resources and creates the necessary structures. When process starts running, main code check for bitness of kernel and execs the 64 bit version of the process. if(__KERNEL_64) { if(execv(lsstat64, argv)==-1) { exit(1); } } The XCOFF header shall be able to differentiate the binaries bitness dependency and automatically load the right binary. Thus when user tries to run the application binary say "ora", the kernel shall read the XCOFF and know that "oracle" depends on bitness of kernel and load the "ora64" instead. This gives a much faster way to load the right binary and application code need not be changed to explicitly check for the kernel version and exec the 64 bit binary from 32 bit binaries.

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

Page 1 of 1

Seamless Execution of 32-64 bit Application Binaries

The XCOFF header can have a new flag "32

_64

32 bit and detects that binary is dependent on kernel bitness. In that case kernel shall avoid loading the 32 bit executable and instead load the 64 bit version of executable.

The auxiliary header can have the extension of 64 bit ( say 64, or any user defined extension for the 64 bit version,

just to know what binary to load). Cases where 64 bit binary have a total

different name and path, auxiliary header can have the path detail of 64 bit executable.

The compiler or loader edit command can edit the 32 bit binary and enable the support for 64 bit binary in 32 bit xcoff.

If the binary is 32 bit and kernel is 32 bit then 32 binary will be loaded.

_BIT

_APP". When kernel reads the XCOFF of

1