Library ABI Transformation With Function Name Resolution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods fail to provide a solution for transforming a library from a source operating system to a target operating system, particularly for legacy systems like z/VM, which lacks contemporary C compiler support and has variable function name lengths, making debugging and tracing difficult due to incompatible application binary interfaces.
Innovation Solution
A computer-implemented method and system that create a target memory image compliant with the target operating system's ABI by enriching it with address information pointing to variable length source symbol names, ensuring the transformed library is compatible and supports traditional debugging tools.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If software is developed on a modern operating system with contemporary compilers, then development productivity and tool support are improved, but the resulting object files are incompatible with legacy operating systems due to different ABIs
Solution Approach 1:
The patent introduces an intermediary transformation system that converts object files from a source ABI to a target ABI. This mediator processes the compiled object code, translating symbols, adjusting relocation information, and adapting the binary format to be compatible with legacy operating systems like z/OS, thereby resolving the incompatibility between modern development tools and legacy deployment environments.
Solution Approach 2:
The transformation system changes critical parameters of the object file including ABI version, symbol naming conventions, relocation encoding formats, and memory layout parameters. By modifying these parameters to match the target legacy ABI specifications, the patent enables compatibility between modern compiled code and legacy operating systems without requiring source code changes.
2Adaptability or versatility
If the target legacy operating system is updated to support modern compilers and debugging tools, then tool compatibility is improved, but the established infrastructure and system stability are compromised
Solution Approach 1:
The patent segments the compatibility solution into two independent parts: the legacy operating system remains unchanged and stable, while a separate transformation layer handles all modernization requirements. This segmentation allows the legacy core to maintain its proven stability while the transformation system provides adaptability to modern tools and compilers.
3Ease of operation
If variable length function names are used in the target object file for debugging purposes, then debugging capability is improved, but the object file size and processing complexity increase
Solution Approach 1:
The patent resolves the conflict between variable-length debugging symbols and fixed-format legacy constraints by adding another dimension: a separate symbol table or annotation layer that stores full-function names without affecting the core fixed-format object structure. This allows debugging tools to access variable-length names while the legacy system processes only the fixed-format essential data.
Data Source
AI summary
A computer-implemented method for transforming a library from a source operating system to a target operating system is disclosed. Thereby, the source operating system comprises an ABI, the target operating system comprising a target ABI, the target ABI being different from the source ABI, the library being implemented by a source object file that is compliant with the source application binary interface and comprising a source memory image, source symbol and source relocation information. The method comprises also creating a target memory image, that is compliant with the target application binary interface, wherein the target memory is derived from the source memory image, enriching the target memory image with an address information pointing to a variable length information, and writing the target memory image to the target object file to implement the transformed library by the target object file.


