benötige gcc 4.7 für Synology DS212+ oder DS415+

Status
Für weitere Antworten geschlossen.

IngoF

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
268
Punkte für Reaktionen
18
Punkte
18
Hallo,

meine Linux-Kentnisse sind nicht wirklich die besten.
Nach drei Tagen mit Google und meiner Diskstation habe ich ipkg, gcc, boost installiert. cmake compilieren lassen und selber die MariaDB-Connector-C++ compiliert.
Jetzt nach dem alle Anhängigkeiten vorhanden sind macht mir gcc 4.2 einen Strich durch die Rechnung.

Die Compiler Option "-std=c++0x" gibt es erst ab Version 4.7. Clang wäre auch eine Möglichkeit, gibt es aber auch nicht für die Diskstations.

Hat jemand eine Idee wie ich dieses Problem umgehen kann? AM liebsten wäre mir der gcc ab Version 4.7

Gruß
ingof
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Cross Compilieren auf einem Linux-Rechner ist wahrscheinlich der einfachere Weg...
 

IngoF

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
268
Punkte für Reaktionen
18
Punkte
18
Danke, das habe ich fast befürchtet.

Denke mal Windows wird nicht so gut gehen?

Kann jemand ein Linux empfehlen? Ich wollte dann ein altes Notebook mit Celeron Prozessor nehmen.

Wo finde ich denn die Toolchain für diese Diskstation. Die wenigen Links die ich gefunden haben lifen nicht mehr (404). Auf der Synology Webseite habe ich auch noch nichts gefunden.

Was benötige ich den sonst noch zum Cross Compilieren?
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.703
Punkte für Reaktionen
2.113
Punkte
829
Hier gibts die toolchains.
 

IngoF

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
268
Punkte für Reaktionen
18
Punkte
18
Danke, die toolchains sind schon mal gefunden. Dann muss ich mich erst mal schlau googlen...
 

IngoF

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
268
Punkte für Reaktionen
18
Punkte
18
Was könnt Ihr für ein Linux zum CrossCompile empfehlen?

Ich muss unter anderem auch den MariaDB-Connector-C++ kompilieren. Zum compilieren muss ich allerdings die MariaDB-Datenbank installiert haben. Reicht es dann MariaDB für den Quellrechner zu installieren? Auf dem Zeilrechner gibt es die MariaDB schon.

Was mache ich den mit der Toolchain?
Einfach nur mit TAR auf dem Linux-Rechner entpacken und loslegen?

Gruß
Ingo
 
Zuletzt bearbeitet:

IngoF

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
268
Punkte für Reaktionen
18
Punkte
18
Ich habe vorgestern andLinux installiert.

Dummerweise kann ich mich nicht als root anmelden. Bei der Installation habe ich auch kein Passwort eingegeben.
Habe heute und gestern fleissig gegoogelt und kann niergendwo ein Default-Passwort finden.

Auch ohne Passwort kann ich mich nicht anmelden. Auch das Windows passwort oder Windows user habe ich auch ausprobiert.

Was mach ich falsch?
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.187
Punkte für Reaktionen
71
Punkte
68
das root Password ist im DSM das Password des Users admin
 

IngoF

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
268
Punkte für Reaktionen
18
Punkte
18
Danke für die Antwort.

Meine Frage ist zum andLinux. Muss mich ja wohl am Crosscompiling versuchen.

Da ich gestern nach drei stunden Suche nicht wirklich schaluer bin werde ich das andLinux mal entfernen und neu installieren.
da andlinux auf Ubuntu aufbaut muss der root erst ein passwort bekommen und aktiviert werden.
Bei mir wird aber sofort user und passwort abgefragt. Ohne dass ich irgendwas eingeben kann.
Denke da muss irgendwas schief gelaufen sein.
Wenn es dort nach der Installation ein Standard-Passwort geben würde. Sollte man das irgendwo bei google finden können.
 

IngoF

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
268
Punkte für Reaktionen
18
Punkte
18
Es sieht so aus als ob andLinux Probleme mit user/Passwort-Kombinationen hat die schon auf dem Windows-PC existieren.
Bei der Installation wird das user und Passwort abgefragt und angelegt. Habe jetzt ein anderes genommen.

Denke ich mach mal einen neuen Thread auf. Jetzt geht es ja eher um CrossCompiling
 

IngoF

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
268
Punkte für Reaktionen
18
Punkte
18
Na das scheint nicht so einfach zu sein.
Habe schon drei Versuche hinter mir. Wenn ich mich anmelde und einene neuen Beitrag schreibe gibt es das Desaster bei der Vorschau oder beim abschicken. Bekomme dann die Meldung dass ich mich erst anmelden soll und alles was ich in der halben Stunde getippt habe ist komplett verschwunden.

Werde mal versuchen alles im Notepad in Windows zu erstellen und dann nach dem anmelden hier schnell per Copy und Paste einfügen.

Es scheint auch nicht möglich zu sein die Dauer bis zum abmelden zu verlängern...
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Ich werf mal zwei Alternativen in den Raum, vielleicht ist ja eine davon einfacher für Dich. Den "c++0x"-Parameter entfernen und daraus resultierende Fehler im Code korrigieren oder eine ältere Version nehmen, welche mit dem gcc auf der DS läuft.
 

IngoF

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
268
Punkte für Reaktionen
18
Punkte
18
Ich werf mal zwei Alternativen in den Raum, vielleicht ist ja eine davon einfacher für Dich. Den "c++0x"-Parameter entfernen und daraus resultierende Fehler im Code korrigieren oder eine ältere Version nehmen, welche mit dem gcc auf der DS läuft.

Danke für den Hinweis.

Das war auch meine erste Idee. Der Author des Quellcodes wollte nicht auf alle "Erweiterungen" verzichten. Wenn der Author schon meint dass es keine gute Idee ist wollte ich das nicht unbedingt probieren Und auf einem älteren Stand würde ich nicht festhängen wollen.

Also wird wohl das CrossCompiling die letzte Möglichkeit sein.
 

xeno010

Benutzer
Mitglied seit
20. Mrz 2015
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hallo,

du kannst auch einfach den GCC auf die DS neu kompilieren, somit den 4.2er gegen 4.x ersetzen.
Dauert nur etwas länger, aber sonst gibt es da keine Probleme.


Ich würde aber Cross Compiling bevorzugen, einfach weil es schneller und bequemer ist.


Dazu kann ich dir nur spksrc ans Herz legen. Damit kannst du wunderbar cross compiling betreiben, toolchains für alle DS sind auch schon vorhanden.
Habe damit auch schon harte Sachen cross-compiliert (mit sehr vielen dependencies ). Alles ohne Probleme.
Später kannst du daraus dann sogar spk Dateien erstellen, die dann noch einfach auf die DS installiert werden können (kannst natürlich auch einfach die binaries rüber ziehen)


Ich würde dafür Debian verwenden.
- VM erstellen, Net-Installation von Ubuntu, spksrc über git ziehen
-> 10min später -> cross compiling kann beginnen.

Ich hoffe ich konnte dir helfen, bei weiteren Fragen stehe ich dir gern zur Seite.
 

IngoF

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
268
Punkte für Reaktionen
18
Punkte
18
Weiss nicht ob das soo einfach geht mit dem GCC kompilieren.

Denke werde auf ubuntu das CrossCompiling angehen. Noch gibt es ein paar ungelöste Probleme. Aber werde mir dann mal spksrc ansehen.

Habe die Programme erst mal zur Not auf dem PC kompiliert und lasse es im Moment dort laufen bis es mit der Diskstation auch läuft...
 

xeno010

Benutzer
Mitglied seit
20. Mrz 2015
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Naja einfach ist relativ :D aber ja, es ist möglich den GCC durch eine andere Version zu ersetzen.

Um welche Software handelt es sich denn und für welche Architektur soll es kompiliert werden? Dann kann ich mir das mal anschauen.

Kleine Anmerkung zu meinem letzten Post:

Ich würde dafür Debian verwenden.
- VM erstellen, Net-Installation von Ubuntu, spksrc über git ziehen
-> 10min später -> cross compiling kann beginnen.

Ich meinte natürlich die Net-Installtion von Debian. Wichtig wäre noch die Ergänzung - 32Bit Version.
Es gehen selbstverständich auch anderen System, spart aber gerade am anfang Ärger und Zeit.

LG
xeno010
 

IngoF

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
268
Punkte für Reaktionen
18
Punkte
18
So, habe heute mal den ganzen Tag versucht GCC-5.3.0 für die DS212+ neu zu kompilieren.

Aber irgendwie will das make vom GCC nicht so ganz.

Habe diese Anleitung mal als Grundlage genommen:
http://wiki.osdev.org/Building_GCC#GCC

Erst gab es diesen Fehler:
The directory that should contain system headers does not exist:
/usr/include
Nach einer Stunde googeln habe ich dann diese Lösung gefunden und habe das Verzeichnis angelegt.
mkdir -p /usr/include

Bei der aktuellen Fehlermeldung komme ich auch mit google nicht weiter:
In file included from ../../../gcc-5.3.0/libgcc/libgcc2.c:27:0:
../../../gcc-5.3.0/libgcc/../gcc/tsystem.h:87:19: fatal error: stdio.h: No such file or directory
compilation terminated.

Kann mir da jemand auf die Sprüge helfen?
DS212> find / -iname stdio.h
/volume1/@tmp/gcc-5.3.0/libstdc++-v3/include/tr1/stdio.h
/volume1/@tmp/gcc-5.3.0/libstdc++-v3/include/c_compatibility/stdio.h
/volume1/@tmp/gcc-5.3.0/fixincludes/tests/base/rtldef/stdio.h
/volume1/@tmp/gcc-5.3.0/fixincludes/tests/base/stdio.h
/volume1/@tmp/gcc-5.3.0/libssp/ssp/stdio.h
/volume1/@tmp/gcc-5.3.0/gcc/testsuite/gcc.dg/cpp/usr/include/stdio.h
/volume1/@optware/include/bits/stdio.h
/volume1/@optware/include/stdio.h
/volume1/@optware/include/c++/4.2.3/tr1/stdio.h

Mein PATH sieht im Moment so aus:
export PATH='/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin:/opt/bin:/opt/gcc-5.3.0/bin'

DANKE
 
Zuletzt bearbeitet:

IngoF

Benutzer
Mitglied seit
17. Okt 2011
Beiträge
268
Punkte für Reaktionen
18
Punkte
18
export CPPFLAGES=-I/opt/include
hat wohl weiter geholfen....

Hänge jetzt an folgendem Problem:
../../gcc-5.3.0/gcc/doc//invoke.texi:1580: Unknown command `tmp/build-gcc/gcc/../../gcc-5.3.0/gcc'.
../../gcc-5.3.0/gcc/doc//invoke.texi:1579: @include `/volume1//../libiberty/at-file.texi': No such file or directory.
makeinfo: Removing output file `doc/gcc.info' due to errors; use --force to preserve.
make[3]: *** [doc/gcc.info] Error 1
make[3]: Leaving directory `/volume1/@tmp/build-gcc/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/volume1/@tmp/build-gcc'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/volume1/@tmp/build-gcc'

die Betreffende Zeile ist folgende:
@include @value{srcdir}/../libiberty/at-file.texi

Was mich wundert sind schon mal die doppelten // im Pfad
Wie kommt sowas?

Die Datei liegt hier:
/volume1/@tmp/gcc-4.9.3/gcc/doc

Die Codezeile war schon seit gcc-4.9.3 unverändert in der invoke.texi. Die Zeile kann also nicht der Fehler sein.

Kann mir jemand einen Tip geben? Evtl. ein anderes Forum?
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat