# Error de violación de segmento (Cerrado)

## Popolous

¡Hola de nuevo!

Tras solucionar el tremendo embolado en el que me metí, he estado haciendo un emerge -e system. Todo va bien hasta que llega al paquete dev-lang/tcl, arrojándome estos errores:

 *Quote:*   

> 
> 
> >>> Source compiled.
> 
> >>> Test phase [not enabled]: dev-lang/tcl-8.5.7
> ...

 

Es decir, compila todo correctamente, pero al llegar a la fase de instalación, pues da el error de violación de segmento. He recompilado gcc y bash, pero no he conseguido quitar el error.

Aquí va el emerge --info:

 *Quote:*   

> 
> 
> Portage 2.1.6.13 (default/linux/x86/2008.0, gcc-4.3.3, glibc-2.10.1-r0, 2.6.30-gentoo-r2 i686)
> 
> =================================================================
> ...

 

¡Saludos!Last edited by Popolous on Tue Jul 14, 2009 7:04 am; edited 1 time in total

----------

## Inodoro_Pereyra

Segfault de /bin/sh? Estás seguro de que tu versión anterior de glibc era la misma que la actual 2.10.1?

Pregunto por que esa podría ser la causa, y por que en tu otro hilo comentabas que desinstalaste glibc a raíz de un conflicto de slots, lo que implicaría que había otra versión instalada...

Salud!

----------

## Popolous

Pues realmente ya tengo mis dudas. Estoy casi 100% seguro de que mi versión era la 2.2.10, porque estaban los fuentes en el archivo de distfiles y ni siquiera empecé la actualización de las fuentes.

Este error es común en casi todos los paquetes que trato de emerger, como por ejemplo kdelibs.

¿Bajo la versión de glibc y rehago el proceso de emerge -e @system? (Actualicé portage a 2.2)

¡Saludos!

----------

## Popolous

¡Hola!

He estado haciendo algunas comprobaciones: he vuelvo a desintalar glibc y a iniciar el proceso, para instalar glibc-2.9 (la versión anterior a la 2.10). Después, he querido instalar gcc y emerge me ha querido compilar también glibc-2.10.

Estoy casi seguro de que esa era la librería que tenía al principio, antes de desinstalarla...

Lo que no entiendo es por qué ese segmentation fault, si en teoría he emergido todo lo necesario para restaurar (casi) el sistema.

Ahora estoy haciendo un emerge -e @system y de momento, parece que va bien, pero el paquete número 75 es el que da el error (tcl).

¡Saludos!

----------

## Popolous

Bueno, sigo probando cosas. He reinstalado cmake, make, automake-wrapper, gccmakedep, imake, makedepend...Pero nada, sigue dando el mismo fallo.

No sé ya qué más cosas probar...  :Crying or Very sad: 

¡Saludos!

----------

## Popolous

Sigo, que no se diga que Gentoo va a morir aquí...aunque me temo que así será.

He mirado en este post y parece ser que hay un problema de conflicto entre versiones de libc.so.6. Yo tenía en /usr/lib como enlace simbólico a libc.so.6 libc-2.9.

He borrado el enlace y la librería y copiado /lib/libc-2.10.1 a /usr/lib y creado el enlace simbólico en /usr/lib

```

#ln -sf libc-2.10.1 libc.so.6

```

Y he vuelto a hacer revdep-rebuild. El primer paquete que ha de recompilar (de los 220) es kde-arts.

Compilar, compila, pero cuando llega a la fase de instalación da un segmentation fault en artsflow.cc.

¿Habría alguna forma de rastrear el origen del problema? Seguro que es una librería...pero no estoy seguro de cuál puede ser.

¡Saludos!

----------

## pcmaster

Antes de compilar el world, intenta compilar el system, a ver si va bien.

----------

## Popolous

En el system me daba errores. No he conseguido ningún progreso. Ahora, lo que estoy haciendo, es mirar en el directorio /var/db/pkg y ver las librerías que tenía instaladas y reinstalarlas a ver si después consigo que el error de segment fault desaparezca.

Una de las liberías que tenía instaladas y que me da ahora para instalra es libstdc++. Después trataré de compilar a ver si se soluciona el problema.

¡Saludos!

----------

## Popolous

Bueno, pues sigo sin darme por vencido, reinstalar todo no es una opción. He visto en el hilo una posible solución.

He emergido dev-util/lafilefixer y he ejecutado 

```

# lafilefixer --justfixit

```

Y me ha actualizado un montón de librerías (casi todas relacionadas con KDE). Voy ahora a ver si el revdep-rebuild baja de paquetes corruptos y os cuento a ver qué tal se ha dado.

Cualquier sugerencia es bienvenida.

¡Saludos!

----------

## pcmaster

Prueba iniciar desde un live-cd, hacer un chroot y recompilar desde ahí. Si no da errores reinicias y mira si se ha arreglado.

----------

## i92guboj

Como dice alguien por ahí arriba, antes de paquetes más complejos yo también recomiendo que recompiles world, todo lo necesario para compilar está en dicho set. Más concretamente yo empezaría haciendo esto:

```
emerge -e portage
```

Luego python-updater, y revdep-rebuild, y luego world.

----------

## Popolous

¡Hola!

Después de lo que comenté más arriba, he decidido seguir los pasos lógicos que me comentáis. Estoy haciendo un emerge -e @system y llevo, hasta el momento 92 de 285 paquetes compilados. He abierto otra terminal y he hecho lo siguiente:

```

#emerge -e portage

```

Y me han salido también 285 paquetes a compilar, ¿es esto equivalente a emerge -e @system?

¡Saludos!

----------

## Inodoro_Pereyra

-e es por emptytree, vaciar el arbol de paquetes instalados, hacer de cuenta que ninguno de los paquetes necesarios para el normal funcionamiento del paquete a instalar ni sus dependencias están instaladas.

El paquete portage debe estar mas o menos al comienzo de la lista al hacer -e world. Y estará al final de la lista al hacer -e portage.

En el primer se instalarán todos los paquetes y todas sus dependencias desde cero (pasando por portage inclusive). En el segundo caso lo mismo pero deteniéndose al llegar a portage.

Salud!

----------

## Popolous

Muchísimas gracias por la explicación. Ahora lo tengo más claro.

Voy a ir haciendo los pasos indicados:

```

# emerge -e portage

# python-updater

# revdep-rebuild

# emerge -e world

```

Y os comento a ver qué tal resultado da. Lo curioso es que la violación de segmento la da con ciertos paquetes nada más, debe de ser alguna librería en particular. Además, algunos programas como amsn dan el mismo error al lanzarlos desde consola.

A perseverar se ha dicho...

¡Saludos!

----------

## Popolous

¡Hola!

Esto va a ser más largo que la obra del Escorial  :Razz: . Estoy en en el emerge -e portage. He tenido que enmascarar los siguientes paquetes porque al compilar dan violación de segmento:

 *Quote:*   

> 
> 
> dev-lang/tcl
> 
> x11-libs/pango
> ...

 

De momento, tengo 117 paquetes para compilar. Si termina con éxito, iré al python-updater. Y trataré de que al menos todo lo básico funcione bien y luego ir recompilando poco a poco.

¿No hay manera de descubrir la libería que provoca la violación de segmento? Si es así, ¿qué pasos habría que dar?

¡Saludos!

----------

## i92guboj

Podrías intentar ejecutar el programa en strace, o bien en gdb para luego hacer un volcado de la pila, eso te dirá donde se aborta el programa.

----------

## gringo

he leído hace poco que las últimas versiones de sandbox tb. pueden dar algún problema como este. Antes de liarte con otras cosas prueba con la versión estable de sandbox, no vaya a ser que tenga algo que ver.

saluetes

----------

## Popolous

¡Hola!

Progresos hasta ahora:

emerge -e portage correcto, con los paquetes enmascarados que he nombrado en un post anterior (dev-lang/tcl, x11-libs/pango, x11-libs/gtk+). Python-updater correcto también. Pero cuando llego a revdep-rebuild en la versión 9.6 de los drivers de ati. Los tengo en /etc/portage/package.mask, pero aún así revdep-rebuild necesita de ellos para terminar y ahí da el error siguiente:

 *Quote:*   

> 
> 
> /var/tmp/portage/x11-drivers/ati-drivers-9.6/work/common/lib/modules/fglrx/buil$
> 
> /var/tmp/portage/x11-drivers/ati-drivers-9.6/work/common/lib/modules/fglrx/buil$
> ...

 

He instalado sandbox-1.9 por si acaso es ese el error (gracias por el tip gringo). No sé si hacer un emerge -e @world y luego un revdep-rebuild para ver si arregla las dependencias o no. Como alternativa a los ati-drivers tengo los drivers libres xf86-ati-drivers instalados y desintalé los de ati. 

En el fichero /etc/make.conf en VIDEO_CARDS tengo:

 */etc/make.conf wrote:*   

> 
> 
> VIDEO_CARDS="vesa radeon"
> 
> 

 

**************************Editado**************************

En el make.conf tengo además lo siguiente (lo cambié por si era un tema del sandbox hace unos días, se me pasó comentarlo)

FEATURES="-sandbox -usersandbox"

¡Saludos!

----------

## Popolous

Estoy trasteando con strace. Hasta ahora he hecho lo siguiente:

```

# strace amsn

execve("/usr/bin/amsn", ["amsn"], [/* 54 vars */]) = 0

brk(0)                                  = 0x8104000

access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)

open("/etc/ld.so.cache", O_RDONLY)      = 3

fstat64(3, {st_mode=S_IFREG|0644, st_size=176084, ...}) = 0

mmap2(NULL, 176084, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fc1000

close(3)                                = 0

open("/lib/libncurses.so.5", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\303\0\0004\0\0\0\220"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=265592, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb8008000

mmap2(NULL, 269860, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f7f000

mmap2(0xb7fbe000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3e) = 0xb7fbe000

close(3)                                = 0

open("/lib/libdl.so.2", O_RDONLY)       = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\n\0\0004\0\0\0$"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=9604, ...}) = 0

mmap2(NULL, 12408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f7b000

mmap2(0xb7f7d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7f7d000

close(3)                                = 0

open("/lib/libc.so.6", O_RDONLY)        = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300k\1\0004\0\0\0\244"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=1343772, ...}) = 0

mmap2(NULL, 1354024, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e30000

mprotect(0xb7f74000, 4096, PROT_NONE)   = 0

mmap2(0xb7f75000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x144) = 0xb7f75000

mmap2(0xb7f78000, 10536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f78000

close(3)                                = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e2f000

set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e2f6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0

mprotect(0xb7f75000, 8192, PROT_READ)   = 0

mprotect(0xb7f7d000, 4096, PROT_READ)   = 0

mprotect(0xb7fbe000, 8192, PROT_READ)   = 0

mprotect(0x80f9000, 4096, PROT_READ)    = 0

mprotect(0xb8009000, 4096, PROT_READ)   = 0

munmap(0xb7fc1000, 176084)              = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3

close(3)                                = 0

brk(0)                                  = 0x8104000

brk(0x8125000)                          = 0x8125000

open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3

fstat64(3, {st_mode=S_IFREG|0644, st_size=1821312, ...}) = 0

mmap2(NULL, 1821312, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7c72000

close(3)                                = 0

getuid32()                              = 0

getgid32()                              = 0

geteuid32()                             = 0

getegid32()                             = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

time(NULL)                              = 1247491098

open("/proc/meminfo", O_RDONLY)         = 3

fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7feb000

read(3, "MemTotal:        2073016 kB\nMemFr"..., 1024) = 1024

close(3)                                = 0

munmap(0xb7feb000, 4096)                = 0

rt_sigaction(SIGCHLD, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGCHLD, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGINT, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGINT, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGQUIT, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGQUIT, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigaction(SIGQUIT, {0x1, [], 0}, {SIG_DFL, [], 0}, 8) = 0

uname({sys="Linux", node="Ulises", ...}) = 0

stat64("/root", {st_mode=S_IFDIR|0700, st_size=3072, ...}) = 0

stat64(".", {st_mode=S_IFDIR|0700, st_size=3072, ...}) = 0

getpid()                                = 23402

open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3

fstat64(3, {st_mode=S_IFREG|0644, st_size=26048, ...}) = 0

mmap2(NULL, 26048, PROT_READ, MAP_SHARED, 3, 0) = 0xb7fe5000

close(3)                                = 0

getppid()                               = 23401

gettimeofday({1247491098, 642237}, NULL) = 0

getpgrp()                               = 23401

rt_sigaction(SIGCHLD, {0x80811d5, [], 0}, {SIG_DFL, [], 0}, 8) = 0

getrlimit(RLIMIT_NPROC, {rlim_cur=16374, rlim_max=16374}) = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

open("/usr/bin/amsn", O_RDONLY|O_LARGEFILE) = 3

ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbf851538) = -1 ENOTTY (Inappropriate ioctl for device)

_llseek(3, 0, [0], SEEK_CUR)            = 0

read(3, "#!/bin/sh\n# \\\nexec wish $0 $@\n\n##"..., 80) = 80

_llseek(3, 0, [0], SEEK_SET)            = 0

getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0

fcntl64(255, F_GETFD)                   = -1 EBADF (Bad file descriptor)

dup2(3, 255)                            = 255

close(3)                                = 0

fcntl64(255, F_SETFD, FD_CLOEXEC)       = 0

fcntl64(255, F_GETFL)                   = 0x8000 (flags O_RDONLY|O_LARGEFILE)

fstat64(255, {st_mode=S_IFREG|0755, st_size=12029, ...}) = 0

_llseek(255, 0, [0], SEEK_CUR)          = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

read(255, "#!/bin/sh\n# \\\nexec wish $0 $@\n\n##"..., 8192) = 8192

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

stat64(".", {st_mode=S_IFDIR|0700, st_size=3072, ...}) = 0

stat64("/usr/local/sbin/wish", 0xbf8513bc) = -1 ENOENT (No such file or directory)

stat64("/usr/local/bin/wish", 0xbf8513bc) = -1 ENOENT (No such file or directory)

stat64("/usr/sbin/wish", 0xbf8513bc)    = -1 ENOENT (No such file or directory)

stat64("/usr/bin/wish", {st_mode=S_IFREG|0755, st_size=5376, ...}) = 0

stat64("/usr/bin/wish", {st_mode=S_IFREG|0755, st_size=5376, ...}) = 0

rt_sigaction(SIGINT, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGQUIT, {SIG_DFL, [], 0}, {0x1, [], 0}, 8) = 0

rt_sigaction(SIGCHLD, {SIG_DFL, [], 0}, {0x80811d5, [], 0}, 8) = 0

execve("/usr/bin/wish", ["wish", "/usr/bin/amsn"], [/* 54 vars */]) = 0

brk(0)                                  = 0x804b000

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fe2000

access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)

open("/usr/lib/tls/i686/sse2/libtk8.5.so", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/usr/lib/tls/i686/sse2", 0xbfc772bc) = -1 ENOENT (No such file or directory)

open("/usr/lib/tls/i686/libtk8.5.so", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/usr/lib/tls/i686", 0xbfc772bc) = -1 ENOENT (No such file or directory)

open("/usr/lib/tls/sse2/libtk8.5.so", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/usr/lib/tls/sse2", 0xbfc772bc) = -1 ENOENT (No such file or directory)

open("/usr/lib/tls/libtk8.5.so", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/usr/lib/tls", 0xbfc772bc)      = -1 ENOENT (No such file or directory)

open("/usr/lib/i686/sse2/libtk8.5.so", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/usr/lib/i686/sse2", 0xbfc772bc) = -1 ENOENT (No such file or directory)

open("/usr/lib/i686/libtk8.5.so", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/usr/lib/i686", 0xbfc772bc)     = -1 ENOENT (No such file or directory)

open("/usr/lib/sse2/libtk8.5.so", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/usr/lib/sse2", 0xbfc772bc)     = -1 ENOENT (No such file or directory)

open("/usr/lib/libtk8.5.so", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\204\1\0004\0\0\0\370"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0555, st_size=1123296, ...}) = 0

mmap2(NULL, 1123360, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7eb3000

mmap2(0xb7fb5000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x102) = 0xb7fb5000

mmap2(0xb7fc5000, 1056, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7fc5000

close(3)                                = 0

open("/usr/lib/libtcl8.5.so", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320_\1\0004\0\0\0\330"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0555, st_size=1016552, ...}) = 0

mmap2(NULL, 1021096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7db9000

mprotect(0xb7eab000, 4096, PROT_NONE)   = 0

mmap2(0xb7eac000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf2) = 0xb7eac000

mmap2(0xb7eb2000, 1192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7eb2000

close(3)                                = 0

open("/usr/lib/libpthread.so.0", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@H\0\0004\0\0\0\330"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=118530, ...}) = 0

mmap2(NULL, 94688, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7da1000

mmap2(0xb7db5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13) = 0xb7db5000

mmap2(0xb7db7000, 4576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7db7000

close(3)                                = 0

open("/usr/lib/libX11.so.6", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240j\1\0004\0\0\0\374"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=977892, ...}) = 0

mmap2(NULL, 977948, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7cb2000

mmap2(0xb7d9d000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xeb) = 0xb7d9d000

close(3)                                = 0

open("/usr/lib/libXss.so.1", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\n\0\0004\0\0\0\210"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=9584, ...}) = 0

mmap2(NULL, 12512, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7cae000

mmap2(0xb7cb0000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7cb0000

close(3)                                = 0

open("/usr/lib/libXext.so.6", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2200\0\0004\0\0\0\310"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=55728, ...}) = 0

mmap2(NULL, 58972, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7c9f000

mmap2(0xb7cac000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc) = 0xb7cac000

close(3)                                = 0

open("/usr/lib/libdl.so.2", O_RDONLY)   = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\n\0\0004\0\0\0("..., 512) = 512

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7c9e000

fstat64(3, {st_mode=S_IFREG|0755, st_size=9608, ...}) = 0

mmap2(NULL, 12408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7c9a000

mmap2(0xb7c9c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7c9c000

close(3)                                = 0

open("/usr/lib/libm.so.6", O_RDONLY)    = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P4\0\0004\0\0\0000"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=149256, ...}) = 0

mmap2(NULL, 151680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7c74000

mmap2(0xb7c98000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23) = 0xb7c98000

close(3)                                = 0

open("/usr/lib/libc.so.6", O_RDONLY)    = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260k\1\0004\0\0\0X"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=1316072, ...}) = 0

mmap2(NULL, 1321256, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7b31000

mmap2(0xb7c6e000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13d) = 0xb7c6e000

mmap2(0xb7c71000, 10536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7c71000

close(3)                                = 0

open("/etc/ld.so.cache", O_RDONLY)      = 3

fstat64(3, {st_mode=S_IFREG|0644, st_size=176084, ...}) = 0

mmap2(NULL, 176084, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7b06000

close(3)                                = 0

open("/usr/lib/libXau.so.6", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \v\0\0004\0\0\0 "..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=9440, ...}) = 0

mmap2(NULL, 12420, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7b02000

mmap2(0xb7b04000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7b04000

close(3)                                = 0

open("/usr/lib/libXdmcp.so.6", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\22\0\0004\0\0\0$"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=17636, ...}) = 0

mmap2(NULL, 20608, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7afc000

mmap2(0xb7b00000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0xb7b00000

close(3)                                = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7afb000

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7afa000

set_thread_area({entry_number:-1 -> 6, base_addr:0xb7afa6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0

mprotect(0xb7b00000, 4096, PROT_READ)   = 0

mprotect(0xb7b04000, 4096, PROT_READ)   = 0

mprotect(0xb7c6e000, 8192, PROT_READ)   = 0

mprotect(0xb7c98000, 4096, PROT_READ)   = 0

mprotect(0xb7c9c000, 4096, PROT_READ)   = 0

mprotect(0xb7cac000, 4096, PROT_READ)   = 0

mprotect(0xb7cb0000, 4096, PROT_READ)   = 0

mprotect(0xb7d9d000, 4096, PROT_READ)   = 0

mprotect(0xb7db5000, 4096, PROT_READ)   = 0

mprotect(0xb7eac000, 8192, PROT_READ)   = 0

mprotect(0xb7fb5000, 20480, PROT_READ)  = 0

mprotect(0x8049000, 4096, PROT_READ)    = 0

mprotect(0xb7fe3000, 4096, PROT_READ)   = 0

munmap(0xb7b06000, 176084)              = 0

set_tid_address(0xb7afa708)             = 23402

set_robust_list(0xb7afa710, 0xc)        = 0

futex(0xbfc77974, FUTEX_WAKE_PRIVATE, 1) = 0

rt_sigaction(SIGRTMIN, {0xb7da52e0, [], SA_SIGINFO}, NULL, 8) = 0

rt_sigaction(SIGRT_1, {0xb7da5360, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0

rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0

getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0

--- SIGILL (Illegal instruction) @ 0 (0) ---

+++ killed by SIGILL +++

```

Pero no entiendo muy bien (de hecho, no la entiendo) la salida, estoy intentando digerirla para ver dónde puede estar el error de violación de segmento...

¡Saludos!

----------

## pcmaster

Al final pone:

```
--- SIGILL (Illegal instruction) @ 0 (0) ---

+++ killed by SIGILL +++

```

 Veo que has puesto:

```
CFLAGS="-march=nocona -O2 -pipe -fomit-frame-pointer"

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

¿Qué procesador tienes? Si no estás seguro, pon el resultado del comando

# cat /proc/cpuinfo

Porque la arquitectura que has puesto (nocona) es para un Intel Xeon.

----------

## Popolous

El procesador es un Centrino Core Duo. Leí hace tiempo que esa era la opción adecuada para la arquitectura que tengo.

¡Saludos!

----------

## pcmaster

Al compilar el kernel, selecciona Core2/Newer Xeon.

En /etc/make.conf yo tengo:

CHOST="x86_64-pc-linux-gnu"

CFLAGS="-march=athlon64 -O2 -pipe"

Es un Core 2 Duo, y sin problemas.

Nota: Yo tengo la instalación en 64 bit, tú parece que la tienes a 32 bit.

----------

## Popolous

Sí, tengo la de 32 bits, no sabía que se podía poner la de 64 bits.

Aquí va la información detallada:

 *cat /proc/cpuinfo wrote:*   

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

 

¡Saludos!

----------

## Popolous

Parece ser que esta no es mi semana con Gentoo   :Razz: 

Ha vuelto a fallar la compilación del emerge -e @world (he omitido el revdep-rebuild para hacerlo después en todo caso). El fallo está en el paquete dev-java/gnu-classpath y dice lo siguiente:

 *Quote:*   

> 
> 
> mkdir -p ../gnu/java/locale
> 
> true
> ...

 

Ahora en el mensaje de error aparece glibj que antes no aparecía. No sé si tendrá algo que ver o no, pero voy a mirar por si acaso en el foro y/o en google hay algún mensaje relacionado con esto.

¡Saludos!

----------

## Popolous

Como suele decirse: cada tonto con su tema  :Laughing: 

He ejecutado strace con emerge gnu-classpath y esta es la salida (para mí, como si sale en chino mandarín):

 *Quote:*   

> 
> 
> access("/var/lib/hsqldb", W_OK)         = 0
> 
> lstat64("/var/lib/hsqldb", {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
> ...

 

¿Alguna idea de por dónde van los tiros o empiezo a instalar de cero?

¡Saludos!

----------

## i92guboj

En este punto, yo comenzaría desde cero porque no estoy nada seguro que sea un problema de  software. El hecho de que hayas reconstruído toda la toolchain y siga fallando de forma aleatoria es más que sospechoso, y los dos volcados de strace abortan en sitios completamente distintos, lo que parece sugerir que no hay un denominador común.

En tales casos, es hora de empezar a pensar en un fallo de hardware, quizás tu accidente con glibc haya sido solo una coincidencia.

Si comienzas con una instalación limpia y sigue en sus trece, entonces ya sabemos a qué atenernos.

----------

## Popolous

Eso creo yo también que es lo mejor que puedo hacer....

Sin embargo, me gustaría saber antes de hacer nada, y para saber qué paquetes o programas tenía instalados, si puedo hacer un backup y reconstruirlo nuevamente (había pensado en /var/db/pkg).

Y también, si dada mi ¡CPU qué CHOST y CFLAGS son las más recomendables.

¡Saludos!

----------

## i92guboj

 *Popolous wrote:*   

> Eso creo yo también que es lo mejor que puedo hacer....
> 
> Sin embargo, me gustaría saber antes de hacer nada, y para saber qué paquetes o programas tenía instalados, si puedo hacer un backup y reconstruirlo nuevamente (había pensado en /var/db/pkg).

 

Puedes guardar tu fichero world, /var/lib/portage/world, para emerger su contenido simplemente usa algo como 

```
xargs emerge -pv < world_backup.txt
```

Simplemente moviendo el fichero world al sitio correcto en la nueva instalación y haciendo emerge -auDvN world debería funcionar igualmente, supongo.

 *Quote:*   

> Y también, si dada mi ¡CPU qué CHOST y CFLAGS son las más recomendables.
> 
> ¡Saludos!

 

El chost no deberías tocarlo nunca a no ser que sepas bien lo que haces. Escoge un stage adecuado y nada más. Cuál exactamente va a depender de si quieres usar 32 o 64 bits.

----------

## Popolous

¿Puedo usar 64 bits con mi arquitectura? ¿Qué beneficios me reportaría?

¡Saludos!

----------

## i92guboj

 *Popolous wrote:*   

> ¿Puedo usar 64 bits con mi arquitectura? ¿Qué beneficios me reportaría?
> 
> ¡Saludos!

 

Donde más se nota en el la codificación de video y audio, así como algunas otras tareas bastante específicas. Para el usuario normal la ventaja más inmediata es que puedes usar toda tu ram sin necesidad de habilitar PAE y otras bagatelas en el kernel, que penalizan ligeramente el rendimiento.

Ya hay bastante de 32 bs. 64 in la red así que no me extenderé más en el tema, busca un poco por ahí. Seguramente alguien más dejará su comentario por aquí. En cualquier caso es más cuiestión de gustos que de verdaderos argumentos en la mayoría de los casos. No hay una diferencia notable en la mayoría de los casos, ni en sentido positivo ni negativo. Es mi experiencia, excepto ya digo, para la compresión de video.

----------

## Popolous

¡Hola!

He estado leyendo acerca de 64 bits en otros hilos del foro y por la red. Más o menos lo voy teniendo claro, aunque conforme siga leyendo despejaré algunas dudas que tengo acerca de este "salto" y que están relacionadas con las variables de entorno:

 *Quote:*   

> 
> 
> CHOST="x86_64-pc-linux-gnu" 
> 
> CFLAGS="-O2 -march=native -mtune=core2 -pipe"
> ...

 

También tendría que elegir la instalación de acuerdo a esta arquitectura. Voy a seguir leyendo a ver qué encuentro.

Cambio el título del post a (Cerrado). Gracias por la ayuda, a pesar de que no he conseguido arreglarlo, al menos algo he aprendido y seguro que no vuelvo a cometer los mismos errores, otros sí, pero los mismos no creo.

¡Saludos!

----------

## pcmaster

El Core 2 Duo T7200 soporta 64 bit:

http://en.wikipedia.org/wiki/List_of_Intel_Core_2_microprocessors

Así que si vas a reinstalar, puedes aprovechar y probar con la versión de 64 bit. De las diversas arquitecturas que soporta Gentoo, la adecuada es la AMD64. Te recomiendo que lo instales con soporte multilib, así también podrás instalar versiones de 32 bit de aquellos programas que no tengan todavía versión para 64 bit.

----------

## Popolous

Muchas gracias pcmaster, estaba particionando en este momento. Creo que voy a probar los 64 bits. Para eso creo que los argumentos de la variable CHOST es como he puesto anteriormente.

ACCEPT_KEYWORDS="~amd64" entonces y lo de multilib imagino que con ponerlo en la variable USE del fichero /etc/make.conf hace el trabajo, ¿estoy en lo cierto?

¡Saludos!

----------

## i92guboj

 *Popolous wrote:*   

> Muchas gracias pcmaster, estaba particionando en este momento. Creo que voy a probar los 64 bits. Para eso creo que los argumentos de la variable CHOST es como he puesto anteriormente.
> 
> ACCEPT_KEYWORDS="~amd64" entonces y lo de multilib imagino que con ponerlo en la variable USE del fichero /etc/make.conf hace el trabajo, ¿estoy en lo cierto?
> 
> ¡Saludos!

 

Multilib se habilita en el perfil, hay una use flag pero está incluída en el mismo perfil y no se puede cambiar manualmente de forma sencilla.

El perfil predeterminado y el desktop habilitan multilib, así que no tienes que hacer nada especial.

----------

## pcmaster

Yo no pondría ~AMD64, déjalo en ADM64 (estable) y si acaso instalas aceptando ~AMD64 para algún paquete concreto que por algún motivo necesites tener instalado en su última versión no estable.

----------

## Popolous

Muchas gracias de nuevo, sois realmente geniales.

¡Saludos!

----------

