# nichts kompiliert mehr

## Massimo B.

Hallo.

Jetzt hab ich mein erstes Gentoo fast fertig eingerichtet auf dem iBook, nun habs ich es schon zerschossen.

Mir ist kein besserer Titel eingefallen, weil ich nicht weiß, wo ich anfangen soll:

emerge --update world bringt:

```

checking for powerpc-unknown-linux-gcc option to accept ANSI C... no

configure: error: Your Compiler doe not appear to recognize prototypes

...

!!! ERROR: sys-libs/ncurses-5.4-r5 failed.

```

Ein emerge ncurses bringt das gleiche.

Nun hab ich auch mal /usr/portage komplett gelöscht und auch /var/tmp/portage.

Außerdem den ccache gelöscht unter /root.

Hab ein erneutes emerge --sync gemacht, aber es hilft nichts.

Als letzte Lösung hab ich die Live-CD gebootet und die Installation beim Bootstrap wieder aufgegriffen:

Also:

# cd /usr/portage

# scripts/bootstrap.sh

Danach ist ncurses immer noch nicht installierbar.

Vorgeschichte:

Da ich nicht weiß, welcher Handgriff schuld war, sind hier die Änderungen, die ich zuvor gemacht hatte:

make.conf:

```

# Ursprünglich

# CFLAGS="-mcpu=750 -O3 -pipe -mpowerpc-gfxopt -mmultiple -mstring"

CFLAGS="-mcpu=750 -O2 -pipe -fomit-frame-pointer -mpowerpc-gfxopt"

```

Nach Lektüre hab ich die alte CFLAGS durch die neue mit -O2 ersetzt, auch weil es angeblich schneller kompiliert, kleineren Code erzeugt und nur unmerklich langsamer sei.

Ich mußte immer Stunden warten bei kleinen Projekten

Außerdem hab ich die GENTOO_MIRRORS gewechselt auf meine hiesige Universität RWTH.

Mittlerweile hab ich aber die Änderungen in der make.conf wieder rückgängig gemacht, ohne Erfolg.

Außerdem hab ich, da ich nun doch kein gnome verwenden möchte, unmerge gemacht:

# emerge --unmerge gnome

# emerge --update --deep --newuse world

# emerge depclean

# revdep-rebuild

Das depclean war, glaub ich, Schuld, da hier vieles deinstalliert wurde, wie auch yaboot, die ich danach wieder manuell emergen wollte.

Nachdem Pakete nicht mehr kompiliert haben, die vorher einwandfrei kompiliert haben, wie licq und mozilla,

hab ich die Fehlerquellen unmerged, um sie danach wieder manuell zu emergen, wie nun auch die wichtige ncurses

Frage: Darf ich überhaupt die CFLAGS ändern, oder muß ich danach das ganze System neu aufsetzen?

Bleiben denn hoffentlich meine Config-Files geschützt, wenn ich wieder soweit ins System eingreifen muß?

In der Dokumenta hab ich gelesen, daß ich lediglich informiert werde, wenn es bei neuen Versionen neue confs. gibt

Ihr seht schon, bei gentoo und portage-trees bin ich neu.

Auch wenn ich Respekt davor habe, handhabe ich es eher wie apt-get unter Mandrake.

Eine emerge-shell wäre praktisch.

Sagt mir, was ich nun eintippen muß!

Gruß,

Paolo

----------

## mrsteven

 *organ wrote:*   

> emerge --update world bringt:
> 
> ```
> 
> checking for powerpc-unknown-linux-gcc option to accept ANSI C... no
> ...

 

Das riecht nach einem zerschossenen Compiler. Du hast nicht versehentlich die CHOST-Variable geändert? Das wäre dann nicht so toll...  :Confused: 

 *Quote:*   

> Nun hab ich auch mal /usr/portage komplett gelöscht

 

Das ist keine besonders gute Idee. rsync (das Backend von Portage für "emerge sync") beseitigt von die eventuell verursachte Fehler im Portage-Tree schon von selbst, wenn du "emerge sync" aufrufst. Wenn du das Verzeichnis löschst, ist das zwar für dein System nicht so schlimm, aber du brauchst halt ein wenig Zeit, bis der Baum wieder da ist. Schlimmer ist aber, dass du auf den Servern unnötig Traffic verursachst. Ist zwar nicht so schlimm, als Anfänger darf man auch mal Fehler machen, aber aus Rücksicht auf den Serverbetreiber und auf andere User solltest du das besser lassen.

 *Quote:*   

> Das depclean war, glaub ich, Schuld, da hier vieles deinstalliert wurde, wie auch yaboot, die ich danach wieder manuell emergen wollte.
> 
> Nachdem Pakete nicht mehr kompiliert haben, die vorher einwandfrei kompiliert haben, wie licq und mozilla,
> 
> hab ich die Fehlerquellen unmerged, um sie danach wieder manuell zu emergen, wie nun auch die wichtige ncurses

 

Hier kommen wir dem Fehler schon näher: Erstens sollte man bei einem Depclean immer genau schauen, was er deinstallieren will, da bist du nicht der Erste, der dadurch sein System zerschossen hat.  :Confused:  Zweitens muss man bei "emerge -C paket" auch aufpassen, dass man hier kein wichtiges Paket, wie z.B. gcc, glibc oder portage deinstalliert.

Ich vermute, dass du versehentlich den Compiler gelöscht hast. Was sagt "gcc-config -l"? Wie schaut dein Verzeichnis /usr/powerpc-unknown-linux-gcc aus?

 *Quote:*   

> Frage: Darf ich überhaupt die CFLAGS ändern, oder muß ich danach das ganze System neu aufsetzen?

 

Das sollte bei den meisten CFLAGS eigentlich kein Problem sein (also -O3 auf -O2 geht auf jeden Fall). Problematisch wäre es nur bei CFLAGS, die irgendwas an der Darstellung bestimmter Datentypen ändern.

----------

## Massimo B.

Danke für deine Unterstützung.

 *Quote:*   

> Das riecht nach einem zerschossenen Compiler. Du hast nicht versehentlich die CHOST-Variable geändert? Das wäre dann nicht so toll... 
> 
> 

 

CHOST ist nach wie vor "powerpc-unknown-linux-gnu", nichts geändert.

 *Quote:*   

>  *Quote:*   Nun hab ich auch mal /usr/portage komplett gelöscht 
> 
> Das ist keine besonders gute Idee. rsync (das Backend von Portage für "emerge sync") beseitigt von die eventuell verursachte Fehler im Portage-Tree schon von selbst, wenn du "emerge sync" aufrufst. Wenn du das Verzeichnis löschst, ist das zwar für dein System nicht so schlimm, aber du brauchst halt ein wenig Zeit, bis der Baum wieder da ist. Schlimmer ist aber, dass du auf den Servern unnötig Traffic verursachst. Ist zwar nicht so schlimm, als Anfänger darf man auch mal Fehler machen, aber aus Rücksicht auf den Serverbetreiber und auf andere User solltest du das besser lassen.

 

Das war ja auch eine Ausnahme. Ich habe danach den Baum neu synchronisiert. Ich plädiere auch dafür, lokale Server zu benutzen und den UNI-Server kenne ich auch.

Sobald alles funktioniert, möchte ich mich mit diesem synchronisieren. Ist außerdem immens schnell aus der Datenzentrale selbst. :Smile: 

 *Quote:*   

> Hier kommen wir dem Fehler schon näher: Erstens sollte man bei einem Depclean immer genau schauen, was er deinstallieren will, da bist du nicht der Erste, der dadurch sein System zerschossen hat.  Zweitens muss man bei "emerge -C paket" auch aufpassen, dass man hier kein wichtiges Paket, wie z.B. gcc, glibc oder portage deinstalliert.
> 
> Ich vermute, dass du versehentlich den Compiler gelöscht hast. Was sagt "gcc-config -l"? Wie schaut dein Verzeichnis /usr/powerpc-unknown-linux-gcc aus?

 

An wichtigen Dingen sind mir nur yaboot aufgefallen. Wonach richtet sich depclean?

Ich habe es nur gemacht, weil in der Doku steht, daß bei solchen Gesamt-Paketen wie kde und gnome vieles zurückbleibt beim unmergen, was ich nicht explizit emerged hab.

Yaboot habe ich aber selbst emerged.

```
# gcc-config -l

[1] powerpc-unknown-linux-gnu-3.4.3 *

[2] powerpc-unknown-linux-gnu-3.4.3-hardened

[3] "                                   ...hardenednopie

[4] "                                   ...hardenednossp

# ls /mnt/gentoo/usr/powerpc-unknown-linux-gnu/                   //kein -linux-gcc

bin  binutils-bin  gcc-bin  lib

```

War das richtig, daß ich nochmal bootstrap.sh aus /usr/portage heraus gemacht hab?

Das baut doch den Compiler neu?

paolo

----------

## mrsteven

 *organ wrote:*   

> Wonach richtet sich depclean?

 

Soweit ich weiß nach dem Worldfile und den aktuellen USE-Flags (also nicht nach denen, die beim Compilieren gesetzt waren).

Schau mal, ob deine CFLAGS gültig sind. Ich kenne mich mit der PowerPC-Plattform leider nicht aus, sodass du selbst schauen musst. Ansonsten bin ich grade auch relativ ratlos. Aber probier mal, dieses Listing zu compilieren:

```
#include <stdio.h>

int main(void)

{

  puts("Hallo Welt");

  return 0;

}

```

Speichere es als test.c und compiliere es hiermit:

```
gcc -v -Wall -o test test.c
```

Funktioniert das? Poste bitte die ganze Ausgabe des Compilers.

----------

## Massimo B.

 *Quote:*   

> Schau mal, ob deine CFLAGS gültig sind. Ich kenne mich mit der PowerPC-Plattform leider nicht aus, sodass du selbst schauen musst.

 

Die stimmen. Bei der ersten Einstellung wäre ich mißtrauisch gewesen, die hab ich mir nach Lektüre der gcc-Doc gebaut und aus Hacker-empfehlungen.

Damit hab ich mein System ja gebaut, und schließlich KDE laufen.

Die 2. Einstellungen mit -O2 sollten aber auf jeden Fall passen.

 *Quote:*   

> Ansonsten bin ich grade auch relativ ratlos. Aber probier mal, dieses Listing zu compilieren:
> 
> ```
> #include <stdio.h>
> 
> ...

 

Hoffe das reicht.

Also wenn es keine Möglichkeit gibt, ein emerge system drüberzubügeln, dann muß ich wohl

von vorne anfangen. Hab halt schon ein wenig Arbeit in Startskripte und Module gesteckt.

Hoffentlich läuft die Installation mit -O2 schneller als 3 Tage.

Ist eine Qual für mein iBook.

Gruß,

Paolo

----------

## spielc

 *organ wrote:*   

>  *Quote:*   Schau mal, ob deine CFLAGS gültig sind. Ich kenne mich mit der PowerPC-Plattform leider nicht aus, sodass du selbst schauen musst. 
> 
> Die stimmen. Bei der ersten Einstellung wäre ich mißtrauisch gewesen, die hab ich mir nach Lektüre der gcc-Doc gebaut und aus Hacker-empfehlungen.
> 
> Damit hab ich mein System ja gebaut, und schließlich KDE laufen.
> ...

 

hmm compiliert er jetzt das mini-programm oder nicht???

[edit] wer lesen kann, ist klar im vorteil  :Embarassed:  hab grad gesehn, dass es kompiliert[/edit]

----------

## Carlo

 :Arrow:  Quick Search: recognize prototypes

----------

## Massimo B.

 *Carlo wrote:*   

>  Quick Search: recognize prototypes

 

Danke. Beim google konnte ich nichts_brauchbares/zuviel finden. Auf die Idee hier im Forum zu suchen, kam ich dummerweise nicht.

Nach Studium der englischen Beiträge werd ich die Lösung hier kurzfassen.

@spielc: fullquotes ziehn den Text unnötig in die Länge.

----------

## mrsteven

Na ja, es ging mir grade auch um die Zeile mit puts, weil der Header stdio.h auch Prototypen enthält (und die sind ja dein Problem). Ohne Editor geht es unter Linux natürlich auch:

```
cat << EOF > test.c

#include <stdio.h>

int main(void)

{

  puts("Hallo Welt!);

  return 0;

}

EOF

gcc -Wall -o test test.c
```

----------

## Massimo B.

Nach Lektüre der englischen Beiiträge kam mir dieser hier am passendsten:

https://forums.gentoo.org/viewtopic-t-216607-highlight-recognize+prototypes.html

Threads wie https://forums.gentoo.org/viewtopic-t-274175-highlight-recognize+prototypes.html

besagen, daß der Fehler beim Ändern des USE-FLAGS für unicode auftritt. Daran habe ich aber nichts geändert.

Also hab ich alle libncurses* von der Live-CD nach /lib kopiert.

Nun bootet das System wieder sauber, jedoch bricht emerge libncurses nun an anderer Stelle ab:

```
./run_tic.sh: line 119: tic: command not found
```

Außerdem bringen Befehle wie nano oder top:

```
'linux':unknown terminal type
```

vim startet zwar, läßt sich aber nicht steuern.

ich glaube ich fange neu an.

Wo könnte ich ansetzen, um bisherige Skripte und .conf's zu erhalten? /usr /var löschen, und neu anfange bei stage1 und bootstrap?

Gruß,

Paolo

----------

