# ccache: Viele internal errors

## franzf

Hi,

Ich habe seit einiger Zeit Probleme mit ccache, glaube es ist seit dem Update auf gcc-4.3 (natürlich auch noch mit 4.4), kann das aber icht ganau sagen.

Ich habe hauptsächlich internal errors:

```
ccache -s

cache directory                     /var/tmp/ccache

cache hit                           6748

cache miss                         19485

called for link                     6571

multiple source files                  9

compile failed                      1767

ccache internal error              52277

preprocessor error                   521

not a C/C++ file                    4259

autoconf compile/link               6289

unsupported compiler option         1016

no input file                       3025

files in cache                      9698

cache size                         133.4 Mbytes

max cache size                       2.0 Gbytes
```

Und leider keinen Ansatzpunkt...

Wäre dankbar für jede Anregung  :Smile: 

Grüße

Franz

----------

## grim

Hallo,

poste mal deine CFlags sowie dein CPU Type

----------

## franzf

 *grim wrote:*   

> poste mal deine CFlags sowie dein CPU Type

 

Ouch (sry), klar, gerne  :Smile: 

```
paludis 0.40.1               

Paludis build information:   

    Compiler:                

        CXX:                   x86_64-pc-linux-gnu-g++ 4.4.1

        CXXFLAGS:               -march=k8 -O2 -pipe -msse3 -pedantic

        LDFLAGS:               -Wl,-O1                              

        DATE:                  2009-09-21T10:59:55+0200             

    Libraries:

        C++ Library:           GNU libstdc++ 20090722

    Paths:

        DATADIR:               /usr/share

        LIBDIR:                /usr/lib64

        LIBEXECDIR:            /usr/libexec

        SYSCONFDIR:            /etc        

        PYTHONINSTALLDIR:      /usr/lib64/python2.6/site-packages

        RUBYINSTALLDIR:        /usr/lib64/ruby/site_ruby/1.8/x86_64-linux

System:

    Linux local_machine 2.6.31-gentoo-r3 #1 Fri Oct 16 07:55:39 CEST 2009 x86_64 AMD Athlon(tm) 64 Processor 3700+ AuthenticAMD GNU/Linux
```

Installiert ist ccache-2.4-r8, aber auch mit dem altuell stabilen 2.4-r7 hab ich das Problem.

----------

## grim

Bitte poste:

```

cat /proc/cpuinfo

```

----------

## franzf

 *grim wrote:*   

> Bitte poste:
> 
> ```
> 
> cat /proc/cpuinfo
> ...

 

Prozessor steht eigentlich in obiger AUflistung unter "System", wenn es ein cpuinfo sein soll trotzdem gerne:

```
cat /proc/cpuinfo

processor       : 0

vendor_id       : AuthenticAMD

cpu family      : 15

model           : 39

model name      : AMD Athlon(tm) 64 Processor 3700+

stepping        : 1

cpu MHz         : 2200.000

cache size      : 1024 KB

fpu             : yes

fpu_exception   : yes

cpuid level     : 1

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good pni lahf_lm

bogomips        : 4421.76

TLB size        : 1024 4K pages

clflush size    : 64

cache_alignment : 64

address sizes   : 40 bits physical, 48 bits virtual

power management: ts fid vid ttp tm stc
```

----------

## grim

die cpuinfo gibt dir folgendes wichtige aus:

```

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good pni lahf_lm 

```

Hier sind die "features" deines Prozessors aufgelistet

Ich vermute, das

```

CXXFLAGS:               -march=k8 -O2 -pipe -msse3 -pedantic 

```

-msse3 da nicht hereingehört.

versuch es mal damit

```

CHOST="x86_64-pc-linux-gnu"

CFLAGS="-march=k8 -O2 -pipe"

CXXFLAGS="${CFLAGS}

```

----------

## franzf

 *grim wrote:*   

> versuch es mal damit
> 
> ```
> 
> CHOST="x86_64-pc-linux-gnu"
> ...

 

Ich hab diese Flags schon seit Anfang an. Hab damals einige Posts gewältzt und hab auch gelesen, dass eine CPU SSE3 unterstützt. Hatte mit diesen Einstellungen wie gesagt früher keine Probleme.

Das Ändern hat im Übrigen nicht wirklich Besserung gebracht. Bei einem Test mit php gingen bei den tests durch ./configure schon fast alle in einem internal error unter. Und weiter ging es mit ca. 70-80% Errorquote.

----------

## Josef.95

Nein, an der "msse3" Flag sollte es nicht liegen, da die CPU sse3 unterstützt (dies bescheinigt die "pae" CPU-Flag , diese steht bei AMD für sse3)

Ich habe selbst einen ähnlichen Prozessor in betrieb, läuft leit Jahren Problemlos mit "-msee3"

Aber die "-pedantic" Flag, Hmm.., was macht die??

/edit

Ahrg.., ich war zu langsam beim tippen..

----------

## franzf

 *Josef.95 wrote:*   

> Nein, an der "msse3" Flag sollte es nicht liegen, da die CPU sse3 unterstützt (dies bescheinigt die "pae" CPU-Flag , diese steht bei AMD für sse3)
> 
> Ich habe selbst einen ähnlichen Prozessor in betrieb, läuft leit Jahren Problemlos mit "-msee3"

 

UI, danke, ich hab schon an mir und meiner Erinnerung gezweifelt (Solche Basics sind bei mir "einmal richtig informiert und nie mehr drum gekümmert...)

 *Josef.95 wrote:*   

> Aber die "-pedantic" Flag, Hmm.., was macht die??

 

Wow, wo kommt das denn her?!?

 */etc/paludis/bashrc wrote:*   

> CHOST="x86_64-pc-linux-gnu"
> 
> CFLAGS="-march=k8 -O2 -pipe"
> 
> CXXFLAGS="${CFLAGS}"
> ...

 

Aber ich bekomme beim Kompilieren keine Warnings/Fehler betreffend pedantic.

pedantic ist einfach gaaaanz streng, was Coding-Vorschriften anbelangt. z.B. ein ";" hinter der schließenden namespace-Klammer (bei Klassen ja Pflicht) resultiert bei pedantic in nem Warning.

Aber solche Sachen bekomm ich eigentlich nicht zu sehen, drum wundert mich, dass paludis --info das bei den CXXFLAGS aufführt...

----------

## Josef.95

 *Josef.95 wrote:*   

> Nein, an der "msse3" Flag sollte es nicht liegen, da die CPU sse3 unterstützt (dies bescheinigt die "pae" CPU-Flag , diese steht bei AMD für sse3)
> 
> 

 

Sorry, ich hab vorsichtshalber noch mal nachgeschaut und muss mich korrigieren  :Exclamation: 

Nicht "pae" steht für sse3

sondern

"pni" 

 *Quote:*   

> Wichtig: Stellen Sie sicher, dass Ihre CPU diese unterstützt, indem Sie cat /proc/cpuinfo ausführen. Die Ausgabe wird alle zusätzlich unterstützten Befehlssätze enthalten. Beachten Sie, dass pni einfach ein anderer Name für SSE3 ist.

 Quelle: http://www.gentoo.org/doc/de/gcc-optimization.xml

Sorry für die Verwirrung..!

Aber da deine CPU auch die "pni" Flag hat sollte es wirklich nicht daran liegen.

...........................................................................................................

/edit:

Aber ist schon "komisch" mit den vielen errors..??

Bei mir schaut es zb so aus 

```
# ccache -s

cache directory                     /mnt/CCACHEK4/ccache

cache hit                         319784

cache miss                        705512

called for link                   109021

multiple source files                 37

compile failed                     23998

ccache internal error                  1

preprocessor error                 38336

cache file missing                     1

not a C/C++ file                   75175

autoconf compile/link             119863

unsupported compiler option        40836

no input file                      72762

files in cache                    998307

cache size                           9.2 Gbytes

max cache size                      10.0 Gbytes
```

 Ich verwende folgende Flags

CFLAGS="-O2 -march=native -msse3 -pipe"

CXXFLAGS="${CFLAGS}"

LDFLAGS="-Wl,-O1"

Also alles ziemlich harmlos..

# gcc --version

gcc (Gentoo 4.4.1 p1.0) 4.4.1

[....

MfGLast edited by Josef.95 on Fri Oct 16, 2009 1:18 pm; edited 1 time in total

----------

## franzf

Na toll... Seit Wochen ärger ich mich rum, suche, probiere.

Dann hats mir echt vorhin gereicht und hab einfach ein frisches ccache-dir gesetzt. Und schwupps, keine internal Errors mehr!!!

Jetzt gibts zwar den ein oder anderen preprocessor-error aber nicht in dieser Menge!

Ich beobachte das ganze mal und schau ob das Verhalten so bleibt.

Danke und Grüße

Franz

----------

