Forum Linux.pl

Oprogramowanie => Inne => Wątek zaczęty przez: arctgx w 2008-01-07, 21:07:51

Tytuł: Błąd w kompilacji QEMU 0.9.1
Wiadomość wysłana przez: arctgx w 2008-01-07, 21:07:51
Czy komuś z Was udało się skompilować jakąkolwiek wersję QEMU? Idąc za poradą, że nowsze wersje gcc mogą problemowo budować, do ./configure dodałem opcję --cc=gcc-3.3. Ale dostałem wynik ten sam jak przy domyślnym gcc-4.2:

/tmp/qemu-0.9.1/target-arm/op_helper.c: In function `helper_neon_tbl':
/tmp/qemu-0.9.1/target-arm/op_helper.c:251: error: unable to find a register to spill in class `GENERAL_REGS'
/tmp/qemu-0.9.1/target-arm/op_helper.c:251: error: this is the insn:
(insn:HI 48 47 49 2 0x406ac18c (parallel [
            (set (reg:DI 72)
                (lshiftrt:DI (reg:DI 72)
                    (subreg:QI (reg:SI 69) 0)))
            (clobber (scratch:SI))
            (clobber (reg:CC 17 flags))
        ]) 323 {lshrdi3_1} (insn_list 46 (insn_list 47 (nil)))
    (expr_list:REG_DEAD (reg:SI 69)
        (expr_list:REG_UNUSED (scratch:SI)
            (expr_list:REG_UNUSED (reg:CC 17 flags)
                (nil)))))
/tmp/qemu-0.9.1/target-arm/op_helper.c:251: confused by earlier errors, bailing out
make[1]: *** [op_helper.o] Błąd 1
make[1]: Opuszczenie katalogu `/tmp/qemu-0.9.1/arm-linux-user'
make: *** [subdir-arm-linux-user] Błąd 2
unset CPP CC CXX nic nie daje. Samo ./configure nie zgłasza, że coś mu brak.
Tytuł: Błąd w kompilacji QEMU 0.9.1
Wiadomość wysłana przez: Paweł Smoliński w 2008-01-07, 22:13:03
Ja sobie zawsze kompiluję, tylko nie robię kompilacji dla architektur (w tym przypadku ARM), których i tak nie będę używał ;) - mniej kodu, mniej powodów do błędu
Tytuł: Błąd w kompilacji QEMU 0.9.1
Wiadomość wysłana przez: arctgx w 2008-01-07, 23:21:51
./configure --help daje mi do wyboru opcję
Cytuj
--disable-system         disable all system emulation targets
Spróbowałem na niej, ale i tak wyjście błędu wygląda jakby dotyczyło obcej architektury:
/home/arctgx/tmp/qemu-0.9.1/target-arm/op_helper.c:251: error: this is the insn:
(insn:HI 48 47 49 2 0x406ac18c (parallel [
            (set (reg:DI 72)
                (lshiftrt:DI (reg:DI 72)
                    (subreg:QI (reg:SI 69) 0)))
            (clobber (scratch:SI))
            (clobber (reg:CC 17 flags))
        ]) 323 {lshrdi3_1} (insn_list 46 (insn_list 47 (nil)))
    (expr_list:REG_DEAD (reg:SI 69)
        (expr_list:REG_UNUSED (scratch:SI)
            (expr_list:REG_UNUSED (reg:CC 17 flags)
                (nil)))))
/home/arctgx/tmp/qemu-0.9.1/target-arm/op_helper.c:251: confused by earlier errors, bailing out
make[1]: *** [op_helper.o] Błąd 1
make[1]: Opuszczenie katalogu `/home/arctgx/tmp/qemu-0.9.1/arm-linux-user'
make: *** [subdir-arm-linux-user] Błąd 2
Z drugiej strony, kiedy wyłączę wszystkie architektury, to również i386 :) Tego jeszcze nie doświadczyłem, ale wygląda na przyszły problem to jak jej emulację dokompilować. Niech jednak przejdę wpierw ten.
Tytuł: Błąd w kompilacji QEMU 0.9.1
Wiadomość wysłana przez: w 2008-01-08, 00:55:00
Hmmm, w sumie to dlaczego męczysz się ze źródłami? :) Nie lepiej skorzystać z binarek? :)
Tytuł: Błąd w kompilacji QEMU 0.9.1
Wiadomość wysłana przez: arctgx w 2008-01-08, 01:38:22
Korzystam - nie mam wyjścia :) Ale w przypadku programów zużywających kawał mocy procesora warto spróbować czy będą działać szybciej, kiedy np. skompiluję go pod swój procek, tzn. do CFLAGS i CXXFLAGS dodam --march=athlon-xp (a domyślnie jest i386).

ed: nawiasem, "unset" miało unieważniać CFLAGS i CXXFLAGS, a nie jak napisałem.