[gelöst] make toolchain: `PATH_MAX' undeclared

StephanG

Neuer User
Mitglied seit
25 Feb 2007
Beiträge
35
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich wollte jetzt auch mal meine FritzBox aufmotzen.

Dazu habe ich mir das letzte ds-mod runtergeladen.
make menuconfig gemacht.

Danach wollte ich dann noch die toolchain erstellen.

make toolchain ist dann aber mit dem folgenden Fehler abgebrochen:

Code:
+ /home/stephan/Downloads/ds-0.2.9_26-13/toolchain/build/gcc-3.4.5-glibc-2.3.6/mipsel-unknown-linux-gnu/bin/mipsel-unknown-linux-gnu-gcc -static hello.c -o mipsel-unknown-linux-gnu-hello-static
hello.c: In function `main':
hello.c:4: error: `PATH_MAX' undeclared (first use in this function)
hello.c:4: error: (Each undeclared identifier is reported only once
hello.c:4: error: for each function it appears in.)
make: *** [source/crosstool-0.43/.installed] Fehler 1

Das Problem ist wohl, dass PATH_MAX in linux/limits.h deklariert ist und nicht in limits.h. Ich weiß aber nicht, wie ich das ändern muss hier.

Danke schonmal,
Stephan
 
Zuletzt bearbeitet:
Unter was kompilierst du denn? Der Fehler ist mir bis jetzt noch nicht untergekommen.

MfG Oliver
 
Sehr seltsam. Es stimmt natürlich, dass PATH_MAX in linux/limits.h deklariert ist und nicht in limits.h. Aber bis jetzt hatte keiner diesen Fehler. Und der hat auch nichts mit dem dsmod zu tun, sondern mit crosstool.
Geht es denn, wenn du in source/crosstool-0.43/testhello.sh diese Zeile abänderst?
In Zeile 326 der crosstool.sh werden Symlinks angelegt. Vielleicht läuft da was schief. Aber das musst du selbst schauen. Da ich den Fehler nicht reproduzieren kann, kann ich dir nicht weiterhelfen.

MfG Oliver
 
Zuletzt bearbeitet:
Danke, jetzt ist das Kompilieren schon einmal weiter gekommen.

Habe dazu folgende Zeile unterhalb von Zeile 23 hinzugefügt in der source/crosstool-0.43/testhello.sh

Code:
#include <linux/limits.h>

Womit die entsprechende Stelle nun so aussieht:

Code:
cat > hello.c <<_eof_
#include <stdio.h>
#include <limits.h>
#include <linux/limits.h>
static long x = LONG_MIN;
int main() { printf("Hello, world!  LONG_MIN is %ld, PATH_MAX is %d\n", x, PATH_MAX); return 0; }
_eof_


Nun hab ich aber noch einen anderen Fehler:

Nach 3,5 Stunden (!) stand am Ende aber diesmal folgendes:
config.status: creating po/Makefile.in
config.status: executing depfiles commands
config.status: executing default commands
make[4]: Verlasse Verzeichnis '/home/stephan/Downloads/ds-0.2.9_26-13/source/toolchain/binutils-2.16.91.0.6/bfd/po'
make[4]: Betrete Verzeichnis '/home/stephan/Downloads/ds-0.2.9_26-13/source/toolchain/binutils-2.16.91.0.6/bfd/po'
make[4]: Für das Ziel »info« ist nichts zu tun.
make[4]: Verlasse Verzeichnis '/home/stephan/Downloads/ds-0.2.9_26-13/source/toolchain/binutils-2.16.91.0.6/bfd/po'
make[4]: Betrete Verzeichnis '/home/stephan/Downloads/ds-0.2.9_26-13/source/toolchain/binutils-2.16.91.0.6/bfd'
make[4]: Für das Ziel »info-am« ist nichts zu tun.
make[4]: Verlasse Verzeichnis '/home/stephan/Downloads/ds-0.2.9_26-13/source/toolchain/binutils-2.16.91.0.6/bfd'
make[3]: *** [info-recursive] Fehler 1
make[3]: Verlasse Verzeichnis '/home/stephan/Downloads/ds-0.2.9_26-13/source/toolchain/binutils-2.16.91.0.6/bfd'
make[2]: *** [all-bfd] Fehler 2
make[2]: Verlasse Verzeichnis '/home/stephan/Downloads/ds-0.2.9_26-13/source/toolchain/binutils-2.16.91.0.6'
make[1]: *** [all] Fehler 2
make[1]: Verlasse Verzeichnis '/home/stephan/Downloads/ds-0.2.9_26-13/source/toolchain/binutils-2.16.91.0.6'
make: *** [/home/stephan/Downloads/ds-0.2.9_26-13/source/toolchain/binutils-2.16.91.0.6/binutils/objdump] Fehler 2

Wie kann ich jetzt schnell testen, ob es funktioniert?

EDIT:
Wie im Wiki beschrieben, habe ich mal ein make libs gemacht, woraufhin allerdings folgendes kam:
/home/stephan/Downloads/ds-0.2.9_26-13/toolchain/target/bin/mipsel-linux-uclibc-strip --remove-section=.comment --remove-section=.note /home/stephan/Downloads/ds-0.2.9_26-13/toolchain/target/bin/../lib/libgcc_s.so.1
make: /home/stephan/Downloads/ds-0.2.9_26-13/toolchain/target/bin/mipsel-linux-uclibc-strip: Kommando nicht gefunden
make: *** [libgcc-installed] Fehler 127

Das sieht nicht gut aus, oder?

Stephan
 
Zuletzt bearbeitet:
Du hast kein texinfo installiert. Danach machst du:
Code:
make target-toolchain-dirclean
make target-toolchain
MfG Oliver
 
Jetzt scheint es zu funktionieren.
Code:
make precompiled
make libs
make

Läuft alles durch.


Besten Dank!

Jetzt muss ich "nur noch" den neuen vpnc 0.4.0 zum laufen bekommen, der jetzt nämlich auch Rekeying unterstützt.

Grüße,
Stephan
 
Kannst du eine Option fürs Rekeying ins Webinterface einbauen?

MfG Oliver
 

Anhänge

olistudent schrieb:
Kannst du eine Option fürs Rekeying ins Webinterface einbauen?

Wie Option?

So wie ich das verstehe, braucht man nichts Zusätzliches einzustellen im vpnc, damit Rekeying funktioniert.
 
Ups. Ich dachte, dass man da eine Option in die Konfig eintragen muss.

MfG Oliver
 
Jetzt mal noch ne Frage:
Ich habe hier gelesen, wie man eigene Programme kompilieren kann.

Jedoch ist ja jetzt, in dem Fall von vpnc kein configure Skript vorhanden.

Wie benutze ich also die erstellte Toolchain, bzw. wie hast du das vpnc kompiliert?

Ein Link auf ne Anleitung würde mir schon reichen, finde nämlich gerade nichts Ordentliches außer dem Wiki...

Danke,
Stephan
 
Ich hab die Datei make/vpnc/vpnc.mk angepasst. Die Version von 0.3.3 in 0.4.0 geändert und die Patches angepasst.

MfG Oliver
 
Achso!

Nachdem ich mir das vpnc.mk mal ein bisschen genauer angeguckt, wird das alles klarer :)

Bleibt bei mir aber noch die Frage, warum im Folgenden im vpnc.mk steht:
Code:
VPNC_VERSION:=0.3.3
VPNC_SOURCE:=vpnc-$(VPNC_VERSION).tar.gz
VPNC_SITE:=http://www.unix-ag.uni-kl.de/~massar/vpnc
VPNC_DIR:=$(SOURCE_DIR)/vpnc-$(VPNC_VERSION)
VPNC_MAKE_DIR:=$(MAKE_DIR)/vpnc
VPNC_TARGET_DIR:=$(PACKAGES_DIR)/vpnc-$(VPNC_VERSION)/root/sbin
VPNC_TARGET_BINARY:=vpnc
VPNC_PKG_VERSION:=0.1
VPNC_PKG_SOURCE:=vpnc-$(VPNC_VERSION)-dsmod-$(VPNC_PKG_VERSION).tar.bz2
VPNC_PKG_SITE:=http://www.running-sheep.com/members/leo


$(DL_DIR)/$(VPNC_SOURCE):
	wget -P $(DL_DIR) $(VPNC_SITE)/$(VPNC_SOURCE)

$(DL_DIR)/$(VPNC_PKG_SOURCE):
	@wget -P $(DL_DIR) $(VPNC_PKG_SITE)/$(VPNC_PKG_SOURCE)


Warum benötigt das vpnc.mk einmal die Sourcen von vpnc und dann die URL für das Paket, was ja im Falle von vpnc-0.4.0 noch gar nicht existiert unter
Code:
VPNC_PKG_SITE:=http://www.running-sheep.com/members/leo
?

Grüße,
Stephan
 
So ist das halt. Und außerdem hab ich dir das Package schon gepostet. Du musst es nur nach dl/ kopieren...

MfG Oliver
 

Anhänge

olistudent schrieb:
Wozu brauche ich denn dann die originalen Quellen noch, wenn man doch sowieso das Paket benötigt?
Bin irgendwie verwirrt, was jetzt wofür benutzt wird.
Und wie erstelle ich dann selber so ein Paket?


Und außerdem hab ich dir das Package schon gepostet. Du musst es nur nach dl/ kopieren...

Wieso dl/?
Ich dachte, es gehört in addon.

Grüße,
Stephan (der ein wenig vom Thread-Thema abweicht)
 
Den Source brauchst du eigentlich nicht. Außer du willst das Binary selbst bauen. In dem vpnc.mk ist auch ein Target "vpnc-package". Das erstellt so ein Paket. Und dann musst du dir halt noch die Struktur und den Inhalt anschauen.

MfG Oliver
 
Kostenlos!

Statistik des Forums

Themen
248,464
Beiträge
2,292,022
Mitglieder
377,897
Neuestes Mitglied
hagepbx