2013-08-22 8 views
9

Próbuję zainstalować gcc-4.8.1 na dystrybucji AWS ec2 "Inne Linux". Ściągnąłem gcc-4.6.2.tar.gz a następnie wykonania tych instrukcji pod nagłówkiem „Konfiguracja” od http://gcc.gnu.org/wiki/InstallingGCC (zmodyfikowane do 4.8.1 zamiast 4.6.2): ​​Wykonywanie wyjść z "Błąd 2" podczas próby instalacji gcc-4.8.1

tar xzf gcc-4.8.1.tar.gz 
cd gcc-4.8.1 
./contrib/download_prerequisites 
cd .. 
mkdir objdir 
cd objdir 
$PWD/../gcc-4.8.1/configure --prefix=$HOME/gcc-4.8.1 
make 
make install 

Kiedy uruchomić „make” , program działa przez jakiś czas, ale w końcu kończy się z tym błędem:

build/genattrtab /home/ec2-user/gcc-4.8.1_install/objdir/../gcc-4.8.1/gcc/config/i386/i386.md insn-conditions.md \ 
       -Atmp-attrtab.c -Dtmp-dfatab.c -Ltmp-latencytab.c 
make[3]: *** [s-attrtab] Killed 
make[3]: Leaving directory `/home/ec2-user/gcc-4.8.1_install/objdir/gcc' 
make[2]: *** [all-stage1-gcc] Error 2 
make[2]: Leaving directory `/home/ec2-user/gcc-4.8.1_install/objdir' 
make[1]: *** [stage1-bubble] Error 2 
make[1]: Leaving directory `/home/ec2-user/gcc-4.8.1_install/objdir' 
make: *** [all] Error 2 

Czy ktoś może rzucić jakiekolwiek światło na to, dlaczego tak się dzieje? W ogóle nie rozumiem komunikatu o błędzie. Buduję go za pomocą gcc4.6.1 i /home/ec2-user/gcc-4.8.1_install to katalog, w którym uruchomiłem komendy od wewnątrz.

Odpowiedz

20

Robiłem kilka rzeczy źle. Po pierwsze, nie miałem zainstalowanych najnowszych binutils.

Tym szczególnym błędem był jednak zabójca OOM w pracy. Szczytowa pamięć RAM używana podczas instalacji jest większa niż w przypadku instancji EC2 micro. Użyj większej instancji lub użyj swap:

SWAP=/tmp/swap 
dd if=/dev/zero of=$SWAP bs=1M count=500 
mkswap $SWAP 
sudo swapon $SWAP 

To zamieni się w 500 MB, co było wystarczające dla mojej instalacji.

+1

Jak się zorientowałeś, że jesteś OOMingiem? Czy było coś innego niż słowo "zabity", które dawało ci radę? – stalepretzel

+1

@stalepretzel Przypuszczam, że patrzył na 'dmesg', myślałem, że nie pomyślałem o tym, dopóki nie znalazłem tego :)' Z pamięci: zabić proces 2774 (genattrtab) zdobyć 760 lub poświęcić dziecko' –