Audacity: " Ungültiger Maschinenbefehl"

Jan 'RedBully' Seiffert redbully at cc.fh-luh.de
Sun Apr 23 12:59:30 CEST 2006


Jan-Benedict Glaw wrote:
> On Sun, 2006-04-23 00:09:27 +0200, Jan 'RedBully' Seiffert <redbully at cc.fh-luh.de> wrote:
> 
>>Hmmm, das sieht nach einer C++-Verstrickung aus.
>>ABI-Inkompatibilitaet zwischen gcc-3x und 4.x? Eine C++-Lib die Audacity
> 
> 
> In dem Fall werden die Symbole unterschiedlich kodiert, ergo sollte es
> zu einem Linker-Fehler kommen.
> 
Ich dachte auch weniger an eine Aenderung der Regeln fuer das C++
(Symbol-)Namemangeling, sondern eher _z.B._ an eine Aendrung des
Stacklayout fuer unwinding (Exceptions). Wuerde auch erklaeren, warum
ein SIGILL bei rumkommt.
Oder ein Symbolclash, er nimmt irgendwo das falsche.
Aber das ist halt nur eine Vermutung.
Hatte ich erwaehnt das ich bei der betrachtung von C++Source
Kopfschmerzen bekomme? :-D

> [Symlinks für libraries.]
> 
> 
>>Das muss nicht mal deine Schuld sein, das ist dann der Punkt, wo auch
>>die besten Packetsysteme schon mal versagen.
> 
> 
> Das Paketsystem ist nicht für die Symlinks verantwortlich. `ldconfig'
> ist es--und das macht nur das, was in den Libs drinsteht.  Wenn man
> selbst eine lib "kompatibel" macht, indem man falsche Symlinks
> verteilt, wird ldconfig davon erstmal nicht viel von mitbekommen. Nur
> sterben die Programme, wenn sie versuchen, die vermeintlich kompatible
> lib zu benutzen...
> 
Hmmm, wie beschreibe ich das jetzt mal...
Lib X ist mit Compiler A kompiliert. Das Programm N (auch mit Compiler A
kompiliert) kann sie problemlos benutzen.
Wenn nun die gleiche Lib X mit Compiler B (oder A+1) kompiliert wurde,
kann es sein, dass das Programm N, welches _nicht_ mit Compiler B
kompiliert wurde, stirbt.
Das meinte ich. Und das meinte ich, wenn ich davon redete das
Packetsysteme da ins schleudern kommen, es beduerfte eines Metafeldes
"mit Toolchain X.Y.Z erstellt", so das zu einem Programm (in solchen
Faellen) die Libs passend installiert werden (wie das ueber
zusaetzeliche Suffixe (.so.1.gcc3), Symlinks &| $LD_* geloest, und dem
runtime-linker verklickert wird, ist ein anderes Thema...).

Nicht schoen, aber wilkommen in der tollen Welt von C++

Aber grau ist alle Theorie, ich versuche nur zu Helfen, er sagte das er
ein "Mischsystem" hat, da dachte ich, er hat sich da was in den Libs
zersaegt.

Libkompatibilitaet (libk13t?), ein Problem, was ich von Gentoo gut
kenne, da kann man es aber mit ein paar gezielten neukompilierungen
"einfach" erschlagen, solange das "Grundsystem" (libc, gcc, etc.) lebt.

> MfG, JBG
> 
Gruss
	Jan

-- 
Es sieht so aus, als ob sie rutschen. moechten sie:
- mehr Naegel (verhindert weiteres rutschen)
- das Kreuz einem Freund schicken ....
- weiteres rutschen ignorieren.
</bueroklammer>



More information about the Linux mailing list