# [RESUELTO] Error al compilar gnustep-base

## arkhan3x

Un saludo, hice una instalación limpia de Gentoo, sin ningún problema, resulta que el stage que descargue venian con una version inferior a la 4.9.2.

gcc lo tengo instaldo con los siguientes flgas:

```
[ebuild   R   ] sys-devel/gcc-4.9.2  USE="cxx fortran (multilib) nls nptl objc objc++ objc-gc openmp sanitize (-altivec) (-awt) -cilk -doc (-fixed-point) -gcj -go -graphite (-hardened) (-libssp) (-multislot) -nopie -nossp -regression-test -vanilla"
```

y al compilar gnustep-base me da el suiguiente error:

```

emerge -avq unar                                                                                                                                                                                  /home/arkhan

[ebuild  N    ] gnustep-base/gnustep-base-1.24.7  USE="icu libffi ssl -debug -doc -zeroconf" 

[ebuild  N    ] app-arch/unar-1.8.1 

Would you like to merge these packages? [Yes/No] 

>>> Verifying ebuild manifests

>>> Emerging (1 of 2) gnustep-base/gnustep-base-1.24.7::gentoo

>>> Failed to emerge gnustep-base/gnustep-base-1.24.7, Log file:

>>>  '/var/tmp/portage/gnustep-base/gnustep-base-1.24.7/temp/build.log'

>>> Jobs: 0 of 2 complete, 1 failed                 Load avg: 8.73, 5.25, 3.95

 * Package:    gnustep-base/gnustep-base-1.24.7

 * Repository: gentoo

 * Maintainer: gnustep@gentoo.org

 * USE:        abi_x86_64 amd64 elibc_glibc icu kernel_linux libffi ssl userland_GNU

 * FEATURES:   preserve-libs sandbox userpriv usersandbox

 * Cleaning paths from GNUmakefile ...

 [ ok ]

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

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

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

checking for GNUstep configuration file to use at runtime... /etc/GNUstep/GNUstep.conf

checking whether the GNUstep.conf file path can be set in the environment... yes

checking if we should import an existing configuration file now... yes

checking for default GNUstep configuration file to use... /etc/GNUstep/GNUstep.conf

trying to import "/etc/GNUstep/GNUstep.conf"

configure: If this fails, please run configure again with the --disable-importing-config-file option or specifying an alternative file using the --with-default-config= option

checking for GNUstep-base installation domain... LOCAL

checking if we are hardcoding any relative paths in gnustep-base... no

configure: We store the following filesystem layout into gnustep-base, to be used when no config file is found

checking for Makefiles directory... /usr/share/GNUstep/Makefiles

checking for user defaults directory... GNUstep/Defaults

checking for user config file... .GNUstep.conf

checking for System Applications directory... /usr/lib64/GNUstep/Applications

checking for System Admin Applications directory... /usr/lib64/GNUstep/Applications

checking for System Web Applications directory... /usr/lib64/GNUstep/WebApplications

checking for System Tools directory... /usr/bin

checking for System Admin Tools directory... /usr/sbin

checking for System Library directory... /usr/lib64/GNUstep

checking for System Libraries directory... /usr/lib64

checking for System Headers directory... /usr/include

checking for System Documentation directory... /usr/share/GNUstep/Documentation

checking for System Info Documentation directory... /usr/share/info

checking for System Man Documentation directory... /usr/share/man

checking for Network Applications directory... /usr/local/lib64/GNUstep/Applications

checking for Network Admin Applications directory... /usr/local/lib64/GNUstep/Applications

checking for Network Web Applications directory... /usr/lib64/GNUstep/WebApplications

checking for Network Tools directory... /usr/local/bin

checking for Network Admin Tools directory... /usr/local/sbin

checking for Network Library directory... /usr/local/lib64/GNUstep

checking for Network Libraries directory... /usr/local/lib64

checking for Network Headers directory... /usr/local/include

checking for Network Documentation directory... /usr/local/share/GNUstep/Documentation

checking for Network Info Documentation directory... /usr/local/share/info

checking for Network Man Documentation directory... /usr/local/share/man

checking for Local Applications directory... /usr/local/lib64/GNUstep/Applications

checking for Local Admin Applications directory... /usr/local/lib64/GNUstep/Applications

checking for Local Web Applications directory... /usr/local/lib64/GNUstep/WebApplications

checking for Local Tools directory... /usr/local/bin

checking for Local Admin Tools directory... /usr/local/sbin

checking for Local Library directory... /usr/local/lib64/GNUstep

checking for Local Libraries directory... /usr/local/lib64

checking for Local Headers directory... /usr/local/include

checking for Local Documentation directory... /usr/local/share/GNUstep/Documentation

checking for Local Info Documentation directory... /usr/local/share/info

checking for Local Man Documentation directory... /usr/local/share/man

checking for User Applications directory... GNUstep/Applications

checking for User Admin Applications directory... GNUstep/Applications/Admin

checking for User Web Applications directory... GNUstep/WebApplications

checking for User Tools directory... GNUstep/Tools

checking for User Admin Tools directory... GNUstep/Tools/Admin

checking for User Library directory... GNUstep/Library

checking for User Libraries directory... GNUstep/Library/Libraries

checking for User Headers directory... GNUstep/Library/Headers

checking for User Documentation directory... GNUstep/Library/Documentation

checking for User Info Documentation directory... GNUstep/Library/Documentation/info

checking for User Man Documentation directory... GNUstep/Library/Documentation/man

checking for System User directory... /home

checking for Network User directory... /home

checking for Local User directory... /home

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

checking whether the C compiler works... yes

checking for C compiler default output file name... a.out

checking for suffix of executables... 

checking whether we are cross compiling... no

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether clang accepts -g... yes

checking for clang option to accept ISO C89... none needed

checking how to run the C preprocessor... clang -E

checking for grep that handles long lines and -e... /bin/grep

checking for egrep... /bin/grep -E

checking for ANSI C header files... yes

checking for sys/types.h... yes

checking for sys/stat.h... yes

checking for stdlib.h... yes

checking for string.h... yes

checking for memory.h... yes

checking for strings.h... yes

checking for inttypes.h... yes

checking for stdint.h... yes

checking for unistd.h... yes

checking minix/config.h usability... no

checking minix/config.h presence... no

checking for minix/config.h... no

checking whether it is safe to define __EXTENSIONS__... yes

checking for _LARGEFILE_SOURCE value needed for large files... no

checking for special C compiler options needed for large files... no

checking for _FILE_OFFSET_BITS value needed for large files... no

checking for off_t... yes

checking whether the compiler supports atomic operations... yes

checking for whoami... /usr/bin/whoami

checking for pkg-config... yes

checking the Objective-C runtime... GNU

checking for custom shared objc library... /usr/lib64

checking objc/runtime.h usability... yes

checking objc/runtime.h presence... yes

checking for objc/runtime.h... yes

checking objc/objc.h usability... yes

checking objc/objc.h presence... yes

checking for objc/objc.h... yes

configure: for gdomap network details

checking for variable length socket addresses... not found

checking for gcc visibility attribute support... found

checking whether SO_REUSEADDR is broken... no

checking for objc threading flags...   

checking whether byte ordering is bigendian... no

checking size of void*... 8

checking size of short... 2

checking size of int... 4

checking size of long... 8

checking size of long long... 8

checking size of float... 4

checking size of double... 8

checking for working INTPTR_MAX, INTPTR_MIN, UINTPTR_MAX... yes

checking loading of constructor functions... yes

checking dlfcn.h usability... yes

checking dlfcn.h presence... yes

checking for dlfcn.h... yes

checking for dynamic linker type... simple

checking for dladdr in -ldl... yes

checking for dladdr... yes

checking for gethostbyname... yes

checking pthread.h usability... yes

checking pthread.h presence... yes

checking for pthread.h... yes

checking size of pthread_mutex_t... 40

checking size of pthread_cond_t... 48

checking alignment of pthread_mutex_t... 8

checking alignment of pthread_cond_t... 8

checking for pthread_join in -lpthread... yes

checking for sched_yield in -lrt... yes

checking for nanosleep... yes

checking for usleep... yes

checking for Sleep... no

checking for objc_root_class attribute support... found

checking whether objc really works... no

I don't seem to be able to use your Objective-C compiler to produce

working binaries!  Please check your Objective-C compiler installation.

If you are using gcc-3.x make sure that your compiler's libgcc_s and libobjc

can be found by the dynamic linker - usually that requires you to play

with LD_LIBRARY_PATH or /etc/ld.so.conf.

Please refer to your compiler installation instructions for more help.

configure: error: The Objective-C compiler does not work or is not installed properly.

!!! Please attach the following file when seeking support:

!!! /var/tmp/portage/gnustep-base/gnustep-base-1.24.7/work/gnustep-base-1.24.7/config.log

 * ERROR: gnustep-base/gnustep-base-1.24.7::gentoo failed (configure phase):

 *   econf failed

 * 

 * Call stack:

 *               ebuild.sh, line   93:  Called src_configure

 *             environment, line 2502:  Called econf '--enable-libffi' '--disable-ffcall' '--with-ffi-include=/usr/lib64/libffi-3.2.1/include' '--enable-icu' '--enable-tls' '--disable-zeroconf' '--with-xml-prefix=/usr' '--with-gmp-include=/usr/include' '--with-gmp-library=/usr/lib' '--with-default-config=/etc/GNUstep/GNUstep.conf'

 *        phase-helpers.sh, line  662:  Called __helpers_die 'econf failed'

 *   isolated-functions.sh, line  117:  Called die

 * The specific snippet of code:

 *              die "$@"

 * 

 * If you need support, post the output of `emerge --info '=gnustep-base/gnustep-base-1.24.7::gentoo'`,

 * the complete build log and the output of `emerge -pqv '=gnustep-base/gnustep-base-1.24.7::gentoo'`.

 * The complete build log is located at '/var/tmp/portage/gnustep-base/gnustep-base-1.24.7/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/gnustep-base/gnustep-base-1.24.7/temp/environment'.

 * Working directory: '/var/tmp/portage/gnustep-base/gnustep-base-1.24.7/work/gnustep-base-1.24.7'

 * S: '/var/tmp/portage/gnustep-base/gnustep-base-1.24.7/work/gnustep-base-1.24.7'

 * Messages for package gnustep-base/gnustep-base-1.24.7:

 * ERROR: gnustep-base/gnustep-base-1.24.7::gentoo failed (configure phase):

 *   econf failed

 * 

 * Call stack:

 *               ebuild.sh, line   93:  Called src_configure

 *             environment, line 2502:  Called econf '--enable-libffi' '--disable-ffcall' '--with-ffi-include=/usr/lib64/libffi-3.2.1/include' '--enable-icu' '--enable-tls' '--disable-zeroconf' '--with-xml-prefix=/usr' '--with-gmp-include=/usr/include' '--with-gmp-library=/usr/lib' '--with-default-config=/etc/GNUstep/GNUstep.conf'

 *        phase-helpers.sh, line  662:  Called __helpers_die 'econf failed'

 *   isolated-functions.sh, line  117:  Called die

 * The specific snippet of code:

 *              die "$@"

 * 

 * If you need support, post the output of `emerge --info '=gnustep-base/gnustep-base-1.24.7::gentoo'`,

 * the complete build log and the output of `emerge -pqv '=gnustep-base/gnustep-base-1.24.7::gentoo'`.

 * The complete build log is located at '/var/tmp/portage/gnustep-base/gnustep-base-1.24.7/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/gnustep-base/gnustep-base-1.24.7/temp/environment'.

 * Working directory: '/var/tmp/portage/gnustep-base/gnustep-base-1.24.7/work/gnustep-base-1.24.7'

 * S: '/var/tmp/portage/gnustep-base/gnustep-base-1.24.7/work/gnustep-base-1.24.7'

```

no entiendo porque me da este erro ya que gcc esta compilado con los flags: objc objc++ objc-gc

GraciasLast edited by arkhan3x on Wed Apr 15, 2015 8:03 pm; edited 1 time in total

----------

## quilosaq

 *Quote:*   

> 
> 
> ```
> [ebuild   R   ] sys-devel/gcc-4.9.2  USE="cxx fortran (multilib) nls nptl objc objc++ objc-gc openmp sanitize (-altivec) (-awt) -cilk -doc (-fixed-point) -gcj -go -graphite (-hardened) (-libssp) (-multislot) -nopie -nossp -regression-test -vanilla"
> ```
> ...

 ¿Y tienes seleccionada esa versión de gcc?

```
gcc-config -c
```

----------

## arkhan3x

Si actualmente tengo solo esta version de gcc:

```

>gcc-config -c

x86_64-pc-linux-gnu-4.9.2

> gcc-config -l  

[1] x86_64-pc-linux-gnu-4.9.2 *

```

----------

## esteban_conde

En el mensaje de error aconseja instalar otra vez el compilador ya que es incapaz de producir binarios, haz un downgrade y selecinalo con gcc-config sin desinstalar el compilador que tienes.

Luego nos cuentas los resultados, te aconsejo lo anterior debido a que es muy fácil que la version que tienes esté en testing y a veces pasan esas cosas.

----------

## arkhan3x

Hice un downgrade de gcc a la versión 4.8.4 y la seleccione con gcc-config pero me da el mismo error

----------

## esteban_conde

Vamos a dar un palo de ciego:

```
cat /usr/src/linux/.config | grep -i elf64
```

Posiblemente no lo tengas activado y o.out hace tiempo que al menos yo no lo uso, el caso es que no recuerdo el por qué.

----------

## arkhan3x

esto es lo que devuelve

```
> cat /usr/src/linux/.config | grep -i elf64

CONFIG_OUTPUT_FORMAT="elf64-x86-64"
```

----------

## esteban_conde

 *Executable file rormats /Emulations wrote:*   

> ┌─────────────────────────────────────────────────────────────────────┐ │  
> 
>   │ │    -*- Kernel support for ELF binaries                              │ │  
> 
>   │ │    [ ] Write ELF core dumps with partial segments                   │ │  
> ...

 

Busca ese titulo y asegurate de tenerlo así, en mi caso -*-Kernel support for ELF binaries viene seleccionado por el hecho de que antes tiene seleccionado x86_64=y si algo no te cuadra la ayuda de cada opcion en los kernels actuales te informa tanto de que que otro modulo depende como de que modulos lo necesitan.

Ahí habla de instalar la libreria más reciente de ELF binaries en caso de que no funcionase en mi caso parece que lo único que tengo es dev-libs/elfutils.

Suerte.

----------

## quilosaq

 *Quote:*   

> 
> 
> ```
> !!! Please attach the following file when seeking support:
> 
> ...

 

Habrá que ver ese archivo:

```
wgetpaste  -c 'cat /var/tmp/portage/gnustep-base/gnustep-base-1.24.7/work/gnustep-base-1.24.7/config.log'
```

----------

## arkhan3x

Bueno todo estaba bien, el error creo que radicaba en el paquete:

```

gnustep-base/gnustep-make-2.6.6  USE="native-exceptions libobjc2"

```

quitando el USE flag libobjc2, desinstalando gnustep-base/libobjc2 y recompilando gnustep-base/gnustep-make, se compilo sin ningún problema

----------

