PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : k3b-0.10 lässt sich mit gcc-3.3 nicht kompilieren (sid)



christophwth
20.10.03, 19:15
Hi

im betreff steht schon was mein problem ist .
das ganze äussert sich so.:

configure läuft durch und meldet :

Configure results:
-----------------------------------------
Ogg Vorbis support: yes

Mp3 decoding support (libmad): yes
ID3 Tag handling with libid3: yes

Resmgr support: no

Audioplayer available (aRts) yes

Compile K3bSetup 2: yes
-----------------------------------------


make leider nicht



else rm -f ".deps/k3bdevice.Tpo"; exit 1; \
fi
In file included from /usr/include/linux/cdrom.h:14,
from k3bscsicommand.h:20,
from k3bdevice.cpp:23:
/usr/include/asm/byteorder.h:38: error: syntax error before `(' token
/usr/include/asm/byteorder.h:42: error: '__u64' is used as a type, but is not
defined as a type.
/usr/include/asm/byteorder.h:43: error: parse error before `}' token
/usr/include/asm/byteorder.h:44: error: syntax error before `.' token
/usr/include/asm/byteorder.h:50: error: syntax error before `.' token
/usr/include/asm/byteorder.h:51: error: syntax error before `.' token
/usr/include/asm/byteorder.h:52: error: parse error before `:' token
In file included from /usr/include/linux/byteorder/little_endian.h:11,
from /usr/include/asm/byteorder.h:65,
from /usr/include/linux/cdrom.h:14,
from k3bscsicommand.h:20,
from k3bdevice.cpp:23:
/usr/include/linux/byteorder/swab.h:199: error: syntax error before `(' token
/usr/include/linux/byteorder/swab.h:209: error: syntax error before `(' token
/usr/include/linux/byteorder/swab.h:213: error: `__u64' was not declared in
this scope
/usr/include/linux/byteorder/swab.h:213: error: `addr' was not declared in this
scope
/usr/include/linux/byteorder/swab.h:214: error: variable or field `__swab64s'
declared void
/usr/include/linux/byteorder/swab.h:214: error: `__swab64s' declared as an
`inline' variable
/usr/include/linux/byteorder/swab.h:214: error: syntax error before `{' token


eine suche im netz zeigt mir dass das problem schon mal bei der kompilierung von kdemultimedia
unter debian sid auftrat. aber ich habe keine lösung des problems gefunden.

funktioniert bei euch die kompilierung von k3b-0.10 unter debian sid ?

gibt es einen hinweis auf bugs?
ich habe nichts aktuelles dazu gefunden.

ich bin für jeden tipp dankbar
gruss
chrisoph

tooly
20.10.03, 21:05
Hallo,

ich habe zwar keinen Patch fuer k3b aber einen fuer die Linuxheader

---------------- Start patch

Summary: make include/asm-i386/byteorder.h observe __STRICT_ANSI__
Package: linux-2.4.21.tar.gz
Author: Kelledin <kelledin at users.sourceforge.net>
Date: Fri Aug 1 2003
Description: Some apps (like kdemultimedia-3.1.3) include <asm/byteorder.h>
either directly or indirectly. As of linux-2.4.21, this header
does not compile with gcc -ansi on i386. This patch fixes the
header to properly observe __STRICT_ANSI__ and sidestep this
problem.


diff -Naur linux-2.4.20/include/asm-i386/byteorder.h linux-2.4.20-swab64/include/asm-i386/byteorder.h
--- linux-2.4.20/include/asm-i386/byteorder.h 2003-05-26 23:29:50.000000000 -0500
+++ linux-2.4.20-swab64/include/asm-i386/byteorder.h 2003-05-26 23:32:52.000000000 -0500
@@ -34,7 +34,7 @@
return x;
}

-
+#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
static inline __u64 ___arch__swab64(__u64 val)
{
union {
@@ -55,10 +55,12 @@
}

#define __arch__swab64(x) ___arch__swab64(x)
+#define __BYTEORDER_HAS_U64__
+#endif
+
#define __arch__swab32(x) ___arch__swab32(x)
#define __arch__swab16(x) ___arch__swab16(x)

-#define __BYTEORDER_HAS_U64__

#endif /* __GNUC__ */


----------------- End Patch

Für kdemultimedia gibt es mittlerweilen einige sed Anweisungen die das Problem lösen, es ist sicherlich nicht ganz sauber die Linuxheader zu patchen, aber vielleicht wirst Du aus den sed Anweisungen für kdemultimedia schlau und kannst sie für k3b abändern.

sed -i -e 's/strings -ansi/strings/' kaudiocreator/Makefile &&
sed -i -e 's/strings -ansi/strings/' kioslave/audiocd/Makefile &&
sed -i -e 's/-ansi//' kscd/libwm/Makefile &&

mfg
tooly

ZuXeZ
20.10.03, 21:44
das is nen fehler(?) in den linux-headers version 2.4.21, mit den 2.4.19ern gehts ohne probleme...

tooly
20.10.03, 21:50
Hallo,

ich habe mittlerweilen einen Patch für k3b-0.10 gefunden, keine Ahnung ob das funktioniert, da ich in meinem System die linuxheader gepatcht hatte.

------------ Begin patch

diff -ruN k3b-0.10.orig/src/core/device/k3bscsicommand.h k3b-0.10/src/core/device/k3bscsicommand.h
--- k3b-0.10.orig/src/core/device/k3bscsicommand.h 2003-09-01 12:20:02.000000000 +0200
+++ k3b-0.10/src/core/device/k3bscsicommand.h 2003-10-15 17:49:43.000000000 +0200
@@ -16,6 +16,12 @@
#ifndef _K3B_SCSI_COMMAND_H_
#define _K3B_SCSI_COMMAND_H_

+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,21)
+typedef unsigned long long __u64;
+#endif
+
#include <sys/types.h>
#include <linux/cdrom.h>

-------------End patch

mfg
tooly

christophwth
21.10.03, 12:54
HI

@tooly
Danke für den patch.
damit hat es jetzt funktioniert .

ich habe es leider nicht hinbekommen den patch direkt einzuspielen
( bin wohl zu blöd )

aber ich habe die änderungen manuell vorgenomen und einen neuen patch erzeugt
der sieht fast genau so aus wie der den du gepostet hast aber es funktioniert. ?
naja , is ja auch egal.

wo hast du den hinweis auf den patch gefunden ?

noch mal 1000 Dank .

gruss
christoph

tooly
21.10.03, 16:18
Hallo christophwth,

den patch für byteorder.h habe ich von LFS und den für k3b hatte ich via google gefunden.

Nachdem aber auch kdemultimedia 3.2 Alpha2 die probleme mit byteorder.h hatte und die sed Anweisung nicht funktionieren, sowie neben k3b auch pixieplus probleme verursachen sollen, habe ich gleich die Kernelheader gepatcht.

Wie hast Du denn versucht den patch einzuspielen?

mfg
tooly

christophwth
21.10.03, 23:19
Hi

so:

cd k3b-0.10
k3b-0.10.$ patch -p1 <../patch.k3b.0.10

das flie habe ich im verzeichnis parallel zu k3b-0.10 abgelegt

bei deiner version scheinen leerzeichen oder formatierungen zu fehlen

anwort beim patchen :

patching file src/core/device/k3bscsicommand.h
patch: **** unexpected end of file in patch


oder wenn ich leerzeichen vor den teil der stehen bleiben soll stelle dann erscheint diese meldung :

patching file src/core/device/k3bscsicommand.h
Hunk #1 FAILED at 16.
1 out of 1 hunk FAILED -- saving rejects to file src/core/device/k3bscsicommand.h.rej

mein eigener patch schaut so aus :



--- k3b-0.10.orig/src/core/device/k3bscsicommand.h 2003-09-01 12:20:02.000000000 +0200
+++ k3b-0.10/src/core/device/k3bscsicommand.h 2003-10-21 12:58:44.000000000 +0200
@@ -16,6 +16,12 @@
#ifndef _K3B_SCSI_COMMAND_H_
#define _K3B_SCSI_COMMAND_H_

+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,21)
+typedef unsigned long long __u64;
+#endif
+
#include <sys/types.h>
#include <linux/cdrom.h>




fürs suchen mit google und k3b war ich wohl zu blöd .ich habe mir bestimmt 2 std. den wolf gegoogled und den patch nicht gefunden .

gruss
christoph

tooly
22.10.03, 13:36
Hallo Christoph,


Original geschrieben von christophwth
Hi

-- snip --
fürs suchen mit google und k3b war ich wohl zu blöd .ich habe mir bestimmt 2 std. den wolf gegoogled und den patch nicht gefunden .

gruss
christoph

Selbsterkennung ist der erste Schritt zur Besserung ;)

hauptsache es funktioniert jetzt, vermutlich habe ich beim kopieren etwas falsch gemacht.

mfg
tooly