Asterisk für Bristuff kompilieren

rannseier

Aktives Mitglied
Mitglied seit
5 Mai 2004
Beiträge
986
Punkte für Reaktionen
0
Punkte
0
Moin..

Wenn ich Asterisk unter Bristuff kompilieren will, bekomme ich beim kompilieren folgende Meldung:

make[1]: Für das Ziel »all« ist nichts zu tun.
make[1]: Leaving directory `/usr/src/bri-stuff.0.0.2/asterisk/res'
make[1]: Entering directory `/usr/src/bri-stuff.0.0.2/asterisk/channels'
gcc -pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -g -Iinclude -I../include -D_REENTRANT -D_GNU_SOURCE -O6 -march=i586 -DZAPTEL_OPTIMIZATIONS -DASTERISK_VERSION=\"CVS-05/22/04-22:25:19\" -DINSTALL_PREFIX=\"\" -DASTETCDIR=\"/etc/asterisk\" -DASTLIBDIR=\"/usr/lib/asterisk\" -DASTVARLIBDIR=\"/var/lib/asterisk\" -DASTVARRUNDIR=\"/var/run\" -DASTSPOOLDIR=\"/var/spool/asterisk\" -DASTLOGDIR=\"/var/log/asterisk\" -DASTCONFPATH=\"/etc/asterisk/asterisk.conf\" -DASTMODDIR=\"/usr/lib/asterisk/modules\" -DASTAGIDIR=\"/var/lib/asterisk/agi-bin\" -DBUSYDETECT_MARTIN -DNEW_PRI_HANGUP -Wno-missing-prototypes -Wno-missing-declarations -DZAPATA_PRI -DIAX_TRUNKING -DCRYPTO -fPIC -c -o chan_modem_bestdata.o chan_modem_bestdata.c
chan_modem_bestdata.c: In function `bestdata_read':
chan_modem_bestdata.c:373: warning: assignment discards qualifiers from pointer target type
chan_modem_bestdata.c: In function `bestdata_startrec':
chan_modem_bestdata.c:62: internal compiler error: in gen_subprogram_die, at dwarf2out.c:10736
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:https://qa.mandrakesoft.com/> for instructions.
make[1]: *** [chan_modem_bestdata.o] Fehler 1
make[1]: Leaving directory `/usr/src/bri-stuff.0.0.2/asterisk/channels'
make: *** [subdirs] Fehler 1

Kernel ist 2.6.6 (0), GCC 3.4.0

Hat jemand eine Idee?


MfG,
Karl
 
Wow... das rummst aber schön :)

Du verwendest CVS-Version vom 22.05. ist wohl etwas zu neu für den bristuff: hier die download.sh aus bristuff:

Code:
#!/bin/bash
export CVSROOT=:pserver:[email protected]:/usr/cvsroot
echo "Please use anoncvs as password."
cvs login

cvs co -D 05/10/04 zaptel
cvs co -D 05/10/04 libpri
cvs co -D 05/10/04 -r v1-0_stable asterisk


cd zaptel
patch -p1 < ../zaptel.patch
cd ..

cd libpri
patch -p1 < ../libpri.patch
cd ..

cd asterisk
patch -p1 < ../asterisk.patch
cd ..

echo "****************************************************"
echo "         Downloading and patching finished."
echo "****************************************************"


führe einfach install.sh vom bristuff aus, dann sollte alles funktionieren.

(Lief das patchen der ganzen Asterisk-Sachen auch ohne Fehler durch?)
 
Hallo..

Werd ich gleich mal probieren. Momentan versuch ich nochmal asterisk zu compilieren ("meine" alte Version läuft auch nicht durch). Versuche es gerade mal mit dem "alten" GCC 3.3.<vergessen>, weil mit dem der Kernel nicht immer zu kompilieren war.

Das patchen lief übrigens nicht so richtig (patch auf bereits gepatchte Datei ausführen). Nachdem er sich dann ein paar mal die CVS-Version geholt hat lief es (erstaunlicherweise) durch.

Mal schauen, wie das mit der Version von dir geht.

BTW: Ich kriege die Meldung nicht weg, das devfs nur bis Kernel 2.4 geht. Auch wenn ich das make in den compile.sh überall auf "make linux26" anpasse und devfs im Source auskommentiere. Gibts da noch ein trick?


MfG,
Karl
 
Moin..

Mit dem alten GCC gehts, dafür kann der den Kernel 2.6.6 nicht kompilieren.. Argl..

[root@linux3 bin]# gcc --v
Reading specs from /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/specs
Configured with: ../configure --prefix=/usr --libdir=/usr/lib --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --enable-long-long --enable-__cxa_atexit --enable-clocale=gnu --enable-languages=c,c++,ada,f77,objc,java,pascal --host=i586-mandrake-linux-gnu --with-system-zlib
Thread model: posix
gcc version 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)

Hat jemand eine Idee?


MfG,
Karl
 
wieso kann denn der alte GCC den 2.6.6 nicht kompilieren ?!? *rätsel* make clean vergessen? Also ich hab 2.6er Kernel schon mit 2.95er gcc kompiliert....

Immer dieses MDK, macht alles anders ;)

Nein Lösung: Installier doch beide GCC-Versionen und setz beim Kompilieren die entsprechenden CXX / CC-Flags in der shell, damit einfach der passende GCC-verwendet wird. Done.
 
Hallo rajo,

Der Bug mit dem GCC und dem Kernel-backen ist bekannt. Als Abhilfe wird die neue Version vorgeschlagen. Damit gehts dann auch, ansonsten crasht er immer bei /fs/dingens irgendwo (aber erst bei einer bestimmten Änderung, bei der default-config vom Kernel läuft er durch).

Im Moment hab ich eh beide drinn. Ich kopier dann jeweils den passenden nach /usr/bin/gcc.

Code:
[root@linux3 zaphfc]# ls -l /usr/bin/gcc*
-rwxr-xr-x  1 root root 84684 Mai 24 15:23 /usr/bin/gcc*
-rwxr-xr-x  1 root root 84684 Feb 13 15:49 /usr/bin/gcc-3.3.2*
-rwxr-xr-x  1 root root    23 Feb 13 15:48 /usr/bin/gcc3.3-version*
-rwxr-xr-x  2 root root 82284 Mär  2 17:52 /usr/bin/gcc-3.4.0*
-rwxr-xr-x  1 root root    23 Mär  2 17:52 /usr/bin/gcc3.4-version*
lrwxrwxrwx  1 root root    21 Jan 28 15:35 /usr/bin/gcc.old -> /etc/alternatives/gcc*
[root@linux3 zaphfc]#

Wie geht das denn mit den Flags?


MfG,
Karl
 
/usr/bin/gcc sollte eigentlich nur ein link auf den jeweiligen gcc sein

Code:
lrwxrwxrwx    1 root     root            8 Nov 10  2002 /usr/bin/gcc -> gcc-2.95
-rwxr-xr-x    1 root     root          72k Sep 24  2002 /usr/bin/gcc-2.95
-rwxr-xr-x    1 root     root          72k Apr  8  2002 /usr/bin/gcc-3.0

Egal, macht ja das selbe. Mit den Flags:
wenn Du bash verwendest (wonach das mal aussieht) einfach ein
export CC=/usr/bin/gcc-3.3.2
für C und
export CXX=/usr/bin/g++-3....
für C++

Danach sollte Make das berücksichtigen und den entsprechenden Compiler verwenden. (In hartnäckigen Fällen kann das auch im Makefile mit
CC=...
gesetzt werden)
 
Moin..

Ist der bristuff überhaupt unter Kernel 2.6 zum laufen zu kriegen?

Auch wenn ich in dem Makefile die jeweiligen "all" durch "linux26" ersetze krieg ich Meldungen wie diese:

Code:
In file included from /usr/src/bri-stuff.0.0.2/zaptel/zaptel.c:82:
/usr/src/bri-stuff.0.0.2/zaptel/zaptel.h:55:2: warning: #warning "Zaptel doesn't support DEVFS in post 2.4 kernels.  Disabling DEVFS in zaptel"
In file included from /usr/src/bri-stuff.0.0.2/zaptel/zaptel.c:82:
/usr/src/bri-stuff.0.0.2/zaptel/zaptel.h:55:2: warning: #warning "Zaptel doesn't support DEVFS in post 2.4 kernels.  Disabling DEVFS in zaptel"
  CC [M]  /usr/src/bri-stuff.0.0.2/zaptel/tor2.o

Hat jemand eine Idee?


MfG,
Karl
 
Das sind Warnings... nix schlimmes. Solange da kein Error kommt...
Da wird nur über devfs gemeckert und dass das in zaptel nicht mitkompiliert wird. Sollte aber egal sein.

IIRC ist 2.6. vom bristuff unterstützt, da aber besser Klaus-Peter Junghanns (kapejod) selber fragen. Kannst Du nach dem kompilieren erfolgreich installieren und die sachen laden? Wenn ja - ist ja alles okay :)

(Man sollte sich bei solchen Entwicklersachen, wie es die bristuff-sachen nunmal noch sind, nicht über irgendwelche Compile-warnings wundern. Ist zwar unschön, aber solange es funktioniert ;) )
 
Leider nicht. Er erzählt mir was mit "ungültiges Moduleformat".

Ich hab mir jetzt nochmal den CVS geholt und lasse den mal neu durchcompilieren. Asterisk selbst lief so, nur die Module nicht.


MfG,
Karl
 
Ist zwar schon ein aelterer Thread, dennoch fuer die "Nachwelt" als Hinweis: man sollte Kernelmodule IMMER mit der gleichen GCC-Version uebersetzen, mit der auch der Kernel selbst uebersetzt wurde. Nimmt man fuer spaeter nachinstallierte Module einen anderen Compiler, kracht es sehr wahrscheinlich (oder es gibt andere, ziemlich ominoese Fehler).

Ciao, Mike
 
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.