2017-10-02 12 views
1

私はglibc 2.23のソースをダウンロードして、私のUbuntuシステムにビルドしようとしています。 研究用にカスタマイズされたglibcの修正版を入手するために、特定のバージョンのソースをビルドする必要があります。このライブラリは、ローダー環境変数(LD_PREDLOADまたはLD_LIBRARY_PATHなど)を使用して研究アプリケーション内でのみ使用されます。サイズを小さくしてglibcをビルドするには?

しかし、次のようにそれを構築し、私は(11メガバイト程度の重みlibc.so)出力として、巨大なファイルを得た:

  • TMP/glibcの/ /のは、言わせて(いくつかのローカルディレクトリにソースをダウンロード)
  • ビルドディレクトリから実行のconfigure
  • )ビルド結果のための新しいディレクトリ(/ tmpに/ glibcの/ビルドを作成:
  • <ビルド-dir>は$ ../configure --prefix = <ビルド-dir>は その結果、ビルドプロセスはlibc.soファイルunを生成します11MBのビルド・ディアを作成しました。

ビルドされたlibc.soのサイズを減らすためにとにかくありますか?

p.s.

私のシステムの詳細は次のとおりです。 Linuxバージョン4.4.0-93-generic(buildd @ lgw01-03)(gccバージョン5.4.0 20160609(Ubuntu 5.4.0-6ubuntu1〜16.04.4))#116-ソースからUbuntuのSMP金8月11日21時17分51秒UTC 2017

感謝:)

+0

**なぜあなたはソースからGNU libcをビルドしたいのですか?そのような古いバージョンをビルドする理由は何ですか? **あなたの質問を編集し**改善し、動機づけるべきです。 –

+0

自分のニーズに合わせてlibcアロケータをカスタマイズするためにソースからビルドする必要があります(私が行っている研究のため)。ビルドされたlibcは私のシステムでデフォルトのlibcとして使われません(したがって、私の研究アプリケーションの上で後で使用されるdirフォルダ) –

+0

これは、あなたの質問ではなく、コメントに入れてください –

答えて

1

ビルglibcは悪い考えである可能性があります。 thisとそこにいくつかのコメントを参照してください。現在のバージョンでは、ビルド-dirの

がある代わりにあなたの全体のUbuntuディストリビューション(Ubuntuの17.10は、数週間のうちにリリースされるべきで、2017年10月の終わり)

../configure --prefix=のアップグレードを検討... GNU libc 2.26ですautoconf -edソフトウェアにおける--prefixの役割の誤解。ソフトウェアがインストールされている場所で、ビルドディレクトリではありません。

libcは、おそらくそれは、--prefix=/する必要がありますが、あなたは慎重に確認する必要があり、あなたのシステムへそう不可欠であることから、私はあなたの--prefixあるべき内容を正確に把握していない)

にどのような方法がありますビルドされたlibc.soのサイズを減らしますか?

(非常に注意深く)strip(1)を使用することがありますが、システムが壊れる危険があります。

libcはLinuxシステムのほぼすべてのソフトウェアで使用されているので(そしてshared)、サイズを小さくすることには気をつけないかもしれません。

ところで、musl-libcとも考えてください。 GNU glibcとうまく共存することができ、実際にはmusl-gcc(それによって提供される)で構築されたプログラムによってのみ使用されます。

いくつかの調査を行っている場合は、chroot(2) -ed環境で作業するのが妥当でしょう。 schrootも参照してください。あなたはmake install DESTDIR=/tmp/instmylibcの助けを借りてインストールして、/tmp/instmylibcを適切にコピーすることができます。 more about autoconf

PSをお読みください。このような危険な実験の前に、重要なデータを少なくともバックアップしてください。私はあなたのlibc.soのサイズが重大な問題であるとは思わない。ただし、chrootのインストール中にdebootstrapの助けを借りてchrootを使用する必要があります。

+0

あなたの答えに@Basileありがとうございます。上で述べたように、私は研究目的のカスタマイズされたライブラリを構築する必要があります。つまり、私のシステムにインストールされているデフォルトのglibc(約1.8MBの重量)が剥奪されるということですか? –

関連する問題