1

Temat: Gcc - cross kompilacja

Chciałbym przed SV skompilować najnowszego atari800 pod TOS'a więc zmontowałem sobie środowisko wg:

http://vincent.riviere.free.fr/soft/m68 … ubuntu.php

Przykładowy plik hello.c skompilował się i hello.tos uruchomiło się bez problemu w steem'ie :)
Następnie ściągnąłem źródła najnowszego a800 i tam  w pliku "INSTALL.falcon" znalazłem taki oto wpis:

The following script might be used for rebuilding the fastest possible
version:
============================== make.sh ====================================
#!/bin/sh
CFLAGS="-m68020-60 -O3 -fomit-frame-pointer -Wall" ./configure --disable-newcycleexact --disable-sound --enable-veryslow --disable-monitorbreak --target=falcon
make clean
time make
fixstk 256k atari800
===========================================================================

Po wywołaniu pierwszej linijki, czyli CFLAGS=... dostaję:

"checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether we are cross compiling... yes
checking for suffix of object files... configure: error: in `/home/jury/ftp/stary komputer/dev/gcc/atari800-2.2.1/src':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details."

W pliku config.log 2 razy pojawia się wpis :

"cc1: error: unrecognized command line option "-m68020-60 "

Co robię nie tak i czego mu brak?

Ostatnio edytowany przez jury (2012-12-02 19:40:01)

2

Odp: Gcc - cross kompilacja

Zgaduję, że zamiast '--target=falcon' powinno pojawić się '--host=m68k-atari-mint' lub coś podobnego.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

Odp: Gcc - cross kompilacja

--target=falcon może zostać, a800 ma specjalne optymalizacje pod falcona (grafiki). Przy czym te optymalizacje są wówczas opcjonalne, bo nie są w 100% idealne.

Wywal opcję -m68020-60.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

4

Odp: Gcc - cross kompilacja

Adam: jako flaga dla gcc? rozumiem ze dla configure, ale dla gcc?

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

Odp: Gcc - cross kompilacja

jellonek: --target jest do configure właśnie.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

6

Odp: Gcc - cross kompilacja

CZy to to daje 100szybkości na falcim rozumiem 060 ??
Jeśli tak to trzeba będzie zgrać troche softu aby na Falconie emulować xe :P
jury jak już będziesz miał działająće to podeślij ....!

Ostatnio edytowany przez AS... (2012-12-02 23:10:22)

Odp: Gcc - cross kompilacja

Daje 100% prędkości, ale nie zawsze, zależy od okoliczności. Ja to kompilowałem dosyć dawno temu, możliwe że nowszy kompilator wygeneruje lepszy kod. Przy czym:
- optymalizacje dla Falcona są w ASMie,m więc kompilator już nic nie skompiluje
- optymalizacje trochę psują jakość emulacji w porównaniu do 'uniwersalnego' kodu.

Tym niemniej, nawet jak skompilujesz z optymalizacjami to tak naprawdę oznacza że można się przełączać pomiędzy trybem 'zoptymalizowanym' a 'uniwersalnym' przy starcie emulatora.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

8

Odp: Gcc - cross kompilacja

AS... napisał/a:

CZy to to daje 100szybkości na falcim rozumiem 060 ??
Jeśli tak to trzeba będzie zgrać troche softu aby na Falconie emulować xe :P
jury jak już będziesz miał działająće to podeślij ....!

Chyba wszystkie gry jakie odpalałem chodziły na 100% natomiast demo tylko jedno uruchamiałem, numena :) Tu masz cyfry:
http://www.atari.org.pl/forum/viewtopic … 64#p109064

Adam Klobukowski napisał/a:

--target=falcon może zostać, a800 ma specjalne optymalizacje pod falcona (grafiki). Przy czym te optymalizacje są wówczas opcjonalne, bo nie są w 100% idealne.

Wywal opcję -m68020-60.

Pojszło, dzięki.
Ale nie ma lekko, teraz wywalił się przy 3 linijce tego skryptu:

time make

krzycząc w którymś momencie:
"gcc -c -o atari_falcon.o -DHAVE_CONFIG_H -I. -O3 -fomit-frame-pointer -Wall  atari_falcon.c
atari_falcon.c:26:20: fatal error: osbind.h: Nie ma takiego pliku ani katalogu
compilation terminated.
make: *** [atari_falcon.o] Błąd 1"

Sprawdziłem osbind.h find'em i znalazł:

/usr/m68k-atari-mint/include/mint/osbind.h
/usr/m68k-atari-mint/include/osbind.h

Co mu podać aby zobaczył tego osbind'a? :)

Ostatnio edytowany przez jury (2012-12-02 23:26:00)

Odp: Gcc - cross kompilacja

Ok. Rozpracowane. Niestety atari800 ciężko będzie kroskompilować dla minta, bo część dotycząca pracy na falconie jest niedostosowana do najnowszych kompilatorów. Można kompilować natywnie, ale też bez optymalizacji dla falcona.

Ostatnio edytowany przez Adam Klobukowski (2012-12-03 17:44:19)

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

10

Odp: Gcc - cross kompilacja

Hmmmm, nie bij od razu po oczach za głupie pytania, ale po co to kompilować dla MiNTa?
Ja tego i tak bym nie używał pod MiNTem, obecnie mam wersję 1.3.1 i 2.0 i zauważyłem, że w TOSie a800 działa około 10% szybciej niż w MiNTie. Czy do TOSa nie było by prościej?

Ostatnio edytowany przez jury (2012-12-03 20:24:03)

Odp: Gcc - cross kompilacja

W tym wypadku kompilacja dla MiNTa = Kompilacja dla TOSa.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

12

Odp: Gcc - cross kompilacja

Shit :(
Ale jeszcze pytanko, dlaczego on krzyczy "atari_falcon.c:26:20: fatal error: osbind.h: Nie ma takiego pliku ani katalogu"?
Mam w PATHu ścieżkę do dwóch osbind'ów:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/m68k-atari-mint/include/mint/:/usr/m68k-atari-mint/include

Odp: Gcc - cross kompilacja

PATH nie ma tu nic do rzeczy. Problem z tym, że jak już pisałem wcześniej, części dotyczące optymalizacji dla falcona są lekko nieaktualne. To akurat można prosto poprawić, ale dalej jest kilka innych kwiatków gdzie moja wiedza już jest niewystarczająca. Cyprian Konador albo Sqward pewnie da radę jak ich ładnie poprosisz ;)

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

14

Odp: Gcc - cross kompilacja

jury: nie dałeś dla configure prefix'a, dodaj: --prefix=/usr/m68k-atari-mint

przykładowo:
./configure --prefix=/usr/m68k-atari-mint --disable-shared --enable-static --host=m68k-atari-mint CFLAGS="-m68020-60 -O2 -fomit-frame-pointer"

Ostatnio edytowany przez saulot (2012-12-03 21:13:10)

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

Odp: Gcc - cross kompilacja

prefix jest do czego innego i nie jest tu potrzebny.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

16

Odp: Gcc - cross kompilacja

nie wydaje mi się.

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

Odp: Gcc - cross kompilacja

No, może zostać użyty, ale to nie zmieni faktu że i tak kompilacja będzie nieudana.

Perfix jest do make install.

Ostatnio edytowany przez Adam Klobukowski (2012-12-03 21:40:24)

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

18

Odp: Gcc - cross kompilacja

kompilator nie moze znaleść ściezki do inkludów, bo niby skąd ma to wiedzieć. Bierze wszystko z domyślnej ścieżki(pewnie dla zainstalowanego gcc linuksowego) i nie znajduje odpowiednich inkludów.
A to że kompilacja wysypie się później to już zupełnie inna historia. Wieki temu próbowałem skompilować a800, ale coś pozmieniali i dla wersji pod VIDEL'a trzeba by było coś popoprawiać.

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

19

Odp: Gcc - cross kompilacja

To ja tym bardziej sobie z tym nie poradzę, ech :(

Edit:
Choć może jednak nie jest tak źle, bo skoro wieki temu próbowałeś ( oczywiście zależy jakie wieki :) ) to wersja 2.1 musiała zostać poprawiona, bo jakoś się kompiluje ponoć, mam takową od Petra, tyle, że jest drobniutki problem, skompilował ją z opcją --disable-sound a potem już ślad po nim zaginął.

Ostatnio edytowany przez jury (2012-12-03 22:04:38)

20

Odp: Gcc - cross kompilacja

nie wiem może się coś zmieniło, mozna skompilować z sdlem, ale to będzie ślimak.

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

21

Odp: Gcc - cross kompilacja

prościej będzie kupić sobie XL/XE i postawić koło Falcona ;)

gep/lamers^dial

22

Odp: Gcc - cross kompilacja

zdecydowanie tak, razem z czytnikiem kart sd ;)

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

23

Odp: Gcc - cross kompilacja

salout: ale prefix nie ustawi ci parametru dla -I do gcc.
o to Adamowi chodzilo.

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

24

Odp: Gcc - cross kompilacja

nie doda, ale będzie szukało inkludów w /usr/m68k-atari-mint/(czyli cross kompilatora), a nie w tych co nie trzeba. <osbind.h> jest nagłówkiem, który jest tylko w w /usr/m68k-atari-mint/include (czy coś w ten deseń)

Ostatnio edytowany przez saulot (2012-12-03 23:51:35)

=========================================
[www] https://nokturnal.pl
[ 16/32 bit Atari development wiki] https://bus-error.nokturnal.pl

25

Odp: Gcc - cross kompilacja

To się akurat robi przez --host=m68k-atari-mint (lub coś podobnego), co powoduje wybranie właściwego kroskompilatora (zamiast domyślnego kompilatora natywnego), a ten ma domyślne ścieżki wkompilowane w siebie, sprawdź:

m68k-atari-mint-gcc -v -xc -

.
--prefix nie powinien zmienić miejsca szukania inkludów, a tylko miejsce instalacji (gdyby było tak, jak piszesz, raczej nie dałoby się kompilować natywnych programów celem ich instalacji gdzie indziej niż w domyślnych ścieżkach).

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.