1

Witam,

zapuściłem kompilację GCC 4.4.1 z poprawkami i instrukcjami ze strony
http://vincent.riviere.free.fr/soft/m68k-atari-mint/
Binutils i Mintbin idą bez problemu. Niestety przy kompilacji GCC dostaję błąd, z którym w żaden sposób nie potrafię sobie poradzić (bo nie dotyczy programowania, tylko jakichś autoconfów czy innych):

checking how to hardcode library paths into programs... unsupported                                
__checking for shl_load... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.__
make[1]: *** [configure-target-libstdc++-v3] Error 1
make[1]: Leaving directory `/root/gcc'
make: *** [all] Error 2

Próbowałem szukać przez wielkiego brata, ale niestety rozwiązanie które znalazłem już było wprowadzone do configure.ac, a nic innego nie znalazłem. Następnie próbowałem na chybił trafił wycinać różne rzeczy, które wydawało mi się mają z tym związek. Bez skutku.

Obecnie kompiluję na wirtualnej Mandrivie 2009 Free x86 z gcc takim:

Using built-in specs.
Target: i586-manbo-linux-gnu
Configured with: ../configure --prefix=/usr --libexecdir=/usr/lib --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-checking=release --enable-languages=c,c++,ada,fortran,objc,obj-c++,java --build=i586-manbo-linux-gnu --host=i586-manbo-linux-gnu --with-cpu=generic --with-system-zlib --enable-threads=posix --enable-shared --enable-long-long --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --enable-java-awt=gtk --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-gtk-cairo --disable-libjava-multilib --enable-ssp --disable-libssp --disable-werror
Thread model: posix
gcc version 4.3.2 (GCC)

Czy widzicie jakieś rozwiązanie poza daniem sobie spokoju?

PS. Na razie nie zastanawiam się nad sensownością kodu kompilowanego w tym gcc - chcę się pobawić, więc proszę mnie nie odsyłać do GFA BASIC czy innych. ;)

Krzysztof [Atari 1040 STE + 65 XE]

2

http://pagesperso-orange.fr/patrice.man … ss333.html

What can be asserted without proof can be dismissed without proof.

3

Dzięki, ale na razie chciałem spróbować z GCC 4.4.1.

To co udało mi się zrobić to skopiować rzeczy, które mi się wywaliły przez powyższy błąd, z wersji skompilowanej przez autora - to były rzeczy niezależne od systemu (autor używa win32, a ja linuksa), bo dotyczące bibliotek (dokładnie libstdc++-v3).

Działa. :) Skompilowałem sobie EmuTOS i program "hello world", oba działają pod emulatorem Hatari, więc zakładam, że środowisko jest ok.

Pozostaje problem samodzielnej kompilacji, co chcę zrobić ze względów przyszłościowych i z czystej potrzeby przebrnięcia przez to, i tu oczekuję pomocy, choć to temat pewnie na forum gcc czy pokrewne. :(

Krzysztof [Atari 1040 STE + 65 XE]

4

No dałem Ci linka.  "na razie chciałem spróbować z GCC 4.4.1." brzmi tak jakby to było łatwiejsze. Zajrzyj na mint listę. Tam cały czas ktoś kompiluje gcc.

What can be asserted without proof can be dismissed without proof.

5

No i oczywiście wszystko przez brak umiejętności czytania ze zrozumieniem po północy. Napisałem do autora opisu i od razu wiedział, co zrobiłem źle.

Kompilujemy po kolei, ale z jednym wyjątkiem. Najpierw kompilujemy część gcc, potem mintlib i pml, a dopiero potem resztę gcc. :) W tej chwili wszystko mi działa z własnej kompilacji (jeszcze nie doszedłem do odpluskwiacza gdb, ale teraz mi to nie jest potrzebne).

W sumie kompilacja na linuksie według tej instrukcji jest dokładnie taka sama jak na win32, czyli wystarczy zmienić ścieżki i pamiętać o tej jednej ręcznej interwencji.

SUKCES.

Krzysztof [Atari 1040 STE + 65 XE]

6

sqward napisał/a:

Zajrzyj na mint listę. Tam cały czas ktoś kompiluje gcc.

Heh, no, kompilacja gcc to ulubione zajecie mintowców :)

7

krzyc,
ja poszedłem na łatwiznę i ze strony Vincenta  pobrałem gotowy zestaw: cross-mint-all-light-bin-cygwin-20091210.tar.bz2 (musiałem tylko zainstalować cygwin)

Pakiet ten działa od ręki. Na razie, bez problemu skompilowałem "Hello World" oraz kompilator as68.

Jedyny minus to jest wielkość generowanego pliku, np 
"Hello World": Atari -  76KB; MinGW generuje 15KB execa dla Windows
AS68: Atari - 243 KB;  MinGW - 54.5 KB

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

8

No niestety nie mamy shared libs.

What can be asserted without proof can be dismissed without proof.

9

może i tak.
no ale dla tego samego :"Hello World" , Pure C generuje 1.5KB bez żadnych shared libs

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

10

z rozmiarem binarek to jest rzeczywiście ból, ale od czego jest UPX ;)....

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

11

Cyprian napisał/a:

może i tak.
no ale dla tego samego :"Hello World" , Pure C generuje 1.5KB bez żadnych shared libs

No tak, niestety. mintlib jest kobylasty. Co nie zmienia faktu, że gcc to lepszy kompilator niż Pure C :)

What can be asserted without proof can be dismissed without proof.

12

ok, tylko po co ten mintlib jest włączany do programu, skorow tymprzypadku nie jest używany?
da się jakoś skompilować bez niego?

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

13 Ostatnio edytowany przez Adam Klobukowski (2009-12-31 09:34:40)

Mintlib jest używany praktycznie zawsze, bo jest używany przez crt0. Draco030 w swoich produkcjach używał jakiejś małej/uproszczonej wersji crt0 (nie ma wszystkich ficzerów, przez co nie jest w 100% kompatybilna, ale jak się wie co i jak to nie jest to problem), i takie binarki są malutkie.

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

Chętnie bym zerknął na to minimalne crt0. To jakiś custom, czy to można gdzieś zassać ?

What can be asserted without proof can be dismissed without proof.

Ściągij ze strony Draca źródła jego programów pod MiNTa - tam to jest.

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

Nie potrafię tego znaleźć, możesz mi podać linka ?

What can be asserted without proof can be dismissed without proof.