Hallo allerseits,
seit geraumer Zeit versuche ich verzweifelt eine vorgegebene Toolchain
(u.a. mit gcc-3.3.3) ans Laufen zu bekommen. Es handelt sich hierbei um
einen Cross-Compiler für einen PowerPC (Motorola MPC8250).
Das Entwicklungssystem ist ein schickes Debian Squeeze: kernel 2.6.32-5,
gcc-4.4.5 und einem etwas älteren gcc-3.4.
Beim Kompilieren bricht er an einer Stelle ab und bringt jede Menge
Fehlermeldungen:
1 | verzeichnis/gcc-3.3.3/gcc/cp/decl.c -o cp/decl.o
|
2 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c: In function ‘push_binding_level’:
|
3 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c:727: error: lvalue required as left operand of assignment
|
4 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c: In function ‘pop_binding_level’:
|
5 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c:783: error: lvalue required as left operand of assignment
|
6 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c: In function ‘suspend_binding_level’:
|
7 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c:800: error: lvalue required as left operand of assignment
|
8 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c:819: error: lvalue required as left operand of assignment
|
9 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c: In function ‘resume_binding_level’:
|
10 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c:832: error: lvalue required as left operand of assignment
|
11 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c: In function ‘pushdecl_with_scope’:
|
12 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c:4559: error: lvalue required as left operand of assignment
|
13 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c:4561: error: lvalue required as left operand of assignment
|
14 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c: In function ‘cxx_init_decl_processing’:
|
15 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c:6964: error: lvalue required as left operand of assignment
|
16 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c: In function ‘grokdeclarator’:
|
17 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c:10816: error: lvalue required as left operand of assignment
|
18 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c:10819: error: lvalue required as left operand of assignment
|
19 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c: In function ‘start_function’:
|
20 | /verzeichnis/gcc-3.3.3/gcc/cp/decl.c:14465: error: lvalue required as left operand of assignment
|
21 | In file included from /verzeichnis/gcc-3.3.3/gcc/cp/decl.c:15472:
|
22 | ./gtype-cp.h: In function ‘gt_ggc_mx_lang_decl’:
|
23 | ./gtype-cp.h:354: warning: case label value exceeds maximum value for type
|
24 | ./gtype-cp.h: In function ‘gt_ggc_mx_lang_type’:
|
25 | ./gtype-cp.h:396: warning: case label value exceeds maximum value for type
|
26 | make[2]: *** [cp/decl.o] Fehler 1
|
27 | make[2]: Leaving directory `/verzeichnis/gcc-3.3-final/gcc'
|
28 | make[1]: *** [all-gcc] Fehler 2
|
29 | make[1]: Leaving directory `/verzeichnis/gcc-3.3-final'
|
30 | make: *** [/verzeichnis/gcc-3.3-final/.compiled] Fehler 2
|
Jetzt habe ich mich in der besagten Datei decl.c ein wenig umgeschaut.
Um Zeile 680 herum wird current_binding_level definiert:
1 | #define current_binding_level \
|
2 | (cfun && cp_function_chain->bindings \
|
3 | ? cp_function_chain->bindings \
|
4 | : scope_chain->bindings)
|
In allen Zeilen, die die Fehlermeldungen verursachen, wird in
current_binding_level irgendetwas reingeschrieben. Jetzt wird in
current_binding_level natürlich selbst nichts reingeschrieben, sondern
in eine der beiden Strukturen, die im #define erwähnt werden. Das
scheint aber irgendwie nicht zu funktionieren...
Hat jemand eine Idee woran es liegt? Es kann doch nicht sein, dass ein
frisch heruntergeladenes gcc-3.3.3 sich nicht kompilieren lässt.