[#31] Re: Z kompilatorem C jak z dzieckiem - optymalizacje, porównania, odniesienie do wykładu Cahira

@Cedrat, post #30

@cedrat

http://www.amigaforum.de/index.php?PHPSESSID=d451c8e1ed0fa101e5f982c73920184b&topic=42.msg200#msg200

a ogolna instrukcja pudowania arosa, w tym toolchain tutaj:
http://aros.sourceforge.net/documentation/developers/compiling.php

poniewaz jest po angielsku i nie wszystko aktualne, podaje w skrocie po polsku:

-------------------------------

1. ewentualnie potrzebne pakiety, nie wszystkie dla samego toolchaina, wiec mozna poczekac na bledy w kompilacji i dopiero wtedy instalowac:
binutils-source
libcloog-ppl-dev (adds lots of other dependencies)
g++ (may be neccessary too look for gnu-c++ compiler package)
libelf-dev
bison
flex
gcc-4.5-source (doesnt seem to be neccessary anymore since the compiler version has been upgraded)
libmpfr-dev
libmpc-dev
libecm-dev
netpbm
automake
libpng-dev (libpng12-dev)
libc6-dev-i386

---------------------------------------------

2. sciagnac zrodla z
http://aros.sourceforge.net/de/download2.php

(core AROS sources)

alternatywnie przez svn, na przyklad:
> mkdir AROS-source
> cd AROS-source
> svn checkout https://svn.aros.org/svn/aros/trunk/AROS

..zrodla sa w podkatalogu AROS.

---------------------------------------------
3. nastepnie zakladamy jakis katalog w celu zbudowaniacrosscompilera, na przyklad na tym samym poziomie co "AROS-source" (sciezke trzeba dopasowac) i konfiguracja, np:

../AROS-source/AROS/configure --target=amiga-m68k --with-aros-toolchain-install=/opt/aros-m68k

a nastepnie make i instalacja np do /opt:

sudo make -s crosstools

oczywiscie mozna zbudowac po prostu gdzies u siebie w katalogu uzytkownika i wtedy sudo jest niepotrzebne

kompiler bedzie w podkatalogu crosstools i bedzie sie nazywal jakos tak:
m68k-aros-gcc-6.1.0
trzeba oczywiscie jeszcze dodac sciezke do tego katalogu do PATH

---------------------------

mam nadzieje ze nic nie pokrecilem, bo tej metody nie stosowalem juz dawno, ale to jest w miare proste, jak ktos sie tym zajmuje na co dzien.

nalezy pamietac ze pliki wynikowe sa elf, wiec tak jak artur podaje u gory trzeba przepuscic je przez elf2hunk.

Ostatnia aktualizacja: 20.12.2016 02:17:15 przez wawrzon
[#32] Re: Z kompilatorem C jak z dzieckiem - optymalizacje, porównania, odniesienie do wykładu Cahira

@wawrzon, post #31

OK, dzięki. Wygląda trywialnie :)
[#33] Re: Z kompilatorem C jak z dzieckiem - optymalizacje, porównania, odniesienie do wykładu Cahira

@Cedrat, post #32

powodzenia i sorki za literowki. normalnie nie uzywam tego by produkowac bezposrednio binarki pod amiga z oryginalnym kickstartem, ale o ile pamietam juz mi sie to zdarzylo. powinno dzialac.
[#34] Re: Z kompilatorem C jak z dzieckiem - optymalizacje, porównania, odniesienie do wykładu Cahira

@wawrzon, post #33

Niestety, na Gentoo mi nie działa :(

Compiling fd2pragma...
Building sfdc...
Building setrev...
[MMAKE] Read vars...
[MMAKE] Scanning dirs...
  File "/home/cedrat/AROS/compile/bin/linux-x86_64/tools/genmf.py", line 8
    print "Usage:",sys.argv[0],"tmplfile [inputfile outputfile]"
                 ^
SyntaxError: Missing parentheses in call to 'print'
[MMAKE] /home/cedrat/AROS/compile/bin/linux-x86_64/tools/genmf.py /home/cedrat/AROS/AROS-20161220-source/config/make.tmpl --listfile /tmp/genmfrj8OlM  failed: 256
[MMAKE] Error: Error regenerating makefile: No such file or directory
Makefile:63: recipe for target '/opt/aros-m68k/.installflag-crosstools' failed
make: *** [/opt/aros-m68k/.installflag-crosstools] Error 10


[edit] URWAŁ NAĆ!!! Te dzwońce używają jakiejś antycznej wersji Pythona! Będzie trochę zabawy...

Ostatnia aktualizacja: 20.12.2016 22:50:47 przez Cedrat
[#35] Re: Z kompilatorem C jak z dzieckiem - optymalizacje, porównania, odniesienie do wykładu Cahira

@Cedrat, post #34

wiec ja uzywam lubuntu, debian byl w miare, ubuntu tez, ale tu w zasadzie wszystko chodzi na kopa. edytor jest bez podswietlania syntax ale na razie mnie to nie wkurza. moga czasami byc problemy jak host jest 64bit z roznymi wersjami pakietow i bibliotek, ja mialem kiedys jaja z ustawieniami jezykowymi, ktoby pomyslal. ale wszystko da sie na ogol przezwyciezyc.
[#36] Re: Z kompilatorem C jak z dzieckiem - optymalizacje, porównania, odniesienie do wykładu Cahira

@wawrzon, post #35

aha! uwaga, zapomnialem najwazniejszego. skonfigurowac trzeba nasteujace opcje:

--with-binutils-version=2.25 --with-gcc-version=6.1.0

inaczej skompiluje i zainstaluje 4.6.4, co jest ciagle jeszcze default.

Ostatnia aktualizacja: 20.12.2016 23:00:07 przez wawrzon
[#37] Re: Z kompilatorem C jak z dzieckiem - optymalizacje, porównania, odniesienie do wykładu Cahira

@Cedrat, post #34

[edit] URWAŁ NAĆ!!! Te dzwońce używają jakiejś antycznej wersji Pythona! Będzie trochę zabawy...


python2 jest, jakby na jego antycznosc nie patrzec, nadal dosc popularny ;P
[#38] Re: Z kompilatorem C jak z dzieckiem - optymalizacje, porównania, odniesienie do wykładu Cahira

@Cedrat, post #34

Bo ktoś uznał, że jest genialny i ustawił Python3 jako /usr/bin/python zamiast Pythona 2.x ;(
[#39] Re: Z kompilatorem C jak z dzieckiem - optymalizacje, porównania, odniesienie do wykładu Cahira

@sanjyuubi, post #8

w tym wypadku nie, szczególnie porównując wykonanie na prostych cepach jak 68000 ale ogólnie to już różnie może być, szczególnie na superkalarnych procesorach i niewielkiej różnicy w ilości instrukcji.

a imho jak się robi taką analizę to jaki problem przyłożyć się bardziej i przygotować jakiś prosty benchmark i go wykonać i zrobić tabelkę w excelu?
[#40] Re: Z kompilatorem C jak z dzieckiem - optymalizacje, porównania, odniesienie do wykładu Cahira

@XoR, post #39

No raczej na takim cepie jak 68000 to będzie widać tym bardziej, zwłaszcza, że 68000 nie ma cache i każda instrukcja musi być przeczytana z RAM, na co jest marnowane 4 cykle zegarowe, czytanie dwóch instrukcji na 68000 zabierze 8 cykli, a 9 instrukcji aż 36. Nawet jeśli teoretycznie te 9 instrukcji miałoby się wykonać tak samo szybko co jedna instrukcja scalona, to i tak pozostaje różnica w czasie traconym na czytanie tych instrukcji. Od 68030 wzwyż, mamy tryby burst, które ładują szybko całą linię cache i tutaj już straty związane z czasem dostępu do RAM się zmniejszają, zwłaszcza, że mamy już cache.

Ostatnia aktualizacja: 14.01.2017 22:34:00 przez sanjyuubi
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem