ソースからgcc-5をコンパイルする方法は?

ソースからgcc-5をコンパイルする方法は?

最近Debianの不安定なリポジトリからgcc-5が削除されたようです。古いLinuxカーネル(3.19)をコンパイルするにはgcc-5が必要なので、ソースからビルドしたいのですが、これは多くの問題を引き起こします。私が見つけた指示に従いました。ここところで、どのような設定をすべきか気になります。これまで私は次のことをしました。

  1. ソースコードをダウンロードして解凍します。
  2. 以下を実行してgcc-5を設定します。
% mkdir objdir
% cd objdir
% ../gcc-5.4.0/configure (I included neither options nor target flags)
  1. objdir私のディレクトリに次のようにビルドしようとしています。
% make BOOT_CFLAGS='-O' bootstrap

ところで、起動中にエラーが発生し、インストールを続行できませんでした。約5分ほど実行した後、次のエラーが発生しました。

In file included from ../../../../gcc-5.4.0/libgcc/unwind-dw2.c:401:0:
./md-unwind-support.h: In function 'x86_fallback_frame_state':
./md-unwind-support.h:141:18: error: field 'uc' has incomplete type
struct ucontext uc;
                ^
make[5]: *** [../../../../gcc-5.4.0/libgcc/shared-object.mk:14: unwind-dw2.o] Error 1
make[5]: Leaving directory '/home/me/objdir/x86_64-unknown-linux-gnu/32/libgcc'
make[4]: *** [Makefile:1154: multi-do] Error 1
make[4]: Leaving directory '/home/me/objdir/x86_64-unknown-linux-gnu/libgcc'
make[3]: *** [Makefile:119: multi-do] Error 2
make[3]: Leaving directory '/home/me/objdir/x86_64-unknown-linux-gnu/libgcc'
make[2]: *** [Makefile:16510: all-stage1-target-libgcc] Error 2
make[2]: Leaving directory '/home/me/objdir'
make[1]: *** [Makefile:22461: stage1-bubble] Error 2
make[1]: Leaving directory '/home/me/objdir'
make: *** [Makefile:22798: bootstrap] Error 2

私はDebian 10(Buster)を実行しており、リストされている前提条件をインストールしました。ここ

ブート中に発生するエラーを修正したり、一般的にソースからビルドするなど、ヘルプやガイドラインをお寄せいただきありがとうございます。ありがとうございます。

ベストアンサー1

その理由は、glibcが変更され、以前のコンパイラとの互換性が損なわれたためです。ある修理するそのコンパイラの場合。パッチはファイル内struct ucontext、whereなどに置き換えられます。ucontext_tlibgcc/config/<arch>/linux-unwind.h<arch>i386aarch64alpha

似たようなものがありますスタックオーバーフローに関する質問

これらの修正に加えて、次のサニタイザコードも修正する必要があります。ここ(これらのいくつかは十分です)とここ

その後、最終的にGCCが構築されました。

おすすめ記事