DEC OSF/1

DEC OSF/1 では、正しいオプションを指定して ld コマンドを実行する ことで、単純オブジェクトファイルと共有オブジェクトファイルを作 ることができます。 これを実行するコマンドは次のとおりです。

# simple DEC OSF/1 example
% cc -c foo.c
% ld -shared -expect_unresolved '*' -o foo.so foo.o
結果としてできる共有オブジェクトファイルは Postgresにロードできるように なります。 関数生成コマンドに対してオブジェクトファイル名を指定する時には、 単純オブジェクトファイルではなく、共有オブジェクトファイル (拡 張子が .so ) を指定しなくてはなりません。

Tip: 事実上、 Postgres は それが共有オブジェクトファイルである限り、どんな名前をつけても関与しません。 あなたが共有オブジェクトファイルの拡張子として .o のほうを好むならば、 正しいファイル名が関数生成コマンドに与えられる限り、 Postgresはそれを受け入れます。 要するに、つじつまを合わせなさいということです。 しかし、現実的な観点からすれば、どれを共有オブジェクトファイルとして作成し、 どれをそうでなくしたかについて、きっと混乱することになるので、こういう方法は勧められません。 たとえば、オブジェクトファイルと共有オブジェクトファイルの名前が両方とも .o で終るとすると、リンク処理を自動で行なうような Makefile を書くの はとても大変です!

もし、あなたの指定するファイルが共有オブジェクトでないと、バックエンド はハングするでしょう!