# [résolu][emerge] gcc était dyslexique

## StinGer_Uesugi

J'avais déjà eu un problème comme celui-là, mais j'avais mis ça sur le dos d'une surchauffe du processeur. C'est un HTPC fanless (enfin si, mais des ventilos de boîtier). Et puis je n'ai jamais eu de nouveau le problème.

Sauf que là, pour un petit emerge world des familles, j'ai des erreurs de compilation de gcc (et d'autres). Sauf que l'erreur est... totalement bidon... En voilà un exemple :

```
x86_64-pc-linux-gnu-gcc -c      -DIN_GCC   -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat   -DHAVE_CONFIG_H -I. -I. -I/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc -I/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc/. -I/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc/../include -I/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc/../libcpp/include  -I/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc/../libdecnumber -I/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc/../libdecnumber/bid -I../libdecnumber    insn-attrtab.c -o insn-attrtab.o

x86_64-pc-linux-gnu-gcc -c      -DIN_GCC   -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat   -DHAVE_CONFIG_H -I. -I. -I/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc -I/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc/. -I/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc/../include -I/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc/../libcpp/include  -I/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc/../libdecnumber -I/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc/../libdecnumber/bid -I../libdecnumber    insn-emit.c -o insn-emit.o

/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc/config/i386/sse.md: In function ‘internal_dfa_insn_code_bdver1’:

/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc/config/i386/sse.md:1049:32: error: ‘TYPE_IMoV’ undeclared (first use in this function)

/var/tmp/portage/sys-devel/gcc-4.7.3-r1/work/gcc-4.7.3/gcc/config/i386/sse.md:1049:32: note: each undeclared identifier is reported only once for each function it appears in

make[3]: *** [insn-attrtab.o] Error 1

make[3]: *** Waiting for unfinished jobs....
```

Et le problème, c'est que TYPE_IMoV n'existe effectivement pas, mais TYPE_IMOV si ! Et c'est d'ailleurs bel et bien TYPE_IMOV qui est déclaré et utilisé partout dans les sources.

Alors pourquoi gcc lit-il une minuscule là où il n'y en a pas ? Je sèche totalement. Vous avez des idées ?

----------

## xaviermiller

```
emerge --info
```

----------

## StinGer_Uesugi

Bon alors cette nuit, j'ai fait un truc très saaaaaaaaaaaal :

```
while true; do emerge -NuD world; done
```

C'était un peu à cœur perdu et j'aurais pensé que la compilation de gcc échouerait en boucle. Mais non ! Après deux essais, le troisième fut le bon ! En revanche, il y a eu d'autres "échecs" après, texlive-core notamment. Mais il est passé sur la tentative suivante et je ne sais pas quelle était l'erreur.

Toujours est-il que j'aimerais bien comprendre l'origine de mon problème.

XavierMiller, beuarrh à toi aussi :

```
Portage 2.2.1 (default/linux/amd64/13.0, gcc-4.6.3, glibc-2.15-r3, 3.10.7-gentoo-stg10 x86_64)

=================================================================

System uname: Linux-3.10.7-gentoo-stg10-x86_64-AMD_E-450_APU_with_Radeon-tm-_HD_Graphics-with-gentoo-2.2

KiB Mem:     3637284 total,    593592 free

KiB Swap:    2097148 total,   2097148 free

Timestamp of tree: Thu, 17 Oct 2013 07:45:01 +0000

ld GNU ld (GNU Binutils) 2.23.1

app-shells/bash:          4.2_p45

dev-lang/python:          2.7.5-r2, 3.2.5-r2

dev-util/cmake:           2.8.10.2-r2

dev-util/pkgconfig:       0.28

sys-apps/baselayout:      2.2

sys-apps/openrc:          0.11.8

sys-apps/sandbox:         2.6-r1

sys-devel/autoconf:       2.13, 2.69

sys-devel/automake:       1.10.3, 1.11.6, 1.12.6, 1.13.4

sys-devel/binutils:       2.23.1

sys-devel/gcc:            4.6.3, 4.7.3-r1

sys-devel/gcc-config:     1.7.3

sys-devel/libtool:        2.4.2

sys-devel/make:           3.82-r4

sys-kernel/linux-headers: 3.9 (virtual/os-headers)

sys-libs/glibc:           2.15-r3

Repositories: gentoo x11 enlightenment x-portage

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="* -@EULA"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=native -mmmx -msse -msse2 -mssse3 -msse4a -mpopcnt -mabm -O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"

CXXFLAGS="-march=native -mmmx -msse -msse2 -mssse3 -msse4a -mpopcnt -mabm -O2 -pipe"

DISTDIR="/usr/portage/distfiles"

EMERGE_DEFAULT_OPTS="--quiet-build"

FCFLAGS="-march=native -mmmx -msse -msse2 -mssse3 -msse4a -mpopcnt -mabm -O2 -pipe"

FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"

FFLAGS="-march=native -mmmx -msse -msse2 -mssse3 -msse4a -mpopcnt -mabm -O2 -pipe"

GENTOO_MIRRORS="ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ http://mirrors.linuxant.fr/distfiles.gentoo.org/ ftp://mirrors.linuxant.fr/distfiles.gentoo.org/ ftp://mirror.ovh.net/gentoo-distfiles/ http://mirror.ovh.net/gentoo-distfiles/"

LANG="fr_FR.UTF-8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/var/lib/layman/x11 /var/lib/layman/enlightenment /usr/local/portage"

SYNC="rsync://rsync.fr.gentoo.org/gentoo-portage"

USE="3dnow X a52 acl acpi alsa amd64 berkdb branding bzip2 cdda cddb cli cracklib crypt css cxx dri dts dvd encode exif fbcon ffmpeg flac fortran gdbm hddtemp iconv ieee1394 ipv6 jpeg jpeg2k lm_sensors mad matroska mime mmx mng modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl ogg opengl openmp pam pcre png policykit readline samba session smp sse sse2 sse3 ssl taglib tcpd theora threads tiff udev unicode usb vaapi vdpau vorbis win32codecs wmf x264 xvid zlib zsh-completion" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="fr" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="radeon" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

```

----------

## xaviermiller

Essaie avec des CFLAGS plus safe.

----------

## StinGer_Uesugi

Arff...

Comme je l'ai mentionné, j'ai déjà rencontré le problème auparavant. Et depuis, j'ai "durcis" les CFLAGS et j'ai emergé plein de paquets sans problème jusqu'à aujourd'hui. Bon maintenant, plein de choses ont changé depuis ce durcissement de CFLAGS donc je vais retenter de faire comme tu dis.

Le seul problème, c'est qu'il faudrait que j'ai à nouveau un plantage de compilation. Parce que là, bah ça veut plus planter... C'est le problème des pannes intermittentes.

----------

## xaviermiller

Que dit dmesg ? Des pannes intermittentes non reproductibles, surtout pendant que GCC turbine sont le signe de faiblesses du matériel.

----------

## StinGer_Uesugi

Alors pour faire dans l'ordre.

 *XavierMiller wrote:*   

> Que dit dmesg ? Des pannes intermittentes non reproductibles, surtout pendant que GCC turbine sont le signe de faiblesses du matériel.

 

Rien (enfin si, que mon md127 est monté en ext4... \o/).

Je voulais que ça replante, parfait ! J'avais besoin d'emerge un truc et là (je mets juste la ligne pertinente) :

```
/usr/include/eina-1/eina/eina_inline_lock_posix.x:122:13: error: ‘EINA_FaLSE’ undeclared (first use in this function)
```

Alors que j'ai changé les CFLAGS en :

```
CFLAGS="-march=native"
```

Faut peut-être que je lui réapprenne à lire ? Il a eu son bac gcc ?   :Laughing: 

----------

## xaviermiller

C'est vraiment bizarre, ton truc !

----------

## StinGer_Uesugi

Attend, je suis en train de tester un truc... Si ça fonctionne, tu vas découvrir le summum de la bizarritude et du sââââââââââââââââââle.

----------

## StinGer_Uesugi

Ce qui suit peut heurter les personnes sensibles. NE REPRODUISEZ PAS ÇA CHEZ VOUS !

Bon alors, je me suis dit qu'aujourd'hui, je me sentais l'âme d'un grand dégueulasse? alors j'ai fait ça :

```
cd /var/tmp/portage/x11-wm/enlightenment-0.17.5_pre2/work/enlightenment-0.17.5

make -j2

```

On rigole ?

```
blablabLa # echo $?

0

```

Voilà, donc maintenant, c'est quoi le problème de mon PC ?!?!?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

PS : maintenant, je vais prendre une douche parce que je suis tout couvert de caca.

----------

## xaviermiller

Et dmesg ne dit vraiment rien ?

Lance un memtest86+ complet, pour voir...

----------

## StinGer_Uesugi

Nan mon dmesg ne dit vraiment rien. Comme je te sens dubitatif, je te mets ce que j'ai après un reboot (je sais même plus pourquoi j'ai reboot) mais où j'ai eu des merdes de compilation encore :

```
blablabla # dmesg | tail

[   13.949417] EXT4-fs (dm-1): re-mounted. Opts: acl

[   14.083723] Adding 2097148k swap on /dev/mapper/Arya-swap.  Priority:-1 extents:1 across:2097148k FS

[   14.144125] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: acl

[   16.464765] NET: Registered protocol family 10

[   17.193471] r8169 0000:04:00.0 eth0: unable to load firmware patch rtl_nic/rtl8168e-2.fw (-2)

[   17.206785] r8169 0000:04:00.0 eth0: link down

[   17.206829] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

[   17.206839] r8169 0000:04:00.0 eth0: link down

[   20.416318] r8169 0000:04:00.0 eth0: link up

[   20.416338] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
```

(Faudrait que je m'occupe de ce firmware manquant d'ailleurs...)

Je vais tenté le memtest (enfin pas là parce que j'ai besoin de mon PC).

----------

## xaviermiller

En effet, ce dmesg semble bien clean...

----------

## geekounet

Ton gcc tu l'as bien recompilé avec des cflags safes (-march=native -O2 -pipe) ? Les binutils aussi ?

----------

## StinGer_Uesugi

 *geekounet wrote:*   

> Ton gcc tu l'as bien recompilé avec des cflags safes (-march=native -O2 -pipe) ? Les binutils aussi ?

 

Ha j'avoue je crois pas. Je vais faire ça.

----------

## StinGer_Uesugi

Bon alors c'est bon j'ai trouvé, le problème vient bien de la RAM. Enfin peut-être pas mais ça cause des erreurs sur la RAM en tous cas.

Je m'explique : j'ai lancé un memtest86+, truc que j'avais déjà lancé quand j'avais eu des problèmes similaires par le passé. Au début, pas d'erreurs. La première passe se finit tranquille. Sauf que là, j'ai laissé le truc tourner toute la nuit, et le lendemain matin, BOOM. Masse d'erreurs sur le test #5 de la quatrième (ou cinquième, je sais plus) passe. Donc soit mes barrettes sont pourries, soit ça chauffe trop là dedans quand ça travaille. Je pencherai plus pour des barrettes foireuses parce que seul le test #5 chie. Encore que...

Enfin merci de l'aide en tous cas, je vais essayer de voir ce que je peux faire.

----------

## xaviermiller

La piste de la surchauffe est à étudier. J'ai eu le cas d'un southbridge qui pétait un câble quand je compilais un peu trop, il y a quelques années (une carte-mère provisoire, dont je me suis très vite débarrassé).

----------

## StinGer_Uesugi

Là c'est un HTPC, un truc fanless avec juste 2 ventilos dans le boitier. Pourtant quand je regarde avec sensors, je dépasse pas les 67°C, ce qui ne me choque pas. Mais y a pas de sonde partout...

----------

## StinGer_Uesugi

Juste pour compléter le truc : après remplacement en garantie, j'ai mes nouvelles barrettes. Et ça fonctionnent beaucoup mieux ! ^^ HAHA

----------

