# [MPlayer] Problemas al emerger (abierto)

## dotinmouth

Ola gentooza!!! Tengo un pequeño problema al emerger mplayer. Cuando lo hago me sale esto:

 *Quote:*   

> 
> 
> nclude/SDL -D_REENTRANT -I/usr/X11R6/include    -o pl_extrastereo.o pl_extraster
> 
> eo.c
> ...

 

¿Que puede ser? Asias de antemano

----------

## RadikalQ3

¿Que flags tienes en make.conf?

¿Tu cpu tiene capacidad SSE y 3dnow?.

Esto lo puedes saber haciendo un:

```
radikal ~ # cat /proc/cpuinfo

processor       : 0

vendor_id       : AuthenticAMD

cpu family      : 6

model           : 10

model name      : AMD Athlon(TM) XP 2600+

stepping        : 0

cpu MHz         : 1905.507

cache size      : 512 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

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 mmx fxsr sse syscall mmxext 3dnowext 3dnow

bogomips        : 3768.32

```

en la linea flags

Luego, en el mplayer, depende de que uses tengas activados, puedes compilarlo con soporte para sse, sse2, 3dnow... mira:

```
radikal ~ # emerge -pv mplayer

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

Calculating dependencies ...done!

[ebuild   R   ] media-video/mplayer-1.0_pre6  -3dfx +3dnow +3dnowex +X +aalib +alsa (-altivec) +arts +bidi +cdparanoia -debug -directfb +divx4linux -doc -dts +dv -dvb +dvd +dvdread -edl +encode +esd +fbcon -ggi +gif +gtk -i8x0 -ipv6 -jack -joystick +jpeg -libcaca -lirc +live +lzo +mad -matroska -matrox +mmx +mmx2 +mpeg -mythtv -nas +nls -nvidia +oggvorbis +opengl +oss +png +real -rtc+samba +sdl +sse -sse2 +svga -tga -theora +truetype +v4l +v4l2 -xanim -xinerama +xmms +xv +xvid -xvmc 0 kB

```

Has de escoger lo que tu cpu soporte.. .es decir, no utilices use sse2 si tu cpu no lo soporta, por ejemplo.

Otra cosa que tienes que mirar es... si has estado cambiando de version de gcc ultimamente, puede que tengas cosas por ahi mal enlazadas, es decir, enlazadas a una version antigua del compilador, y al intentar compilar el mplayer, éste casque porque no puede enlazar dos versiones de una libreria en el mismo paquete... 

El problema parece que te da al enlazar algo con la libreria liba52

Si buscamos a que paquete pertenece:

```
radikal ~ # qpkg -fp liba52.la

media-libs/a52dec *

radikal ~ #

```

asi que... podrias probar esto:

```
emerge liba52dec --oneshoot
```

y luego intentar de nuevo el emerge mplayer

----------

## dotinmouth

Lo de emerge liba52dec --oneshoot no funciona :

 *Quote:*   

> emerge liba52dec --oneshoot
> 
> !!! Error: --oneshoot is an invalid option.
> 
> 

 

Mi make.conf es el siguiente:

 *Quote:*   

> 
> 
> # These settings were set by the catalyst build script that automatically built$
> 
> # Please consult /etc/make.conf.example for a more detailed example
> ...

 

Tengo un pentium 4 a 2.66, por si sirve de algo

Salida de cat /proc/cpuinfo:

 *Quote:*   

> 
> 
> processor       : 0
> 
> vendor_id       : GenuineIntel
> ...

 

----------

## RadikalQ3

Juer vaya tarde llevo...

A ver, donde te puse:

```
emerge liba52dec --oneshoot
```

quise decir:

```
emerge --oneshot a52dec
```

es decir, con una sola o, y el a52 sin el lib...

En cuanto a que es un pentium 4... ni idea... mira a ver lo que te puse, el cat /proc/cpuinfo a ver que soporta, y luego escoges los uses correspondientes para el mplayer...

----------

## dotinmouth

 *RadikalQ3 wrote:*   

> Juer vaya tarde llevo...
> 
> A ver, donde te puse:
> 
> ```
> ...

 

Esto lo hizo sin problemas y lo de cat /proc.... ya lo tienes en el mensaje de arriba

----------

## dotinmouth

Acabo de emerger mplayer de nuevo y me sale otro tanto de lo mismo:

```

cc -c  -I../libvo -I../../libvo -I/usr/X11R6/include -march=pentium4 -pipe -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64   -o downmix.o downmix.c

cc -c  -I../libvo -I../../libvo -I/usr/X11R6/include -march=pentium4 -pipe -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64   -o imdct.o imdct.c

In file included from imdct.c:757:

imdct_3dnow.h: En la función `fft_asmb_3dnow':

imdct_3dnow.h:241: error: can't find a register in class `GENERAL_REGS' while reloading `asm'

imdct.c: En la función `imdct_do_512_sse':

imdct.c:937: aviso: use of memory input without lvalue in asm operand 1 is deprecated

imdct.c:937: aviso: use of memory input without lvalue in asm operand 2 is deprecated

make[1]: *** [imdct.o] Error 1

make[1]: Leaving directory `/var/tmp/portage/mplayer-1.0_pre5-r5/work/MPlayer-1.0pre5try2/liba52'

make: *** [liba52/liba52.a] Error 2

!!! ERROR: media-video/mplayer-1.0_pre5-r5 failed.

!!! Function src_compile, Line 444, Exitcode 2

!!! Failed to build MPlayer!

```

----------

## RadikalQ3

Que y ¿lo del cat /proc/cpuinfo y los uses nos olvidamos o que?

¿Has puesto los USEs del mplayer como deben estar?. 

Si no haces eso, el resto no sirve de mucho.

Prueba tambien a quitar lo del -fomit-frame-pointer de los flags, a ver si se queja por eso.

----------

## dotinmouth

Te digo que es que pides esta arriba pero de todas formas lo pongo otra vez:

```
arius bin # cat /proc/cpuinfo

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 15

model           : 2

model name      : Intel(R) Pentium(R) 4 CPU 2.66GHz

stepping        : 7

cpu MHz         : 2673.395

cache size      : 512 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 2

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmovpat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid

bogomips        : 5275.64

```

Make.conf:

```

# These settings were set by the catalyst build script that automatically built$

# Please consult /etc/make.conf.example for a more detailed example

CFLAGS="-march=pentium4 -pipe"

CHOST="i386-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

USE="-gtk -gnome qt kde dvd alsa cdr"

ACCEPT_KEYWORDS="x86"

MAKEOPTS="-j2"

LINGUAS="es"

```

----------

## RadikalQ3

No, si ya te digo que vaya tarde llevo...  :Smile:  ya puedes perdonar...

A ver, ahora ponme la salida de:

```
emerge -pv mplayer
```

----------

## dotinmouth

 *RadikalQ3 wrote:*   

> No, si ya te digo que vaya tarde llevo...  ya puedes perdonar...
> 
> A ver, ahora ponme la salida de:
> 
> ```
> ...

 

Ahi va:

```

arius bin # emerge -pv mplayer

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

Calculating dependencies ...done!

[ebuild  N    ] media-video/mplayer-1.0_pre5-r5  -3dfx -3dnow -3dnowex +X -aalib +alsa (-altivec) +arts -bidi -cdparanoia -debug -directfb -divx4linux -doc -dvb +dvd -dvdread -edl +encode -esd -fbcon -ggi +gif -gtk -i8x0 +ipv6 -jack -joystick +jpeg -libcaca -lirc -live -lzo +mad -matroska -matrox -mmx -mmx2 +mpeg -mythtv -nas -network +nls -nvidia +oggvorbis +opengl +oss +png -real -rtc -samba +sdl -sse +svga -tga -theora +truetype -v4l -v4l2 -xanim -xinerama +xmms +xv -xvid-xvmc 0 kB

```

----------

## RadikalQ3

A ver, hay un tipo al que le pasaba lo mismo que tu, aunque su solucion no me parece nada ortodoxa:

https://forums.gentoo.org/viewtopic.php?t=284225&highlight=imdctdo512sse

parece que tiene que ver con la eleccion de CFLAGS.

Y aqui hay otro post, con tu mismo problema, solo que con una version anterior del mplayer:

 https://forums.gentoo.org/viewtopic.php?t=241474&start=0&postdays=0&postorder=asc&highlight=

en el que tambien dan soluciones que afectan al CFLAGS y a los USE

Por cierto ¿como es que usas i386 con un pentium4?

Respecto a los flags de mplayer... usas menos capacidades de las que te da tu cpu.

En concreto, tu cpu soporta: sse, sse2 y mmx y por lo que veo, no tienes en tus uses estos flags.

Esto de cara al problema de compilacion no se si influira, pero si de cara a un menor rendimiento del mplayer.

Asi que podrias probar a incluirlos en tus use (es decir, incluir sse sse3 y mmx) e intentar compilar, a ver si traga.

Lo que no se es porque te intenta compilar cosas del 3dnow si no lo tienes en los uses ni te aparecen en el emerge -pv mplayer  :Confused: 

----------

## dotinmouth

 *RadikalQ3 wrote:*   

> A ver, hay un tipo al que le pasaba lo mismo que tu, aunque su solucion no me parece nada ortodoxa:
> 
> https://forums.gentoo.org/viewtopic.php?t=284225&highlight=imdctdo512sse
> 
> parece que tiene que ver con la eleccion de CFLAGS.
> ...

 

La verdad esq si tengo asi las flags y las use es simplemente porq no tengo ni idea de como ponerlas. Vengo de debian y de mandrake, y si en el primero no las vi, en el segundo menos. Si me echas una mano te lo agradezco.

----------

## RadikalQ3

Pues para un pentium 4, supongo que tendras que poner i686, no i386...

A ver, en el CHOST pon:

```
CHOST="i686-pc-linux-gnu"
```

el CFLAGS lo puedes dejar como está.

Luego en los USE, en concreto para mplayer ya te he puesto por ahi los flags que deberias añadir a tu linea use, que son: sse, sse2 y mmx 

No obstante, deberias darte una 'pasadita' por todos los USES posibles, e ir escogiendo los que mejor se adecuen a tu sistema y a lo que haras con el.

Para ello, hay un programilla con interface ncurses (modo texto) en el cual ves los que hay, con un texto explicativo de cada uno de ellos, y ahi mismo puedes setear los que necesites.

El programilla es el ufed, (Use Flag Editor), asi que ya sabes: emerge ufed y te entretienes con el un ratillo  :Smile: 

----------

## dotinmouth

 *RadikalQ3 wrote:*   

> Pues para un pentium 4, supongo que tendras que poner i686, no i386...
> 
> A ver, en el CHOST pon:
> 
> ```
> ...

 

Que te parece esto:

```

# These settings were set by the catalyst build script that automatically built$

# Please consult /etc/make.conf.example for a more detailed example

CFLAGS="-march=pentium4 -pipe"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

USE="aac acpi acpi4linux aim apache2 bash-completion bootsplash c++ cdr \

     cdrom dedicated divx4linux dvd dvdr freetype ftp gimpprint gmail java \

     javascript mmx mozilla moznomail mp3 mpeg4 mplayer music mysql ogg \

     pdf php screenshot sounds sse sse2 xvid -gnome -libg -gtk"

ACCEPT_KEYWORDS="x86"

MAKEOPTS="-j2"

LINGUAS="es"

```

Se aceptan sugerencias

----------

## dotinmouth

Probe a compilar con esas use y el error cambio:

```

cc -I../libvo -I../../libvo -I/usr/X11R6/include -march=pentium4 -pipe -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o libpostproc/postprocess.o libpostproc/postprocess.c

In file included from libpostproc/postprocess.c:648:

libpostproc/postprocess_template.c: En la función `postProcess_MMX':

libpostproc/postprocess_template.c:2872: aviso: use of memory input without lvalue in asm operand 4 is deprecated

libpostproc/postprocess_template.c:2872: aviso: use of memory input without lvalue in asm operand 4 is deprecated

libpostproc/postprocess_template.c: En la función `do_a_deblock_MMX':

libpostproc/postprocess_template.c:2872: aviso: use of memory input without lvalue in asm operand 4 is deprecated

cc -I../libvo -I../../libvo -I/usr/X11R6/include -march=pentium4 -pipe -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o mp3lameaudio.o mp3lameaudio.c

cc -I../libvo -I../../libvo -I/usr/X11R6/include -march=pentium4 -pipe -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o i386/fdct_mmx.o i386/fdct_mmx.c

cc -I../libvo -I../../libvo -I/usr/X11R6/include -march=pentium4 -pipe -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o i386/cputest.o i386/cputest.c

cc -I../libvo -I../../libvo -I/usr/X11R6/include -march=pentium4 -pipe -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o i386/dsputil_mmx.o i386/dsputil_mmx.c

i386/dsputil_mmx.c: En la función `h263_h_loop_filter_mmx':

i386/dsputil_mmx.c:634: error: can't find a register in class `GENERAL_REGS' while reloading `asm'

i386/dsputil_mmx.c: En la función `dsputil_init_mmx':

i386/dsputil_mmx.c:2540: aviso: asignación de tipo de puntero incompatible

i386/dsputil_mmx.c:2541: aviso: asignación de tipo de puntero incompatible

make[1]: *** [i386/dsputil_mmx.o] Error 1

make[1]: Leaving directory `/var/tmp/portage/mplayer-1.0_pre5-r5/work/MPlayer-1.0pre5try2/libavcodec'

make: *** [libavcodec/libavcodec.a] Error 2

```

Alguna idea???

----------

## dotinmouth

Lei por ahi que podia ser problema de la version del gtk. ¿Como la miro? ¿Como la actualizo si es necesario? Asias

----------

## ashtaroth

Hola, prueba cambiando de:

-march=pentium4

a

-march=i686

En el /etc/make.conf

----------

## dotinmouth

 *ashtaroth wrote:*   

> Hola, prueba cambiando de:
> 
> -march=pentium4
> 
> a
> ...

 

Nada, eso no funciona. Acabo de actualizar gcc y tampoco funciona. Siempre me da el mismo error. Una ayudita plis.

----------

## dotinmouth

ninguna idea por ahi? Que tal un brain-storm

----------

## HKM

La solución esta en lso foros en inglés. Reemerge el giflib y ya esta. A mí me funciono.

 Tambien he tenido problemas con el USE +joystick quitalo si lo tienes puesto.

 Por cierto... ¿no se supone que para que el programador del mplayer acepte problemas de los gentuzeros se pasa las cflags y todo eso por el forro al compilar?

----------

## dotinmouth

 *HKM wrote:*   

> La solución esta en lso foros en inglés. Reemerge el giflib y ya esta. A mí me funciono.
> 
>  Tambien he tenido problemas con el USE +joystick quitalo si lo tienes puesto.
> 
>  Por cierto... ¿no se supone que para que el programador del mplayer acepte problemas de los gentuzeros se pasa las cflags y todo eso por el forro al compilar?

 

Sigo obteniendo el mismo error:

```

-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o mp3lameaudio.o mp3lameaudio.c

cc -I../libvo -I../../libvo -I/usr/X11R6/include -march=i686 -pipe -D_REENTRANT-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o i386/fdct_mmx.o i386/fdct_mmx.c

cc -I../libvo -I../../libvo -I/usr/X11R6/include -march=i686 -pipe -D_REENTRANT-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o i386/cputest.o i386/cputest.c

cc -I../libvo -I../../libvo -I/usr/X11R6/include -march=i686 -pipe -D_REENTRANT-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o i386/dsputil_mmx.o i386/dsputil_mmx.c

i386/dsputil_mmx.c: En la función `h263_h_loop_filter_mmx':

i386/dsputil_mmx.c:634: error: can't find a register in class `GENERAL_REGS' while reloading `asm'

i386/dsputil_mmx.c: En la función `dsputil_init_mmx':

i386/dsputil_mmx.c:2540: aviso: asignación de tipo de puntero incompatible

i386/dsputil_mmx.c:2541: aviso: asignación de tipo de puntero incompatible

make[1]: *** [i386/dsputil_mmx.o] Error 1

make[1]: Leaving directory `/var/tmp/portage/mplayer-1.0_pre5-r5/work/MPlayer-1.0pre5try2/libavcodec'

make: *** [libavcodec/libavcodec.a] Error 2

!!! ERROR: media-video/mplayer-1.0_pre5-r5 failed.

!!! Function src_compile, Line 444, Exitcode 2

!!! Failed to build MPlayer!

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

```

----------

## gringo

 *Quote:*   

> i386/dsputil_mmx.c:634: error: can't find a register in class `GENERAL_REGS' while reloading `asm'

 

si te fijas siempre te escupe este mismo error y eso parece relacionado con mmx. Prueba con un:

USE="-mmx" emerge -uv mplayer

asegúrate que no usa mmx y a ver que pasa.

Creo que dentro de poco portage va a empezar a filtrar mmx mmx2 sse 3dnow y demás, para tratar de evitar éstos errores. En amd64 ya lo hacen.

saluetes

----------

## dotinmouth

 *gringo wrote:*   

>  *Quote:*   i386/dsputil_mmx.c:634: error: can't find a register in class `GENERAL_REGS' while reloading `asm' 
> 
> si te fijas siempre te escupe este mismo error y eso parece relacionado con mmx. Prueba con un:
> 
> USE="-mmx" emerge -uv mplayer
> ...

 

Un error nuevo para todos mis seguidores  :Very Happy: :

```

En el fichero incluído de /usr/include/sys/ioctl.h:30,

                 de mplayer.c:15:

/usr/include/bits/ioctl-types.h:25:24: asm/ioctls.h: No existe el fichero o el directorio

En el fichero incluído de /usr/include/signal.h:329,

                 de /usr/include/sys/wait.h:30,

                 de mplayer.c:16:

/usr/include/bits/sigcontext.h:28:29: asm/sigcontext.h: No existe el fichero o el directorio

En el fichero incluído de /usr/include/bits/posix1_lim.h:145,

                 de /usr/include/limits.h:144,

                 de /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/limits.h:122,

                 de /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/syslimits.h:7,

                 de /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/limits.h:11,

                 de mplayer.c:31:

/usr/include/bits/local_lim.h:36:26: linux/limits.h: No existe el fichero o el directorio

En el fichero incluído de /usr/include/errno.h:36,

                 de mplayer.c:33:

/usr/include/bits/errno.h:25:26: linux/errno.h: No existe el fichero o el directorio

make: *** [mplayer.o] Error 1

```

Cada vez parece mas chino

----------

## kabutor

despues de actualizar al gcc 3.5 hay muchos problemas de compilacion, la solucion pasa por:

```
fix_libtool_files.sh 3.3.4

source /etc/profile

env-update

emerge glibc

```

Y luego prueba otra vez a emerger mplayer, incluso mira en /var/tmp/portage si hay algun dir. llamado mplayer y borralo y emepieza  compilar de nuevo..

Suerte

----------

## dotinmouth

 *kabutor wrote:*   

> despues de actualizar al gcc 3.5 hay muchos problemas de compilacion, la solucion pasa por:
> 
> ```
> fix_libtool_files.sh 3.3.4
> 
> ...

 

Esto se empieza a enredar con mis problemas de cedega. Tengo un problema y tuve que hacer un emerge -C linux26-headers para poder hacer un USE="nptl" emerge glibc. Al hacerlo tuve que emerger otra vez los drivers de nvidia pero antes me obligaba a compilar el kernel de nuevo. Si ahora hago lo que tu me dices tengo miedo a perder lo que ya tenia hecho.

----------

## kabutor

Entonces abre un bug a ver que te dicen pero recompilar glibc con el nuevo gcc es bastante importante para prevenir errores de compilado, o eso tengo entendido.

----------

