Crosscompiler mit danisahne Mod

ptweety schrieb:
Dein Pfad zeigt IMO auf das falsche Verzeichnis. Es sollte wohl "toolchain/target/mipsel-linux-uclibc/bin/" sein.

MFG pTweety
Das hatte ich auch vermutet und probiert, aber dann kommen jede Menge lustige Syntaxfehler beim Make, die ich dann bei Gelegenheit posten werde.

EDIT: OK, immerhin zeigt er crosscompiler=yes an, hätte ich genau gucken müssen :( Aber dann kommt

Code:
jesus@nikowitt:~/ds-0.2.6/bftpd-1.4$ make
gcc -g -O2 -DHAVE_CONFIG_H -Wall -I. -DVERSION=\"1.4\" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE    -c -o bftpdutmp.o bftpdutmp.c
In file included from /home/jesus/ds-0.2.6/toolchain/build/gcc-4.1.0-uClibc-0.9.26/mipsel-linux-uclibc/mipsel-linux-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.1.0/../../../../mipsel-linux-uclibc/sys-include/stdio.h:28,
                 from bftpdutmp.c:1:
/home/jesus/ds-0.2.6/toolchain/build/gcc-4.1.0-uClibc-0.9.26/mipsel-linux-uclibc/mipsel-linux-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.1.0/../../../../mipsel-linux-uclibc/sys-include/features.h:348:2: error: #error It appears you have defined _FILE_OFFSET_BITS=64. Unfortunately, uClibc was built without large file support enabled.
In file included from /home/jesus/ds-0.2.6/toolchain/build/gcc-4.1.0-uClibc-0.9.26/mipsel-linux-uclibc/mipsel-linux-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.1.0/../../../../mipsel-linux-uclibc/sys-include/stdio.h:67,
                 from bftpdutmp.c:1:
/home/jesus/ds-0.2.6/toolchain/build/gcc-4.1.0-uClibc-0.9.26/mipsel-linux-uclibc/mipsel-linux-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.1.0/../../../../mipsel-linux-uclibc/sys-include/bits/uClibc_stdio.h:136:2: error: #error Sorry... uClibc was built without large file support!
In file included from bftpdutmp.c:1:
/home/jesus/ds-0.2.6/toolchain/build/gcc-4.1.0-uClibc-0.9.26/mipsel-linux-uclibc/mipsel-linux-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.1.0/../../../../mipsel-linux-uclibc/sys-include/stdio.h:77: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'fpos_t'
In file included from bftpdutmp.c:1:
/home/jesus/ds-0.2.6/toolchain/build/gcc-4.1.0-uClibc-0.9.26/mipsel-linux-uclibc/mipsel-linux-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.1.0/../../../../mipsel-linux-uclibc/sys-include/stdio.h:520: error: expected declaration specifiers or '...' before 'fpos_t'
/home/jesus/ds-0.2.6/toolchain/build/gcc-4.1.0-uClibc-0.9.26/mipsel-linux-uclibc/mipsel-linux-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.1.0/../../../../mipsel-linux-uclibc/sys-include/stdio.h:522: error: expected ';', ',' or ')' before '*' token
make: *** [bftpdutmp.o] Fehler 1
 
Zuletzt bearbeitet:
Eigentlich ist der Pfad schon ok, du mußt nur bei host auch angeben i386-linux-gnu angeben:
Code:
--host=i386-linux-gnu
Hoffentlich hab ich das jetzt richtig in Erinnerung, muss das auch immer wieder nachschauen.

Mfg,
danisahne
 
Wo ist denn der Unterschied zwischen HOST und BUILD (weil da steht auch das i386-linux-gnu drin)?

Anyway, ändert nichts am Fehler oben ;)

Gruß Niko
 
Nicht alle Configure-Skripte machen auch das was man ihnen angibt. Zur Not musst du per Hand im Makefile nachhelfen und den Compiler auf "mipsel-linux-gcc" setzen, sowie ld und ar. (CFlags nicht vergessen)

MfG Oliver
 
Probleme beim komplilieren des checkmaild

Hi,

ich habe mir die toolchain erfolgreich unter knoppix erstellt (make precompiled).

Dann habe ich an den Quellen unter source/checkmaild/checkmaild.c gebastelt
(intervall auf maximal 360 gesetzt) und mit make precompiled erfolgreich compiliert.

Nachdem ich nach dem make eine neue Firmware erstellt habe und diese auf die FBF
geschoben hatte, bekomme ich immer noch eine Fehlermeldung wenn ich das intervall
im Web-UI auf mehr als 60 min. stelle.

Das geht doch nicht mit rechten Dingen zu, zumal ich mir den Zeitstempel der checkmaild
Datei auf der FBF angesehen habe und der ist gleich dem neuen Kompilat.

Was mache ich falsch?
D.
 
Keine Ahnung. Lösch mal das checkmaild.o File und probiers nochmal. Ich hab da im Webinterface keine Begrenzung drinnen.

MfG Oliver
 
checkmaild mod geht net

Hm, ich hatte vorher schon ein paar mal mit touch checkmaild.c neu kompiliert und jetzt
habe ich das checkmaild.o gelöscht.

Nach dem kompilieren und übertragen ist das Datum der /usr/sbin/checkmaild auf der Box
genauso wie das Kompilat. Trotzdem keine Änderung. Ich hab die Ausgaben ins Log auch
geändert, sodass man sich das mit syslogd anschauen kann. Keine Änderung! :noidea:

Wat nu?
 
Poste doch mal das File (sowohl den Source als auch das Binary), dann probier ich's aus.

MfG Oliver
 
Dateien...

Hallo olistudent,

ich habe dir die checkmaild und die checkmaild.c im Anhang abgelegt. Wäre nett, wenn du es mal damit ausprobieren würdest. (In den Ausgaben in der ReadConfig habe ich einen Punkt (.) ans Ende
gestellt, damit man bei der Log-Ausgabe direkt sieht, welches Prog läuft.

Danke im Voraus
d.
 

Anhänge

  • chkmail.tgz
    19.6 KB · Aufrufe: 5
Also bei mir geht das:
Code:
/var/mod/root # ./checkmaild -nosyslog
CheckMailD <check 1 Account(s) every 340min with Logging in Single-Mode.>
/var/mod/root #
MfG Oliver
 
Das gibt's doch net:

1. Versuch:
Code:
/usr/sbin # checkmaild -nosyslog
Jun 28 19:50:11 fritz daemon.info CheckMailD: INTERVALL=180 out of Range, set to "15"
Jun 28 19:50:11 fritz daemon.info CheckMailD: check 1 Account(s) every 15min without Logging

2. Versuch:
Code:
/var/mod/home/ftp/dev/checkmaild # ./checkmaild -nosyslog
CheckMailD <check 1 Account(s) every 180min without Logging.>

Das bringt mich zu der Vermutung, dass beim Zusammenstellen des Firmware images was falsch gelaufen ist.

Muss ich nach dem make precompiled noch irgendwas machen, bevor ich mit make das image erzeuge?

Gruß
D.
 
Vergleich doch mal das Binary mit dem es geht und das mit dem in packages/checkmaild.
Ansonten dachte ich auch, dass bei einem "make precompiled" die Binaries überschrieben werden.

MfG Oliver
 
Hallo Olli,

das ist ja grade das unheimliche an der Sache: Zeitstempel und Dateigrößen sind identisch. Das hatte ich sowohl auf meinem Rechner, als auch auf der FBF gecheckt.

Ich werd nochmal lokal kompilieren und das binary aus packages/checkmaild manuell auf der Box ausführen. So leicht geb ich
ja net auf.
[EDIT:] Hat geklappt. Also steht zumindest in packages/checkmaild das korrekte Binary drin. Offensichtlich macht der beim make irgend einen Mist. Oder auf der Box geht was nicht mit rechten Dingen zu...
 
Zuletzt bearbeitet:
Hallo,

nachdem ich make toolchain ausgeführt habe ohne Probleme. Bekomme ich immer nen fehler wenn ich ein Packet kompilieren will.

bei ./configure --build=i386-linux-gnu --target=mipsel-linux --host=mipsel-linux kommt immer:

checking size of off_t... configure: error: cannot run test program while cross compiling


Gruß
Tom
 
Den Fehler hab ich auch öfters. Verstehen tu ich das nicht wirklich, weil das Configure-Skript doch eigentlich dafür da ist sowas zu erkennen. Ich lösche dann entweder das "exit" aus dem Configure-Skript, oder führe nur "configure" (ohne cross-compiler) aus und passe danach das Makefile an.
Die dritte Möglichkeit wäre ein Patch, z.B. aus dem openwrt, falls das Programm dort gelistet ist.

MfG Oliver
 
Ich hab's endlich hingekriegt!

Mein neu kompiliertes checkmaild läuft auf der FBF.

Was ich gemacht habe:
nachdem ich die modifizierten Quellen mit make precompiled kompiliert habe, habe ich das
Binary aus dem tarball im Verzeichnis dl durch mein Kompilat ersetzt. Anschliessend
habe ich ein firmware image mit make erstellt und die Box aktualisiert. Fertig.

Das ist doch eigentlich nicht so gewollt, dass man da so eingreifen muss, oder? :-Ö
D.
 
Ist eigentlich nicht so gewollt. Vielleicht funktioniert beim checkmaild in meinen Makefiles etwas nicht, so dass es bei jedem `make' erneut ausgepackt wird. Habs mir mal notiert, dass ich das demnächst überprüfe.

Mfg,
danisahne
 
Ich bekomme es einfach net hin, irssi mit dem cross-compiler zu übersetzen. Selbst wenn ich das Makefile ediere -> wg. off_t.
Könnte mir Jemand mit einen funktionierenden cross-compiler irssi übersetzen?

Gruß
Thomas
 
Was muss ich denn genau bei make menuconfig in den Compiler Options angeben? Ich hab nen Haken bei Use external Cmpiler gemacht. Und was gebe ich dann bei Target make Paht und Target compiler Flas und Kernel make Path an?

Ich habe da einfach Pfade eingegeben in denen ich das Toolchain dann erwartet habe. Scheint aber nicht richtig gewegsen zu sein. Ein make toolchain bricht mit

/bin/sh: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: No such file or directory
/bin/sh: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: No such file or directory
make[1]: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: Command not found
make[1]: Entering directory `/mnt/hd2/netz/fbf/ds-0.2.9/source/toolchain/uClibc-0.9.26'
+ ./extra/scripts/fix_includes.sh -k /mnt/hd2/netz/fbf/ds-0.2.9/source/ref-ohio-8mb-04.06/kernel/linux -t mips
Current kernel version is 2.4.17


Using kernel headers from 2.4.17 for architecture 'mips'
provided in directory /mnt/hd2/netz/fbf/ds-0.2.9/source/ref-ohio-8mb-04.06/kernel/linux


+ TOPDIR=.
+ CC=/netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc
+ /bin/sh extra/scripts/gen_bits_syscall_h.sh
extra/scripts/gen_bits_syscall_h.sh: line 15: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: No such file or directory
extra/scripts/gen_bits_syscall_h.sh: line 18: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: No such file or directory
+ cmp include/bits/sysnum.h include/bits/sysnum.h.new
+ rm -f include/bits/sysnum.h.new
make -C libc/sysdeps/linux/common headers
/bin/sh: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: No such file or directory
/bin/sh: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: No such file or directory
make[2]: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: Command not found
make[2]: Entering directory `/mnt/hd2/netz/fbf/ds-0.2.9/source/toolchain/uClibc-0.9.26/libc/sysdeps/linux/common'
ln -fs ../libc/sysdeps/linux/common/fpu_control.h ../../../..//include/
make[2]: Leaving directory `/mnt/hd2/netz/fbf/ds-0.2.9/source/toolchain/uClibc-0.9.26/libc/sysdeps/linux/common'
make -C libc/sysdeps/linux/mips headers
/bin/sh: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: No such file or directory
/bin/sh: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: No such file or directory
make[2]: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: Command not found
make[2]: Entering directory `/mnt/hd2/netz/fbf/ds-0.2.9/source/toolchain/uClibc-0.9.26/libc/sysdeps/linux/mips'
ln -fs ../libc/sysdeps/linux/mips/sgidefs.h ../../../..//include/
ln -fs ../libc/sysdeps/linux/mips/fpu_control.h ../../../..//include/
make[2]: Leaving directory `/mnt/hd2/netz/fbf/ds-0.2.9/source/toolchain/uClibc-0.9.26/libc/sysdeps/linux/mips'
make -C ldso
/bin/sh: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: No such file or directory
/bin/sh: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: No such file or directory
make[2]: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: Command not found
make[2]: Entering directory `/mnt/hd2/netz/fbf/ds-0.2.9/source/toolchain/uClibc-0.9.26/ldso'
ln -fs ../../include/elf.h include/
ln -fs ../ldso/mips/boot1_arch.h include/
ln -fs ../ldso/mips/ld_syscalls.h include/
ln -fs ../ldso/mips/ld_sysdep.h include/
make -C ldso;
/bin/sh: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: No such file or directory
/bin/sh: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: No such file or directory
make[3]: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: Command not found
make[3]: Entering directory `/mnt/hd2/netz/fbf/ds-0.2.9/source/toolchain/uClibc-0.9.26/ldso/ldso'
echo "const char *_dl_progname=\""ld-uClibc.so.0"\";" > _dl_progname.h
echo "#include \"mips/elfinterp.c\"" >> _dl_progname.h
/bin/sh: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: No such file or directory
/netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc -Wall -DCONFIG_MIPS_AR7WRD -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -O2 -mno-split-addresses -march=4kc -Wa,--trap -fPIC -DUCLIBC_RUNTIME_PREFIX=\"/\" -fno-builtin -nostdinc -I../../ldso/include -I. -I../../include -I../libdl -c mips/resolve.S -o mips/resolve.o
make[3]: /netz/fbf/kernel-cross/bin/mipsel-unknown-linux-gnu-gcc: Command not found
make[3]: *** [mips/resolve.o] Error 127
make[3]: Leaving directory `/mnt/hd2/netz/fbf/ds-0.2.9/source/toolchain/uClibc-0.9.26/ldso/ldso'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/mnt/hd2/netz/fbf/ds-0.2.9/source/toolchain/uClibc-0.9.26/ldso'
make[1]: *** [_dir_ldso] Error 2
make[1]: Leaving directory `/mnt/hd2/netz/fbf/ds-0.2.9/source/toolchain/uClibc-0.9.26'
make: *** [/mnt/hd2/netz/fbf/ds-0.2.9/source/toolchain/uClibc-0.9.26/lib/libc.a] Error 2


ab.
 
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.