# [software]update gcc stable su amd64[RISOLTO]

## ^Stefano^

Salve, stamane dopo un emerge --sync ho visto che gcc era stato aggiornato alla versione 3.4.5 ed ho deciso di aggiornare anche io.

```
emerge -uav gcc
```

però mi restituisce questo:

```
>>> Unpacking source...

>>> Unpacking gcc-3.4.5.tar.bz2 to /var/tmp/portage/gcc-3.4.5/work

>>> Unpacking gcc-3.4.5-patches-1.2.tar.bz2 to /var/tmp/portage/gcc-3.4.5/work>>> Unpacking gcc-3.4.5-uclibc-patches-1.0.tar.bz2 to /var/tmp/portage/gcc-3.4.5/work

>>> Unpacking gcc-3.4.5-ssp-1.0.tar.bz2 to /var/tmp/portage/gcc-3.4.5/work

>>> Unpacking gcc-3.4.5-piepatches-v8.7.9.tar.bz2 to /var/tmp/portage/gcc-3.4.5/work

 * Applying stub patch for htb ...   [ ok ]                                    

* Applying gcc-3.4.5-ssp.patch ...      [ ok ]                               

* Updating gcc to use SSP from libc ...

 * Applying upstream pie patches ...

 *   00_all_gcc-4.0-cvs-incompat.patch ...  [ ok ]                            

 *   00_all_gcc-4.0-cvs-mips-pic-for-3.4.3.patch ... [ ok ]                    

*   00_all_gcc-4.0-cvs-pic.patch ...  [ ok ]                                  

*   00_all_gcc-4.0-cvs-start_endfile-for-3.4.4.patch ...   [ ok ]             

*   03_all_gcc-3.4.0-v8.7.6.1-pie-arm.patch ...

 * Failed Patch: 03_all_gcc-3.4.0-v8.7.6.1-pie-arm.patch !

 *  ( /var/tmp/portage/gcc-3.4.5/work/piepatch/upstream/03_all_gcc-3.4.0-v8.7.6.1-pie-arm.patch )

 *

 * Include in your bugreport the contents of:

 *

 *   /var/tmp/portage/gcc-3.4.5/temp/03_all_gcc-3.4.0-v8.7.6.1-pie-arm.patch-28790.out

!!! ERROR: sys-devel/gcc-3.4.5 failed.

!!! Function epatch, Line 339, Exitcode 0

!!! Failed Patch: 03_all_gcc-3.4.0-v8.7.6.1-pie-arm.patch!

!!! If you need support, post the topmost build error, NOT this status message.

```

posto anche  /var/tmp/portage/gcc-3.4.5/temp/03_all_gcc-3.4.0-v8.7.6.1-pie-arm.patch-28790.out come richiesto dal messaggio di errore:

```
***** 03_all_gcc-3.4.0-v8.7.6.1-pie-arm.patch *****

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

PATCH COMMAND:  patch -p0 -g0 -E --no-backup-if-mismatch < /var/tmp/portage/gcc-3.4.5/work/piepatch/upstream/03_all_gcc-3.4.0-v8.7.6.1-pie-arm.patch

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

can't find file to patch at input line 3

Perhaps you used the wrong -p or --strip option?

The text leading up to this was:

--------------------------

|--- gcc-3.4.0/gcc/config/arm/linux-elf.h.mps   Thu May 20 09:11:17 2004

|+++ gcc-3.4.0/gcc/config/arm/linux-elf.h   Thu May 20 09:12:28 2004

--------------------------

No file to patch.  Skipping patch.

1 out of 1 hunk ignored

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

PATCH COMMAND:  patch -p1 -g0 -E --no-backup-if-mismatch < /var/tmp/portage/gcc-3.4.5/work/piepatch/upstream/03_all_gcc-3.4.0-v8.7.6.1-pie-arm.patch

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

patching file gcc/config/arm/linux-elf.h

Hunk #1 FAILED at 91.

1 out of 1 hunk FAILED -- saving rejects to file gcc/config/arm/linux-elf.h.rej

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

PATCH COMMAND:  patch -p2 -g0 -E --no-backup-if-mismatch < /var/tmp/portage/gcc-3.4.5/work/piepatch/upstream/03_all_gcc-3.4.0-v8.7.6.1-pie-arm.patch

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

can't find file to patch at input line 3

Perhaps you used the wrong -p or --strip option?

The text leading up to this was:

--------------------------

|--- gcc-3.4.0/gcc/config/arm/linux-elf.h.mps   Thu May 20 09:11:17 2004

|+++ gcc-3.4.0/gcc/config/arm/linux-elf.h   Thu May 20 09:12:28 2004

--------------------------

No file to patch.  Skipping patch.

1 out of 1 hunk ignored

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

PATCH COMMAND:  patch -p3 -g0 -E --no-backup-if-mismatch < /var/tmp/portage/gcc-3.4.5/work/piepatch/upstream/03_all_gcc-3.4.0-v8.7.6.1-pie-arm.patch

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

can't find file to patch at input line 3

Perhaps you used the wrong -p or --strip option?

The text leading up to this was:

--------------------------

|--- gcc-3.4.0/gcc/config/arm/linux-elf.h.mps   Thu May 20 09:11:17 2004

|+++ gcc-3.4.0/gcc/config/arm/linux-elf.h   Thu May 20 09:12:28 2004

--------------------------

No file to patch.  Skipping patch.

1 out of 1 hunk ignored

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

PATCH COMMAND:  patch -p4 -g0 -E --no-backup-if-mismatch < /var/tmp/portage/gcc-3.4.5/work/piepatch/upstream/03_all_gcc-3.4.0-v8.7.6.1-pie-arm.patch

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

can't find file to patch at input line 3

Perhaps you used the wrong -p or --strip option?

The text leading up to this was:

--------------------------

|--- gcc-3.4.0/gcc/config/arm/linux-elf.h.mps   Thu May 20 09:11:17 2004

|+++ gcc-3.4.0/gcc/config/arm/linux-elf.h   Thu May 20 09:12:28 2004

--------------------------

No file to patch.  Skipping patch.

1 out of 1 hunk ignored

```

ho provato anche ad usare la versione testing 3.4.6 ma mi da lo stesso identico errore...

di seguito le info sul mio sistema:

```
bigcrash stefano # emerge --info

Portage 2.0.54 (default-linux/amd64/2006.0, gcc-3.4.4, glibc-2.3.5-r2, 2.6.16 x86_64)

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

System uname: 2.6.16 x86_64 AMD Athlon(tm) 64 Processor 3000+

Gentoo Base System version 1.6.14

dev-lang/python:     2.4.2

sys-apps/sandbox:    1.2.12

sys-devel/autoconf:  2.13, 2.59-r7

sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1

sys-devel/binutils:  2.16.1

sys-devel/libtool:   1.5.22

virtual/os-headers:  2.6.11-r2

ACCEPT_KEYWORDS="amd64"

AUTOCLEAN="yes"

CBUILD="x86_64-pc-linux-gnu"

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

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib64/mozilla/defaults/pref /usr/share/config /var/qmail/control"

CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"

CXXFLAGS="-march=k8 -O2 -pipe -msse3"

DISTDIR="/usr/portage/distfiles"

FEATURES="autoconfig distlocks sandbox sfperms strict"

GENTOO_MIRRORS="http://mirror.ovh.net/gentoo-distfiles/ http://pandemonium.tiscali.de/pub/gentoo/ http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"

LANG="it_IT@euro"

LC_ALL="it_IT@euro"

LINGUAS="it"

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

SYNC="rsync://rsync1.it.gentoo.org/gentoo-portage"

USE="amd64 X a52 aac aalib alsa apache2 audiofile avi bash-completition berkdb bitmap-fonts bzip2 cairo cdr cli crypt ctype cups curl dba dbus directfb dri dvd dvdr dvdread eds emboss encode esd exif expat fam fame fastbuild ffmpeg flac foomaticdb force-cgi-redirect fortran ftp gd gdbm gif glut gmp gnome gnutls gpm gstreamer gtk gtk2 gtkhtml hal idn imagemagick imlib ipv6 java jpeg kde kdeenablefinal lcms libcaca lzw lzw-tiff mad matroska memlimit mikmod mng mozilla mp3 mpeg musicbrainz nas ncurses nls nptl nsplugin nvidia ogg oggvorbis openal opengl pam pcre pdflib perl php png posix python qt quicktime readline scanner sdl session simplexml sndfile soap sockets speex spell spl ssl svg tcltk tcpd theora tiff tokenizer truetype truetype-fonts type1-fonts udev usb vcd vorbis wmf wxwindows xine xml xml2 xmms xpm xsl xv xvid zlib linguas_it userland_GNU kernel_linux elibc_glibc"

Unset:  ASFLAGS, CTARGET, LDFLAGS, PORTDIR_OVERLAY

bigcrash stefano #

```

purtroppo io ci capisco davvero poco in questi messaggi di errore, spero che voi possiate indirizzarmi sulla strada giusta...se avete bisogno di altre informazioni non esitate a chiedere.

----------

## randomaze

 *Nello84 wrote:*   

>  * Failed Patch: 03_all_gcc-3.4.0-v8.7.6.1-pie-arm.patch !

 

Perché dovresti usare una patch per arm? Potrebbe essere un problema di USE.

Cosa di restituisce il comando:

```
emerge -upv gcc
```

 :Question: 

----------

## makoomba

posta anche

```
cat /etc/portage/package.use
```

----------

## randomaze

 *makoomba wrote:*   

> posta anche
> 
> ```
> cat /etc/portage/package.use
> ```
> ...

 

Posso chiederti perché visto che già l'emerge -v dovrebbe dire quali sono le use coinvolte dal gcc? Mi sono perso qualcosa?

----------

## makoomba

sospetto che l'errore sia dovuto alla use VANILLA, ma non la vedo nel make.conf.

gli avrei chiesto di postare emerge -pv e package.use, ma visto che il primo l'avevi già menzionato tu...

----------

## bandreabis

Ma conviene/è utile/posso fidarmi ad aggiornare gcc 3.4.5?

----------

## ^Stefano^

Grazie a tutti per le risposte veloci...prima di rispondervi ho voluto mettere in pratica i vostri pensieri e adesso gcc si è compilato benissimo....sembra che il problema fosse la use vanilla. di seguito riporto i file e i comandi da voi richiesti:

```
bigcrash stefano # emerge -upv gcc

These are the packages that I would merge, in order:

Calculating dependencies ...done!

[ebuild     U ] sys-devel/gcc-3.4.5 [3.4.4-r1] (-altivec) -bootstrap -boundschecking -build -doc +fortran -gcj +gtk -hardened -ip28 (-multilib) -multislot (-n32) (-n64) +nls -nocxx -nopie -nossp -objc -vanilla* 0 kB

Total size of downloads: 0 kB

bigcrash stefano # 
```

```
package.use

sys-libs/glibc nptl nptlonly userlocales glibc-omitfp

#sys-devel/gcc vanilla

media-libs/xine-lib directfb fbcon

media-sound/xmms directfb

media-libs/libsdl directfb fbcon

media-video/ffmpeg ieee1394

media-video/mplayer cdparanoia directfb fbcon cpudetection

kde-base/kdebase ieee1394

net-p2p/amule amuled remote

media-gfx/iscan gimp

media-gfx/xsane gimp

media-gfx/sane-frontends gimp

media-gfx/sane-backends gphoto2

net-dialup/ppp dhcp

```

come potete vedere prima di rispondervi ho provato la compilazione senza la use vanilla e tutto è andato ok. sto seguendo la gcc migration guide per l'aggiornamento e sono al passaggio 

```
Code Listing 3.2: Using revdep-rebuild
```

come mai questi problemi stavolta? ho sempre installato-aggiornato gcc con la use vanilla "in positivo" sia su amd64 sia su x86 e non mi ha mai dato problemi. l'ho inserita perchè da quel poco che ci capisco io nell'inglese, quella use da supporto ai kernel vanilla. sbaglio qualcosa?avete info maggiori da darmi?

per quanto riguarda la sicurezza o no di aggiornare gcc....bhe secondo me gcc è un componente davvero importante e quando una relase è considerata stable penso che non ci sia cosa migliore di un bel update...

ancora grazie.

----------

## makoomba

la use vanilla non andrebbe mai utilizzata, se non in casi particolari.

in ogni caso, non è collegata in alcun modo ai kernel-vanilla

----------

## soigres

scusate ho una domanda che vorrei fare senza dover aprire un nuovo thread...

io ho gcc 3.4.5 e da oggi è disponibile la 3.4.5-r1.... mi chiedevo se anche in questo caso dovrei ricompilare tutto

grazie, ciao!

----------

## Luca89

 *soigres wrote:*   

> scusate ho una domanda che vorrei fare senza dover aprire un nuovo thread...
> 
> io ho gcc 3.4.5 e da oggi è disponibile la 3.4.5-r1.... mi chiedevo se anche in questo caso dovrei ricompilare tutto
> 
> grazie, ciao!

 

Non è necessario.

----------

## ^Stefano^

ricompilare tutto? come mai usi quel metodo?

prova a seguire questo:

```
# emerge -an gentoolkit

# emerge -uav gcc

# gcc-config $CHOST-CHE-HAI-TU

# source /etc/profile

# emerge --oneshot -av libtool

# revdep-rebuild --library libstdc++.so.5 -- -p -v

# revdep-rebuild --library libstdc++.so.5

# emerge --oneshot sys-libs/libstdc++-v3

```

poi se l'aggiornamento di gcc va da un 3.2.x ad un 3.3.x o da un 3.3.x ad un 4.x esegui anche

```
# emerge -aC =sys-devel/gcc-$version*
```

io ho sempre usato questo e non mi ha mai creato problemi.

Stefano.

----------

## soigres

io ho sempre ricompilato tutto...   :Laughing:   ma se non sbaglio ho seguito la guida sulla migrazione da una versione di gcc all'altra

----------

## Luca89

bisogna ricompilare i pacchetti quando si tratta cambio di major versione tipo 3.x to 4.x oppure lo stesso 3.4.x to 3.4.x, se cambia solo una "r" oppure un 3.4.4 to 3.4.5. Non Ã¨ necessario perdere tempo a ricompilare tutto. Poi se lo vuoi fare lo stesso sei libero di farlo.

----------

## ercoppa

Me è una mia impressione che gcc 3.4.5 sia molto + veloce nel compilare 3.4.4?

----------

