Sun Studio 12 Update 1: Fortran ユーザーズガイド

3.4.176 -ztext

再配置を伴わない純粋なライブラリだけを生成します。

-ztext の主な目的は、生成されたライブラリが純粋なテキストであるかどうか、すべての命令が位置独立コードであるかどうかを確認することです。したがって、通常は -G および -pic とともに使用します。

-ztext を指定すると、text セグメントに不完全な再配置がある場合、ld はライブラリを構築しません。データセグメントに不完全な再配置がある場合は、ld はライブラリを構築しますが、そのデータセグメントは書き込み可能となります。

-ztext を指定しない場合、ld は再配置の状況とは無関係にライブラリを構築します。

このオプションは主に、オブジェクトファイルが -pic を付けて作成されたかどうかが不明な場合に、ソースファイルとオブジェクトファイルの両方からライブラリを作成するときに使用します。

例: ソースファイルとオブジェクトファイルの両方からライブラリを作成します。


demo% f95 -G -pic -ztext -o MyLib -hMyLib a.f b.f x.o y.o

また、コードが位置独立コードであるかどうかを確認するためにも、このオプションを使用します。-pic を付けずにコンパイルすると、純粋なテキストであるかどうかを確認できます。

例: -pic を付けない場合は、純粋なテキストであるかどうかを確認します。


demo% f95 -G -ztext -o MyLib -hMyLib a.f b.f x.o y.o

-ztext オプションと -xprofile=collect オプションを一緒に使用しないでください。-ztext が読み取り専用記憶領域での位置依存シンボルの再配置を禁止する一方で、-xprofile=collect は書き込み可能記憶領域での静的に初期化された位置依存シンボルの再配置を生成します。

-ztext を付けてコンパイルしても ld によってライブラリが構築されなかった場合は、-ztext を付けずにコンパイルし直すと ld によってライブラリが構築されます。-ztext を指定した場合に構築が失敗するということは、ライブラリ中に共有不可能な成分があることを示します。ただし、この場合でもその他の成分は共有できるはずですが、パフォーマンスが最高でない可能性もあります。