Library ABI Transformation via Eye-Catcher Injection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy systems like z/VM pose challenges in cross-platform software development due to incompatible application binary interfaces (ABIs) and lack of support for modern debugging tools, making it difficult to transform object files and debug executable code across different operating systems.

Innovation Solution

A computer-implemented method and system that transforms a library from a source operating system to a target operating system by creating a target memory image compliant with the target ABI, enriching it with fixed-length eye-catcher information derived from source symbol names, and writing it to a target object file, allowing for debugging and analysis in legacy systems using modern development environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If object files are compiled on a modern Linux development system, then development productivity and tool compatibility are improved, but the object files become non-compliant with the legacy z/VM deployment ABI

Engineering Contradiction:
Improvedevelopment productivityVSAvoidABI compliance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces an intermediary transformation process that converts object files from modern Linux ABI to legacy z/VM ABI. This intermediary system includes transformation tools that read modern object files, extract symbol information, and generate compatible target object files with proper z/VM formatting, relocation information, and symbol tables, thereby resolving the ABI incompatibility while preserving development efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the target z/VM system is updated to support modern compilers and tools, then tool compatibility is improved, but system stability and legacy reliability are compromised

Engineering Contradiction:
Improvetool compatibilityVSAvoidsystem stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

Instead of modifying the legacy z/VM target system to support modern tools (which would compromise stability), the patent inverts the approach by bringing modern tooling to the source side and implementing a transformation process that adapts the output to legacy formats. This allows modern compilers and debuggers to work with source code while producing compatible object files for the unchanged, stable z/VM system.

Inventive Principle:
Principle #13The other way round (Inversion)

3Ease of operation

If comprehensive symbol information is retained in transformed object files, then debugging capability is improved, but file size and processing overhead increase

Engineering Contradiction:
Improvedebugging capabilityVSAvoidfile size
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent applies local quality by selectively retaining symbol information based on its debugging value. The transformation process identifies and preserves external symbols, function names, and relocation information that are essential for debugging, while optimizing the representation of internal symbols and removing redundant data. This selective approach maintains debugging capability while controlling file size growth.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20240427648A1Eye-catcher injection into library transformation
Publication Date: 2024.12.26 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20240427648A1 patent drawing
  • US20240427648A1 patent drawing
  • US20240427648A1 patent drawing

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 OS comprises a source ABI; the target OS comprises a target application ABI; the target ABI is different from the source application binary interface, wherein the library is implemented by a source object file; the source object file is compliant with the source application binary interface and comprising at least a source memory image, source symbol information, and source relocation information, where the source relocation information is free of relative relocation information. The method comprises also creating a target memory image compliant with the target application binary interface and derived from the source memory image, enriching the target memory image with a fixed-length eye-catcher information, and writing the target memory image to a target object file.