# error: C compiler cannot create executables

## Yop

Je n'arrive plus à émerger puis compiler un binaire :

```
configure: WARNING: If you wanted to set the --build type, don't use --host.

If a cross compiler is detected then cross compile mode will be used.

 checking build system type... powerpc-unknown-linux-gnu

 checking host system type... powerpc-unknown-linux-gnu

 checking for a BSD-compatible install... /bin/install -c

 checking whether build environment is sane... yes

 checking whether make sets $(MAKE)... yes

 checking for working aclocal... found

 checking for working autoconf... found

 checking for working automake... found

 checking for working autoheader... found

 checking for working makeinfo... found

 checking for powerpc-unknown-linux-gnu-gcc... gcc

 checking for C compiler default output... configure: error: C compiler cannot create executables

 See `config.log' for more details.

 

 !!! ERROR: media-sound/xmms-1.2.7-r20 failed.

 !!! Function econf, Line 303, Exitcode 77

 !!! econf failed
```

OK, j'avoue : j'ai fait quelque manips avant que ça ne déconne...

 1. J'ai choisi de prendre l'arbre chez skynet (plus proche de chez moi) au lieu de ibiblio.

 2. J'ai fait emerge rsync.

 3. Je lis un message qui me conseille de mettre portage à jour : emerge portage.

 4. Tout se termine correctement avec un petit mot sur des fichiers à mettre à jour. etc-update puis regenworld.

 5. Suite à ça je réédite /etc/make.conf. Je constate qu'ils ont remis ibiblio, je laisse. Je remet ARCH pour le PPC avec altivec (c'est un peu le MMX de chez Motorola) idem pour le C++. Finalement, pour USE, je laisse gtk mais je vire gnome, alsa, qt et kde.

Comme ça ne compile pas, je cherche un peu et essaie un "Hello le mode" en C. Le a.out est créé et fonctionne. Une rapide lecture sur d'autre forums signalent un problème de droits et d'environnement. Je suis root, gcc ET gpp sont bien 755, et PATH contient les bons répertoires.

Au secours !

----------

## Cheesefoam

Qui-est ce les choses sur la ligne dans make.conf de CCFLAGS?

C'est possible que tu as un erreur la...

Surtout, quand je vois cette erreur, j'ai melange mon CFLAGS pour icc avec mon CFLAGS pout gcc.

----------

## px

au pire il faut refaire un bootstrap

----------

## ghoti

En faisant un SYNC aujourd'hui, je constate que gcc a fait l'objet d'une mise à jour. Le changelog signale :  *Quote:*   

>   16 May 2003; Matthew Rickard  gcc-3.2.2-r3.ebuild:
> 
>   - Updated ProPolice to Protector-3.2.2-7, fixing the PPC bug and
> 
>       parallel make bug - again we no longer need to apply these
> ...

 

D'autre part, en farfouillant sur bugzilla, je tombe sur le bug 14699 concernant gcc et xmms. Bien qu'il soit question de l'architecture K6, il semble que ce bug affecte également les ppc.

Même si on ne fait pas allusion au message d'erreur qu tu as donné, cela vaudrait peut-être la peine de vérifier et mettre à jour ta version gcc.

----------

## Yop

J'ai trouvé ! Voici mon /etc/makefile : 

```

# Host Setting

# ============

#

# All PowerPC systems should use this host setting:

CHOST="powerpc-unknown-linux-gnu"

# Host and optimization settings 

# ==============================

#

# For optimal performance, enable a CFLAGS setting appropriate for your CPU.

#

# Please note that if you experience strange issues with a package, it may be

# due to gcc's optimizations interacting in a strange way. Please test the

# package (and in some cases the libraries it uses) at default optimizations

# before reporting errors to developers.

#

# -mcpu=<cpu-type> for PowerPC systems selects the type of processor you want

# to optimize your code for.   Code generated under those options will run best

# on that processor, and may not run at all on others.

#

# GCC 3.2 supports many powerpc processor types including:  rios, rios1, rsc,

# rios2, rs64a, 601, 602, 603, 603e, 604, 604e, 620, 630, 740, 7400, 7450, 750,

# power, power2, powerpc, 403, 505, 801, 821, 823, and 860 and common.

#

# Recommended settings for GCC 3.2 only (Gentoo 1.4 or newer) :

#

# -maltivec enables optional (still limited) altivec support and should be used

# only for G4 processors,  on GCC 3.2 or newer.  It also requires that you have

# the alitvec option compiled into your kernel to take full advantage of this

# feature.  Note: you should also include -mabi=altivec flag if using this option.

#

# Long term testing has shown that -O3 opts can be unreliable on G4's but work

# on G3 series processors or earlier. Use on a G4 at your own risk =)

#

# Due to some failures with the cpu string of 7450, the dev team recommends 

# using -mcpu=7400 for all G4 series processors until GCC 3.2 is more mature

#

CFLAGS="-O2 -pipe -mcpu=7400 -maltivec -mabi=altivec"

#

#

# All non G4 PPC boxen should choose this next option.  It will work fine for

# all G3 and pre machines.  (note it will not hurt pre G3 machines either to 

# use this mcpu option as it is the default for gcc 3.2.x anyway)

#

#CFLAGS="-O3 -pipe -mcpu=750"

# Recommended settings for GCC 2.95.3 only (Gentoo 1.2 or older):

#

# PowerPC 750 > up: this works on G3's and G4s, gcc 2.95.3 doesn't make the

# distinction between G3 and G4, so this is fine for all NewWorld machines, if

# you use yaboot to boot you should select this option

#

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

#

# This will run on all other processors, by building more generic code This is

# safe for all PPC machines running gcc 2.95.3, and works for all OldWorld

# machines - if you use BootX to boot you should select this option

#CFLAGS="-O2 -pipe -mmultiple -mstring"

# If you set a CFLAGS above, then this line will set your default C++ flags to

# the same settings.

CXXFLAGS="${CFLAGS}"

# Advanced Masking

# ================

#

# Gentoo is using a new masking system to allow for easier stability testing

# on packages. KEYWORDS are used in ebuilds to mask and unmask packages based

# on the platform they are set for. A special form has been added that

# indicates packages and revisions that are expected to work, but have not yet

# been approved for the stable set. '~arch' is a superset of 'arch' which

# includes the unstable, in testing, packages. Users of the 'x86' architecture

# would add '~x86' to ACCEPT_KEYWORDS to enable unstable/testing packages.

# '~ppc', '~sparc', '~sparc64' are the unstable KEYWORDS for their respective

# platforms. DO NOT PUT ANYTHING BUT YOUR SPECIFIC ~ARCHITECTURE IN THE LIST.

# IF YOU ARE UNSURE OF YOUR ARCH, OR THE IMPLICATIONS, DO NOT MODIFY THIS.

#

# Note: this really shouldn't be enabled until _AFTER_ you bootstrap and emerge

# system.  If you want the testing things update after these steps are completed.

#

ACCEPT_KEYWORDS="~ppc"
```

Que manque t-il ?

.

.

.

.

```
# Recommended settings for GCC 2.95.3 only (Gentoo 1.2 or older):

#

# PowerPC 750 > up: this works on G3's and G4s, gcc 2.95.3 doesn't make the

# distinction between G3 and G4, so this is fine for all NewWorld machines, if

# you use yaboot to boot you should select this option

#

CFLAGS="-O2 -pipe -mcpu=750 -mpowerpc-gfxopt -mmultiple -mstring"

#

# This will run on all other processors, by building more generic code This is

# safe for all PPC machines running gcc 2.95.3, and works for all OldWorld

# machines - if you use BootX to boot you should select this option

#CFLAGS="-O2 -pipe -mmultiple -mstring"
```

Eeh oui ! ma version de GCC est la 2.95 ...

Comment on passe à la version 3 ?

Et la compilation de xmms fonctionne !  :Smile: 

----------

## TGL

 *Yop wrote:*   

> Eeh oui ! ma version de GCC est la 2.95 ...
> 
> Comment on passe à la version 3 ?

 

http://www.gentoo.org/doc/fr/new-upgrade-to-gentoo-1.4.xml

----------

## Yop

Après avoir fait un emerge de gcc-config, je peux enfin obtenir

```
[b]# gcc-config --get-current-profile[/b]

 * /usr/bin/gcc-config: No default profile setup!
```

Et de toute façon,

```
[b]# emerge sys-devel/gcc/gcc-3.2.2.ebuild[/b] 

  Calculating dependencies \

!!! all ebuilds that could satisfy ">=sys-devel/binutils-2.13.90.0.18" have been masked.

!!!    (dependency required by "sys-devel/gcc-3.2.2" [ebuild])

!!! Error calculating dependencies. Please correct.
```

Est-ce qu'il serait possible que gcc-3 ne soit pas encore correctement porté aux ppc ? En fait il existe une version 3.3 non ? Je ne trouve qu'un ebuild

3.2.2 ou 3.2.2-r2 dans /usr/portage.

(Je ne devrais pas ouvrir un nouveau tread ?)

----------

## TGL

 *Yop wrote:*   

> 
> 
> ```
> [b]# emerge sys-devel/gcc/gcc-3.2.2.ebuild[/b] 
> 
> ...

 

Le 3.2.2-r2 est le dernier stable pour ppc. Mais il doit être masqué parceque tu es toujours avec ton profile de Gentoo 1.2 ("grep gcc /etc/make.profile/packages" pour vérifier). 

 *Yop wrote:*   

>  En fait il existe une version 3.3 non ? Je ne trouve qu'un ebuild 3.2.2 ou 3.2.2-r2 dans /usr/portage.

 

Y'a des ebuilds en devel, mais ça demande un peu de temps de test et mise au point encore... C'est qu'il vaut mieux pas se rater avec gcc sous Gentoo, sinon c'est la cata  :Smile: 

 *Yop wrote:*   

> (Je ne devrais pas ouvrir un nouveau tread?)

 

Pas bête oui  :Wink: 

----------

