JPH0721015A - リンク処理方式 - Google Patents

リンク処理方式

Info

Publication number
JPH0721015A
JPH0721015A JP15094693A JP15094693A JPH0721015A JP H0721015 A JPH0721015 A JP H0721015A JP 15094693 A JP15094693 A JP 15094693A JP 15094693 A JP15094693 A JP 15094693A JP H0721015 A JPH0721015 A JP H0721015A
Authority
JP
Japan
Prior art keywords
compile
archive file
unit number
compilation
library
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP15094693A
Other languages
English (en)
Inventor
Tomokazu Ota
智教 太田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Solution Innovators Ltd
Original Assignee
NEC Solution Innovators Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Solution Innovators Ltd filed Critical NEC Solution Innovators Ltd
Priority to JP15094693A priority Critical patent/JPH0721015A/ja
Publication of JPH0721015A publication Critical patent/JPH0721015A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 (修正有) 【目的】再コンパイルが行われたコンパイル単位に対し
てのみアーカイブ処理を行なえばよいようにする。 【構成】ライブラリ3は、使用コンパイル番号を示すコ
ンパイル単位番号カウンタ31及び再リンクで解放され
たコンパイル単位番号を管理するコンパイル単位番号フ
リーチェーン32を有する。コンパイラ1は、コンパイ
ルに先立って使用されていないコンパイル単位番号を取
得し、再コンパイルで無効になったコンパイル単位番号
をコンパイル結果に設定する。リンカ2は、アーカイブ
ファイル検出手段21で、以前のリンクで既に作成され
たアーカイブファイルをライブライ3から抽出し、再リ
ンクに必要な全てのコンパイル結果を調べ、無効になっ
たコンパイル単位番号を削除してコンパイル単位番号フ
リーチェーン32にこの番号を追加し、抽出したアーカ
イブファイルからその番号のオブジェクトモジュールを
削除して、新らしいオブジェクトモジュールを追加す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はリンク処理方式、特にコ
ンパイル単位のコンパイル結果が他のコンパイル単位の
コンパイルに影響する言語処理プロセッサでのリンク処
理方式に関する。
【0002】
【従来の技術】あるコンパイル単位のコンパイル結果
が、他のコンパイル単位のコンパイルに影響するような
言語の言語処理プロセッサでは、コンパイル結果の整合
性を保つために、コンパイル結果をソフトウェア支援環
境共通のライブラリに保存し、リンク時に専用リンカが
リンクに必要なコンパイル単位のコンパイラ結果をライ
ブラリから抽出し、ネィティブリンカが入力できるよう
に処理(アーカイブ処理)を行なってアーカイブファイ
ルを作成し、ロードモジュールを作成する方式が多用さ
れている。
【0003】従来、このリンク処理方式では、専用リン
カがリンクに必要な全てのコンパイル単位のコンパイル
結果をライブラリから抽出し、ネーティブリンカが入力
できるようにコンパイル結果に含まれるオブジェクトモ
ジュールにアーカイブ処理を行ない、アーカイブファイ
ルを作成している。
【0004】
【発明が解決しようとする課題】上述した従来のリンク
処理方式では、あるコンパイル単位を修正し再リンクを
行なう場合でも、再コンパイルを行なったコンパイル単
位の区別がないため、リンクに必要な全てのコンパイル
単位のコンパイル結果をライブラリから抽出し、アーカ
イブ処理を行なわなければならず、リンクに時間がかか
るという問題点がある。
【0005】本発明の目的は上述のような再リンク処理
において、リンクに必要な全てのコンパイル単位のコン
パイル結果にアーカイブ処理を行なうことなく、再コン
パイルが行なわれたコンパイル単位のコンパイル結果に
対してのみアーカイブ処理を行なうことにより高速にリ
ンク処理ができるリンク処理方式を提供することにあ
る。
【0006】
【課題を解決するための手段】本発明のリンク処理方式
は、コンパイル結果をソフトウェア支援環境共通のライ
ブラリに保存する言語処理プロセッサのリンク処理方式
において、ライブラリが管理する無効としたまたは新規
とするコンパイル単位番号を、コンパイル単位のコンパ
イルに先立って取得するコンパイラに設けられたコンパ
イル単位番号取得手段と、このコンパイル単位番号取得
手段が取得したコンパイル単位番号をコンパイラがコン
パイルしたオブジェクトモジュールおよびコンパイル単
位間の依存関係情報を含むコンパイル結果に付加してラ
イブラリに格納するコンパイル結果格納手段と、前記コ
ンパイラのコンパイルが再コンパイルであるとき前記コ
ンパイル結果に前に付与されていたコンパイル単位番号
を無効番号チェーンとして追加する無効コンパイル単位
番号設定手段と、以前にリンク処理によりネイティブリ
ンカの入力となるようアーカイブファイルが作成されラ
イブラリに格納されているアーカイブファイルに、今回
リンク処理でメインモジュールとなるコンパイル単位の
コンパイル単位番号をもつアーカイブファイルの有無を
調べるリンカに設けられたアーカイブファイル検出手段
と、このアーカイブファイル検出手段がアーカイブファ
イル有としたときこのアーカイブファイルをライブラリ
から抽出するアーカイブファイル抽出手段と、ライブラ
リ中にあるリンクに必要な全てのコンパイル単位のコン
パイル結果の前記無効チェーンを調べ、無効チェーンの
あるコンパイル結果を取出し、無効番号を削除してライ
ブラリのコンパイル単位番号の管理部に通知するコンパ
イル単位番号解放手段と、このコンパイル単位番号解放
手段によって削除した無効番号に対応するコンパイル単
位のオブジェクトモジュールを前記アーカイブファイル
抽出手段が抽出したアーカイブファイルから削除し新ら
しいオブジェクトモジュールを追加するアーカイブファ
イル削除手段と、このアーカイブファイル削除手段によ
り作られたアーカイブファイルをネィティブリンカによ
りロードモジュールに作成された後に、このアーカイブ
ファイルにメインモジュールのコンパイル単位のコンパ
イル単位番号を付加してライブラリに格納するアーカイ
ブファイル保存手段とを有することにより構成される。
【0007】
【実施例】次に、本発明について図面を参照して説明す
る。
【0008】図1は本発明の一実施例の構成図である。
図1の実施例は、コンパイル結果をソフトウェア支援環
境共通のライブラリに保存する方式の言語処理プロセッ
サにおいて、本発明に必要な部分を示していて、コンパ
イラ1にコンパイル単位番号取得手段11,無効コンパ
イル単位番号設定手段12,およびコンパイル結果格納
手段13を有し、リンカ2にアーカイブファイル検出手
段21,アーカイブファイル削除手段22,コンパイル
単位番号解放手段23,アーカイブファイル保存手段2
4,コンパイル結果抽出手段25,およびアーカイブフ
ァイル抽出手段26を有し、ライブラリ3にコンパイル
単位番号カウンタ31,コンパイル単位番号フリーチェ
ーン32,複数のコンパイル結果33,および複数のア
ーカイブファイル34を有して構成される。
【0009】コンパイル単位番号カウンタ31は初期値
を0とし、コンパイル単位番号取得手段11によって更
新され、コンパイル単位番号として何番まで使用したか
のデータを表わす。
【0010】図2は図1に示すコンパイル単位番号フリ
ーチェーン32の構成図で、初期値を0または空白(n
ull値)とするヘッダと、コンパイル単位番号取得手
段11および無効コンパイル単位番号解放手段23によ
って削除・追加され、再コンパイルによって無効になっ
たコンパイル番号と次の要素へのポインタとを1要素と
するチェーンとからなるリスト構造のデータである。
【0011】図3は図1に示すコンパイル結果33の構
成図で、通常のコンパイルで生成されるオブジェクトモ
ジュール,デバッグ情報,およびコンパイル単位間の依
存関係情報の他に、コンパイル単位番号取得手段11で
取得したコンパイル単位番号と、無効番号チェーンとを
含んでいる。無効番号チェーンはリンクを行なうことな
く再コンパイルを行なった場合に、そのコンパイルによ
って無効になる以前のコンパイル結果に付与されたコン
パイル単位番号からなるリスト構造のデータである。
【0012】以上の構成において、図1の実施例の処理
について説明を進めると、コンパイラ1はコンパイルに
先立って、コンパイル単位番号取得手段11によってコ
ンパイル単位番号を取得する。コンパイル単位番号取得
手段11は、無暗に番号が増えることを避けるために、
先ずコンパイル単位番号フリーチェーン32を参照し
て、ヘッダがnull値でなければ、ヘッダの指す要素
をチェーンから削除し、削除した要素のコンパイル単位
番号を、今回のコンパイルのコンパイル単位番号とし、
ヘッダがnull値であれば、コンパイル単位番号カウ
ンタ31に1加算してその加算結果を今回のコンパイル
のコンパイル単位番号とする。次いでコンパイラ1は通
常のコンパイル処理を行ないコンパイル結果を得る。コ
ンパイル結果格納手段13はこのコンパイル結果にコン
パイル単位番号取得手段11で得たコンパイル単位番号
を付加してライブラリ3にコンパイル結果33として格
納する。なお、無効コンパイル単位番号設定手段12
は、今回のコンパイル単位のコンパイルが再コンパイル
であった場合に、この前に付与されていたコンパイル単
位番号を無効番号チェーンに追加する。
【0013】リンカ2は、ライブラリ3中のコンパイル
結果33のコンパイル単位間の依存関係情報をもとに、
リンクするコンパイル単位のコンパイル結果の整合性を
検査する。即ち、アーアイブファイル検出手段21は、
メインモジュールとなるコンパイル単位のコンパイル単
位番号を持つアーカイブファイル34がライブラリ3中
にないかを調べる。もし、このメインモジュールについ
て既に1度はリンク処理によりアーカイブファイル34
が作られて存在するならば、アーカイブファイル抽出手
段26によってアーカイブファイル34をライブラリ3
から抽出した後に、コンパイル結果抽出手段25により
リンクに必要な全てのコンパイル単位のコンパイル結果
33の無効番号チェーンを調べ、無効番号チェーンを有
するコンパイル結果33をライブラリ3から取出し、コ
ンパイル単位番号解放手段23により無効番号をnul
lにして、この無効番号をコンパイル単位番号フリーチ
ェーン32に追加すると共に、アーカイブファイル削除
手段22によって、チェーンがnullになるまで存在
した無効番号に対応するコンパイル単位について、アー
カイブファイルからその番号のオブジェクトモジュール
を削除し、再コンパイルされた新らしいオブジェクトモ
ジュールをアーカイブファイルに追加する。もし、アー
カイブファイル34がライブラリ3中に存在しないなら
ば、コンパイル結果抽出手段25によりライブラリ3か
らリンクに必要な全てのコンパイル単位についてのコン
パイル結果33を取出し、無効番号チェーンを調べ、無
効番号を有するコンパイル結果33について、コンパイ
ル単位番号解放手段23により無効番号をnullにし
て、この無効番号をコンパイル単位番号フリーチェーン
32に追加すると共に、オブジェクトモジュールからア
ーカイブファイルを作成する。
【0014】次に、リンカ2はアーカイブファイルをネ
ィティブリンカの入力としてネィティブリンカを起動
し、ロードモジュールを作成する。最後にアーカイブフ
ァイルにメインモジュールのコンパイル単位のコンパイ
ル単位番号をアーカイブファイルの識別子として付加
し、アーカイブファイル保存手段24によりライブラリ
3に格納する。
【0015】
【発明の効果】以上説明したように本発明は、コンパイ
ル結果をソフトウェア支援環境共通のライブラリに保存
する言語プロセッサにおいて、再リンクを行なう場合
に、前回のリンク処理で作成したアーカイブファイルを
保存し、2回目以降のリンク処理では、全てのコンパイ
ル単位のアーカイブ処理を行なわず、前回のリンクより
後に再コンパイルされ、無効のコンパイル単位番号を無
効番号チェーンにもつコンパイル単位のみアーカイブ処
理を行なって、前回のアーカイブファイルを修正するの
で、冗長なオーカイブ処理を行なわずに済み、高速なリ
ンク処理を行なうことができるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例の構成図である。
【図2】図1の実施例のおけるコンパイル単位番号フリ
ーチェーンの構成図である。
【図3】図1の実施例のおけるコンパイル結果の構成図
である。
【符号の説明】
1 コンパイラ 2 リンカ 3 ライブラリ 11 コンパイル単位番号取得手段 12 無効コンパイル単位番号設定手段 13 コンパイル結果格納手段 21 アーカイブファイル検出手段 22 アーカイブファイル削除手段 23 コンパイル単位番号解放手段 24 アーカイブファイル保存手段 25 コンパイル結果抽出手段 26 アーカイブファイル抽出手段 31 コンパイル単位番号カウンタ 32 コンパイル単位番号フリーチェーン 33 コンパイル結果 34 アーカイブファイル

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 コンパイル結果をソフトウェア支援環境
    共通のライブラリに保存する言語処理プロセッサのリン
    ク処理方式において、ライブラリが管理する無効とした
    または新規とするコンパイル単位番号を、コンパイル単
    位のコンパイルに先立って取得するコンパイラに設けら
    れたコンパイル単位番号取得手段と、このコンパイル単
    位番号取得手段が取得したコンパイル単位番号をコンパ
    イラがコンパイルしたオブジェクトモジュールおよびコ
    ンパイル単位間の依存関係情報を含むコンパイル結果に
    付加してライブラリに格納するコンパイル結果格納手段
    と、前記コンパイラのコンパイルが再コンパイルである
    とき前記コンパイル結果に前に付与されていたコンパイ
    ル単位番号を無効番号チェーンとして追加する無効コン
    パイル単位番号設定手段と、以前にリンク処理によりネ
    イティブリンカの入力となるようアーカイブファイルが
    作成されライブラリに格納されているアーカイブファイ
    ルに、今回リンク処理でメインモジュールとなるコンパ
    イル単位のコンパイル単位番号をもつアーカイブファイ
    ルの有無を調べるリンカに設けられたアーカイブファイ
    ル検出手段と、このアーカイブファイル検出手段がアー
    カイブファイル有としたときこのアーカイブファイルを
    ライブラリから抽出するアーカイブファイル抽出手段
    と、ライブラリ中にあるリンクに必要な全てのコンパイ
    ル単位のコンパイル結果の前記無効チェーンを調べ、無
    効チェーンのあるコンパイル結果を取出し、無効番号を
    削除してライブラリのコンパイル単位番号の管理部に通
    知するコンパイル単位番号解放手段と、このコンパイル
    単位番号解放手段によって削除した無効番号に対応する
    コンパイル単位のオブジェクトモジュールを前記アーカ
    イブファイル抽出手段が抽出したアーカイブファイルか
    ら削除し新らしいオブジェクトモジュールを追加するア
    ーカイブファイル削除手段と、このアーカイブファイル
    削除手段により作られたアーカイブファイルをネィティ
    ブリンカによりロードモジュールに作成された後に、こ
    のアーカイブファイルにメインモジュールのコンパイル
    単位のコンパイル単位番号を付加してライブラリに格納
    するアーカイブファイル保存手段とを有することを特徴
    とするリンク処理方式。
JP15094693A 1993-06-23 1993-06-23 リンク処理方式 Withdrawn JPH0721015A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15094693A JPH0721015A (ja) 1993-06-23 1993-06-23 リンク処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15094693A JPH0721015A (ja) 1993-06-23 1993-06-23 リンク処理方式

Publications (1)

Publication Number Publication Date
JPH0721015A true JPH0721015A (ja) 1995-01-24

Family

ID=15507878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15094693A Withdrawn JPH0721015A (ja) 1993-06-23 1993-06-23 リンク処理方式

Country Status (1)

Country Link
JP (1) JPH0721015A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016192152A (ja) * 2015-03-31 2016-11-10 株式会社デンソー 並列化コンパイル方法、並列化コンパイラ、及び車載装置
JP2016192154A (ja) * 2015-03-31 2016-11-10 株式会社デンソー 並列化コンパイル方法、並列化コンパイラ、及び車載装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016192152A (ja) * 2015-03-31 2016-11-10 株式会社デンソー 並列化コンパイル方法、並列化コンパイラ、及び車載装置
JP2016192154A (ja) * 2015-03-31 2016-11-10 株式会社デンソー 並列化コンパイル方法、並列化コンパイラ、及び車載装置

Similar Documents

Publication Publication Date Title
US6457170B1 (en) Software system build method and apparatus that supports multiple users in a software development environment
US6298353B1 (en) Checking serialization compatibility between versions of java classes
JP3270216B2 (ja) ファイル名検出方式
US5202982A (en) Method and apparatus for the naming of database component files to avoid duplication of files
US7577946B2 (en) Program product, method, and system for testing consistency of machine code files and source files
US7757225B2 (en) Linktime recognition of alternative implementations of programmed functionality
US6438743B1 (en) Method and apparatus for object cache registration and maintenance in a networked software development environment
US5761510A (en) Method for error identification in a program interface
US7222333B1 (en) Techniques for generating software application build scripts based on tags in comments
EP2771756B1 (en) Pre-parsed headers for compilation
US5095423A (en) Locking mechanism for the prevention of race conditions
JP5208635B2 (ja) プログラミングを支援するための情報処理装置、情報処理システム、プログラミング支援方法およびプログラム
KR19980080502A (ko) 템플릿 오브젝트 파일들을 최적화하기 위한 시스템과 방법
US9311077B2 (en) Identification of code changes using language syntax and changeset data
CN111737140A (zh) 接口自动化测试方法、装置、设备及计算机可读存储介质
CN113515303B (zh) 一种项目转型方法、装置和设备
US6591413B1 (en) Method and apparatus in a data processing system for faster notification of errors in a software build
US20030097378A1 (en) Method and system for removing text-based viruses
CN111352631B (zh) 一种接口兼容性检测方法及装置
US20040003383A1 (en) Stripping of unnecessary information from source code
US9396239B2 (en) Compiling method, storage medium and compiling apparatus
US20040117780A1 (en) Method and system for detecting and resolving unnecessary source module dependencies
JPH0721015A (ja) リンク処理方式
US20030220939A1 (en) Information processing system, information processing method, and information processing program
US20210240596A1 (en) Source code file retrieval

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000905