Kompilieren des ds-mod unter Mac OS X

Von fakeroot habe ich das aktuelle Debian Paket installiert.
Mit fink arbeite ich wegen unangenehmer Seiteneffekte nicht gerne, wäre aber evtl. auch möglich.

Bei "make precompiled" komme ich inziwschen bis zu folgender Stelle:
Code:
/Users/Shared/Daten/89_Fritzbox/work/olli2/ds-0.2.9_26-13/source/crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.5-glibc-2.3.6/glibc-2.3.6/configure
..... (einige Zeilen ausgelassen)
checking for suffix of object files... configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
Im "config.log" finde ich keine Details (jedenfalls kein mit denen ich was anfangen kann).
 
Der Fehler steht ja da. Anscheinend kann der mit falschen CFlags zusammenhängen bzw. CFlags die dein gcc nicht kennt. Kannst du die in deinem config.log sehen? (Link)
Man kann den Test mit "ac_cv_objext=o" überschreiben. Aber da das im Crosstool ist, weiß ich nicht wo.

MfG Oliver
 
Leider habe ich in den verschiedenen Unterverzeichnissen insgesamt 13 "config.log" Dateien, was mich zunächst verwirrt hatte.
Ich glaube aber, jetzt habe ich die richtige gefunden.
Code:
configure:2651: checking for suffix of object files
configure:2672: gcc -c   conftest.c >&5 
Assembler messages:
Fatal error: invalid listing option `r' 
configure:2675: $? = 1 
configure: failed program was:
| /* confdefs.h.  */  
| 
| #define PACKAGE_NAME "GNU C Library"
| #define PACKAGE_TARNAME "c-library"
| #define PACKAGE_VERSION "(see version.h)"
| #define PACKAGE_STRING "GNU C Library (see version.h)"
| #define PACKAGE_BUGREPORT "glibc"
| /* end confdefs.h.  */  
| 
| int 
| main ()
| {
| 
|   ;   
|   return 0;
| }
configure:2689: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.

Das Problem liegt meiner Meinung nach in diesem Teil des configure Skripts "ds-0.2.9_26-13/source/crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.5-glibc-2.3.6/glibc-2.3.6/configure" :
Code:
2672 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
2673   (eval $ac_compile) 2>&5
2674   ac_status=$?
2675   echo "$as_me:$LINENO: \$? = $ac_status" >&5
2676   (exit $ac_status); }; then
2677   for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
2678   case $ac_file in
2679     *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
2680     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
2681        break;;
2682   esac
2683 done
2684 else
2685   echo "$as_me: failed program was:" >&5
2686 sed 's/^/| /' conftest.$ac_ext >&5
2687 
2688 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot comp     ile
2689 See \`config.log' for more details." >&5
2690 echo "$as_me: error: cannot compute suffix of object files: cannot compile
2691 See \`config.log' for more details." >&2;}
2692    { (exit 1); exit 1; }; }
2693 fi
Bin mir da aber nicht ganz sicher undbin da auch noch nicht weitergekommen.

Hier habe ich mal die Zeilen 2672-2676 mit echo ausgegeben.
Vielleich kann ja jemaand etwas damit anfangen. Ich muss gestehen, das ist mir etwas zu hoch. Ich seh nur, dass nach der Bedingung der else Zweig (2684-2692) ausgeführt wird, was zum Abbruch führt.
Code:
if { (eval echo "configure:2676: \$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5\") >&5
  (eval $CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5) 2>&5
  ac_status=0
  echo configure:2676: $? = 1 >&5
  (exit 1); }; then
 
Zuletzt bearbeitet:
Okay, da keine CFlags da sind wird es daran wohl nicht liegen. Aber ich kann halt nur nach dem Problem googeln. Vielleicht hilft der Link. Geht zwar um distcc, aber vielleicht ist das Problem ähnlich.

MfG Oliver

edit: Oder hier.
 
Ja, vielen Dank für Dein Engagment. Ich bin hier auch schon ewig am Googlen.

Ich hab mal denn gcc Aufruf mit einem -v versehen und erhalte nun etwas mehr Ausgabe. Hilft mir aber im Augenblick auch nicht weiter.

Hier mal ein Ausschnitt mit dem as Aufruf:
Code:
...
as -arch i386 -force_cpusubtype_ALL -o conftest.o /var/tmp//ccBqqtfR.s
Assembler messages:
Fatal error: invalid listing option `r'
ar: 'conftest.o': No such file
...
Da steht jetzt nix drin, was es laut manpage nicht gäbe.
Was diese Datei in /var/tmp zu sagen hat, weiss ich nicht.
Edit: Ach doch, die wird etwas weiter oben von cc1 erstellt
 
Zuletzt bearbeitet:
Wie bekomm ich denn die Ausgabe aus deinem letzten Post? Ich denke da wird der falsche "as" genommen.

MfG Oliver
 
Ich habe einfach kurz vor der Zeile mit der Bedingung, die dann zum Abbruch führt eine Zeile eingefügt:
Code:
CC="$CC -v"
Das ist bei mir also vor Zeile 2672 im Skript "ds-0.2.9_26-13/source/crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.5-glibc-2.3.6/glibc-2.3.6/configure", das ich ja im Posting 63 im zweiten Code Abschnitt schon auszugweise zitiert habe.

Das mit dem "falschen" as ist eine Möglichkeit.
Da ich die PATH Variable umgebogen habe, wir der as in "./ds-0.2.9_26-13/toolchain/build/gcc-3.4.5-glibc-2.3.6/mipsel-unknown-linux-gnu/mipsel-unknown-linux-gnu/bin//as" genommen und nicht der as in "/usr/bin/as"
Ich werde das mal weiterverfolgen und berichten.

Edit: Ergebnis:
Code:
...
checking version of as... 1.38, bad
...
configure: error:
*** These critical programs are missing or too old: as
*** Check the INSTALL file for required versions.



% as --version                       1402 
Apple Computer, Inc. version cctools-590.23.2.obj~17, GNU assembler version 1.38

Das Skript verlangt as Version 2.13 - 2.19
 
Zuletzt bearbeitet:
Das sieht doch schon besser aus. ;-)
Link

MfG Oliver
 
Gut; man kann also das configure Skript bezüglich as und ld reinlegen ;).
Hab ich gemacht und komme dann ein ganzes Stück weiter bis zur wenig ermutigenden Fehlermeldung:
Code:
error: #error Use a Linux compiler or give up.
Schreckt mich aber nicht.
Ich seh mal zu, wie ich weiterkomme (hab' schon ne Idee) und melde mich dann wieder.
Danke schon mal bis hier.
 
Das hier liest sich doch ganz gut.

MfG Oliver
 
Ja, stimmt.
Ich machs im Augenblick etwas anders.
In einem zweiten Terminal Fenster lasse ich eine while Schelife laufen, die prüft, ob die Datei existiert, die error Zeile enthält und falls ja mit ein "perl -pi -e" Aufruf gleich wieder elimniert.

Nicht schön, ich weiß, aber da die Datei beim Kompilieren immer wieder neu erstellt wird, hab ich's halt jetzt mal so gemacht.

Im Augenblick versuche ich einen weiteren Fehler zu eliminieren.
Sieht so aus:
Code:
*** errlist.c count 1134 vs Versions sys_errlist@GLIBC_2.0 count 123
make[3]: *** [ds-0.2.9_26-13/source/crosstool-0.43/build/mipsel-unknown-linux-gnu/gcc-3.4.5-glibc-2.3.6/build-glibc/stdio-common/errlist-compat.c] Error 1
make[2]: *** [stdio-common/subdir_lib] Error 2
make[1]: *** [lib] Error 2
make: *** [source/crosstool-0.43/.installed] Error 2
Ich weiß aber noch nicht, woher das kommt und schon gar nicht, was es bedeutet.

Edit:
Ach ja. Bisher habe ich nach "make menuconfig" rd. 890MB im Hauptverzeichnis (ohne die Dateien in dl, die ich ausgelagert habe).
 
Da fehlt gnu awk? (Link)
Ist ja echt eine Odyssee mit so einem MAC. Aber mit cygwin ist es ja auch nicht besser.

MfG Oliver
 
Das war auch mein Verdacht.
Ich habs schon installiert und es läuft gerade weiter.
Ein Problem war, dass ich nicht die aktuellste Version installieren konnte (gab nen error bei "make").
Hab ich halt 'ne etwas ältere genommen.

Edit:
Scheint jetzt ganz gut zu laufen (Bin jetzt bei knapp 1GB).
Ich geh schlafen und lass' das Ganze jetzt mal weiterlaufen.
 
Zuletzt bearbeitet:
Hey Leute,

es tut mir leid, aber ich versteh nur "Bahnhof".
Ich habe von kompilieren etc. pp. einfach mal gar keinen Plan.

Ich will einfach nur ds-mod auf meiner Box drauf haben (da ist doch ein webserver integriert, oder?).
Wer kann eine Anleitung zur Verfügung stellen, die für einen Newbie verständlich ist.
Wenn ich das richtig rausgehört habe, brauche ich für OS-X noch ein separates Programm? Welches?

Bitte helft mir.
Danke!

Bodo
 
Lieber Bodo,

Du willst also "einfach nur" eine komplette Toolchain mit zwei Compilern für Kernel- und User-Mode-Binaries bauen und damit dann für die Fritz!Box ein komplettes Betriebssystem (Firmware) mit zusätzlichen Anwendungen bauen. Das ist leider nicht trivial, insbesondere aufgrund der Tatsache, daß der DS-Mod unter Linux gebaut werden sollte, nicht unter MacOS. Letzteres ist etwas für versierte Bastler.

Am einfachsten wäre wohl für Dich, unter VMware Fusion eine Linux-Umgebung zu emulieren, z.B. FriBoLi darin laufen zu lassen und damit den DS-Mod zu bauen. Das wird Dir immer noch schwer genug fallen als Einsteiger, aber wenigstens hättest Du schon die richtige Build-Umgebung.

Evtl. gibt es einen Weg zu erreichen, was Du möchtest, der einfacher ist. Was möchtest Du mit der Box machen und wozu möchtest Du den Webserver einsetzen?
 
Hi,

korrekt ich möchte "einfach nur "... ;-)
Wie's aussieht geht es aber mit "einfach nur" nicht.


Ich möchte auf die USB-Platte eine vielzahl von 2-3MB großen Privatbildern packen (webhosting für die Masse zu teuer) und auch das eine oder Privatvideo. Nein, keine Pornos ;-)

Diese Inhalte sollen wir "jedermann" per http abrufbar sein (Stichwort DynDNS, aber das krieg ich hin).
Gleichzeitig möchte ich einen FTP-Zugang mit Passwort haben.
FTP-Zugang wird von Haus aus unterstützt und funktioniert soweit ... ich brauche also nur noch den HTTP-Zugang. Und vielleicht sogar so einen, den ich irgendwann mal mit WEBDAV modifizieren kann und so auf die USB-Platte per WEBDAV (als iDisk-Ersatz) zugreifen kann. Aber das ist webdav-Ding ist zukunftsmusik.

Gibt es nicht irgendwas, was ich einfach nur als Firmwareupdate (ähnlich zu den Laborversionen von avm) aufspielen kann?

Bodo
 
Fertige FW-Updates dürfen laut AVM-Lizenzbedingungen nicht angeboten werden. Aber Du kannst anstatt DS-Mod eine Nachlade-Lösung machen, also BusyBox mit httpd bauen oder einen der diversen anderen Web-Server, welche inzwischen für die Box kompiliert wurden, einsetzen. Schau Dich mal im Thema Apache 1.3.37 + PHP 5.2.2 CGI + More um, dort gibt es fertige Binaries für Apache, thttpd, mini_httpd, PHP in diversen Varianten zum Download. Es berichtet auch jemand, daß er eine Seite mit privaten Bildern (genau, was Du auch willst) monatelang per Apache stabil und performant online hatte.

Wir freuen uns trotzdem, wenn Du irgendwann das Ganze selbst in die Hand nehmen und den DS-Mod einsetzen möchtest. Damit mußt Du Dich dann aber schon ein bißchen beschäftigen.
 
Ich hab neulich auch wieder mal einen Anlauf auf dem Mac gestartet.
Das Hauptproblem beim Kompilieren des ds-mod unter Mac OS X ist mE die Tatsache, dass es einfach zu viele Variablen gibt, sodass ein Ansatz, der heute gelingt, morgen schon komplett unbrauchbar sein kann. Das gleiche gilt natürlich für Anleitungen/Empfehlungen, die man in Foren oder auf anderen Webseiten findet.

Das beginnt bei den unterschiedlichen Mac OS X Versionen, geht weiter mit den verschiedenen Prozessor Varianten (PPC, Intel), den unterschiedlichen "Endians" und setzt sich fort mit den unterschiedlichen Versionen der erforderlichen Zusatzsoftware (im Wesentlichen diverse GNU Tools), die teilweise unter Mac OS X unter gleichem Namen, aber in der SUSv3 (oder einer anderen) Variante vorliegt.
Hinzu kommen die unterschiedlichen Boxen, die verschiedenen AVM Firmware Versionen und schließlich die verschiedenen ds-mod Versionen.

Mir ist das Ganze mit viel Hilfe hier aus dem Forum und viel probieren und basteln ein paar mal gelungen (s. Posting 15).
Ich kann also Alexander nur voll und ganz zustimmen, dass das nur für Bastler interessant is und jede Menge Zeit beansprucht.

Meinen letzen mod habe ich dann schließlich in Parallels unter Linux gebaut.
Möglicherweise geht es auf dem Mac auch unter Ubuntu oder eine anderen Linux Version für Macs.
 
... dann werde ich das mal unter dem mac lieber lassen.
Hab auch sowieso nicht so den Plan davon.

Danke für die Posts.

Bodo
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.