# Error al compilar Wine,error: C compiler cannot(solved)

## elchicosinhada

```

>>> Emerging (1 of 1) app-emulation/wine-0.9.46 to /

 * wine-0.9.46.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                                                                 [ ok ]

 * checking ebuild checksums ;-) ...                                                                                                                   [ ok ]

 * checking auxfile checksums ;-) ...                                                                                                                  [ ok ]

 * checking miscfile checksums ;-) ...                                                                                                                 [ ok ]

 * checking wine-0.9.46.tar.bz2 ;-) ...                                                                                                                [ ok ]

>>> Unpacking source...

>>> Unpacking wine-0.9.46.tar.bz2 to /var/tmp/portage/app-emulation/wine-0.9.46/work

 * Applying wine-gentoo-no-ssp.patch ...                                                                                                               [ ok ]

>>> Source unpacked.

>>> Compiling source in /var/tmp/portage/app-emulation/wine-0.9.46/work/wine-0.9.46 ...

 * econf: updating wine-0.9.46/tools/config.guess with /usr/share/gnuconfig/config.guess

 * econf: updating wine-0.9.46/tools/config.sub with /usr/share/gnuconfig/config.sub

./configure --prefix=/usr --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --sysconfdir=/etc/wine --with-curses --with-opengl --with-x --libdir=/usr/lib32 --build=x86_64-pc-linux-gnu

checking build system type... x86_64-pc-linux-gnu

checking host system type... x86_64-pc-linux-gnu

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

checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc

checking for C compiler default output file name...

configure: error: C compiler cannot create executables

See `config.log' for more details.

!!! Please attach the following file when filing a report to bugs.gentoo.org:

!!! /var/tmp/portage/app-emulation/wine-0.9.46/work/wine-0.9.46/config.log

 *

 * ERROR: app-emulation/wine-0.9.46 failed.

 * Call stack:

 *            ebuild.sh, line 1701:  Called dyn_compile

 *            ebuild.sh, line 1039:  Called qa_call 'src_compile'

 *            ebuild.sh, line   44:  Called src_compile

 *   wine-0.9.46.ebuild, line  107:  Called econf '--sysconfdir=/etc/wine' '--with-curses' '--with-opengl' '--with-x'

 *            ebuild.sh, line  638:  Called die

 * The specific snippet of code:

 *                      die "econf failed"

 *  The die message:

 *   econf failed

 *

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/app-emulation/wine-0.9.46/temp/build.log'.

 *

```

Eso me sale cada vez que intento compilar wine. Ese error según he visto por ahi es culpa de las ldflags o algo así, las cuales nunca he tocado.

Os pongo mi emerge --info

```

Portage 2.1.3.19 (default-linux/amd64/2007.0, gcc-4.2.2, glibc-2.6.1-r0, 2.6.22-gentoo-r2 x86_64)

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

System uname: 2.6.22-gentoo-r2 x86_64 Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz

Timestamp of tree: Wed, 23 Jan 2008 13:30:01 +0000

app-shells/bash:     3.2_p17-r1

dev-java/java-config: 1.3.7, 2.0.33-r1

dev-lang/python:     2.4.4-r6

dev-python/pycrypto: 2.0.1-r6

sys-apps/baselayout: 1.12.10-r5

sys-apps/sandbox:    1.2.18.1-r2

sys-devel/autoconf:  2.13, 2.61-r1

sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10

sys-devel/binutils:  2.18-r1

sys-devel/gcc-config: 1.4.0-r4

sys-devel/libtool:   1.5.24

virtual/os-headers:  2.6.23-r2

ACCEPT_KEYWORDS="amd64"

CBUILD="x86_64-pc-linux-gnu"

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

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/4.0/env /usr/kde/4.0/share/config /usr/kde/4.0/shutdown /usr/share/X11/xkb /usr/share/config"

CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"

CXXFLAGS="-march=native -O2 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch"

GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"

LANG="es_ES@euro"

LC_ALL="es_ES@euro"

LINGUAS="es es_ES"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/portage/local/layman/kde"

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

USE="64bit 7zip X a52 aac aalib accessibility ace acl acpi alsa amarok amd64 amr aspell battery berkdb bitmap-fonts bluetooth bzip2 c++ cardbus cdr cdrom cli cracklib crypt cups dbus dhcp divx dts dvd dvdr dvdread es ffmpeg flac flash fortran gdbm gif gimp gpm hal iconv imagemagick ipod ipv6 ipw3945 isdnlog javajpeg kde kdm lame laptop mad matroska midi mjpeg mmx mng mp2 mp3 mp4 mpeg mpeg2 msn mudflap musepack musicbrainz ncurses nepomuk networkmanager nls nptl nptlonly objc objc++ objc-gc ogg opengl openmp pam pcmcia pcre pda pdf perl pic plasma plugins png pppd python qt3support qt4 quicktime rar rdesktop readline realmedia reflection reiserfs samba sdl session spell spl sse sse2 ssl ssse3 stlport svg symlink tcpd theora threads tiff timidity truetype truetype-fonts type1-fonts unicode unzip usb v4l2 vcd vorbis wav wifi wma x264 xcomposite xine xinerama xorg xv xvid xvmc zip zlib" 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" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="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 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" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse synaptics joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="es es_ES" USERLAND="GNU" VIDEO_CARDS="nvidia fbdev vesa"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
```

Last edited by elchicosinhada on Wed Jan 30, 2008 11:19 am; edited 1 time in total

----------

## ackward

No tiene porque estar relacionado pero echale un vistazo a este post: sandbox (cannot run C compiled programs)

El fallo es similar al que tuve aunque en mi caso compilando sandbox (tambien en amd64). 

Prueba primero a reseleccionar el compilador (gcc-config + env-upcate + source/etc/profile) pero sino un resumen de la solucion esta en el el ultimo post recopilatorio:

 *angelos wrote:*   

> ok, to summarize this for everyone and maybe clarify a bit:
> 
> ```
> error: cannot run C compiled programs.
> ```
> ...

 

----------

## achaw

CFLAGS, CXXFLAGS, LDFLAGS, CHOST...alguna incompatibilidad con la version de gcc que estas usando, actualizaste gcc ultimamente?

Saludos

----------

## elchicosinhada

Ackward, he probado y nada, el mismo error.

Achaw (teneis nicks parecidos xD) pues es una instalación nueva, y lo primero que hice fue pasar de la gcc 4.1.1 a la 4.2.2 y el resto ha sido compilando con esta versión.

----------

## gringo

creo que wine se compila como 32 bits en multilib y si es asi no creo que el -march=native le haga mucha gracia  :Wink: 

saluetes

----------

## ekz

En el FAQ de los foros esta la respuesta, y abajo hay un enlace a un hilo con muchas posibles soluciones.

Saludos

----------

## ackward

 *gringo wrote:*   

> creo que wine se compila como 32 bits en multilib y si es asi no creo que el -march=native le haga mucha gracia 
> 
> 

 

He estado revisando el tema del "-march=native", no deberia ser un problema. Usa el gcc-4.2.2, esta catalogado como safe_cflag y he encontrado un post en winhq en el que aparece y no da problemas de compilacion.

La cuestion es: ¿solo da problemas de compilacion wine?

Si solo es wine esta claro que el problema es muy localizado (pj multilib) sino es un tema de librerias mas general, en cualquier caso en el post de arriba vienen una serie de pasos tipicos para este fallo (gcc-config, fix_libtools, revdep-rebuild, etc...)

----------

## i92guboj

 *ackward wrote:*   

>  *gringo wrote:*   creo que wine se compila como 32 bits en multilib y si es asi no creo que el -march=native le haga mucha gracia 
> 
>  
> 
> He estado revisando el tema del "-march=native", no deberia ser un problema. Usa el gcc-4.2.2, esta catalogado como safe_cflag y he encontrado un post en winhq en el que aparece y no da problemas de compilacion.
> ...

 

La prueba de fuego, prueba a compilar otro programa pequeño que no compile en 64 bits. Por ejemplo, grub. Si grub emerge sin problemas, entonces el problema es de wine, si grub falla, en problema está en tu toolchain o en tu kernel (IA 32 support).

----------

## gringo

 *Quote:*   

> He estado revisando el tema del "-march=native", no deberia ser un problema. Usa el gcc-4.2.2, esta catalogado como safe_cflag y he encontrado un post en winhq en el que aparece y no da problemas de compilacion. 

 

releyendo ahora la verdad no sé como llegué a esa conclusión ... asi que será algún problema en el toolchain. Recompilaste gcc con el gcc-4.2.2 ?

saluetes

----------

## i92guboj

 *gringo wrote:*   

>  *Quote:*   He estado revisando el tema del "-march=native", no deberia ser un problema. Usa el gcc-4.2.2, esta catalogado como safe_cflag y he encontrado un post en winhq en el que aparece y no da problemas de compilacion.  
> 
> releyendo ahora la verdad no sé como llegué a esa conclusión ... asi que será algún problema en el toolchain. Recompilaste gcc con el gcc-4.2.2 ?
> 
> saluetes

 

Nio me he parado a mirarlo, pero no creo que tenga nada que ver el march, ya que el ebuild de wine tiene que filtrar todas las flags y compilar usando el compilador de 32 bits. A no ser que sea un bug muy específico, pero no veo nada que apunte en esa dirección por ahora.

Lo más normal es que sea un problema en la toolchain o su configuración.

----------

## elchicosinhada

Pues grub también peta... El soporte en el kernel está activo, así que será cosa del toolchain. Que hago? xD

----------

## i92guboj

Solo para asegurarnos antes de hacer cosas más complicadas, ¿puedes pegar aquí la salida del siguiente comando?

```
zcat /proc/config.gz | grep IA32
```

----------

## elchicosinhada

```
link@Sheik ~ $ zcat /proc/config.gz | grep IA32

CONFIG_IA32_EMULATION=y

CONFIG_IA32_AOUT=y

link@Sheik ~ $

```

----------

## i92guboj

Parece que la parte de 32 bits de tu compilador está en baja forma  :Razz: 

La forma más sencilla de arreglarlo es instalar una toolchain nueva usando binarios precompilados. Quizás con solo gcc baste, pero debe estar compilada con tu misma versión de glibc para evitar posible problemas. Yo tengo gcc-4.2.2 pero mi glibc es 2.7-r1 y el tuyo 2.6.1-r0. Si no te importa tener glibc en la inestable te puedo hacer el paquete binario y colgarlo para que lo descargues. Tendrías que tener dicho paquete en inestable hasta que 2.7 se haga estable, ya que el downgrade de glibc volvería a romper tu sistema.

Si prefieres seguir en estable entonces quizás alguien por aquí pueda hacer el binario de dicha versión, o quizás haya algún repositorio de binarios de rescate por ahí. A veces se encuentran.

Tu decides.

----------

## elchicosinhada

Por ahora prefiero seguir con la estable.

He intentando compilar el glibc pero peta (supongo que no te extraña), sin embargo es porque en el configure falla al calcular el size de un long double (variable que desconocia, por cierto xD, soy de los de int y doubles...)

A que se debe este problema? (para evitar romperlo posteriormente)

----------

## i92guboj

 *elchicosinhada wrote:*   

> Por ahora prefiero seguir con la estable.
> 
> He intentando compilar el glibc pero peta (supongo que no te extraña), sin embargo es porque en el configure falla al calcular el size de un long double (variable que desconocia, por cierto xD, soy de los de int y doubles...)
> 
> A que se debe este problema? (para evitar romperlo posteriormente)

 

Es complicado saberlo. Pueden haber sido muchas cosas, desde un error en la instalación hasta algún problema de versiones o con algún update. Hay muchas más causas posibles pero tu sistema parece configurado de forma estable y creo que en tu caso se ha debido simplemente a algún tipo de error que se te pueda haber pasado, o incluso a la mala suerte. No es normal que esto ocurre si uno se mantiene dentro de la rama estable. Pero claro, técnicamente es posible y supongo que simplemente te tocó a tí jeje.

Glibc también se compila dos veces, una para 64 y otra para 32 bits. Es normal que falle en el cálculo del tamaño de los tipos de datos, puesto que difieren según la arquitectura usada (y según el compilador, por supuesto), así que fallará al ejecutar las comprobaciones para 32 bits.

----------

## ackward

 *i92guboj wrote:*   

> 
> 
> Es complicado saberlo. Pueden haber sido muchas cosas, desde un error en la instalación hasta algún problema de versiones o con algún update. Hay muchas más causas posibles pero tu sistema parece configurado de forma estable y creo que en tu caso se ha debido simplemente a algún tipo de error que se te pueda haber pasado, o incluso a la mala suerte. No es normal que esto ocurre si uno se mantiene dentro de la rama estable. Pero claro, técnicamente es posible y supongo que simplemente te tocó a tí jeje.
> 
> 

 

*** ATTN: POSIBLE BURRADA ***

Es posible que me pase un par de pueblos pero yo una vez lo arregle (creo que me habra pasado de todo) de la siguiente manera:

1) Descomprimir el ultimo stage3 amd64 con lo que efectivamente obtienes un toolchain valido (a costa del antiguo)

2) un "emerge -e world"

Por supuesto esto compilara con la glibc/gcc/etc... del stage3 pero al menos el entorno es valido para actualizarlo a un nuevo gcc, etc...

Po otra parte en el faq de gentoo viene como hacer un bootstraping que es mas o menos lo mismo (pero solo del sistema)http://www.gentoo.org/doc/en/faq.xml#stage12

```

The Gentoo Handbook only describes a Gentoo installation using a stage3 tarball. However, Gentoo still provides stage1 and stage2 tarballs. This is for development purposes (the Release Engineering team starts from a stage1 tarball to obtain a stage3) but shouldn't be used by users: a stage3 tarball can very well be used to bootstrap the system. You do need a working Internet connection.

Bootstrapping means building the toolchain (the C library and compiler) for your system after which you install all core system packages. To bootstrap the system, perform a stage3 installation. Before you start the chapter on Configuring the Kernel, modify the bootstrap.sh script to suit your needs and then run it:

Code Listing 3.7: Bootstrapping the system

# cd /usr/portage/scripts

# vi bootstrap.sh

# ./bootstrap.sh

Next, rebuild all core system packages with the newly built toolchain. We need to rebuild them since the stage3 tarball already offers them:

Code Listing 3.8: Rebuilding the core system packages

# emerge -e system

```

----------

## elchicosinhada

Estoy probando lo del bootstrap... asi que me voy a dormir y veremos a ver como aparece mañana...

----------

## gringo

 *Quote:*   

> Por ahora prefiero seguir con la estable. 

 

aqui hay binarios de la rama estable para amd64 :

http://tinderbox.dev.gentoo.org/default-linux/amd64/

saluetes

----------

## elchicosinhada

El bootstrap no ha servido de nada.. Pero con los paquetes que ha puesto gringo tengo el sistema chachi pistachi.

Gracias a todos  :Smile: 

Solo he tenido que remplezar el glibc y listo

----------

## i92guboj

 *elchicosinhada wrote:*   

> El bootstrap no ha servido de nada.. Pero con los paquetes que ha puesto gringo tengo el sistema chachi pistachi.
> 
> Gracias a todos 
> 
> Solo he tenido que remplezar el glibc y listo

 

Estas cosas no suelen pasar, pero por si acaso, lo que yo hago es guardar binarios de la última versión instalada de gcc, glibc, binutils, sandbox y python. Así ante una catástrofe de este tipo es fácil recuperarse  :Razz:  Los binarios los puedes hacer con quickpkg, que viene con gentoolkit.

----------

