Crosscompiling für QNAP (Arm)

Für Installationen unter MacOS u.a. Betriebssystemen
Antworten
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 »

Es ist allgemein, auch für gdb/gdbserver.
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 verstehe die Notwendigkeit nicht.

Ich habe (wie beschrieben) auf dem QNAP die aktuelle Version von gdb mit "configure" und "make" (nativ) kompiliert. Dabei kommt sowohl gdb (ohne TUI) als auch gdbserver heraus (wie oben beschrieben):

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://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"

Wenn Du nun dieselben Source-Dateien auf dem PC (nativ) compiliertst, hast Du auch ein zusammen passendes gdb/gdbserver Paar zum remote debuggen, ohne dass Du cross kompilieren musst und ohne dass Du die Sourcery Toolchain benötigst.

Oder verstehe ich da was falsch ?

-Michael
Zuletzt geändert von mschnell am Di 5. Mär 2013, 21:21, insgesamt 1-mal geändert.

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 »

Er macht einen Check, den er beim Cross nicht machen darf. Dann krachst, klarerweise, es für mich aber momentan noch Chr das zu finden. Aber langsam verstehe ich das System.
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:Er macht einen Check, den er beim Cross nicht machen darf.

Sowas hatte ich befürchtet und es lieber nativ versucht. Hat ja auch nicht auf Anhieb geklappt. Aber netterweise waren ja die notwendigen Programme als ipkg leicht erhältlich. Das Ergebnis (die beiden Dateien gdb und gdbserber, die auf dem ARM laufen) sollte ja exakt dasselbe sein, egal ob man sie auf dem PC oder dem Target erzeugt.

-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 komme nicht weiter. Gibt es hier einen Spezialisten für autoconf und crosscompile :-)

Das Problem ist, mit den sehr alten Sourcen vom GDB gehts. Nur bei den neueren wurden Optionen im configure geändert, die einen Check der Compiler auslösen. Das geht mit den Crosstoolchain in die Hose.

Code: Alles auswählen

$ ../../gdb-7.5.1/configure --host=i686-pc-linux-gnu --target=arm-none-linux-g
nueabi
 
## --------- ##
## Platform. ##
## --------- ##
 
hostname = VMDebBasis
uname -m = i686
uname -r = 3.2.0-4-686-pae
uname -s = Linux
uname -v = #1 SMP Debian 3.2.35-2
 
/usr/bin/uname -p = unknown
/bin/uname -X     = unknown
 
/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown
 
PATH: /usr/local/src/fpc/utils
PATH: /opt/CodeSourcery/bin
PATH: /opt/CodeSourcery/arm-none-linux-gnueabi/bin
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
 
 
## ----------- ##
## Core tests. ##
## ----------- ##
 
configure:2237: checking build system type
configure:2251: result: i686-pc-linux-gnu
configure:2298: checking host system type
configure:2311: result: i686-pc-linux-gnu
configure:2331: checking target system type
configure:2344: result: arm-none-linux-gnueabi
configure:2398: checking for a BSD-compatible install
configure:2466: result: /usr/bin/install -c
configure:2477: checking whether ln works
configure:2499: result: yes
configure:2503: checking whether ln -s works
configure:2507: result: yes
configure:2514: checking for a sed that does not truncate output
configure:2578: result: /bin/sed
configure:2587: checking for gawk
configure:2617: result: no
configure:2587: checking for mawk
configure:2603: found /usr/bin/mawk
configure:2614: result: mawk
configure:3727: checking for i686-pc-linux-gnu-gcc
configure:3757: result: no
configure:3767: checking for gcc
configure:3783: found /opt/CodeSourcery/arm-none-linux-gnueabi/bin/gcc
configure:3794: result: gcc
configure:4023: checking for C compiler version
configure:4032: gcc --version >&5
gcc (CodeSourcery Sourcery G++ Lite 2007q3-51) 4.2.1
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
configure:4043: $? = 0
configure:4032: gcc -v >&5
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /scratch/paul/lite/linux/src/gcc-4.2/configure --build=i686-pc-
linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-thre
ads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libstdcxx-
pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enabl
e-symvers=gnu --enable-__cxa_atexit --with-pkgversion=CodeSourcery Sourcery G++
Lite 2007q3-51 --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --di
sable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-l
inux-gnueabi/libc --with-build-sysroot=/scratch/paul/lite/linux/install/arm-none
-linux-gnueabi/libc --enable-poison-system-directories --with-build-time-tools=/
scratch/paul/lite/linux/install/arm-none-linux-gnueabi/bin --with-build-time-too
ls=/scratch/paul/lite/linux/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.2.1 (CodeSourcery Sourcery G++ Lite 2007q3-51)
configure:4043: $? = 0
configure:4032: gcc -V >&5
gcc: '-V' option must have argument
configure:4043: $? = 1
configure:4032: gcc -qversion >&5
gcc: unrecognized option '-qversion'
gcc: no input files
configure:4043: $? = 1
configure:4063: checking for C compiler default output file name
configure:4085: gcc    -nostdlib -L/opt/CodeSourcery/lib/gcc/arm-none-linux-gnue
abi/4.2.1/ conftest.c  >&5
gcc: error trying to exec 'cc1': execvp: No such file or directory
configure:4089: $? = 1
configure:4126: result:
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
|
| int
| main ()
| {
|
|   ;
|   return 0;
| }
configure:4132: error: in `/usr/local/src/gdb/build/crossarm':
configure:4136: error: C compiler cannot create executables
See `config.log'
for more details.
 
## ---------------- ##
## Cache variables. ##
## ---------------- ##
 
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:Ich komme nicht weiter. Gibt es hier einen Spezialisten für autoconf und crosscompile :-)


Ich komme auch nicht weiter. Ich brauche zwar GDB nicht übersetzen und kein Crosscompile für C, aber leider erzeugt mir der (anscheinend funktionierende) Cross-fpc keine rtl und deshalb kann ich keine komplexeren Pascal-Programme Cross-Coompilieren, obwohl "writeln ('Hello World'); " funktioniert. :(

af0815 hat geschrieben:gcc: error trying to exec 'cc1': execvp: No such file or directory


Von cc1 habe ich noch nie etwas gehört.

-Michael

Antworten