# [COMPILACION] Amarok no compila bien con nuevas USE(cerrrad)

## sefirotsama

Añadí nuevas use a amarok y decidí recompilarlo para activarlas plenamente. Las dependecias fueron bien pero el ultimo paquete (el sujeto) falla. Consume la CPU hasta bloquear las X (aunque eso lo hace siempre que compilo algo gordo) y se queda conjelado en un punto durante un rato largo... chupando recursos... y hoy he decidido esperar hasta el final y me encuentro este mensaje final (error):

```
{standard input}: Assembler messages:

{standard input}:24694: Warning: end of file not at end of a line; newline inserted

{standard input}:24752: Error: missing or invalid immediate expression `' taken as 0

{standard input}:24752: Error: suffix or operands invalid for `add'

x86_64-pc-linux-gnu-g++: Internal error: Killed (program cc1plus)

Please submit a full bug report.

See <URL:http://bugs.gentoo.org/> for instructions.

x86_64-pc-linux-gnu-g++: Internal error: Killed (program cc1plus)

Please submit a full bug report.

See <URL:http://bugs.gentoo.org/> for instructions.

make[4]: *** [playlist.lo] Error 1

make[4]: *** Waiting for unfinished jobs....

make[4]: *** [playlistbrowser.lo] Error 1

make[4]: Leaving directory `/var/tmp/portage/media-sound/amarok-1.4.6-r1/work/amarok-1.4.6/amarok/src'

make[3]: *** [all-recursive] Error 1

make[3]: Leaving directory `/var/tmp/portage/media-sound/amarok-1.4.6-r1/work/amarok-1.4.6/amarok/src'

make[2]: *** [all-recursive] Error 1

make[2]: Leaving directory `/var/tmp/portage/media-sound/amarok-1.4.6-r1/work/amarok-1.4.6/amarok'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/var/tmp/portage/media-sound/amarok-1.4.6-r1/work/amarok-1.4.6'

make: *** [all] Error 2

 [31;01m*[0m 

 [31;01m*[0m ERROR: media-sound/amarok-1.4.6-r1 failed.

 [31;01m*[0m Call stack:

 [31;01m*[0m   ebuild.sh, line 1654:   Called dyn_compile

 [31;01m*[0m   ebuild.sh, line 990:   Called qa_call 'src_compile'

 [31;01m*[0m   ebuild.sh, line 44:   Called src_compile

 [31;01m*[0m   amarok-1.4.6-r1.ebuild, line 87:   Called kde_src_compile

 [31;01m*[0m   kde.eclass, line 170:   Called kde_src_compile 'all'

 [31;01m*[0m   kde.eclass, line 340:   Called kde_src_compile 'myconf' 'configure' 'make'

 [31;01m*[0m   kde.eclass, line 336:   Called die

 [31;01m*[0m 

 [31;01m*[0m died running emake, kde_src_compile:make

 [31;01m*[0m If you need support, post the topmost build error, and the call stack if relevant.

 [31;01m*[0m A complete build log is located at '/var/tmp/portage/media-sound/amarok-1.4.6-r1/temp/build.log'.

 [31;01m*[0m 
```

Podria tratarse de un error de gcc?? no tengo mucho tiempo para recompilaciones (hace una semana que no hago emege world, aunque sí emerge sync).

Las use de amarok (las nuevas musicbrainz, amazon, mp4 y visualization):

```

[ebuild   R   ] media-sound/amarok-1.4.6-r1  USE="amazon%* arts daap kde musicbrainz* mysql opengl python -debug -ifp -ipod mp4* -mtp -njb -postgres (-real) visualization* -xinerama (-noamazon%)" LINGUAS="ca es -af -ar -az -be -bg -bn -br -cs -cy -da -de -el -en_GB -eo -et -eu -fa -fi -fr -ga -gl -he -hi -hu -id -is -it -ja -km -ko -ku -lo -lt -mk -ms -nb -nds -nl -nn -pa -pl -pt -pt_BR -ro -ru -rw -se -sk -sl -sq -sr -sr@Latn -ss -sv -ta -tg -th -tr -uk -uz -zh_CN -zh_TW" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

```

Por suerte, almenos, puedo seguir usandolo (sigue funcionando la compilación anterior sin los cambios en las USE).

¿¿Alguien sabria sugerirme que deberia hacer en este momento?? Ideas, sugerencias, cervecitas, todo sea bienvenido....

Gracias a esa gente que siempre hecha un cable

----------

## jgascon

Por lo que cuentas de que se te bloquean las X y por este mensaje "x86_64-pc-linux-gnu-g++: Internal error: Killed (program cc1plus) " puede ser que te hayas quedado sin memoria (ni RAM ni swap) y el OOM killer (Out of Memory Killer, forma parte del kernel) se te haya cargado algún proceso para liberar memoria.

Busca en los logs a ver si aparece algo:

```

grep -i oom /var/log/messages

```

----------

## lanshor

A mi me pasaba algo parecido con ciertos paquetes, pero en cuanto empecé a usar swap el problema desapareció (antes no usaba).

Ahora tengo la swap en un archivo de 2gigas, que sólo se usa de forma muy muy eventual en ciertas compilaciones.

----------

## sefirotsama

En principio no habria de pasar (aunque antes de reinstalar no pasaba...)

Tengo 1GB de RAM y 2GB de swap... diria que tengo la swap bien configurada.

Cuando llegue a casa posteo, gracias por la sugerencia

----------

## Ark del KAOS

 *lanshor wrote:*   

> Ahora tengo la swap en un archivo de 2gigas

 ¿Como? ¿Se puede tener la swap en un archivo dentro de una partición cualquiera, y no tener la necesidad de crear a partición swap?

Me acabas de alegrar la tarde! (Aunque ahora que lo pienso...no se por que no debería de poderse)

¿Me puedes indicar donde encontrar info para hacerlo?  :Wink: 

----------

## hashashin

Es muy fácil, ejemplo para swap de 2 gigas

```
# dd if=/dev/zero of=/home/swap bs=1024 count=2097152

# mkswap /home/swap

# chmod go-rwx /home/swap

# swapon /home/swap
```

y comprueba que el sistema lo está usando con:

```
# free -m 
```

----------

## JotaCE

todos los dias se aprende algo nuevo!

```
localhost jotace # free -m

             total       used       free     shared    buffers     cached

Mem:           502        483         18          0        133        101

-/+ buffers/cache:        249        253

Swap:         1961          0       1960

```

----------

## sefirotsama

 *Quote:*   

> localhost sefirot # free -m
> 
>              total       used       free     shared    buffers     cached
> 
> Mem:           994        746        247          0         20        268
> ...

 

fstab incompleta:

 *Quote:*   

> #/dev/sda2              none            swap            sw              0 0
> 
> UUID=5c88e5d7-059a-48ac-95a4-58ea7f8a2d3e none swap     sw              0 0
> 
> 

 

```
localhost sefirot # swapon /dev/sda2

swapon: /dev/sda2: Invalid argument

localhost sefirot # mount /dev/sda2

mount: mount point none does not exist

```

No me detecta la swap, porque??? Creo que swapon habria de funcionar bien!!!

 *Quote:*   

> localhost sefirot # swapon -v /dev/sda2
> 
> swapon on /dev/sda2
> 
> swapon: /dev/sda2: Invalid argument
> ...

 

----------

## jgascon

Puede que no la hayas formateado para swap, antes de hacer el swapon deberías formateala para swap:

```

mkswap /dev/sda2

```

¡¡¡Ojo!!! esto eliminará todos los datos que podría haber en esa partición. Intenta montarla antes para asegurarte que no hay nada:

```

mount /dev/sda /path/adondequieras/montarla

```

----------

## i92guboj

 *Ark del KAOS wrote:*   

>  *lanshor wrote:*   Ahora tengo la swap en un archivo de 2gigas ¿Como? ¿Se puede tener la swap en un archivo dentro de una partición cualquiera, y no tener la necesidad de crear a partición swap?
> 
> Me acabas de alegrar la tarde! (Aunque ahora que lo pienso...no se por que no debería de poderse)
> 
> ¿Me puedes indicar donde encontrar info para hacerlo? 

 

En linux, no hay distinción real entre archivos y dispositivos, como tampoco la hay entre procesos y archivos. El contenido de la ram principal se puede ver completamente bajo /proc, los dispositivos son archivos también bajo /dev. No hay por tanto razón alguna por la que no se pueda formatear /home/pepe/file en lugar de /dev/loquesea.

No obstante, un par de aclaraciones que creo necesarias:

1.- el uso de un archivo de swap no es tan eficiente como el uso de una partición o disco dedicado

2.- el hecho de ser un archivo regular y no un dispositivo aparte, hace dicho archivo vulnerable a los problemas típicos de los archivos grandes, incluyendo la fragmentación como el principal de todos

Por estas razones, y al precio que se paga hoy día por giga, que es ridículo, nunca aconsejo usar un archivo para swap.

----------

## sefirotsama

 *jgascon wrote:*   

> Puede que no la hayas formateado para swap, antes de hacer el swapon deberías formateala para swap:
> 
> ```
> 
> mkswap /dev/sda2
> ...

 

Montarla para recuperar que? La imagen perdida de cuando entre en suspension hace,.. 1 mes? (la ultima vez que suspendí con exito el portatil...)

```
localhost sefirot # mkswap /dev/sda2

Setting up swapspace version 1, size = 2187919 kB

no label, UUID=1fd3a2dc-a35f-4cd9-ac05-03a70ff5f10f

localhost sefirot # swapon /dev/sda2

localhost sefirot # free -m

             total       used       free     shared    buffers     cached

Mem:           994        971         23          0         35        334

-/+ buffers/cache:        600        394

Swap:         2086          1       2084

```

Al parecer es correcto, mañana probaré compilar amarok a ver si era eso... (que ya d epaso me viene bien activar la swap ^^U )

Según el "free -m" que he puesto aqui arriba, solo me quedan 23MB libres de ram??? es eso posible??? No se autolibera la ram despues de compiular o al cerrar los programas activos? que peligro...

----------

## lanshor

Ten en cuenta que memoria no usada es memoria desperdiciada, así que la planificación del kernel trata de usar toda la memoria posible con buffers y caches, si algún proceso necesita memoria para datos o para si mismo se van borrando buffers y caches... que son prescindibles y sólo se quedan en ram para acelerar las cosas y evitar un posible acceso a disco.

Para ver la memoria, digamos "real", que está ocupada tienes que mirar la línea de abajo, donde pone "+/- buffers/cache". En tu caso tendrías usados 600 megas y libres 394.

----------

## jgascon

 *sefirotsama wrote:*   

> 
> 
> Montarla para recuperar que? La imagen perdida de cuando entre en suspension hace,.. 1 mes? (la ultima vez que suspendí con exito el portatil...)
> 
> 

 

Pura precaución: antes de destruir el sistema de archivos de una partición más vale asegurarse que realmente no haya nada. Todos cometemos errores y como no conozco tu máquina era posible que estuvieses usando una máquina con dos SO instalados y por cualquier descuido la partición que estabas intentado hacer servir como swap fuese una partición con datos. O cualquier otra circustancia esotérica que se te pueda ocurrir  :Wink: 

Lo siento, la verdad es que a veces (casí siempre) soy escaso de palabras en mis explicaciones y doy demasiadas cosas por supuestas...

----------

## sefirotsama

 *jgascon wrote:*   

>  Pura precaución: antes de destruir el sistema de archivos de una partición más vale asegurarse que realmente no haya nada. Todos cometemos errores y como no conozco tu máquina era posible que estuvieses usando una máquina con dos SO instalados y por cualquier descuido la partición que estabas intentado hacer servir como swap fuese una partición con datos. O cualquier otra circustancia esotérica que se te pueda ocurrir

 

Ok gracias! se agradece de todas formas. Por cierto, mi nueva swap ya funciona bién.

 *lanshor wrote:*   

> Ten en cuenta que memoria no usada es memoria desperdiciada, así que la planificación del kernel trata de usar toda la memoria posible con buffers y caches, si algún proceso necesita memoria para datos o para si mismo se van borrando buffers y caches... que son prescindibles y sólo se quedan en ram para acelerar las cosas y evitar un posible acceso a disco.
> 
> Para ver la memoria, digamos "real", que está ocupada tienes que mirar la línea de abajo, donde pone "+/- buffers/cache". En tu caso tendrías usados 600 megas y libres 394.

 

Gracias, esta respuesta me deja mucho más tranquilo.

voy a probar ahora la compilación

----------

## i92guboj

Sobre el tema de la memoria recuerdo que hubo un hilo hace unas semanas, en este mismo subforo:

https://forums.gentoo.org/viewtopic-t-579647.html

----------

## sefirotsama

Ya he conseguido compilar correctamente Amarok sin problema alguno, incluso muchísimo más rápido que la vez anterior.

El rendimiento del sistema también ha aumentado, sin duda era problema de la falta de memoria por no tener bien configurada la swap.

Un saludo.

i92guboj, me leere el hilo que me has puesto, gracias.

----------

