# imposible compilar en C como usuario [Solucionado]

## Yczo

Hola muy buenas, desde siempre tengo un extraño problema con gcc que no tengo ni idea de resolver.

El caso es que no hay manera de compilar las practicas que me exigen para la universidad si no es como root, lo que no me gusta nada. He mirado posts pero no he logrado una solución, por eso venia aquí a ver si alguien puede hacer el favor de echarme una mano.

Cuando compilo como root no hay problema, todo funciona normal, pero vereís si intento compilar como mi usuario obtengo el siguiente error

```

    $ gcc -o main.c 

    gcc-config: error: could not run/locate 'gcc'

```

Observad que tengo permiso en el directorio y en el fichero

```

    $ ls -l

    -rwxrwxrwx 1 enigma enigma  211 dic 12 11:44 main.c

    ls -l ..

    drwxrwxrwx 4 enigma enigma  4096 ene 21 20:36 prueba

```

si como usuario listo los compiladores que tengo, obtengo

```

    $ gcc-config -l

     [1] avr-4.4.5 * (Aterisco color azul claro)

     [2] x86_64-pc-linux-gnu-4.6.3 * (Asterisco color verde)

```

El primer compilador lo uso sin problema para realizar programas en compilación cruzada para microcontroladores atmel sobre placas arduinio y no debo eliminarlo pero creo que el asterisco azul que tiene lo clasifica como secundario.

Ahora un dato curioso, si como root ejecuto

```

    ls -l /usr/bin/gc*

    -rwxr-xr-x 1 root root 10384 ene 13 03:37 /usr/bin/gc-analyze

    -rwxr-xr-x 1 root root 10384 ene 13 03:37 /usr/bin/gcc

    lrwxrwxrwx 1 root root    62 ene 13 03:38 /usr/bin/gcc-4.6.3 -> /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcc

    -rwxr-xr-x 1 root root 22979 ene  9  2009 /usr/bin/gcc-config

    -rwxr-xr-x 1 root root 10384 ene  9  2009 /usr/bin/gccbug

    -rwxr-xr-x 1 root root 10384 ene 13 03:37 /usr/bin/gcj

    lrwxrwxrwx 1 root root    62 ene 13 03:38 /usr/bin/gcj-4.6.3 -> /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcj

    -rwxr-xr-x 1 root root 10384 ene 13 03:37 /usr/bin/gcj-dbtool

    -rwxr-xr-x 1 root root 10384 ene 13 03:37 /usr/bin/gcjh

    lrwxrwxrwx 1 root root    63 ene 13 03:38 /usr/bin/gcjh-4.6.3 -> /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcjh

    -rwxr-xr-x 1 root root 64568 ene 13 12:11 /usr/bin/gconf-merge-tree

    -rwxr-xr-x 1 root root 64544 ene 13 12:11 /usr/bin/gconftool-2

    -rwxr-xr-x 1 root root 10384 ene 13 03:37 /usr/bin/gcov

    lrwxrwxrwx 1 root root    63 ene 13 03:38 /usr/bin/gcov-4.6.3 -> /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcov

```

obtengo los archivos correspondientes y algunos enlaces simbolicos como debe ser; Ahora viene lo interesante: Si ejecuto esta misma instrucción como usario normal, estos enlaces simbolicos estan en rojo parpadeando, es decir como si los destinos de los enlaces estuviesen borrados, lo que creo que de alguna forma me indica que no tengo permisos, sin embargo si como root listo los permisos de los destinos de esos enlaces simbolicos, tomare uno solo por poner el ejemplo

```

    ls -l /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gc*

    -rwxr-xr-x 1 root root 340912 ene 13 03:37 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcc

    lrwxrwxrwx 1 root root     23 ene 13 03:38 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcc-4.6.3 -> x86_64-pc-linux-gnu-gcc

    -rwxr-xr-x 1 root root 353240 ene 13 03:37 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcj

    -rwxr-xr-x 1 root root   6080 ene 13 03:37 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcjh

    -rwxr-xr-x 1 root root  35152 ene 13 03:37 /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcov

```

como veis, todos tienen permisos de lectura y ejecución para todos los usuarios. Una locura para mi xddd

No se que pensar  ¿Debe mi usuario pertenecer a algún grupo especial para poder compilar mis practicas? 

por verificar alguna incompatibiliad, aqui pongo mi fstab

```

    /dev/sda1       /               ext4    noatime,nodiratime              0 1

    /dev/sda2       /home           ext4    noatime,nodiratime              0 2

    #movido en make.conf a /tmp/portage (archivos de fuentes) tmpfs /usr/portage/                   tmpfs  size=7100M               0 0

    #enlazado en /tmp/tmp  (archivos de compilacion)    tmpfs       /var/tmp                        tmpfs  size=7100M        0 0

    tmpfs   /var/log                        tmpfs  size=300M                0 0

    tmpfs   /tmp                            tmpfs  size=7100M                       0 0

    #info paquetes instalados tmpfs   /var/db/pkg                     tmpfs  size=300M                0 0  #Contiene info de los paquetes instalados

    #tmpfs   /var/lib/portage                tmpfs  size=700M                0 0

    #/dev/sda5              none            swap    sw              0 0

    /dev/sr0                /media/cdrom    auto            noauto,ro,user  0 0

    #en la red nfs hay que usar nolock en el montaj para que lo debloquee

    enigma:/home/enigma/Archivos     /home/enigma/Archivos/Multimedia/Red-Poco/  nfs    nolock,rw,user,noauto,sync,hard,intr   0 0

    enigma:/Archivos     /home/enigma/Archivos/Multimedia/Red-Mucho/  nfs    nolock,rw,user,noauto,sync,hard,intr   0 0

    #/dev/fd0               /media/floppy   auto            noauto          0 0     No hay unidad de disco flsexible

    proc                    /proc           proc            defaults        0 0

    shm                     /dev/shm        tmpfs   nodev,nosuid,noexec     0 0

```

Gracias de antemano.

Saludos.Last edited by Yczo on Tue Feb 12, 2013 7:30 pm; edited 2 times in total

----------

## cameta

Dale al emerge gcc. 

a ver si se arregla. 

ah y tambien prueba con el revdep-rebuild

----------

## Yczo

lamentablemente ya lo hice y no hizo efecto, pero gracias cameta

----------

## esteban_conde

echo $PATH 

Como root y como usuario, observa si como usuario tienes :/usr/bin pues creo que ese es el error que te dice en:

gcc-config: error: could not run/locate 'gcc' 

 *echo $PATH wrote:*   

> esteban@mimaquina ~ $ echo $PATH
> 
> /usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3:/usr/x86_64-pc-linux-gnu/armv7a-unknown-linux-gnu/gcc-bin/4.5.3:/usr/x86_64-pc-linux-gnu/armv7a-unknown-linux-gnueabi/gcc-bin/4.7.2:/usr/qt/3/bin:/usr/lib64/subversion/bin:/usr/games/bin:/home/esteban/Desktop/android/android-sdk-linux/platform-tools:/home/esteban/Desktop/android/android-sdk-linux/tools
> 
> 

 

----------

## Yczo

Hola Esteban. Gracias por la idea.

la verdad es que no entiendo nada

como usuario:

```

$ echo $PATH

/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3:/usr/x86_64-pc-linux-gnu/avr/gcc-bin/4.4.5:/usr/lib64/opencascade-6.5/ros/lin/bin:/opt/android-sdk-update-manager/tools:/opt/android-sdk-update-manager/platform-tools:/usr/games/bin

```

como root

```

# echo $PATH

/sbin:/bin:/usr/sbin:/usr/bin

```

Saludos!

----------

## esteban_conde

Verifica que en /etc/fstab no tengas puesto user en las opciones de montaje de /home ó /

 *man mount wrote:*   

>  Normalmente,  solo  el  superusuario  puede  montar  sistemas de
> 
>        ficheros. Sin embargo, cuando fstab contiene  la  opcion  user  en  una
> 
>        linea,  entonces  cualquiera puede montar el distema de ficheros corre-
> ...

 

Ese es un extracto de man mount, repito si tienes puesto user como opcion en fstab quitalo y remonta la particion o reinicia, seguramente luego podrás compilar como user en un directorio que tengas permisos de escritura.

----------

## Yczo

esto es todo lo que tengo en fstab:

```

    /dev/sda1       /              ext4    noatime,nodiratime              0 1

    /dev/sda2       /home            ext4    noatime,nodiratime              0 2

    tmpfs   /var/log                        tmpfs  size=300M                0 0

    tmpfs   /tmp                            tmpfs  size=7100M                       0 

    proc                    /proc           proc            defaults        0 0

    shm                     /dev/shm        tmpfs   nodev,nosuid,noexec     0 0 

    /dev/sr0                /media/cdrom    auto            noauto,ro,user  0 0

       enigma:/home/enigma/Archivos     /home/enigma/Archivos/Multimedia/Red-Poco/  nfs    nolock,rw,user,noauto,sync,hard,intr   0 0

    enigma:/Archivos     /home/enigma/Archivos/Multimedia/Red-Mucho/  nfs    nolock,rw,user,noauto,sync,hard,intr   0 0

```

Tengo el user en una unidad de red que se monta sobre el home 

EDITO:

tampoco parece asunto de permisos de directorio

```

 # mkdir /prueba

 # chown -R enigma:enigma /prueba

 # chmod -R 777 /prueba

 # exit

 $ cd /prueba/

 $ gcc

      gcc-config: error: could not run/locate 'gcc'

```

Un saludo y gracias.

----------

## cameta

Hola

como usuario ejecuta estos comandos

gcc -v

gcc-config -l

yo estoy seguro que pasa algo  con los profiles

esos dos astericos....

----------

## esteban_conde

Sin descartar lo que te dice cameta y por supuesto una accion por vez para saber donde está el error debes borrar user de:

 *Quote:*   

>  enigma:/home/enigma/Archivos     /home/enigma/Archivos/Multimedia/Red-Poco/  nfs    nolock,rw,user,noauto,sync,hard,intr   0 0
> 
>     enigma:/Archivos     /home/enigma/Archivos/Multimedia/Red-Mucho/  nfs    nolock,rw,user,noauto,sync,hard,intr   0 0 

   y dejarlo así:

 enigma:/home/enigma/Archivos     /home/enigma/Archivos/Multimedia/Red-Poco/  nfs    nolock,rw,noauto,sync,hard,intr   0 0

    enigma:/Archivos     /home/enigma/Archivos/Multimedia/Red-Mucho/  nfs    nolock,rw,noauto,sync,hard,intr   0 0 

Observa que he eliminado la palabra user de esas dos líneas.

Luego reinicia.

----------

## gringo

mmm, que raro, acabo de probar en mi gentoo y no tengo problema para compilar. He probado con el wrapper gcc y con x86_64-pc-linux-gnu-gcc con idéntico resultado.

has probado creando otro usuario para saber si es un problema del sistema o del entorno de ese usuario en concreto ?

los asteriscos creo que no tienen nada que ver, uno indica el compilador cruzado seleccionado y el otro indica el compilador del sistema.

saluetes

----------

## cameta

Yo si lo anterior no funciona probaria con esto:

1º Eliminar el avr-4.4.5 co

2º http://www.gentoo.org/doc/en/gcc-upgrading.xml

hacer lo que dice aquí:

# emerge -u gcc

# gcc-config -l

[1] i686-pc-linux-gnu-4.4.5 *

[2] i686-pc-linux-gnu-4.5.3

# gcc-config 2

# env-update && source /etc/profile (esto creo que es bastante mportante cuando cambias de gcc)

# emerge --oneshot libtool

Y mira el final 

Which packages are known to need a rebuild?

The following table gives the packages that, if installed, need to be rebuild and why.

Package 	Rebuild needed because ...

sys-devel/libtool 	libtool application has hardcoded paths towards GCC internal libraries

dev-lang/ghc 	ghc application has hardcoded paths towards GCC internal libraries

reemerger paquetes como el ghc puede ser una buena idea.

----------

## esteban_conde

Pues opino que gcc-config funciona igual para root que para cualquier usuario, es decir si ejecutas gcc-config set X donde X = nº de lista que arroja gcc-config, esto afecta por igual al user root que a cualquier otro y lo que Yczo dice es que puede compilar como root no como user normal.

----------

## cameta

gcc-config como usuario normal sólo te da la lista de los diferentes gcc. Si intentas cambiar de profile como usuario normal te dirá que gcc-config: need write access to. Algo por otra parte lógico.

----------

## esteban_conde

 *cameta wrote:*   

> gcc-config como usuario normal sólo te da la lista de los diferentes gcc. Si intentas cambiar de profile como usuario normal te dirá que gcc-config: need write access to. Algo por otra parte lógico.

 

Pues por eso mismo si funciona para root deberia funcionar para cualquier usuario, sin embargo el quid creo que está en "noexec " implicito en la opcion "user" que comento en mis ateriores posts.

 *man mount wrote:*   

> user   Permitir  a  un  usuario  ordinario  montar el sistema de
> 
>                      ficheros. Esta opcion implica las opciones noexec, nosuid
> 
>                      y  nodev  (a  menos  que se sustituyan por otras subsigu-
> ...

 

Perdonad el sin sentido de mi otro post en cuanto al ejemplo de man mount:

 *Quote:*   

> man mount escribió:
> 
> Normalmente, solo el superusuario puede montar sistemas de
> 
> ficheros. Sin embargo, cuando fstab contiene la opcion user en una
> ...

 

lo cual no viene al caso.

----------

## opotonil

Yo tambien tengo seleccinado un compilador cruzado:

```

$ gcc-config -l

 [1] avr-4.7.2 * (Asterisco azul)

 [2] x86_64-pc-linux-gnu-4.6.3 * (Asterisco verde)

```

Me funciona sin problemas la compilacion como usuario:

```

$ gcc -o HelloWorld main.c

$ ./HelloWorld 

Hello World

```

Mi fstab no tiene opciones especiales:

```

/dev/sda1               /boot                   ext2    noatime,noauto          1 2

/dev/sda2               none                    swap    sw                      0 0

/dev/sda3               /                       ext4    noatime                 0 1

/dev/vg/portage         /usr/portage            ext2    noatime                 0 1

/dev/vg/distfiles       /usr/portage/distfiles  ext2    noatime                 0 1

/dev/vg/src             /usr/src                ext2    noatime                 0 1

/dev/vg/var             /var                    ext4    noatime                 0 1

/dev/vg/tmp             /var/tmp                ext2    noatime                 0 1

/dev/vg/home            /home                   ext4    noatime                 0 1

/dev/cdrom              /mnt/cdrom              auto    noauto,user             0 0

#/dev/fd0               /mnt/floppy             auto    noauto                  0 0

shm                     /dev/shm                tmpfs   nodev,noexec,nosuid     0 0

```

Los grupos a los que pertenece mi usuario:

```

$ groups

lp wheel floppy uucp audio cdrom video usb users kvm plugdev android (usuario)

```

Si no recuerdo mal actualice "gcc" el viernes pasado y tras la actualizacion y seleccion del nuevo "gcc" ejecute "fix_libtool_files.sh". No se me ocurre nada que mirar, si quereis que compruebe algo a ver si esta distinto en mi sistema comentarme.

Un salu2.

----------

## i92guboj

No he leído el hilo completo, pero veo que tienes un ambiente de compilación cruzada. Si usas tu bashrc, o cualquier otro fichero de inicialización de shell para fijar variables relacionadas con eso, prueba a moverlos con otro nombre, cierra y vuelve a abrir tu shell, y comprueba si cambia algo.

El comando 'which' te ayudará a saber exáctamente que 'gcc' estás corriendo como root y como user; si no es el mismo.... Siempre cabe la posibilidad de que hayas puesto algún wrapper en ~/bin/gcc o algo por el estilo y luego lo hayas olvidado. Si el problema es de permisos, tendrás que ver los permisos, grupo y propietario de los binarios de gcc, no del symlink (esos siempre van a ser 777). Esto se ve con 'ls -l', y tambien los de cada directorio que haya en el path hacia el binario en cuestión 'ls -ld'

Si no, quizás debas instalar strace y usarlo para ejecutar gcc. La salida hablará por si sola en la mayoría de casos.

[Editados para arreglar faltas de ortografía.]Last edited by i92guboj on Sat Feb 02, 2013 10:21 am; edited 1 time in total

----------

## quilosaq

 *Yczo wrote:*   

> 
> 
> ...si como root listo los permisos de los destinos de esos enlaces simbolicos, tomare uno solo por poner el ejemplo
> 
> ```
> ...

 

Comprueba los permisos en estos directorios:

```
/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3

/usr/x86_64-pc-linux-gnu/gcc-bin

/usr/x86_64-pc-linux-gnu
```

----------

## esteban_conde

¿nadie ha hecho la prueba de poner añadir user  a las opciones del punto de montaje donde se guardan los ejecutables del sistema? ... eso si no pongais muy lejos un liveCD.

----------

## Yczo

Hola chicos, en primer lugar muchas gracias por vuestra ayuda.

Veréis siguiendo vuestros consejos, para curarme en salud, he comentado todas las lineas con user en fstab, luego he instalado strace y he revisado los permisos de los directorios. He conseguido algún progreso parcial pero todavía no logro compilar aquí os muestro el resultado a ver si ya podemos vislumbrar la solución.

En primer lugar al revisar los permisos de la estructura de directorios encontré lo siguiente (descendiendo en la estructura de /usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3 omo me aconsejasteis).

```

$ ls -ld /usr/x86_64-pc-linux-gnu/gcc-bin

drwxr-x--- 4 root root 4096 ene  9  2009 /usr/x86_64-pc-linux-gnu/gcc-bin

```

Tras corregir los permisos

```

chmod -R 755 /usr/x86_64-pc-linux-gnu/gcc-bin

ls -l /usr/x86_64-pc-linux-gnu/

total 20

drwxr-xr-x 13 root root 4096 ene  9  2009 avr

drwxrwx---  2 root root 4096 ene  9  2009 bin

drwxrwx---  3 root root 4096 ene  9  2009 binutils-bin

drwxrwxr-x  3 root root 4096 ene 13 11:13 gcc-bin

drwxrwx---  2 root root 4096 ene  9  2009 lib

```

Por fin tengo acceso al gcc como usuario!, Pero todavía no puedo compilar   :Twisted Evil: 

 *Quote:*   

> 
> 
> $ gcc prueba.c -o prueba.sh
> 
> gcc: error trying to exec 'as': execvp: Permiso denegado
> ...

 

Me falta permiso de acceso a no se que y no se donde darlo.

A continuación hago un strace

```

$ strace gcc prueba.c -o prueba.sh

execve("/usr/bin/gcc", ["gcc", "prueba.c", "-o", "prueba.sh"], [/* 90 vars */]) = 0

brk(0)                                  = 0x2484000

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff93ff93000

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

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

fstat(3, {st_mode=S_IFREG|0644, st_size=241183, ...}) = 0

mmap(NULL, 241183, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff93ff58000

close(3)                                = 0

open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3

read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320%\2\0\0\0\0\0"..., 832) = 832

fstat(3, {st_mode=S_IFREG|0755, st_size=1728728, ...}) = 0

mmap(NULL, 3841312, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff93f9c9000

mprotect(0x7ff93fb6a000, 2093056, PROT_NONE) = 0

mmap(0x7ff93fd69000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a0000) = 0x7ff93fd69000

mmap(0x7ff93fd6f000, 15648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff93fd6f000

close(3)                                = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff93ff57000

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff93ff56000

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff93ff55000

arch_prctl(ARCH_SET_FS, 0x7ff93ff56700) = 0

mprotect(0x7ff93fd69000, 16384, PROT_READ) = 0

mprotect(0x601000, 4096, PROT_READ)     = 0

mprotect(0x7ff93ff94000, 4096, PROT_READ) = 0

munmap(0x7ff93ff58000, 241183)          = 0

brk(0)                                  = 0x2484000

brk(0x24a5000)                          = 0x24a5000

stat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/gcc", {st_mode=S_IFREG|0775, st_size=340912, ...}) = 0

execve("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/gcc", ["/usr/x86_64-pc-linux-gnu/gcc-bin"..., "prueba.c", "-o", "prueba.sh"], [/* 90 vars */]) = 0

brk(0)                                  = 0xc93000

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f147071b000

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

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

fstat(3, {st_mode=S_IFREG|0644, st_size=241183, ...}) = 0

mmap(NULL, 241183, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f14706e0000

close(3)                                = 0

open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3

read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320%\2\0\0\0\0\0"..., 832) = 832

fstat(3, {st_mode=S_IFREG|0755, st_size=1728728, ...}) = 0

mmap(NULL, 3841312, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f1470151000

mprotect(0x7f14702f2000, 2093056, PROT_NONE) = 0

mmap(0x7f14704f1000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a0000) = 0x7f14704f1000

mmap(0x7f14704f7000, 15648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f14704f7000

close(3)                                = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f14706df000

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f14706de000

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f14706dd000

arch_prctl(ARCH_SET_FS, 0x7f14706de700) = 0

mprotect(0x7f14704f1000, 16384, PROT_READ) = 0

mprotect(0x651000, 4096, PROT_READ)     = 0

mprotect(0x7f147071c000, 4096, PROT_READ) = 0

munmap(0x7f14706e0000, 241183)          = 0

brk(0)                                  = 0xc93000

brk(0xcb4000)                           = 0xcb4000

open("/usr/lib64/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3

fstat(3, {st_mode=S_IFREG|0644, st_size=1853616, ...}) = 0

mmap(NULL, 1853616, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f146ff8c000

close(3)                                = 0

open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3

fcntl(3, F_GETFD)                       = 0x1 (flags FD_CLOEXEC)

fstat(3, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f147071a000

read(3, "# Locale name alias data base.\n#"..., 4096) = 2570

read(3, "", 4096)                       = 0

close(3)                                = 0

munmap(0x7f147071a000, 4096)            = 0

open("/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/locale/es_ES.UTF-8/LC_MESSAGES/gcc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/locale/es_ES.utf8/LC_MESSAGES/gcc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/locale/es_ES/LC_MESSAGES/gcc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/locale/es.UTF-8/LC_MESSAGES/gcc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/locale/es.utf8/LC_MESSAGES/gcc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/locale/es/LC_MESSAGES/gcc.mo", O_RDONLY) = 3

fstat(3, {st_mode=S_IFREG|0644, st_size=1110910, ...}) = 0

mmap(NULL, 1110910, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f14705cd000

close(3)                                = 0

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

fstat(3, {st_mode=S_IFREG|0644, st_size=26244, ...}) = 0

mmap(NULL, 26244, PROT_READ, MAP_SHARED, 3, 0) = 0x7f1470714000

close(3)                                = 0

open("/usr/lib64/gconv/ISO8859-1.so", O_RDONLY|O_CLOEXEC) = 3

read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\5\0\0\0\0\0\0"..., 832) = 832

fstat(3, {st_mode=S_IFREG|0755, st_size=10096, ...}) = 0

mmap(NULL, 2105392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f146fd89000

mprotect(0x7f146fd8b000, 2093056, PROT_NONE) = 0

mmap(0x7f146ff8a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f146ff8a000

close(3)                                = 0

mprotect(0x7f146ff8a000, 4096, PROT_READ) = 0

rt_sigaction(SIGINT, {SIG_IGN, [INT], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGINT, {0x407770, [INT], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_IGN, [INT], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, 8) = 0

rt_sigaction(SIGHUP, {SIG_IGN, [HUP], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGHUP, {0x407770, [HUP], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_IGN, [HUP], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, 8) = 0

rt_sigaction(SIGTERM, {SIG_IGN, [TERM], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGTERM, {0x407770, [TERM], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_IGN, [TERM], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, 8) = 0

rt_sigaction(SIGPIPE, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGPIPE, {0x407770, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, 8) = 0

rt_sigaction(SIGCHLD, {SIG_DFL, [CHLD], SA_RESTORER|SA_RESTART, 0x7f1470186ae0}, {SIG_DFL, [], 0}, 8) = 0

brk(0xcd5000)                           = 0xcd5000

lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

lstat("/usr/x86_64-pc-linux-gnu", {st_mode=S_IFDIR|0770, st_size=4096, ...}) = 0

lstat("/usr/x86_64-pc-linux-gnu/gcc-bin", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0

lstat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0

lstat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/gcc", {st_mode=S_IFLNK|0777, st_size=23, ...}) = 0

readlink("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/gcc", "x86_64-pc-linux-gnu-gcc", 4095) = 23

lstat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcc", {st_mode=S_IFREG|0775, st_size=340912, ...}) = 0

lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

lstat("/usr/x86_64-pc-linux-gnu", {st_mode=S_IFDIR|0770, st_size=4096, ...}) = 0

lstat("/usr/x86_64-pc-linux-gnu/gcc-bin", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0

lstat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0

lstat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/gcc", {st_mode=S_IFLNK|0777, st_size=23, ...}) = 0

readlink("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/gcc", "x86_64-pc-linux-gnu-gcc", 4095) = 23

lstat("/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/x86_64-pc-linux-gnu-gcc", {st_mode=S_IFREG|0775, st_size=340912, ...}) = 0

access("prueba.c", F_OK)                = 0

access("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/", X_OK) = 0

access("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/", X_OK) = 0

access("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/specs", R_OK) = -1 ENOENT (No such file or directory)

access("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/lib/x86_64-pc-linux-gnu/4.6.3/specs", R_OK) = -1 EACCES (Permission denied)

access("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/lib/specs", R_OK) = -1 EACCES (Permission denied)

access("/usr/lib/gcc/x86_64-pc-linux-gnu/specs", R_OK) = -1 ENOENT (No such file or directory)

access("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/", X_OK) = 0

stat("/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/lto-wrapper", {st_mode=S_IFREG|0755, st_size=35416, ...}) = 0

access("/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/lto-wrapper", X_OK) = 0

access("/tmp", R_OK|W_OK|X_OK)          = 0

getpid()                                = 8248

open("/tmp/ccqdVFKw.s", O_RDWR|O_CREAT|O_EXCL, 0600) = 3

close(3)                                = 0

stat("/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1", {st_mode=S_IFREG|0755, st_size=11109440, ...}) = 0

access("/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1", X_OK) = 0

vfork()                                 = 8249

wait4(8249, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 8249

--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=8249, si_status=0, si_utime=1, si_stime=0} ---

open("/tmp/cc6spmuB.o", O_RDWR|O_CREAT|O_EXCL, 0600) = 3

close(3)                                = 0

stat("/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/as", 0x7fff4ea5d2a0) = -1 ENOENT (No such file or directory)

stat("/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/as", 0x7fff4ea5d2a0) = -1 ENOENT (No such file or directory)

stat("/usr/libexec/gcc/x86_64-pc-linux-gnu/as", 0x7fff4ea5d2a0) = -1 ENOENT (No such file or directory)

stat("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/as", 0x7fff4ea5d2a0) = -1 ENOENT (No such file or directory)

stat("/usr/lib/gcc/x86_64-pc-linux-gnu/as", 0x7fff4ea5d2a0) = -1 ENOENT (No such file or directory)

stat("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu/4.6.3/as", 0x7fff4ea5d2a0) = -1 EACCES (Permission denied)

stat("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/bin/as", 0x7fff4ea5d2a0) = -1 EACCES (Permission denied)

vfork(gcc: error trying to exec 'as': execvp: Permiso denegado

)                                 = 8250

--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=8250, si_status=255, si_utime=0, si_stime=0} ---

wait4(8250, [{WIFEXITED(s) && WEXITSTATUS(s) == 255}], 0, NULL) = 8250

stat("/tmp/cc6spmuB.o", {st_mode=S_IFREG|0600, st_size=0, ...}) = 0

unlink("/tmp/cc6spmuB.o")               = 0

stat("/tmp/cc6spmuB.o", 0x7fff4ea5d490) = -1 ENOENT (No such file or directory)

stat("/tmp/ccqdVFKw.s", {st_mode=S_IFREG|0600, st_size=478, ...}) = 0

unlink("/tmp/ccqdVFKw.s")               = 0

exit_group(1)                           = ?

+++ exited with 1 +++

```

He tratado de dar permisos 755 a /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3, pero no me ha servido de nada

Atascado de nuevo!

¿Que pensaís? Gracias de antemano.

Saludos cordiales

----------

## quilosaq

 *Yczo wrote:*   

> ...
> 
> stat("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu/4.6.3/as", 0x7fff4ea5d2a0) = -1 EACCES (Permission denied)
> 
> stat("/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../x86_64-pc-linux-gnu/bin/as", 0x7fff4ea5d2a0) = -1 EACCES (Permission denied)
> ...

 

Prueba 

```
# chmod -R 777 /usr/x86_64-pc-linux-gnu/bin/
```

Creo que tu instalación de gcc esta corrupta. Reinstala gcc.

----------

## Yczo

Solucionado!!!   Eres un hacha quilosaq!! Pero ademas tuve que hacerselo también a binutils-bin, esto lo hice por intuición después de leer en algún post que el error marcado por strace tenía que ver con binutils y observar que mis permisos en binutils-bin eran 750

```

chmod -R 775 /usr/x86_64-pc-linux-gnu/bin

chmod -R 775 /usr/x86_64-pc-linux-gnu/binutils-bin

```

Claro yo no se mucho del por que, si alguien se animara a explicar un poco por que pasaba esto o linkar un documento donde explique, estaría muy bien  :Wink: 

Muchisimas gracias a todos!. quilosaq, no sabes lo feliz que me has hecho. Esto lo arrastraba desde hace un año y medio

Saludos!

----------

