ページの先頭行へ戻る
Enterprise Postgres 15 導入ガイド(サーバ編)

4.7.10 PGXSを利用したビルド

PostgreSQL拡張モジュールの多くは、PGXSと呼ばれる拡張向けの構築基盤を使用してビルドします。PGXSでビルドを実施すると、llvmに関連するファイルも生成されます。使用するllvmのバージョンに応じて、下記の手順を実施してください。

また、PGXSでビルドを実施した場合、ビルドされたバイナリにDT_RUNPATHが設定されます。これについて、“4.7.10.4 DT_RUNPATHの設定”を参照してください。

4.7.10.1 デフォルトのバージョンのllvmを使用する場合

デフォルトのバージョンのllvmは、“2.1 前提基本ソフトウェア”のllvmの説明を参照してください。デフォルトのバージョンのllvmを使用する場合は、OSSのドキュメントに従って、OSSをビルドしてインストールしてください。

4.7.10.2 デフォルト以外のバージョンのllvmを使用する場合

  1. 使用するバージョンのllvmに対応するMakefile.globalをスーパーユーザーでコピーします。下記は、llvmのバージョン9を使用する場合の例です。Makefile.globalは、Fujitsu Enterpirse Postgresの緊急修正を適用・削除した際に上書きされるため、この手順はビルドを実施するたびに実施してください。

    $ su -
    Password:******
    # cp /opt/fsepv<x>server64/lib/pgxs/src/Makefile.global-vsn9 /opt/fsepv<x>server64/lib/pgxs/src/Makefile.global
  2. OSSのドキュメントに従って、OSSをビルドしてインストールしてください。

  3. スーパーユーザーで以下のコマンドを実行します。下記は、llvmのバージョン9を使用する場合の例です。

    $ su -
    Password:******
    # mv /opt/fsepv<x>server64/lib/bitcode/<OSS名>* /opt/fsepv<x>server64/lib/bitcode-vsn9/

4.7.10.3 llvmを使用しない場合

llvmを使用しない場合は、ビルドを実施する際に、下記のようにwith_llvm=noオプションをつけてビルドを実施してください。それ以外のオプションについては、OSSのドキュメントに従ってください。

# make USE_PGXS=1 with_llvm=no

4.7.10.4 DT_RUNPATHの設定

DT_RUNPATHに設定される値は、デフォルトでは、<ビルド環境のFujitsu Enterprise Postgresのインストールディレクトリ>/lib、および、$ORIGIN/../libです。

ビルド環境と運用環境のFujitsu Enterprise Postgresのインストールディレクトリが同じ場合は、環境変数LD_LIBRARY_PATHに<運用環境のFujitsu Enterprise Postgresのインストールディレクトリ>/libを設定することなく、ビルドしたプログラムを実行できます。

ビルド環境と運用環境のFujitsu Enterprise Postgresのインストールディレクトリを同じ位置とできない、あるいは、運用環境のインストールディレクトリを事前に定められない場合は、以下のようにすることで、LD_LIBRARY_PATHに<運用環境のFujitsu Enterprise Postgresのインストールディレクトリ>/libを設定することなくビルドしたプログラムを実行できます。

DT_RUNPATH属性に、任意のパスを設定します。

運用環境にて、該当のパスに、<運用環境のFujitsu Enterprise Postgresのインストールディレクトリ>/libへのシンボリックリンクを作成してください。

このための、DT_RUNPATH属性の設定は、環境変数PG_LDFLAGS(注)にて設定してください。

上記の対応ができない場合、プログラムの実行時に、LD_LIBRARY_PATHに<運用環境のFujitsu Enterprise Postgresのインストールディレクトリ>/libを設定してください。

なお、環境変数LD_LIBRARY_PATHを設定した際の注意事項について、詳細は、“アプリケーション開発ガイド”の“共有ライブラリを利用するアプリケーションのビルド・実行方法”の“DT_RUNPATHが設定できない場合”を参照してください。

注) 詳細は、“PostgreSQL Documentation”の“Extension Building Infrastructure”を参照してください。例えば、“make USE_PGXS=1 PG_LDFLAGS=”-Wl,-rpath,’$$ORIGIN/../libdummy’,--enable-new-dtags”のように設定できます。