13,009
回編集
111行目: | 111行目: | ||
--enable-multi-arch \ # 32ビットを有効にする場合 | --enable-multi-arch \ # 32ビットを有効にする場合 | ||
--enable-stack-protector=strong \ | --enable-stack-protector=strong \ | ||
--enable-obsolete-rpc \ | |||
--enable-obsolete-nsl \ | |||
--enable-add-ons=libidn \ | --enable-add-ons=libidn \ | ||
--without-selinux \ # SELinuxが不要な場合 | --without-selinux \ # SELinuxが不要な場合 | ||
121行目: | 123行目: | ||
make localedata/install-others | make localedata/install-others | ||
<br> | <br> | ||
configureスクリプトで使用可能なオプションを、以下に示す。<br> | |||
* --enable-multi-archオプション | |||
*: マルチアーキテクチャサポートを有効にする。 | |||
*: 異なるCPUアーキテクチャ (例:x86_64, i386, Aarch64等) 向けのライブラリを同一システム上で共存させることができる。 | |||
*: <br> | |||
*: 動的リンカが実行時に最適なライブラリバージョンを選択できるようになる。 | |||
*: クロスコンパイルや異なるアーキテクチャのバイナリの実行をサポートする。 | |||
*: ロケールや文字セットのサポートを含む、アーキテクチャ固有の最適化を可能にする。 | |||
*: <br> | |||
* --enable-stack-protector=strongオプション | |||
*: 強力なスタック保護機能を有効にする。 | |||
*: <br> | |||
*: バッファオーバーフロー攻撃からの保護を強化する。 | |||
*: 関数の開始時にカナリア値 (ランダムな値) をスタックに配置して、関数終了時にこの値を確認する。 | |||
*: カナリア値が変更されていた場合、スタックの破壊が検出され、プログラムは即座に終了する。 | |||
*: strong値は、より多くの関数に対してこの保護を適用する。(サイズの小さな配列を持つ関数も含む) | |||
*: <br> | |||
* --enable-obsolete-rpcオプション | |||
*: 廃止予定のRPC(Remote Procedure Call)関連の機能を有効にする。 | |||
*: <br> | |||
*: 古いRPC関連の関数やライブラリ (例: rpc/rpc.hのヘッダファイル等) を含める。 | |||
*: 後方互換性のために必要な場合がある。 | |||
*: 新しいプログラムではこれらの機能の使用は推奨されないが、レガシーシステムとの互換性維持のために重要である。 | |||
*: <br> | |||
* --enable-obsolete-nslオプション | |||
*: 廃止予定のNSL (Network Services Library) 関連の機能を有効にする。 | |||
*: <br> | |||
*: 古いネットワークサービスライブラリ関連の関数 (例: gethostbyname関数等) を含める。 | |||
*: これらの関数は主にDNS解決に使用されていたが、現在では、getaddrinfo関数等の新しいAPIに置き換えられている。 | |||
*: レガシーソフトウェアとの互換性のために必要な場合がある。 | |||
<br> | |||
マルチアーキテクチャサポートと強力なスタック保護は、現代のシステムにおいて重要な機能である。<br> | |||
一方で、廃止予定のRPCとNSL機能の有効化は、主に古いソフトウェアとの互換性のために行われる。<br> | |||
<br> | |||
最後に、GCCのヘルパーライブラリが必要になるので、/lib64ディレクトリからコピーする。<br> | |||
これにより、/home/ユーザ名/InstallSoftware/GLIBCディレクトリにおいて、システムファイルを使用する準備が整う。<br> | |||
# パッケージ管理システムによりインストールしたGCCを使用する場合 | |||
cp -r /lib64/libgcc* /<GLIBCのインストールディレクトリ>/lib64 | |||
# ホームディレクトリにインストールしたGCCを使用する場合 | |||
cp -r /<GCCのインストールディレクトリ>/lib64/libgcc* /<GLIBCのインストールディレクトリ>/lib64 | |||
<br> | |||
Linux x86やUbuntuの場合、lib64ディレクトリではなく、libディレクトリを使用する必要がある。<br> | |||
<br><br> | |||
== Linuxカーネルヘッダのインストール (不要) == | |||
次に、[https://www.kernel.org Linuxの公式Webサイト]にアクセスして、Linuxカーネルをダウンロードする。<br> | 次に、[https://www.kernel.org Linuxの公式Webサイト]にアクセスして、Linuxカーネルをダウンロードする。<br> | ||
ダウンロードしたファイルを解凍する。<br> | ダウンロードしたファイルを解凍する。<br> | ||
132行目: | 180行目: | ||
Linuxのヘッダファイルをインストールする。<br> | Linuxのヘッダファイルをインストールする。<br> | ||
make -j $(nproc) headers_install INSTALL_HDR_PATH=<GLIBCのインストールディレクトリ> | make -j $(nproc) headers_install INSTALL_HDR_PATH=<GLIBCのインストールディレクトリ> | ||
<br><br> | <br><br> | ||