Crosscompiling für QNAP (Arm)

Für Installationen unter MacOS u.a. Betriebssystemen
Antworten
mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Crosscompiling für QNAP (Arm)

Beitrag von mschnell »

Dann probiere ich heute abend mal den aktuellen gdb 7.5 auf dem QNAP zu übersetzen.

-Michael

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Crosscompiling für QNAP (Arm)

Beitrag von mschnell »

Grrr.

./configure läuft komplett durch und erkennt alles mögliche und kann dann am Ende den Makefile nicht schreiben :(.

Code: Alles auswählen

configure: creating ./config.status
config.status: creating Makefile
awk: ./conf5LxciE/subs.awk:7: Unexpected token
config.status: error: could not create Makefile
 


Wat Nu ?

-Michael
Dateianhänge
config_QNAP.txt
(3.99 KiB) 181-mal heruntergeladen

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Crosscompiling für QNAP (Arm)

Beitrag von af0815 »

Auf der Nas ist ein relativ komplexes Umfeld. Nicht alle Standardtools verhalten sich gleich mit den Tools die man auf i386 gewohnt ist. Das ist auch einer der Gründe warum sich komplexere QPKGs (sind die Installationspakete) sich eigene Umgebungen schaffen.

Auch mal bei Google nach "configure awk unexpected token" das ist ein verbreitete Problem, und kann scheinbar nur durch das ersetzen von ein paar Tools (statt busybox) hingebogen werden.

Das sind übrigens ein paar der Gründe warum ich lieber versuche Cross zu kompilieren mit den richtigen Toolchain.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Crosscompiling für QNAP (Arm)

Beitrag von mschnell »

af0815 hat geschrieben:Auch mal bei Google nach "configure awk unexpected token" das ist ein verbreitete Problem, und kann scheinbar nur durch das ersetzen von ein paar Tools (statt busybox) hingebogen werden.


ich hatte gehofft, du hättest schon etwas dazu in der Tasche...

Im QNAP Forum habe ich gefunden:
QNAP Forum hat geschrieben:This error is due to light awk (and sed) support provided by busybox implementation.
You should install the GNU awk (and sed) with ipkg and replace the existing one in /bin

Ich werd's 'mal versuchen. Aber zum Kompilieren von awk wird man möglicherweise auch wieder configure brauchen (Henne/Ei) ...

Man könnte es aus einem Debian Package "von Hand" extrahieren (das habe ich mit meinem ersten fpc für das QNAP erfolgreich so gemacht).

Schön wäre, wenn man irgendwo ein weniger "deeply embedded" ARM System hätte, von dem man sich die aktuellen Versionen der notwendigen Programme abziehen könnte (man kann Debian auf dem QNAP installieren, ich habe aber keines übrig :( ) .... (oder man muss eben cross-compilieren).


-Michael

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Crosscompiling für QNAP (Arm)

Beitrag von af0815 »

Achtung beim Ersetzen von Tools, das das nach einem Update bzw Bugfix noch funktioniert!

Übriges ist das ein Grund warum ich mir 2 Nas gekauft habe. Eine Produktiv, die andere für Versuche.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Crosscompiling für QNAP (Arm)

Beitrag von mschnell »

Ich vermute, wenn man das Symlink zur Busybox ersetzt, wird das schon nach einem Reset wieder in den Ur-Zustand versetzt (weil diese Directories im RAM-Filesystem liegen). Wenn man das dauerhaft erhalten will, kann man das Ersetzen in das Initialisierungs-Script von Optware einbauen.

-Michael

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Crosscompiling für QNAP (Arm)

Beitrag von af0815 »

Bei der Beschreibung gehe ich nochmals zurück an den Start und teste das nochmals durch. Ich muß doch als root die Umgebung installieren, es wird sonst nur unnötig komplizierter. Allein mit sudo kann ich da den root nicht so einfach ersetzen und es soll ja möglichst einfach werden. Vielleicht habe ich auch zu wenig Erfahrung damit.

mschnell hat geschrieben:Ich werd's 'mal versuchen. Aber zum Kompilieren von awk wird man möglicherweise auch wieder configure brauchen (Henne/Ei) ...
Nein aus dem ipkg installieren.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Crosscompiling für QNAP (Arm)

Beitrag von mschnell »

Ja !!! Wenn man herausgefunden hat dass das Paket "gawk" heißt :D

Code: Alles auswählen

ipkg install gawk
ipkg install sed


Die Symlinks setzen (löschen hätte gereicht, weil /opt/bin ja sowieso im Pfad ist), dann klappt das ./configure und erzeugt mir ein Make-File für gdb.

Code: Alles auswählen

configure: creating ./config.status
config.status: creating Makefile
[/share/Public/heizarm/gdb-7.5]


das make klappt nicht (wäre ja auch zu schön):

Code: Alles auswählen

checking for grep that handles long lines and -e... configure: error: no acceptable grep could be found in /bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/sbin:/opt/bin:/opt/sbin:/usr/xpg4/bin
make[1]: *** [configure-libiberty] Error 1


also suchen wir nach grep...

Wunderbar: Auch dafür gibt es ein ipkg !

Jetzt ist er beim compilieren....

Nach einer geraumen Zeit kommt:

Code: Alles auswählen

gnulib/import -Ibuild-gnulib/import   -DTUI=1  -Wall -Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral -Wno-pointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement  -c -o tui-command.o -MT tui-command.o -MMD -MP -MF .deps/tui-command.Tpo ./tui/tui-command.c
In file included from ./tui/tui-command.c:25:
./tui/tui-data.h:38: error: expected specifier-qualifier-list before 'WINDOW'
In file included from ./tui/tui-command.c:26:
./tui/tui-win.h:40: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'tui_border_ulcorner'
./tui/tui-win.h:41: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'tui_border_urcorner'
./tui/tui-win.h:42: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'tui_border_lrcorner'
./tui/tui-win.h:43: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'tui_border_llcorner'
./tui/tui-win.h:44: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'tui_border_vline'
./tui/tui-win.h:45: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'tui_border_hline'
./tui/tui-command.c: In function 'tui_dispatch_ctrl_char':
./tui/tui-command.c:79: error: 'WINDOW' undeclared (first use in this function)
./tui/tui-command.c:79: error: (Each undeclared identifier is reported only once
./tui/tui-command.c:79: error: for each function it appears in.)
./tui/tui-command.c:79: error: 'w' undeclared (first use in this function)
./tui/tui-command.c:79: error: 'struct tui_gen_win_info' has no member named 'handle'
./tui/tui-command.c:84: warning: implicit declaration of function 'wgetch'
./tui/tui-command.c:85: error: 'ERR' undeclared (first use in this function)
./tui/tui-command.c:92: error: 'KEY_PPAGE' undeclared (first use in this function)
./tui/tui-command.c:94: error: 'KEY_NPAGE' undeclared (first use in this function)
./tui/tui-command.c:112: error: 'KEY_DOWN' undeclared (first use in this function)
./tui/tui-command.c:113: error: 'KEY_SF' undeclared (first use in this function)
./tui/tui-command.c:116: error: 'KEY_UP' undeclared (first use in this function)
./tui/tui-command.c:117: error: 'KEY_SR' undeclared (first use in this function)
./tui/tui-command.c:120: error: 'KEY_RIGHT' undeclared (first use in this function)
./tui/tui-command.c:123: error: 'KEY_LEFT' undeclared (first use in this function)
make[2]: *** [tui-command.o] Error 1


OK, wir haben kein ncurses, deshalb wird TUI nicht gehen.
Ich habe aber gesehen, dass er in einer frühen Phase des make gesagt hat

Code: Alles auswählen

checking ncurses: no


Also sollte er das wissen.... aber beim compilieren hat er "-DTUI=1" angegeben, anscheinend will er die TUI also einbauen.
Mal schauen ob man das irgendwie durch einen Parameter bei make o.ä. vehindern muss...

nun also

Code: Alles auswählen

./configure --disable-tui
make


....

nicht schlecht für den Anfang aber schließlich beim linken:

Code: Alles auswählen

gcc -g -O2      \
        -o gdb gdb.o arm-tdep.o arm-linux-tdep.o glibc-tdep.o solib-svr4.o symfile-mem.o linux-tdep.o ser-base.o ser-unix.o ser-pipe.o ser-tcp.o inf-ptrace.o fork-child.o arm-linux-nat.o proc-service.o linux-thread-db.o linux-nat.o linux-osdata.o linux-fork.o linux-procfs.o linux-ptrace.o remote.o dcache.o tracepoint.o ax-general.o ax-gdb.o remote-fileio.o  cli-dump.o cli-decode.o cli-script.o cli-cmds.o cli-setshow.o cli-logging.o cli-interp.o cli-utils.o mi-out.o mi-console.o mi-cmds.o mi-cmd-env.o mi-cmd-var.o mi-cmd-break.o mi-cmd-stack.o mi-cmd-file.o mi-cmd-disas.o mi-symbol-cmds.o mi-cmd-target.o mi-cmd-info.o mi-interp.o mi-main.o mi-parse.o mi-getopt.o python.o py-value.o py-prettyprint.o py-auto-load.o elfread.o stap-probe.o posix-hdep.o c-exp.o cp-name-parser.o objc-exp.o ada-exp.o jv-exp.o f-exp.o go-exp.o m2-exp.o p-exp.o version.o annotate.o addrmap.o auto-load.o auxv.o agent.o bfd-target.o blockframe.o breakpoint.o findvar.o regcache.o cleanups.o charset.o continuations.o corelow.o disasm.o dummy-frame.o dfp.o source.o value.o eval.o valops.o valarith.o valprint.o printcmd.o block.o symtab.o psymtab.o symfile.o symmisc.o linespec.o dictionary.o infcall.o infcmd.o infrun.o expprint.o environ.o stack.o thread.o exceptions.o filesystem.o inf-child.o interps.o main.o macrotab.o macrocmd.o macroexp.o macroscope.o mi-common.o event-loop.o event-top.o inf-loop.o completer.o gdbarch.o arch-utils.o gdbtypes.o osabi.o copying.o memattr.o mem-break.o target.o parse.o language.o buildsym.o findcmd.o std-regs.o signals.o exec.o reverse.o bcache.o objfiles.o observer.o minsyms.o maint.o demangle.o dbxread.o coffread.o coff-pe-read.o dwarf2read.o mipsread.o stabsread.o corefile.o dwarf2expr.o dwarf2loc.o dwarf2-frame.o dwarf2-frame-tailcall.o ada-lang.o c-lang.o d-lang.o f-lang.o objc-lang.o ada-tasks.o ada-varobj.o ui-out.o cli-out.o varobj.o vec.o go-lang.o go-valprint.o go-typeprint.o jv-lang.o jv-valprint.o jv-typeprint.o m2-lang.o opencl-lang.o p-lang.o p-typeprint.o p-valprint.o sentinel-frame.o complaints.o typeprint.o ada-typeprint.o c-typeprint.o f-typeprint.o m2-typeprint.o ada-valprint.o c-valprint.o cp-valprint.o d-valprint.o f-valprint.o m2-valprint.o serial.o mdebugread.o top.o utils.o ui-file.o user-regs.o frame.o frame-unwind.o doublest.o frame-base.o inline-frame.o gnu-v2-abi.o gnu-v3-abi.o cp-abi.o cp-support.o cp-namespace.o reggroups.o regset.o trad-frame.o tramp-frame.o solib.o solib-target.o prologue-value.o memory-map.o memrange.o xml-support.o xml-syscall.o xml-utils.o target-descriptions.o target-memory.o xml-tdesc.o xml-builtin.o inferior.o osdata.o gdb_usleep.o record.o gcore.o jit.o progspace.o skip.o probe.o common-utils.o buffer.o ptid.o gdb-dlfcn.o common-agent.o format.o inflow.o    init.o \
           ../readline/libreadline.a ../opcodes/libopcodes.a ../bfd/libbfd.a  ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a    -ldl -lz -lm -lexpat ../libiberty/libiberty.a  build-gnulib/import/libgnu.a -ldl -Wl,--dynamic-list=./proc-service.list
utils.o: In function `init_page_info':
/share/Public/heizarm/gdb-7.5/gdb/utils.c:1680: undefined reference to `tgetnum'

../readline/libreadline.a(display.o): In function `cr':
/share/Public/heizarm/gdb-7.5/readline/display.c:2486: undefined reference to `tputs'

../readline/libreadline.a(display.o): In function `_rl_clear_screen':
/share/Public/heizarm/gdb-7.5/readline/display.c:2365: undefined reference to `tputs'

../readline/libreadline.a(display.o): In function `_rl_clear_to_eol':
/share/Public/heizarm/gdb-7.5/readline/display.c:2336: undefined reference to `tputs'

../readline/libreadline.a(display.o): In function `_rl_move_vert':
/share/Public/heizarm/gdb-7.5/readline/display.c:2057: undefined reference to `tputs'

/share/Public/heizarm/gdb-7.5/readline/display.c:2073: undefined reference to `tputs'
../readline/libreadline.a(display.o):/share/Public/heizarm/gdb-7.5/readline/display.c:1985: more undefined references to `tputs'
follow
../readline/libreadline.a(display.o): In function `insert_some_chars':
/share/Public/heizarm/gdb-7.5/readline/display.c:2390: undefined reference to `tgoto'

/share/Public/heizarm/gdb-7.5/readline/display.c:2391: undefined reference to `tputs'
../readline/libreadline.a(display.o): In function `delete_chars'
:
/share/Public/heizarm/gdb-7.5/readline/display.c:2440: undefined reference to `tputs'
../readline/libreadline.a(display.o): In function `insert_some_chars'
:
/share/Public/heizarm/gdb-7.5/readline/display.c:2407: undefined reference to `tputs'
/share/Public/heizarm/gdb-7.5/readline/display.c:2416: undefined reference to `tputs'

../readline/libreadline.a(display.o): In function `delete_chars':
/share/Public/heizarm/gdb-7.5/readline/display.c:2433: undefined reference to `tgoto'

/share/Public/heizarm/gdb-7.5/readline/display.c:2434: undefined reference to `tputs'
../readline/libreadline.a(display.o): In function `insert_some_chars'
:
/share/Public/heizarm/gdb-7.5/readline/display.c:2400: undefined reference to `tputs'
../readline/libreadline.a(display.o): In function `rl_redisplay'
:
/share/Public/heizarm/gdb-7.5/readline/display.c:1087: undefined reference to `tputs'
../readline/libreadline.a(terminal.o): In function `_rl_set_cursor'
:
/share/Public/heizarm/gdb-7.5/readline/terminal.c:786: undefined reference to `tputs'
../readline/libreadline.a(terminal.o): In function `_rl_control_keypad'
:
/share/Public/heizarm/gdb-7.5/readline/terminal.c:760: undefined reference to `tputs'
../readline/libreadline.a(terminal.o):/share/Public/heizarm/gdb-7.5/readline/terminal.c:748: more undefined references to `tputs'
follow
../readline/libreadline.a(terminal.o): In function `_rl_get_screen_size':
/share/Public/heizarm/gdb-7.5/readline/terminal.c:316: undefined reference to `tgetnum'

/share/Public/heizarm/gdb-7.5/readline/terminal.c:297: undefined reference to `tgetnum'
../readline/libreadline.a(terminal.o): In function `_rl_init_terminal_io'
:
/share/Public/heizarm/gdb-7.5/readline/terminal.c:500: undefined reference to `tgetent'
../readline/libreadline.a(terminal.o): In function `get_term_capabilities'
:
/share/Public/heizarm/gdb-7.5/readline/terminal.c:446: undefined reference to `tgetstr'
/share/Public/heizarm/gdb-7.5/readline/terminal.c:446: undefined reference to `tgetstr'

../readline/libreadline.a(terminal.o): In function `_rl_init_terminal_io':
/share/Public/heizarm/gdb-7.5/readline/terminal.c:564: undefined reference to `tgetflag'

/share/Public/heizarm/gdb-7.5/readline/terminal.c:579: undefined reference to `tgetflag'
/share/Public/heizarm/gdb-7.5/readline/terminal.c:564: undefined reference to `tgetflag'

/share/Public/heizarm/gdb-7.5/readline/terminal.c:493: undefined reference to `BC'
/share/Public/heizarm/gdb-7.5/readline/terminal.c:493: undefined reference to `PC'

/share/Public/heizarm/gdb-7.5/readline/terminal.c:493: undefined reference to `UP'
collect2: ld returned 1 exit status
make[2]: *** [gdb] Error 1


-Michael

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Crosscompiling für QNAP (Arm)

Beitrag von mschnell »

Da "make clean" anscheinend nicht viel tut, habe ich das directory gelöscht und neu mit tar -xf erzeugt.

dann wieder
./configure --disable-tui und
make

Das ist jetzt ohne Fehlermeldung durchgelaufen.
Und siehe da:

Code: Alles auswählen

[/share/Public/heizarm/gdb-7.5/gdb] # ./gdb --version
GNU gdb (GDB) 7.5
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "armv5tel-unknown-linux-gnueabi".
For bug reporting instructions, please see:
<http://http://http://http://http://http://http://www.gnu.org/software/gdb/bugs/>.
 
[/share/Public/heizarm/gdb-7.5/gdb/gdbserver] # ./gdbserver --version
GNU gdbserver (GDB) 7.5
Copyright (C) 2012 Free Software Foundation, Inc.
gdbserver is free software, covered by the GNU General Public License.
This gdbserver was configured as "armv5tel-unknown-linux-gnueabi"


und sogar

Code: Alles auswählen

(gdb) set target-async on
(gdb) show target-async
Controlling the inferior in asynchronous mode is on.
(gdb)


Bei nativem Compilieren des gdb gibt es wenigstens kein Problem mit dem 64 Bit Linux auf dem Entwicklungsrechner :twisted: .
Und die Konfiguration des gdb passt so wohl auch mit Sicherheit zum Target. Ich halte das deshalb für die sichere Variante als Cross-Compiliern der GDB C-Sourcen.

Dann kann's also losgehen mit dem SSH-debuggen ! :D

Aus der Sourcery Installation wird jetzt vermutlich nur noch der cross-ld zum fpc-cross-Comnpilieren gebraucht. Wahrscheinlich also nur eine Datei, die wir unter GPL wohl problemlos im Wiki zur Verfügung stellen können. Frage: braucht man die dann in 32 und 64 Bit Version ? (Ich vermute, 32 Bit reicht)

-Michael
Zuletzt geändert von mschnell am Sa 2. Mär 2013, 07:46, insgesamt 5-mal geändert.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Crosscompiling für QNAP (Arm)

Beitrag von mschnell »

af0815 hat geschrieben: Es müssen nur mindesten 3 Durchläufe sein, damit sichergestellt ist, das der Compiler und die Bibliotheken mit dem selben stabilen ppc kompiliert sind.


Habe ich auch gelesen aber wie ist das zu verstehen ?

1) der Bootstrap-Compiler erzeugt einen Bootrstrap-Cross-Compiler aus den Bootstrap Sourcen
2) der Bootstrap-Cross-compiler erzeugt die Cross-RTL-dcus aus den svn-sourcen
3) der Bootstrap-Compiler erzeugt mit Hilfe der Cross-RTL-dcus den Cross-Compiler aus den svn sourcen

oder wie ?

Sollte das "make crossinstall" das alles von selber tun ?

Das kann bei mir nicht funktioniert habe, weil ich die Bootstrap-Sourcen gar nicht geladen habe.

Ich warte also auf die nächste Version Deiner Anleitung.

-Michael

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Crosscompiling für QNAP (Arm)

Beitrag von af0815 »

Ich werde mal mit dem Cross von Arm only gdb anfangen. Dann kannst du zumindest mal weiter.

Mit beiden Anleitungen sollte es jetzt schon gehen, man darf halt nicht den Fehler machen, das ganze als Benutzer zu machen, das kompliziert die Sache zusätzlich. Wenn man alles als Root macht geht's einfacher.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Crosscompiling für QNAP (Arm)

Beitrag von mschnell »

Leider komme ich mit dem Bauen des Cross-Compilers nicht weiter (s.o. "make install" beendet sich mit einer obskurer "timeout" Fehlermeldung). Habe ich in Deiner Anleitung etwas übersehen ?

Ich habe das tatsächlich nicht als "root" versucht. Ist das das Problem ? Oder dass ich ein 64 Bit Linux habe ? Oder dass ich Sqeeze habe und nicht Weezy ? Oder dass ich nicht die Sourcen der Versionsnummer des Bootstrap-Compilers/RTL habe ? Oder dass ich sonst einen Fehler gemacht habe ?

Ich könnte zwar theoretisch auf dem Target mit fpc compilieren und dann remote-Debuggen versuchen, aber das ist ja nicht der Sinn der Sache.

Den gdb auf dem Entwicklungs-Recher cross zu kompilieren halte ich bei Zielsystemen, bei denen es auch nativ geht nicht für sehr sinnvoll.

-Michael

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Crosscompiling für QNAP (Arm)

Beitrag von mschnell »

Ich habe "make crossinstall ...... " nun als root versucht.

Ich bekomme wieder eine unspezifische Fehlermeldung, wenn mit ppcrossarm anscheinend die rtl gebaut werden soll. (" .../compiler/ppcrossarm ...... -FU..../trunk/rtl/units/arm-linux .... system.pp" )

Diesmal aber keine "Timeout" Meldung sondern "out of memory"

"compiler/ppcrossarm" ohne Parameter macht die korrekten Meldungen

-Michael

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Crosscompiling für QNAP (Arm)

Beitrag von af0815 »

Ich habe Probleme mit dem gdb 7.5.1 Cross zu kompilieren, er macht beim configure einen Test, der nicht funktionieren kann. Dadurch gibt es einen Error. Mal sehen was das wieder soll.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Crosscompiling für QNAP (Arm)

Beitrag von mschnell »

Das cross Compilieren des gdb würde ich zurückstellen. Er lässt sich auf dem QNAP ja nativ compilieren....

-Michael

Antworten