Zrobiłem kopie do /gg/include i /gg/lib i poszło 🙂
O ile dobrze sobie przypominam to HD-Rec.
Na razie znalazlem zrodlowke pod libniksa:
dajesz w jednym z plikow twojego programu:
__stack = wielkość_stosu;
na razie nie mogę znaleźć jak to jest wprzypadku ixemul, alemożliwe, że podobnie
Możliwe że będzie podobnie dla ixemul. Tak mi się wydaje, bo ogólnie w binarkach na dysku można znaleźć ciąg znaków "__stack " a coś takiego z ixstack to już nie bardzo. No ale to tylko pochopne domysły z mojej strony , w każdym razie dzięki za info.
@Kaczuś: No i fajnie, że można coś z tym stosem robić – już się cieszę chociaż nie wiem jeszcze jak tego dokonać 😉
@Kraszan: Stestowałem dbm2wav na 4.4.7 pod mosa i gitarka 🙂 Trochę cichy łejwik wyszedł ale MD5 się zgadza co najważniejsze.
Zauważyłem, że w mosowym sdk brak jest robodoc. Co więcej, zdaje się chochlik porwał jedną linijkę z makefile – ale pewnie już poprawione. Ja dorobiłem sobie tak:
dbminfo.o: dbminfo.c libdigibooster3.h musicmodule.h dsp.h lists.h
i zadziałało
Tak dla ścisłości, ten "genialny kod" kompiluje się na 4.6.4 dla Linuxa i docelowo na Linuxa (wersji GCC w dół na Linux nie sprawdzałem). Pod 4.4.5 nie kompiluje się na MorphOS, a na tym mi najbardziej zależy. Sprawdzałem z aktualnym SDK MorphOS-a i na kroskompilatorze pod Linuxem (z tym samym SDK).
Nawiasem mówiąc port tego genialnego programu jest na MOS-a, leży sobie na Aminecie (itix sportował)
ale niestety działa niestabilnie, a o zgrozo wersja dla OS4 pod OS4 Emu "działa jak fabryka chciała".
Słuszna uwaga ;). Spojżyj co pokazuje Scout/Tasks.
Zasadnicze pytania brzmią:
1. Jak można ustawić stos dla programu ppc skompilowanego z libnixem ?
2. Jak można ustawić stos dla programu ppc skompilowanego z ixemulem ?
Ad. 2. Możliwe że służy do tego zmienna środowiskowa IXPPCSTACK . Z małym ale:
Jak ustawić stos dla programu ixemulowego, który nie odczytuje zmiennej IXPPCSTACK ?
Ps. Dzięki Rzookolowi wiemy już, że za pomocą polecenia stack ustawiamy wielkość stosu dla programów 68k.
Poniekąd potwierdza to monitor Scout. Sprawdziłem na OWB i zwiększenie stosu np. w ikonie jeśli, chodzi o FreeStack(PPC) nie daje konkretnie nic.
Scout pokazuje też, że każdy process/task ma przydzielone dwa rodzaje stosu. Jakby ogólny stos i dodatkowo stos dla PPC. Ten ogólny stos można zmieniać jak w standardowym AOS 3.1 powiedzmy. Dlaczego tak jest nie mam pojęcia . Za to wiem że proces który mi się wiesza, stosu PPC ma (w ostatniej chwili kiedy udaje się jeszcze tą wartość złapać) "tyle co kot napłakał" – ‘7 bajtów’ około.
Dołączam się do pytania MDW (i w shell-startup dla mosowych też ?)
Polecenie ixstack jest nadal. Z małego śledztwa jakie przeprowadziłem w tym kierunku wynika mi,
że nie działa – przynajmniej jeśli chodzi o ixemulowe programy pod ppc (z ixemulowymi 68k nie sprawdzałem) . Za to, co ciekawe programy (przynajmniej te z gg) które otwierają ixemul.library, odczytują zmienną IXPPCSTACK (trzeba sobie ją dodać).
Tak na marginesie tematu, jeśli program przeportowany z unixa (w ANSI C) otwiera bsdsocket.library usergroup.library a nie otwiera ixemul.library i zapewne w związku z tym nie odczytuje IXPPCSTACK (tak jak progsy z gg), to co on jest taki program ?
Skoro jest w ANSI C i skompilowany bez użycia -noixemul to siłą rzeczy nie ma bata musi korzystać z ixemula a nie otwiera ixemul.library, no nie kumam tego.
Zakłada że ixemul.library jest zawsze otwarta ? Programy z gg za każdym użyciem otwierają ixemul.library.
No nie jedną ale da się to zrobić elegankco . Na chwilę obecną 4.4.7 z z mosowym sdk kompiluje się i działa bez problemu. Teraz walczę z 4.5.0, jak przebrnę to następne podejście 4.5.4.
Wstęp – konfiguracja intl :
mkdir -p -- ./intl
Configuring in ./intl
configure: creating cache ./config.cache
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether NLS is requested... yes
checking for msgfmt... no
checking for gmsgfmt... :
checking for xgettext... no
checking for msgmerge... no
checking for i686-pc-linux-gnu-gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for i686-pc-linux-gnu-ranlib... ranlib
checking for library containing strerror... none required
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for off_t... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... yes
checking whether we are using the GNU C Library 2.1 or newer... yes
checking whether integer division by zero raises SIGFPE... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unsigned long long... yes
checking for inttypes.h... yes
checking whether the inttypes.h PRIxNN macros are broken... no
checking for ld used by GCC... ld
checking if the linker (ld) is GNU ld... yes
checking for shared library run path origin... done
checking argz.h usability... yes
checking argz.h presence... yes
checking for argz.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking nl_types.h usability... yes
checking nl_types.h presence... yes
checking for nl_types.h... yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for unistd.h... (cached) yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking for feof_unlocked... yes
checking for fgets_unlocked... yes
checking for getc_unlocked... yes
checking for getcwd... yes
checking for getegid... yes
checking for geteuid... yes
checking for getgid... yes
checking for getuid... yes
checking for mempcpy... yes
checking for munmap... yes
checking for putenv... yes
checking for setenv... yes
checking for setlocale... yes
checking for stpcpy... yes
checking for strcasecmp... yes
checking for strdup... yes
checking for strtoul... yes
checking for tsearch... yes
checking for __argz_count... yes
checking for __argz_stringify... yes
checking for __argz_next... yes
checking for __fsetlocking... yes
checking for iconv... yes
checking for iconv declaration... install-shextern size_t
iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
char * *outbuf, size_t *outbytesleft);
checking for nl_langinfo and CODESET... yes
checking for LC_MESSAGES... yes
checking for bison... bison
checking version of bison... 2.5, ok
checking whether NLS is requested... yes
checking whether included gettext is requested... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking for aclocal... no
checking for autoconf... no
checking for autoheader... no
configure: updating cache ./config.cache
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.intl
config.status: creating config.h
config.status: executing default-1 commands
Configuring in ./gcc
configure: creating cache ./config.cache
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... powerpc-unknown-morphos
checking LIBRARY_PATH variable... ok
checking GCC_EXEC_PREFIX variable... ok
checking whether to place generated files in the source directory... no
checking whether a default linker was specified... yes (/gg/ppc-morphos/bin/ld - GNU ld)
checking whether a default assembler was specified... yes (/gg/ppc-morphos/bin/as - GNU as)
checking for i686-pc-linux-gnu-gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
Finał:
checking whether getrusage is declared... yes
checking whether ldgetname is declared... no
checking whether times is declared... yes
checking whether sigaltstack is declared... yes
checking for struct tms... yes
checking for clock_t... yes
checking for .preinit_array/.init_array/.fini_array support... yes
checking if mkdir takes one argument... no
*** Configuration powerpc-unknown-morphos not supported
make[2]: *** [configure-gcc] Error 1
make[2]: Leaving directory `/tmp/tmp.sXoYHomyZp/gcc4/gcc-4.4.5/build'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/tmp/tmp.sXoYHomyZp/gcc4/gcc-4.4.5/build'
make: *** [gcc4_make] Error 2
Ewentualnie jestem w stanie na privie oddać stery przez ssh jakby co 😉 z małym info.
Ps. Fakt że katalog z gcc jest jako gcc-4.4.5 teoretycznie nie gra roli, nie zmieniłem tego aby uniknąć niepotrzebnych błędów już na początku. Rzeczywiście jest tam kod 4.6.4.
Coś jakby wydaje mi się, że można przełączać się między wersjami kompilowanego GCC przy pomocy jednej opcji w configu, trzeba sprawdzić.
wskazane urządzenie nie jest już wspierane technicznie przez producenta. Oznacza to, iż części nie są już dostępne, ponieważ ustała ich produkcja. Nie posiadamy również zasilaczy do tego typu starszego sprzętu, by sprawdzić co jest przyczyną usterki.
Wiedziałem 🙂
To może z drugiej strony zaatakować problem. Mam na myśli sprawdzenie samego zasilacza aby wykluczyć ewentualną przyczynę w postaci jego niewystarczającej wydajności prądowej. Zasilacz Powinien dawać: 24.5 V 2.65 A – w przybliżeniu 65 W. To chyba jest w stanie sprawdzić każdy serwis elektroniczny (mam nadzieję ).
Oryginały na ebaju częściej się pojawiają niż na allegdrogo, mi udało się kupić za około 170 zeta (z przesyłką ).
No właśnie jest bardzo wyraźnie napisane. Nie jest to jakiś "replacement". Chociaż to tylko naklejka… Chińczycy nie takie naklejki potrafią zrobić. 🙂
Aaa-a naklejka … Na moim jest nadruk szarą czcionką bezpośrednio na obudowie (na cienkim boku) tak samo jak na zasilaczu od minimaka. Na większym boku jest wytłoczone logo (po obu stronach zasilacza).
Ja mam kwadratowy ale w handlu są też i podróby kwadratowe. Jak ma wyraźnie napisane że wyprodukowane przez apple to powinien być oryginał a jek nie to ściema jest.
A na jaki kolor świeci led na wtyku zasilacza ?
Wcześniej bez baterii, na samym zasilaczu PB startował ?
Może reset PMU zrobić ?
1. If the computer is on, turn it off.
2. Disconnect the AC Adapter and remove the computer’s battery.
3. Press and hold down the power button for 5 seconds and then release the button.
4. Reconnect the battery and AC Adapter.
5. Press the Power button to restart the computer.
Tylko może nie wkładać baterii w pkt. 4 (o ile wcześniej PB odpalał tylko na zasilaczu).
tzn. ma tabliczkę znamionową apple ?
Copyright 2014 - Wszelkie prawa zastrzeżone MorphOS.pl